{"version":3,"sources":["../node_modules/react/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/three/build/three.module.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/classnames/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@blueprintjs/core/lib/esm/common/index.js","../node_modules/@blueprintjs/core/node_modules/tslib/tslib.es6.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/core-js/internals/export.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/prop-types/index.js","../node_modules/reactcss/lib/index.js","../node_modules/core-js/internals/global.js","../node_modules/@blueprintjs/core/lib/esm/common/props.js","../node_modules/core-js/internals/fails.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/core-js/internals/an-object.js","../node_modules/core-js/internals/function-uncurry-this.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/core-js/internals/function-call.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/styled-components/dist/styled-components.browser.esm.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/core-js/internals/a-callable.js","../node_modules/core-js/internals/descriptors.js","../node_modules/core-js/internals/iterate.js","../node_modules/core-js/internals/well-known-symbol.js","../node_modules/core-js/internals/is-object.js","../node_modules/core-js/internals/is-callable.js","../node_modules/core-js/internals/array-buffer-view-core.js","../node_modules/@blueprintjs/core/lib/esm/common/errors.js","../node_modules/core-js/internals/has-own-property.js","../node_modules/core-js/internals/object-define-property.js","../node_modules/core-js/internals/to-string.js","../node_modules/@blueprintjs/core/lib/esm/common/classes.js","../node_modules/core-js/internals/get-built-in.js","../node_modules/uuid/index.js","../node_modules/core-js/internals/to-object.js","../node_modules/core-js/internals/function-bind-context.js","../node_modules/color-space/rgb.js","../node_modules/lodash-es/_root.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/core-js/internals/length-of-array-like.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@blueprintjs/core/lib/esm/common/position.js","../node_modules/core-js/internals/define-built-in.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/react-dom/index.js","../node_modules/react-ga/dist/esm/utils/console/warn.js","../node_modules/react-ga/dist/esm/components/OutboundLink.js","../node_modules/react-ga/dist/esm/utils/trim.js","../node_modules/react-ga/dist/esm/utils/toTitleCase.js","../node_modules/react-ga/dist/esm/utils/format.js","../node_modules/react-ga/dist/esm/utils/mightBeEmail.js","../node_modules/react-ga/dist/esm/utils/console/log.js","../node_modules/react-ga/dist/esm/utils/testModeAPI.js","../node_modules/react-ga/dist/esm/core.js","../node_modules/react-ga/dist/esm/utils/loadGA.js","../node_modules/react-ga/dist/esm/utils/removeLeadingSlash.js","../node_modules/react-ga/dist/esm/index.js","../node_modules/core-js/internals/object-get-own-property-descriptor.js","../node_modules/core-js/internals/define-well-known-symbol.js","../node_modules/react-use/esm/util.js","../node_modules/core-js/internals/array-iteration.js","../node_modules/@blueprintjs/core/lib/esm/common/utils/safeInvokeMember.js","../node_modules/@blueprintjs/core/lib/esm/common/utils/isDarkTheme.js","../node_modules/@blueprintjs/core/lib/esm/common/utils/index.js","../node_modules/three/examples/jsm/libs/fflate.module.js","../node_modules/three/examples/jsm/curves/NURBSUtils.js","../node_modules/three/examples/jsm/curves/NURBSCurve.js","../node_modules/three/examples/jsm/loaders/FBXLoader.js","../node_modules/core-js/internals/to-indexed-object.js","../node_modules/core-js/internals/require-object-coercible.js","../node_modules/core-js/internals/is-pure.js","../node_modules/core-js/internals/internal-state.js","../node_modules/color-space/xyz.js","../node_modules/use-debounce/lib/index.js","../node_modules/@blueprintjs/core/lib/esm/common/refs.js","../node_modules/core-js/internals/species-constructor.js","../node_modules/core-js/internals/create-html.js","../node_modules/core-js/internals/string-html-forced.js","../node_modules/axios/lib/utils.js","../node_modules/axios/index.js","../node_modules/react-popper/lib/esm/Manager.js","../node_modules/react-popper/lib/esm/utils.js","../node_modules/react-popper/lib/esm/Reference.js","../node_modules/react-popper/lib/esm/Popper.js","../node_modules/@blueprintjs/core/lib/esm/components/portal/portal.js","../node_modules/@blueprintjs/core/lib/esm/components/overlay/overlay.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../node_modules/@blueprintjs/core/lib/esm/components/resize-sensor/resizeSensor.js","../node_modules/@blueprintjs/core/lib/esm/components/tooltip/tooltip.js","../node_modules/@blueprintjs/core/lib/esm/components/popover/popperUtils.js","../node_modules/@blueprintjs/core/lib/esm/components/popover/popoverArrow.js","../node_modules/@blueprintjs/core/lib/esm/components/popover/popoverMigrationUtils.js","../node_modules/@blueprintjs/core/lib/esm/components/popover/popover.js","../node_modules/@blueprintjs/core/lib/esm/components/context-menu/contextMenu.js","../node_modules/@blueprintjs/icons/lib/esm/generated/iconSvgPaths.js","../node_modules/@blueprintjs/core/lib/esm/components/icon/icon.js","../node_modules/@blueprintjs/core/lib/esm/components/spinner/spinner.js","../node_modules/@blueprintjs/core/lib/esm/components/collapse/collapse.js","../node_modules/@blueprintjs/core/lib/esm/components/button/abstractButton.js","../node_modules/@blueprintjs/core/lib/esm/components/button/buttons.js","../node_modules/@blueprintjs/core/lib/esm/components/button/buttonGroup.js","../node_modules/@blueprintjs/core/lib/esm/components/card/card.js","../node_modules/@blueprintjs/core/lib/esm/compatibility/browser.js","../node_modules/@blueprintjs/core/lib/esm/components/editable-text/editableText.js","../node_modules/@blueprintjs/core/lib/esm/components/forms/controls.js","../node_modules/@blueprintjs/core/lib/esm/components/forms/formGroup.js","../node_modules/@blueprintjs/core/lib/esm/components/forms/asyncControllableInput.js","../node_modules/@blueprintjs/core/lib/esm/components/forms/inputGroup.js","../node_modules/@blueprintjs/core/lib/esm/components/forms/radioGroup.js","../node_modules/@blueprintjs/core/lib/esm/components/forms/textArea.js","../node_modules/@blueprintjs/core/lib/esm/components/html/html.js","../node_modules/@blueprintjs/core/lib/esm/components/menu/menuDivider.js","../node_modules/@blueprintjs/core/lib/esm/components/text/text.js","../node_modules/@blueprintjs/core/lib/esm/components/menu/menuItem.js","../node_modules/@blueprintjs/core/lib/esm/components/menu/menu.js","../node_modules/@blueprintjs/core/lib/esm/components/progress-bar/progressBar.js","../node_modules/@blueprintjs/core/lib/esm/components/slider/sliderUtils.js","../node_modules/@blueprintjs/core/lib/esm/components/slider/handle.js","../node_modules/@blueprintjs/core/lib/esm/components/slider/handleProps.js","../node_modules/@blueprintjs/core/lib/esm/components/slider/multiSlider.js","../node_modules/@blueprintjs/core/lib/esm/components/slider/slider.js","../node_modules/@blueprintjs/core/lib/esm/components/tabs/tab.js","../node_modules/@blueprintjs/core/lib/esm/components/tabs/tabTitle.js","../node_modules/@blueprintjs/core/lib/esm/components/tabs/tabs.js","../node_modules/@blueprintjs/core/lib/esm/components/tag/tag.js","../node_modules/@blueprintjs/core/lib/esm/components/toast/toast.js","../node_modules/@blueprintjs/core/lib/esm/components/toast/toaster.js","../node_modules/@blueprintjs/core/lib/esm/components/index.js","../node_modules/webpack/buildin/global.js","../node_modules/core-js/internals/to-integer-or-infinity.js","../node_modules/webpack/buildin/amd-define.js","../node_modules/@blueprintjs/core/lib/esm/common/elevation.js","../node_modules/@blueprintjs/core/lib/esm/common/intent.js","../node_modules/core-js/internals/to-length.js","../node_modules/core-js/internals/create-non-enumerable-property.js","../node_modules/core-js/internals/object-get-prototype-of.js","../node_modules/core-js/internals/set-to-string-tag.js","../node_modules/webpack/buildin/module.js","../node_modules/lodash/isArray.js","../node_modules/core-js/internals/classof-raw.js","../node_modules/core-js/internals/object-is-prototype-of.js","../node_modules/core-js/internals/get-map-iterator.js","../node_modules/lodash/_root.js","../node_modules/core-js/internals/object-create.js","../node_modules/core-js/internals/function-apply.js","../node_modules/core-js/internals/typed-array-constructor.js","../node_modules/blueimp-load-image/js/load-image.js","../node_modules/lodash/isObjectLike.js","../node_modules/screenfull/dist/screenfull.js","../node_modules/core-js/internals/add-to-unscopables.js","../node_modules/core-js/internals/engine-v8-version.js","../node_modules/core-js/internals/engine-user-agent.js","../node_modules/core-js/internals/to-property-key.js","../node_modules/core-js/internals/to-absolute-index.js","../node_modules/core-js/internals/create-property-descriptor.js","../node_modules/core-js/internals/object-get-own-property-names.js","../node_modules/core-js/internals/object-set-prototype-of.js","../node_modules/core-js/internals/create-property.js","../node_modules/core-js/internals/an-instance.js","../node_modules/pako/lib/utils/common.js","../node_modules/pako/index.js","../node_modules/core-js/internals/get-method.js","../node_modules/core-js/internals/internal-metadata.js","../node_modules/core-js/internals/classof.js","../node_modules/core-js/internals/array-slice.js","../node_modules/core-js/internals/get-set-iterator.js","../node_modules/core-js/internals/array-method-is-strict.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_getNative.js","../node_modules/@blueprintjs/core/lib/esm/common/utils/functionUtils.js","../node_modules/lodash-es/isBuffer.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/core-js/internals/shared.js","../node_modules/core-js/internals/native-symbol.js","../node_modules/core-js/internals/is-symbol.js","../node_modules/core-js/internals/try-to-string.js","../node_modules/core-js/internals/function-name.js","../node_modules/core-js/internals/get-iterator.js","../node_modules/core-js/internals/set-species.js","../node_modules/core-js/internals/engine-is-node.js","../node_modules/core-js/internals/string-trim.js","../node_modules/core-js/internals/promise-native-constructor.js","../node_modules/webpack/buildin/amd-options.js","../node_modules/lodash/isObject.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/inheritsLoose.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/core-js/modules/es.array.iterator.js","../node_modules/core-js/internals/indexed-object.js","../node_modules/core-js/internals/function-bind-native.js","../node_modules/core-js/internals/uid.js","../node_modules/core-js/internals/object-keys.js","../node_modules/core-js/internals/array-includes.js","../node_modules/core-js/internals/hidden-keys.js","../node_modules/core-js/internals/iterators.js","../node_modules/core-js/internals/is-forced.js","../node_modules/core-js/internals/array-slice-simple.js","../node_modules/core-js/internals/freezing.js","../node_modules/core-js/internals/get-iterator-method.js","../node_modules/core-js/internals/define-built-ins.js","../node_modules/core-js/internals/is-constructor.js","../node_modules/core-js/internals/array-species-create.js","../node_modules/core-js/internals/is-array.js","../node_modules/core-js/internals/array-method-has-species-support.js","../node_modules/process/browser.js","../node_modules/core-js/internals/promise-constructor-detection.js","../node_modules/core-js/internals/new-promise-capability.js","../node_modules/define-properties/index.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/keys.js","../node_modules/@blueprintjs/core/lib/esm/common/alignment.js","../node_modules/react-swipeable/es/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/deepmerge/dist/cjs.js","../node_modules/react-transition-group/index.js","../node_modules/tinycolor2/tinycolor.js","../node_modules/core-js/internals/document-create-element.js","../node_modules/core-js/internals/shared-key.js","../node_modules/core-js/internals/inspect-source.js","../node_modules/core-js/internals/object-property-is-enumerable.js","../node_modules/core-js/internals/object-get-own-property-symbols.js","../node_modules/core-js/internals/collection.js","../node_modules/core-js/internals/object-is-extensible.js","../node_modules/core-js/internals/check-correctness-of-iteration.js","../node_modules/core-js/internals/inherit-if-required.js","../node_modules/core-js/modules/es.string.iterator.js","../node_modules/core-js/internals/string-multibyte.js","../node_modules/core-js/internals/a-constructor.js","../node_modules/core-js/internals/array-reduce.js","../node_modules/core-js/internals/math-expm1.js","../node_modules/core-js/internals/whitespaces.js","../node_modules/core-js/internals/object-prototype-accessors-forced.js","../node_modules/core-js/internals/task.js","../node_modules/core-js/internals/validate-arguments-length.js","../node_modules/core-js/internals/regexp-exec.js","../node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","../node_modules/core-js/internals/regexp-exec-abstract.js","../node_modules/core-js/internals/typed-array-species-constructor.js","../node_modules/blueimp-load-image/js/load-image-meta.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_copyObject.js","../node_modules/color-space/hsl.js","../node_modules/color-space/ypbpr.js","../node_modules/@blueprintjs/core/lib/esm/common/keys.js","../node_modules/seedrandom/index.js","../node_modules/@blueprintjs/core/lib/esm/common/utils/jsUtils.js","../node_modules/react-use/esm/useEffectOnce.js","../node_modules/react-fade-in/lib/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/draftjs-to-html/lib/draftjs-to-html.js","../node_modules/blueimp-load-image/js/index.js","../node_modules/core-js/internals/shared-store.js","../node_modules/core-js/internals/define-global-property.js","../node_modules/core-js/internals/object-define-properties.js","../node_modules/core-js/internals/enum-bug-keys.js","../node_modules/core-js/internals/define-iterator.js","../node_modules/core-js/internals/make-built-in.js","../node_modules/core-js/internals/own-keys.js","../node_modules/core-js/internals/correct-prototype-getter.js","../node_modules/core-js/internals/object-get-own-property-names-external.js","../node_modules/core-js/internals/array-buffer-non-extensible.js","../node_modules/core-js/internals/is-array-iterator-method.js","../node_modules/core-js/internals/to-string-tag-support.js","../node_modules/core-js/modules/es.object.to-string.js","../node_modules/core-js/modules/web.dom-collections.iterator.js","../node_modules/object-assign/index.js","../node_modules/core-js/internals/array-fill.js","../node_modules/core-js/internals/array-sort.js","../node_modules/core-js/internals/engine-webkit-version.js","../node_modules/core-js/internals/math-sign.js","../node_modules/core-js/internals/is-integral-number.js","../node_modules/core-js/internals/string-repeat.js","../node_modules/core-js/internals/perform.js","../node_modules/core-js/internals/is-regexp.js","../node_modules/core-js/internals/regexp-flags.js","../node_modules/core-js/internals/regexp-sticky-helpers.js","../node_modules/core-js/internals/not-a-regexp.js","../node_modules/core-js/internals/correct-is-regexp-logic.js","../node_modules/core-js/internals/advance-string-index.js","../node_modules/core-js/internals/string-trim-forced.js","../node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","../node_modules/pako/lib/zlib/messages.js","../node_modules/has-tostringtag/shams.js","../node_modules/get-intrinsic/index.js","../node_modules/function-bind/index.js","../node_modules/call-bind/index.js","../node_modules/qrcode.react/lib/index.js","../node_modules/lodash/forOwn.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isLength.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_getPrototype.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/eq.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/keysIn.js","../node_modules/lodash/_cloneArrayBuffer.js","../node_modules/webpack/buildin/harmony-module.js","../node_modules/color-space/hsv.js","../node_modules/mumath/mod.js","../node_modules/mumath/clamp.js","../node_modules/color-space/lchuv.js","../node_modules/d3-dispatch/src/index.js","../node_modules/warning/warning.js","../node_modules/react-fade-in/lib/FadeIn.js","../node_modules/@hypnosphi/create-react-context/lib/index.js","../node_modules/popper.js/dist/esm/popper.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/stylis/stylis.min.js","../node_modules/react-is/index.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/core-js/internals/use-symbol-as-uid.js","../node_modules/core-js/internals/v8-prototype-define-bug.js","../node_modules/core-js/internals/ie8-dom-define.js","../node_modules/core-js/internals/to-primitive.js","../node_modules/core-js/internals/ordinary-to-primitive.js","../node_modules/core-js/internals/object-keys-internal.js","../node_modules/core-js/internals/math-trunc.js","../node_modules/core-js/internals/html.js","../node_modules/core-js/internals/native-weak-map.js","../node_modules/core-js/internals/copy-constructor-properties.js","../node_modules/core-js/internals/create-iterator-constructor.js","../node_modules/core-js/internals/iterators-core.js","../node_modules/core-js/internals/a-possible-prototype.js","../node_modules/core-js/modules/es.map.js","../node_modules/core-js/internals/iterator-close.js","../node_modules/core-js/internals/collection-strong.js","../node_modules/core-js/modules/es.set.js","../node_modules/core-js/internals/collection-delete-all.js","../node_modules/core-js/internals/collection-from.js","../node_modules/core-js/internals/collection-of.js","../node_modules/core-js/internals/dom-iterables.js","../node_modules/core-js/internals/dom-token-list-prototype.js","../node_modules/react-app-polyfill/ie11.js","../node_modules/core-js/modules/es.symbol.js","../node_modules/core-js/internals/well-known-symbol-wrapped.js","../node_modules/core-js/internals/symbol-define-to-primitive.js","../node_modules/core-js/internals/native-symbol-registry.js","../node_modules/core-js/modules/es.symbol.description.js","../node_modules/core-js/modules/es.symbol.async-iterator.js","../node_modules/core-js/modules/es.symbol.has-instance.js","../node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","../node_modules/core-js/modules/es.symbol.iterator.js","../node_modules/core-js/modules/es.symbol.match.js","../node_modules/core-js/modules/es.symbol.replace.js","../node_modules/core-js/modules/es.symbol.search.js","../node_modules/core-js/modules/es.symbol.species.js","../node_modules/core-js/modules/es.symbol.split.js","../node_modules/core-js/modules/es.symbol.to-primitive.js","../node_modules/core-js/modules/es.symbol.to-string-tag.js","../node_modules/core-js/modules/es.symbol.unscopables.js","../node_modules/core-js/modules/es.array.concat.js","../node_modules/core-js/modules/es.array.from.js","../node_modules/core-js/internals/array-from.js","../node_modules/core-js/modules/es.json.to-string-tag.js","../node_modules/core-js/modules/es.math.to-string-tag.js","../node_modules/promise/lib/core.js","../node_modules/core-js/internals/array-copy-within.js","../node_modules/core-js/internals/flatten-into-array.js","../node_modules/core-js/internals/array-last-index-of.js","../node_modules/core-js/internals/engine-ff-version.js","../node_modules/core-js/internals/engine-is-ie-or-edge.js","../node_modules/core-js/internals/array-buffer.js","../node_modules/core-js/internals/array-buffer-native.js","../node_modules/core-js/internals/to-index.js","../node_modules/core-js/internals/math-log1p.js","../node_modules/core-js/internals/this-number-value.js","../node_modules/core-js/internals/number-parse-float.js","../node_modules/core-js/internals/number-parse-int.js","../node_modules/core-js/internals/object-assign.js","../node_modules/core-js/internals/object-to-array.js","../node_modules/core-js/internals/same-value.js","../node_modules/core-js/internals/engine-is-ios.js","../node_modules/core-js/internals/microtask.js","../node_modules/core-js/internals/promise-statics-incorrect-iteration.js","../node_modules/core-js/internals/promise-resolve.js","../node_modules/core-js/internals/is-data-descriptor.js","../node_modules/core-js/internals/regexp-get-flags.js","../node_modules/core-js/internals/regexp-unsupported-dot-all.js","../node_modules/core-js/internals/regexp-unsupported-ncg.js","../node_modules/core-js/modules/es.regexp.exec.js","../node_modules/core-js/internals/define-built-in-accessor.js","../node_modules/core-js/internals/string-pad.js","../node_modules/core-js/internals/string-pad-webkit-bug.js","../node_modules/core-js/internals/string-trim-end.js","../node_modules/core-js/internals/string-trim-start.js","../node_modules/core-js/internals/to-offset.js","../node_modules/core-js/internals/typed-array-from.js","../node_modules/core-js/internals/collection-weak.js","../node_modules/core-js/internals/native-url.js","../node_modules/core-js/modules/web.url-search-params.constructor.js","../node_modules/uuid/lib/rng-browser.js","../node_modules/uuid/lib/bytesToUuid.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/pako/lib/zlib/adler32.js","../node_modules/pako/lib/zlib/crc32.js","../node_modules/pako/lib/utils/strings.js","../node_modules/pako/lib/zlib/zstream.js","../node_modules/pako/lib/zlib/constants.js","../node_modules/@blueprintjs/core/lib/esm/common/configureDom4.js","../node_modules/@blueprintjs/core/lib/esm/common/utils/compareUtils.js","../node_modules/@blueprintjs/core/lib/esm/common/utils/domUtils.js","../node_modules/@blueprintjs/core/lib/esm/common/utils/reactUtils.js","../node_modules/@blueprintjs/core/lib/esm/common/abstractPureComponent2.js","../node_modules/react-transition-group/Transition.js","../node_modules/react-transition-group/utils/PropTypes.js","../node_modules/react-transition-group/TransitionGroup.js","../node_modules/object-keys/index.js","../node_modules/object-keys/isArguments.js","../node_modules/has-symbols/shams.js","../node_modules/call-bind/callBound.js","../node_modules/object-is/implementation.js","../node_modules/object-is/polyfill.js","../node_modules/regexp.prototype.flags/implementation.js","../node_modules/regexp.prototype.flags/polyfill.js","../node_modules/blueimp-load-image/js/load-image-scale.js","../node_modules/blueimp-load-image/js/load-image-exif.js","../node_modules/blueimp-load-image/js/load-image-iptc.js","../node_modules/qr.js/lib/mode.js","../node_modules/qr.js/lib/ErrorCorrectLevel.js","../node_modules/qr.js/lib/Polynomial.js","../node_modules/qr.js/lib/math.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/identity.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_assignValue.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_getSymbolsIn.js","../node_modules/color-space/hwb.js","../node_modules/color-space/xyy.js","../node_modules/color-space/yuv.js","../node_modules/color-space/ucs.js","../node_modules/color-space/lab.js","../node_modules/color-space/luv.js","../node_modules/hsluv/hsluv.js","../node_modules/use-debounce/lib/useDebouncedCallback.js","../node_modules/d3-dispatch/src/dispatch.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/deep-equal/index.js","../node_modules/react-delay-render/lib/index.js","../node_modules/react-localization/lib/LocalizedStrings.js","../node_modules/three/examples/jsm/loaders/SVGLoader.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/@icons/material/UnfoldMoreHorizontalIcon.js","../node_modules/@icons/material/CheckIcon.js","../node_modules/color-space/index.js","../node_modules/stylis-rule-sheet/index.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/lodash.debounce/index.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/d3-cloud/index.js","../node_modules/lodash.clonedeep/index.js","../node_modules/react-intersection-observer/react-intersection-observer.m.js","../node_modules/react-use/esm/useEvent.js","../node_modules/colorthief/dist/color-thief.mjs","../node_modules/throttle-debounce/index.umd.js","../node_modules/lodash/lodash.js","../node_modules/react-color/es/helpers/alpha.js","../node_modules/react-color/es/helpers/checkboard.js","../node_modules/react-color/es/components/common/Checkboard.js","../node_modules/react-color/es/components/common/Alpha.js","../node_modules/react-color/es/components/common/EditableInput.js","../node_modules/react-color/es/helpers/hue.js","../node_modules/react-color/es/components/common/Hue.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignMergeValue.js","../node_modules/lodash-es/_createBaseFor.js","../node_modules/lodash-es/_baseFor.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/isArrayLikeObject.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_safeGet.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/toPlainObject.js","../node_modules/lodash-es/_baseMergeDeep.js","../node_modules/lodash-es/_baseMerge.js","../node_modules/lodash-es/identity.js","../node_modules/lodash-es/_apply.js","../node_modules/lodash-es/_overRest.js","../node_modules/lodash-es/constant.js","../node_modules/lodash-es/_baseSetToString.js","../node_modules/lodash-es/_shortOut.js","../node_modules/lodash-es/_setToString.js","../node_modules/lodash-es/_baseRest.js","../node_modules/lodash-es/_isIterateeCall.js","../node_modules/lodash-es/_createAssigner.js","../node_modules/lodash-es/merge.js","../node_modules/react-color/es/components/common/Raised.js","../node_modules/lodash-es/now.js","../node_modules/lodash-es/_trimmedEndIndex.js","../node_modules/lodash-es/_baseTrim.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/toNumber.js","../node_modules/lodash-es/debounce.js","../node_modules/lodash-es/throttle.js","../node_modules/react-color/es/components/common/Saturation.js","../node_modules/react-color/es/helpers/saturation.js","../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_createBaseEach.js","../node_modules/lodash-es/_baseEach.js","../node_modules/lodash-es/_baseForOwn.js","../node_modules/lodash-es/_castFunction.js","../node_modules/lodash-es/forEach.js","../node_modules/react-color/es/helpers/color.js","../node_modules/react-color/es/components/common/ColorWrap.js","../node_modules/react-color/es/helpers/interaction.js","../node_modules/react-color/es/components/common/Swatch.js","../node_modules/react-color/es/components/alpha/AlphaPointer.js","../node_modules/react-color/es/components/alpha/Alpha.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/_setCacheAdd.js","../node_modules/lodash-es/_setCacheHas.js","../node_modules/lodash-es/_SetCache.js","../node_modules/lodash-es/_arraySome.js","../node_modules/lodash-es/_cacheHas.js","../node_modules/lodash-es/_equalArrays.js","../node_modules/lodash-es/_mapToArray.js","../node_modules/lodash-es/_setToArray.js","../node_modules/lodash-es/_equalByTag.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_equalObjects.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_baseIsEqualDeep.js","../node_modules/lodash-es/_baseIsEqual.js","../node_modules/lodash-es/_baseIsMatch.js","../node_modules/lodash-es/_isStrictComparable.js","../node_modules/lodash-es/_getMatchData.js","../node_modules/lodash-es/_matchesStrictComparable.js","../node_modules/lodash-es/_baseMatches.js","../node_modules/lodash-es/_isKey.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/_castPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_baseGet.js","../node_modules/lodash-es/get.js","../node_modules/lodash-es/_baseHasIn.js","../node_modules/lodash-es/_hasPath.js","../node_modules/lodash-es/hasIn.js","../node_modules/lodash-es/_baseMatchesProperty.js","../node_modules/lodash-es/_baseProperty.js","../node_modules/lodash-es/_basePropertyDeep.js","../node_modules/lodash-es/property.js","../node_modules/lodash-es/_baseIteratee.js","../node_modules/lodash-es/_baseMap.js","../node_modules/lodash-es/map.js","../node_modules/react-color/es/components/block/BlockSwatches.js","../node_modules/react-color/es/components/block/Block.js","../node_modules/material-colors/dist/colors.es2015.js","../node_modules/react-color/es/components/circle/CircleSwatch.js","../node_modules/react-color/es/components/circle/Circle.js","../node_modules/lodash-es/isUndefined.js","../node_modules/react-color/es/components/chrome/ChromeFields.js","../node_modules/react-color/es/components/chrome/ChromePointer.js","../node_modules/react-color/es/components/chrome/ChromePointerCircle.js","../node_modules/react-color/es/components/chrome/Chrome.js","../node_modules/react-color/es/components/compact/CompactColor.js","../node_modules/react-color/es/components/compact/CompactFields.js","../node_modules/react-color/es/components/compact/Compact.js","../node_modules/react-color/es/components/github/GithubSwatch.js","../node_modules/react-color/es/components/github/Github.js","../node_modules/react-color/es/components/hue/HuePointer.js","../node_modules/react-color/es/components/hue/Hue.js","../node_modules/react-color/es/components/material/Material.js","../node_modules/react-color/es/components/photoshop/PhotoshopFields.js","../node_modules/react-color/es/components/photoshop/PhotoshopPointerCircle.js","../node_modules/react-color/es/components/photoshop/PhotoshopPointer.js","../node_modules/react-color/es/components/photoshop/PhotoshopButton.js","../node_modules/react-color/es/components/photoshop/PhotoshopPreviews.js","../node_modules/react-color/es/components/photoshop/Photoshop.js","../node_modules/react-color/es/components/sketch/SketchFields.js","../node_modules/react-color/es/components/sketch/SketchPresetColors.js","../node_modules/react-color/es/components/sketch/Sketch.js","../node_modules/react-color/es/components/slider/SliderSwatch.js","../node_modules/react-color/es/components/slider/SliderSwatches.js","../node_modules/react-color/es/components/slider/SliderPointer.js","../node_modules/react-color/es/components/slider/Slider.js","../node_modules/react-color/es/components/swatches/SwatchesColor.js","../node_modules/react-color/es/components/swatches/SwatchesGroup.js","../node_modules/react-color/es/components/swatches/Swatches.js","../node_modules/react-color/es/components/twitter/Twitter.js","../node_modules/react-color/es/components/google/GooglePointerCircle.js","../node_modules/react-color/es/components/google/GooglePointer.js","../node_modules/react-color/es/components/google/GoogleFields.js","../node_modules/react-color/es/components/google/Google.js","../node_modules/react-color/es/index.js","../node_modules/d3-selection/src/selection/on.js","../node_modules/d3-selection/src/selector.js","../node_modules/d3-selection/src/selectorAll.js","../node_modules/d3-selection/src/matcher.js","../node_modules/d3-selection/src/selection/sparse.js","../node_modules/d3-selection/src/selection/enter.js","../node_modules/d3-selection/src/selection/data.js","../node_modules/d3-selection/src/selection/sort.js","../node_modules/d3-selection/src/selection/call.js","../node_modules/d3-selection/src/namespaces.js","../node_modules/d3-selection/src/namespace.js","../node_modules/d3-selection/src/selection/attr.js","../node_modules/d3-selection/src/window.js","../node_modules/d3-selection/src/selection/style.js","../node_modules/d3-selection/src/selection/property.js","../node_modules/d3-selection/src/selection/classed.js","../node_modules/d3-selection/src/selection/text.js","../node_modules/d3-selection/src/selection/html.js","../node_modules/d3-selection/src/selection/raise.js","../node_modules/d3-selection/src/selection/lower.js","../node_modules/d3-selection/src/creator.js","../node_modules/d3-selection/src/selection/insert.js","../node_modules/d3-selection/src/selection/remove.js","../node_modules/d3-selection/src/selection/clone.js","../node_modules/d3-selection/src/selection/dispatch.js","../node_modules/d3-selection/src/selection/index.js","../node_modules/d3-selection/src/selection/select.js","../node_modules/d3-selection/src/selection/selectAll.js","../node_modules/d3-selection/src/selection/filter.js","../node_modules/d3-selection/src/constant.js","../node_modules/d3-selection/src/selection/exit.js","../node_modules/d3-selection/src/selection/join.js","../node_modules/d3-selection/src/selection/merge.js","../node_modules/d3-selection/src/selection/order.js","../node_modules/d3-selection/src/selection/nodes.js","../node_modules/d3-selection/src/selection/node.js","../node_modules/d3-selection/src/selection/size.js","../node_modules/d3-selection/src/selection/empty.js","../node_modules/d3-selection/src/selection/each.js","../node_modules/d3-selection/src/selection/append.js","../node_modules/d3-selection/src/selection/datum.js","../node_modules/d3-timer/src/timer.js","../node_modules/d3-selection/src/select.js","../node_modules/d3-timer/src/timeout.js","../node_modules/d3-transition/src/transition/schedule.js","../node_modules/d3-transition/src/interrupt.js","../node_modules/d3-interpolate/src/transform/parse.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/transform/decompose.js","../node_modules/d3-interpolate/src/transform/index.js","../node_modules/d3-transition/src/transition/tween.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/basis.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/basisClosed.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-transition/src/transition/interpolate.js","../node_modules/d3-transition/src/transition/attr.js","../node_modules/d3-transition/src/transition/attrTween.js","../node_modules/d3-transition/src/transition/delay.js","../node_modules/d3-transition/src/transition/duration.js","../node_modules/d3-transition/src/transition/ease.js","../node_modules/d3-transition/src/transition/on.js","../node_modules/d3-transition/src/transition/remove.js","../node_modules/d3-transition/src/transition/selection.js","../node_modules/d3-transition/src/transition/style.js","../node_modules/d3-transition/src/transition/styleTween.js","../node_modules/d3-transition/src/transition/textTween.js","../node_modules/d3-transition/src/transition/index.js","../node_modules/d3-transition/src/transition/select.js","../node_modules/d3-transition/src/transition/selectAll.js","../node_modules/d3-transition/src/transition/filter.js","../node_modules/d3-transition/src/transition/merge.js","../node_modules/d3-transition/src/transition/transition.js","../node_modules/d3-transition/src/transition/text.js","../node_modules/d3-transition/src/transition/end.js","../node_modules/d3-transition/src/selection/transition.js","../node_modules/d3-ease/src/cubic.js","../node_modules/d3-transition/src/selection/index.js","../node_modules/d3-transition/src/selection/interrupt.js","../node_modules/d3-transition/src/active.js","../node_modules/d3-array/src/range.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/tippy.js/dist/tippy.esm.js","../node_modules/d3-array/src/ticks.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/d3-format/src/exponent.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-format/src/formatTrim.js","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/defaultLocale.js","../node_modules/d3-format/src/formatRounded.js","../node_modules/d3-format/src/formatTypes.js","../node_modules/d3-format/src/identity.js","../node_modules/d3-format/src/locale.js","../node_modules/d3-format/src/formatGroup.js","../node_modules/d3-format/src/formatNumerals.js","../node_modules/d3-array/src/ascending.js","../node_modules/d3-array/src/bisector.js","../node_modules/d3-array/src/bisect.js","../node_modules/d3-array/src/number.js","../node_modules/d3-scale/node_modules/d3-color/src/define.js","../node_modules/d3-scale/node_modules/d3-color/src/color.js","../node_modules/d3-scale/node_modules/d3-interpolate/src/basis.js","../node_modules/d3-scale/node_modules/d3-interpolate/src/constant.js","../node_modules/d3-scale/node_modules/d3-interpolate/src/color.js","../node_modules/d3-scale/node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-scale/node_modules/d3-interpolate/src/basisClosed.js","../node_modules/d3-scale/node_modules/d3-interpolate/src/numberArray.js","../node_modules/d3-scale/node_modules/d3-interpolate/src/array.js","../node_modules/d3-scale/node_modules/d3-interpolate/src/date.js","../node_modules/d3-scale/node_modules/d3-interpolate/src/number.js","../node_modules/d3-scale/node_modules/d3-interpolate/src/object.js","../node_modules/d3-scale/node_modules/d3-interpolate/src/string.js","../node_modules/d3-scale/node_modules/d3-interpolate/src/value.js","../node_modules/d3-scale/node_modules/d3-interpolate/src/round.js","../node_modules/d3-scale/src/number.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-scale/src/constant.js","../node_modules/d3-scale/src/init.js","../node_modules/d3-scale/src/log.js","../node_modules/d3-scale/src/nice.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/d3-scale/src/linear.js","../node_modules/d3-scale/src/pow.js","../node_modules/d3-scale/src/ordinal.js","../node_modules/d3-scale-chromatic/src/colors.js","../node_modules/d3-scale-chromatic/src/categorical/category10.js","../node_modules/react-wordcloud/dist/index.module.js","../node_modules/d3-array/src/descending.js","../node_modules/d3-array/src/min.js","../node_modules/d3-array/src/max.js","../node_modules/@emotion/memoize/dist/memoize.browser.esm.js","../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","../node_modules/is-what/dist/index.esm.js","../node_modules/merge-anything/dist/index.esm.js","../node_modules/react-use/esm/useUnmount.js","../node_modules/react-use/esm/useRafState.js","../node_modules/react-use/esm/useWindowSize.js","../node_modules/react-app-polyfill/ie9.js","../node_modules/core-js/modules/es.map.constructor.js","../node_modules/core-js/internals/object-to-string.js","../node_modules/core-js/modules/es.set.constructor.js","../node_modules/core-js/modules/esnext.map.delete-all.js","../node_modules/core-js/modules/esnext.map.every.js","../node_modules/core-js/modules/esnext.map.filter.js","../node_modules/core-js/modules/esnext.map.find.js","../node_modules/core-js/modules/esnext.map.find-key.js","../node_modules/core-js/modules/esnext.map.from.js","../node_modules/core-js/modules/esnext.map.group-by.js","../node_modules/core-js/modules/esnext.map.includes.js","../node_modules/core-js/internals/same-value-zero.js","../node_modules/core-js/modules/esnext.map.key-by.js","../node_modules/core-js/modules/esnext.map.key-of.js","../node_modules/core-js/modules/esnext.map.map-keys.js","../node_modules/core-js/modules/esnext.map.map-values.js","../node_modules/core-js/modules/esnext.map.merge.js","../node_modules/core-js/modules/esnext.map.of.js","../node_modules/core-js/modules/esnext.map.reduce.js","../node_modules/core-js/modules/esnext.map.some.js","../node_modules/core-js/modules/esnext.map.update.js","../node_modules/core-js/modules/esnext.set.add-all.js","../node_modules/core-js/internals/collection-add-all.js","../node_modules/core-js/modules/esnext.set.delete-all.js","../node_modules/core-js/modules/esnext.set.difference.js","../node_modules/core-js/modules/esnext.set.every.js","../node_modules/core-js/modules/esnext.set.filter.js","../node_modules/core-js/modules/esnext.set.find.js","../node_modules/core-js/modules/esnext.set.from.js","../node_modules/core-js/modules/esnext.set.intersection.js","../node_modules/core-js/modules/esnext.set.is-disjoint-from.js","../node_modules/core-js/modules/esnext.set.is-subset-of.js","../node_modules/core-js/modules/esnext.set.is-superset-of.js","../node_modules/core-js/modules/esnext.set.join.js","../node_modules/core-js/modules/esnext.set.map.js","../node_modules/core-js/modules/esnext.set.of.js","../node_modules/core-js/modules/esnext.set.reduce.js","../node_modules/core-js/modules/esnext.set.some.js","../node_modules/core-js/modules/esnext.set.symmetric-difference.js","../node_modules/core-js/modules/esnext.set.union.js","../node_modules/core-js/modules/es.symbol.constructor.js","../node_modules/core-js/internals/path.js","../node_modules/core-js/internals/array-species-constructor.js","../node_modules/core-js/modules/es.symbol.for.js","../node_modules/core-js/modules/es.symbol.key-for.js","../node_modules/core-js/modules/es.json.stringify.js","../node_modules/core-js/modules/es.object.get-own-property-symbols.js","../node_modules/core-js/internals/call-with-safe-iteration-closing.js","../node_modules/core-js/modules/esnext.symbol.dispose.js","../node_modules/core-js/modules/esnext.symbol.observable.js","../node_modules/core-js/modules/esnext.symbol.pattern-match.js","../node_modules/promise/lib/rejection-tracking.js","../node_modules/asap/browser-raw.js","../node_modules/promise/lib/es6-extensions.js","../node_modules/whatwg-fetch/fetch.js","../node_modules/raf/index.js","../node_modules/performance-now/lib/performance-now.js","../node_modules/react-app-polyfill/stable.js","../node_modules/core-js/modules/es.array.copy-within.js","../node_modules/core-js/modules/es.array.fill.js","../node_modules/core-js/modules/es.array.filter.js","../node_modules/core-js/modules/es.array.find.js","../node_modules/core-js/modules/es.array.find-index.js","../node_modules/core-js/modules/es.array.flat.js","../node_modules/core-js/modules/es.array.flat-map.js","../node_modules/core-js/modules/es.array.includes.js","../node_modules/core-js/modules/es.array.index-of.js","../node_modules/core-js/modules/es.array.join.js","../node_modules/core-js/modules/es.array.last-index-of.js","../node_modules/core-js/modules/es.array.map.js","../node_modules/core-js/modules/es.array.of.js","../node_modules/core-js/modules/es.array.reduce.js","../node_modules/core-js/modules/es.array.reduce-right.js","../node_modules/core-js/modules/es.array.slice.js","../node_modules/core-js/modules/es.array.sort.js","../node_modules/core-js/modules/es.array.species.js","../node_modules/core-js/modules/es.array.splice.js","../node_modules/core-js/modules/es.array.unscopables.flat.js","../node_modules/core-js/modules/es.array.unscopables.flat-map.js","../node_modules/core-js/modules/es.array-buffer.constructor.js","../node_modules/core-js/internals/ieee754.js","../node_modules/core-js/modules/es.date.to-primitive.js","../node_modules/core-js/internals/date-to-primitive.js","../node_modules/core-js/modules/es.function.has-instance.js","../node_modules/core-js/modules/es.function.name.js","../node_modules/core-js/modules/es.math.acosh.js","../node_modules/core-js/modules/es.math.asinh.js","../node_modules/core-js/modules/es.math.atanh.js","../node_modules/core-js/modules/es.math.cbrt.js","../node_modules/core-js/modules/es.math.clz32.js","../node_modules/core-js/modules/es.math.cosh.js","../node_modules/core-js/modules/es.math.expm1.js","../node_modules/core-js/modules/es.math.fround.js","../node_modules/core-js/internals/math-fround.js","../node_modules/core-js/modules/es.math.hypot.js","../node_modules/core-js/modules/es.math.imul.js","../node_modules/core-js/modules/es.math.log10.js","../node_modules/core-js/internals/math-log10.js","../node_modules/core-js/modules/es.math.log1p.js","../node_modules/core-js/modules/es.math.log2.js","../node_modules/core-js/modules/es.math.sign.js","../node_modules/core-js/modules/es.math.sinh.js","../node_modules/core-js/modules/es.math.tanh.js","../node_modules/core-js/modules/es.math.trunc.js","../node_modules/core-js/modules/es.number.constructor.js","../node_modules/core-js/modules/es.number.epsilon.js","../node_modules/core-js/modules/es.number.is-finite.js","../node_modules/core-js/internals/number-is-finite.js","../node_modules/core-js/modules/es.number.is-integer.js","../node_modules/core-js/modules/es.number.is-nan.js","../node_modules/core-js/modules/es.number.is-safe-integer.js","../node_modules/core-js/modules/es.number.max-safe-integer.js","../node_modules/core-js/modules/es.number.min-safe-integer.js","../node_modules/core-js/modules/es.number.parse-float.js","../node_modules/core-js/modules/es.number.parse-int.js","../node_modules/core-js/modules/es.number.to-fixed.js","../node_modules/core-js/modules/es.object.assign.js","../node_modules/core-js/modules/es.object.define-getter.js","../node_modules/core-js/modules/es.object.define-properties.js","../node_modules/core-js/modules/es.object.define-property.js","../node_modules/core-js/modules/es.object.define-setter.js","../node_modules/core-js/modules/es.object.entries.js","../node_modules/core-js/modules/es.object.freeze.js","../node_modules/core-js/modules/es.object.from-entries.js","../node_modules/core-js/modules/es.object.get-own-property-descriptor.js","../node_modules/core-js/modules/es.object.get-own-property-descriptors.js","../node_modules/core-js/modules/es.object.get-own-property-names.js","../node_modules/core-js/modules/es.object.get-prototype-of.js","../node_modules/core-js/modules/es.object.is.js","../node_modules/core-js/modules/es.object.is-extensible.js","../node_modules/core-js/modules/es.object.is-frozen.js","../node_modules/core-js/modules/es.object.is-sealed.js","../node_modules/core-js/modules/es.object.keys.js","../node_modules/core-js/modules/es.object.lookup-getter.js","../node_modules/core-js/modules/es.object.lookup-setter.js","../node_modules/core-js/modules/es.object.prevent-extensions.js","../node_modules/core-js/modules/es.object.seal.js","../node_modules/core-js/modules/es.object.set-prototype-of.js","../node_modules/core-js/modules/es.object.values.js","../node_modules/core-js/modules/es.parse-float.js","../node_modules/core-js/modules/es.parse-int.js","../node_modules/core-js/modules/es.promise.js","../node_modules/core-js/modules/es.promise.constructor.js","../node_modules/core-js/internals/engine-is-ios-pebble.js","../node_modules/core-js/internals/engine-is-webos-webkit.js","../node_modules/core-js/internals/host-report-errors.js","../node_modules/core-js/internals/queue.js","../node_modules/core-js/internals/engine-is-browser.js","../node_modules/core-js/modules/es.promise.all.js","../node_modules/core-js/modules/es.promise.catch.js","../node_modules/core-js/modules/es.promise.race.js","../node_modules/core-js/modules/es.promise.reject.js","../node_modules/core-js/modules/es.promise.resolve.js","../node_modules/core-js/modules/es.promise.finally.js","../node_modules/core-js/modules/es.reflect.apply.js","../node_modules/core-js/modules/es.reflect.construct.js","../node_modules/core-js/internals/function-bind.js","../node_modules/core-js/modules/es.reflect.define-property.js","../node_modules/core-js/modules/es.reflect.delete-property.js","../node_modules/core-js/modules/es.reflect.get.js","../node_modules/core-js/modules/es.reflect.get-own-property-descriptor.js","../node_modules/core-js/modules/es.reflect.get-prototype-of.js","../node_modules/core-js/modules/es.reflect.has.js","../node_modules/core-js/modules/es.reflect.is-extensible.js","../node_modules/core-js/modules/es.reflect.own-keys.js","../node_modules/core-js/modules/es.reflect.prevent-extensions.js","../node_modules/core-js/modules/es.reflect.set.js","../node_modules/core-js/modules/es.reflect.set-prototype-of.js","../node_modules/core-js/modules/es.regexp.constructor.js","../node_modules/core-js/internals/proxy-accessor.js","../node_modules/core-js/modules/es.regexp.flags.js","../node_modules/core-js/modules/es.regexp.to-string.js","../node_modules/core-js/modules/es.string.code-point-at.js","../node_modules/core-js/modules/es.string.ends-with.js","../node_modules/core-js/modules/es.string.from-code-point.js","../node_modules/core-js/modules/es.string.includes.js","../node_modules/core-js/modules/es.string.match.js","../node_modules/core-js/modules/es.string.pad-end.js","../node_modules/core-js/modules/es.string.pad-start.js","../node_modules/core-js/modules/es.string.raw.js","../node_modules/core-js/modules/es.string.repeat.js","../node_modules/core-js/modules/es.string.replace.js","../node_modules/core-js/internals/get-substitution.js","../node_modules/core-js/modules/es.string.search.js","../node_modules/core-js/modules/es.string.split.js","../node_modules/core-js/modules/es.string.starts-with.js","../node_modules/core-js/modules/es.string.trim.js","../node_modules/core-js/modules/es.string.trim-end.js","../node_modules/core-js/modules/es.string.trim-right.js","../node_modules/core-js/modules/es.string.trim-start.js","../node_modules/core-js/modules/es.string.trim-left.js","../node_modules/core-js/modules/es.string.anchor.js","../node_modules/core-js/modules/es.string.big.js","../node_modules/core-js/modules/es.string.blink.js","../node_modules/core-js/modules/es.string.bold.js","../node_modules/core-js/modules/es.string.fixed.js","../node_modules/core-js/modules/es.string.fontcolor.js","../node_modules/core-js/modules/es.string.fontsize.js","../node_modules/core-js/modules/es.string.italics.js","../node_modules/core-js/modules/es.string.link.js","../node_modules/core-js/modules/es.string.small.js","../node_modules/core-js/modules/es.string.strike.js","../node_modules/core-js/modules/es.string.sub.js","../node_modules/core-js/modules/es.string.sup.js","../node_modules/core-js/modules/es.typed-array.float32-array.js","../node_modules/core-js/internals/to-positive-integer.js","../node_modules/core-js/modules/es.typed-array.float64-array.js","../node_modules/core-js/modules/es.typed-array.int8-array.js","../node_modules/core-js/modules/es.typed-array.int16-array.js","../node_modules/core-js/modules/es.typed-array.int32-array.js","../node_modules/core-js/modules/es.typed-array.uint8-array.js","../node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js","../node_modules/core-js/modules/es.typed-array.uint16-array.js","../node_modules/core-js/modules/es.typed-array.uint32-array.js","../node_modules/core-js/modules/es.typed-array.copy-within.js","../node_modules/core-js/modules/es.typed-array.every.js","../node_modules/core-js/modules/es.typed-array.fill.js","../node_modules/core-js/modules/es.typed-array.filter.js","../node_modules/core-js/internals/typed-array-from-species-and-list.js","../node_modules/core-js/internals/array-from-constructor-and-list.js","../node_modules/core-js/modules/es.typed-array.find.js","../node_modules/core-js/modules/es.typed-array.find-index.js","../node_modules/core-js/modules/es.typed-array.for-each.js","../node_modules/core-js/modules/es.typed-array.from.js","../node_modules/core-js/modules/es.typed-array.includes.js","../node_modules/core-js/modules/es.typed-array.index-of.js","../node_modules/core-js/modules/es.typed-array.iterator.js","../node_modules/core-js/modules/es.typed-array.join.js","../node_modules/core-js/modules/es.typed-array.last-index-of.js","../node_modules/core-js/modules/es.typed-array.map.js","../node_modules/core-js/modules/es.typed-array.of.js","../node_modules/core-js/modules/es.typed-array.reduce.js","../node_modules/core-js/modules/es.typed-array.reduce-right.js","../node_modules/core-js/modules/es.typed-array.reverse.js","../node_modules/core-js/modules/es.typed-array.set.js","../node_modules/core-js/modules/es.typed-array.slice.js","../node_modules/core-js/modules/es.typed-array.some.js","../node_modules/core-js/modules/es.typed-array.sort.js","../node_modules/core-js/modules/es.typed-array.subarray.js","../node_modules/core-js/modules/es.typed-array.to-locale-string.js","../node_modules/core-js/modules/es.typed-array.to-string.js","../node_modules/core-js/modules/es.weak-map.js","../node_modules/core-js/modules/es.weak-map.constructor.js","../node_modules/core-js/modules/es.weak-set.js","../node_modules/core-js/modules/es.weak-set.constructor.js","../node_modules/core-js/modules/web.dom-collections.for-each.js","../node_modules/core-js/internals/array-for-each.js","../node_modules/core-js/modules/web.immediate.js","../node_modules/core-js/modules/web.clear-immediate.js","../node_modules/core-js/modules/web.set-immediate.js","../node_modules/core-js/modules/web.queue-microtask.js","../node_modules/core-js/modules/web.url.js","../node_modules/core-js/modules/web.url.constructor.js","../node_modules/core-js/internals/string-punycode-to-ascii.js","../node_modules/core-js/modules/web.url.to-json.js","../node_modules/core-js/modules/web.url-search-params.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/uuid/v1.js","../node_modules/uuid/v4.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/pako/lib/deflate.js","../node_modules/pako/lib/zlib/deflate.js","../node_modules/pako/lib/zlib/trees.js","../node_modules/pako/lib/inflate.js","../node_modules/pako/lib/zlib/inflate.js","../node_modules/pako/lib/zlib/inffast.js","../node_modules/pako/lib/zlib/inftrees.js","../node_modules/pako/lib/zlib/gzheader.js","../node_modules/seedrandom/lib/alea.js","../node_modules/seedrandom/lib/xor128.js","../node_modules/seedrandom/lib/xorwow.js","../node_modules/seedrandom/lib/xorshift7.js","../node_modules/seedrandom/lib/xor4096.js","../node_modules/seedrandom/lib/tychei.js","../node_modules/seedrandom/seedrandom.js","../node_modules/dom4/build/dom4.max.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@hypnosphi/create-react-context/lib/implementation.js","../node_modules/gud/index.js","../node_modules/react-transition-group/CSSTransition.js","../node_modules/dom-helpers/class/addClass.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/dom-helpers/class/hasClass.js","../node_modules/dom-helpers/class/removeClass.js","../node_modules/react-transition-group/ReplaceTransition.js","../node_modules/react-transition-group/utils/ChildMapping.js","../node_modules/object-keys/implementation.js","../node_modules/is-arguments/index.js","../node_modules/has-symbols/index.js","../node_modules/function-bind/implementation.js","../node_modules/has/src/index.js","../node_modules/object-is/index.js","../node_modules/has-property-descriptors/index.js","../node_modules/object-is/shim.js","../node_modules/is-regex/index.js","../node_modules/regexp.prototype.flags/index.js","../node_modules/functions-have-names/index.js","../node_modules/regexp.prototype.flags/shim.js","../node_modules/is-date-object/index.js","../node_modules/localized-strings/lib/LocalizedStrings.js","../node_modules/localized-strings/lib/utils.js","../node_modules/blueimp-load-image/js/load-image-fetch.js","../node_modules/blueimp-load-image/js/load-image-exif-map.js","../node_modules/blueimp-load-image/js/load-image-iptc-map.js","../node_modules/blueimp-load-image/js/load-image-orientation.js","../node_modules/buffer/index.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/isarray/index.js","../node_modules/qr.js/lib/QRCode.js","../node_modules/qr.js/lib/8BitByte.js","../node_modules/qr.js/lib/RSBlock.js","../node_modules/qr.js/lib/BitBuffer.js","../node_modules/qr.js/lib/util.js","../node_modules/fast-deep-equal/react.js","../node_modules/reactcss/lib/flattenNames.js","../node_modules/lodash/isString.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_castFunction.js","../node_modules/lodash/isPlainObject.js","../node_modules/lodash/map.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/get.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/memoize.js","../node_modules/lodash/toString.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/property.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_createBaseEach.js","../node_modules/reactcss/lib/mergeClasses.js","../node_modules/lodash/cloneDeep.js","../node_modules/lodash/_baseClone.js","../node_modules/lodash/_arrayEach.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_baseAssign.js","../node_modules/lodash/_baseAssignIn.js","../node_modules/lodash/_baseKeysIn.js","../node_modules/lodash/_nativeKeysIn.js","../node_modules/lodash/_cloneBuffer.js","../node_modules/lodash/_copyArray.js","../node_modules/lodash/_copySymbols.js","../node_modules/lodash/_copySymbolsIn.js","../node_modules/lodash/_getAllKeysIn.js","../node_modules/lodash/_initCloneArray.js","../node_modules/lodash/_initCloneByTag.js","../node_modules/lodash/_cloneDataView.js","../node_modules/lodash/_cloneRegExp.js","../node_modules/lodash/_cloneSymbol.js","../node_modules/lodash/_cloneTypedArray.js","../node_modules/lodash/_initCloneObject.js","../node_modules/lodash/_baseCreate.js","../node_modules/lodash/isMap.js","../node_modules/lodash/_baseIsMap.js","../node_modules/lodash/isSet.js","../node_modules/lodash/_baseIsSet.js","../node_modules/reactcss/lib/autoprefix.js","../node_modules/reactcss/lib/components/hover.js","../node_modules/reactcss/lib/components/active.js","../node_modules/reactcss/lib/loop.js","../node_modules/color-space/hsi.js","../node_modules/color-space/cmyk.js","../node_modules/color-space/cmy.js","../node_modules/color-space/yiq.js","../node_modules/color-space/ydbdr.js","../node_modules/color-space/ycgco.js","../node_modules/color-space/ycbcr.js","../node_modules/color-space/xvycc.js","../node_modules/color-space/yccbccrc.js","../node_modules/color-space/uvw.js","../node_modules/color-space/jpeg.js","../node_modules/color-space/labh.js","../node_modules/color-space/lms.js","../node_modules/color-space/lchab.js","../node_modules/color-space/hsluv.js","../node_modules/color-space/hpluv.js","../node_modules/color-space/cubehelix.js","../node_modules/color-space/coloroid.js","../node_modules/color-space/hcg.js","../node_modules/color-space/hcy.js","../node_modules/color-space/tsl.js","../node_modules/color-space/yes.js","../node_modules/color-space/osaucs.js","../node_modules/color-space/hsp.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/use-debounce/lib/useDebounce.js","../node_modules/react-use/esm/useKey.js","../node_modules/react-use/esm/useMount.js","../node_modules/react-use/esm/useToggle.js","../node_modules/react-use/esm/useFullscreen.js","../node_modules/react-use/esm/useMedia.js","../node_modules/react-use/esm/useOrientation.js","../node_modules/react-use/esm/useIdle.js"],"names":["module","exports","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread2","target","i","arguments","length","source","forEach","key","getOwnPropertyDescriptors","defineProperties","defineProperty","Class","_cache","Map","undefined","fn","Function","toString","call","indexOf","TypeError","has","get","set","Wrapper","construct","getPrototypeOf","this","constructor","prototype","create","value","writable","configurable","setPrototypeOf","property","receiver","Reflect","base","hasOwnProperty","desc","_TO_LINEAR","_FROM_LINEAR","_regeneratorRuntime","Op","hasOwn","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","obj","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","method","arg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","done","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","resolve","reject","invoke","result","__await","then","unwrapped","error","return","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","name","mark","__proto__","awrap","async","Promise","iter","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","REVISION","MOUSE","LEFT","MIDDLE","RIGHT","ROTATE","DOLLY","PAN","TOUCH","DOLLY_PAN","DOLLY_ROTATE","CullFaceNone","CullFaceBack","CullFaceFront","CullFaceFrontBack","BasicShadowMap","PCFShadowMap","PCFSoftShadowMap","VSMShadowMap","FrontSide","BackSide","DoubleSide","TwoPassDoubleSide","NoBlending","NormalBlending","AdditiveBlending","SubtractiveBlending","MultiplyBlending","CustomBlending","AddEquation","SubtractEquation","ReverseSubtractEquation","MinEquation","MaxEquation","ZeroFactor","OneFactor","SrcColorFactor","OneMinusSrcColorFactor","SrcAlphaFactor","OneMinusSrcAlphaFactor","DstAlphaFactor","OneMinusDstAlphaFactor","DstColorFactor","OneMinusDstColorFactor","SrcAlphaSaturateFactor","NeverDepth","AlwaysDepth","LessDepth","LessEqualDepth","EqualDepth","GreaterEqualDepth","GreaterDepth","NotEqualDepth","MultiplyOperation","MixOperation","AddOperation","NoToneMapping","LinearToneMapping","ReinhardToneMapping","CineonToneMapping","ACESFilmicToneMapping","CustomToneMapping","UVMapping","CubeReflectionMapping","CubeRefractionMapping","EquirectangularReflectionMapping","EquirectangularRefractionMapping","CubeUVReflectionMapping","RepeatWrapping","ClampToEdgeWrapping","MirroredRepeatWrapping","NearestFilter","NearestMipmapNearestFilter","NearestMipMapNearestFilter","NearestMipmapLinearFilter","NearestMipMapLinearFilter","LinearFilter","LinearMipmapNearestFilter","LinearMipMapNearestFilter","LinearMipmapLinearFilter","LinearMipMapLinearFilter","UnsignedByteType","ByteType","ShortType","UnsignedShortType","IntType","UnsignedIntType","FloatType","HalfFloatType","UnsignedShort4444Type","UnsignedShort5551Type","UnsignedInt248Type","AlphaFormat","RGBAFormat","LuminanceFormat","LuminanceAlphaFormat","DepthFormat","DepthStencilFormat","RedFormat","RedIntegerFormat","RGFormat","RGIntegerFormat","RGBAIntegerFormat","RGB_S3TC_DXT1_Format","RGBA_S3TC_DXT1_Format","RGBA_S3TC_DXT3_Format","RGBA_S3TC_DXT5_Format","RGB_PVRTC_4BPPV1_Format","RGB_PVRTC_2BPPV1_Format","RGBA_PVRTC_4BPPV1_Format","RGBA_PVRTC_2BPPV1_Format","RGB_ETC1_Format","RGB_ETC2_Format","RGBA_ETC2_EAC_Format","RGBA_ASTC_4x4_Format","RGBA_ASTC_5x4_Format","RGBA_ASTC_5x5_Format","RGBA_ASTC_6x5_Format","RGBA_ASTC_6x6_Format","RGBA_ASTC_8x5_Format","RGBA_ASTC_8x6_Format","RGBA_ASTC_8x8_Format","RGBA_ASTC_10x5_Format","RGBA_ASTC_10x6_Format","RGBA_ASTC_10x8_Format","RGBA_ASTC_10x10_Format","RGBA_ASTC_12x10_Format","RGBA_ASTC_12x12_Format","RGBA_BPTC_Format","RED_RGTC1_Format","SIGNED_RED_RGTC1_Format","RED_GREEN_RGTC2_Format","SIGNED_RED_GREEN_RGTC2_Format","LoopOnce","LoopRepeat","LoopPingPong","InterpolateDiscrete","InterpolateLinear","InterpolateSmooth","ZeroCurvatureEnding","ZeroSlopeEnding","WrapAroundEnding","NormalAnimationBlendMode","AdditiveAnimationBlendMode","TrianglesDrawMode","TriangleStripDrawMode","TriangleFanDrawMode","LinearEncoding","sRGBEncoding","BasicDepthPacking","RGBADepthPacking","TangentSpaceNormalMap","ObjectSpaceNormalMap","NoColorSpace","SRGBColorSpace","LinearSRGBColorSpace","DisplayP3ColorSpace","ZeroStencilOp","KeepStencilOp","ReplaceStencilOp","IncrementStencilOp","DecrementStencilOp","IncrementWrapStencilOp","DecrementWrapStencilOp","InvertStencilOp","NeverStencilFunc","LessStencilFunc","EqualStencilFunc","LessEqualStencilFunc","GreaterStencilFunc","NotEqualStencilFunc","GreaterEqualStencilFunc","AlwaysStencilFunc","StaticDrawUsage","DynamicDrawUsage","StreamDrawUsage","StaticReadUsage","DynamicReadUsage","StreamReadUsage","StaticCopyUsage","DynamicCopyUsage","StreamCopyUsage","GLSL1","GLSL3","_SRGBAFormat","EventDispatcher","listener","_listeners","listeners","listenerArray","index","splice","event","array","l","_lut","_seed","DEG2RAD","Math","PI","RAD2DEG","generateUUID","d0","random","d1","d2","d3","toLowerCase","clamp","min","max","euclideanModulo","n","m","lerp","x","y","t","isPowerOfTwo","ceilPowerOfTwo","pow","ceil","log","LN2","floorPowerOfTwo","floor","denormalize","Float32Array","Uint16Array","Uint8Array","Int16Array","Int8Array","normalize","round","MathUtils","mapLinear","a1","a2","b1","b2","inverseLerp","damp","lambda","dt","exp","pingpong","abs","smoothstep","smootherstep","randInt","low","high","randFloat","randFloatSpread","range","seededRandom","s","imul","degToRad","degrees","radToDeg","radians","setQuaternionFromProperEuler","q","a","b","c","order","cos","sin","c2","s2","c13","s13","c1_3","s1_3","c3_1","s3_1","console","warn","_Symbol$iterator","Vector2","isVector2","scalar","v","multiplyScalar","e","elements","minVal","maxVal","divideScalar","sqrt","angle","atan2","denominator","lengthSq","theta","dot","acos","distanceToSquared","dx","dy","alpha","v1","v2","offset","attribute","getX","getY","center","_context2","Matrix3","isMatrix3","n11","n12","n13","n21","n22","n23","n31","n32","n33","te","me","xAxis","yAxis","zAxis","setFromMatrix3Column","multiplyMatrices","ae","be","a11","a12","a13","a21","a22","a23","a31","a32","a33","b11","b12","b13","b21","b22","b23","b31","b32","b33","d","f","g","h","t11","t12","t13","det","detInv","tmp","matrix4","setFromMatrix4","invert","transpose","r","tx","ty","sx","sy","rotation","cx","cy","premultiply","_m3","makeScale","makeRotation","makeTranslation","matrix","fromArray","arrayNeedsUint32","TYPED_ARRAYS","Uint8ClampedArray","Int32Array","Uint32Array","Float64Array","getTypedArray","buffer","createElementNS","document","warnOnce","message","SRGBToLinear","LinearToSRGB","LINEAR_SRGB_TO_LINEAR_DISPLAY_P3","LINEAR_DISPLAY_P3_TO_LINEAR_SRGB","TO_LINEAR","color","convertSRGBToLinear","applyMatrix3","FROM_LINEAR","convertLinearToSRGB","ColorManagement","enabled","legacyMode","colorSpace","convert","sourceColorSpace","targetColorSpace","sourceToLinear","targetFromLinear","concat","fromWorkingColorSpace","workingColorSpace","toWorkingColorSpace","ImageUtils","image","test","src","HTMLCanvasElement","canvas","width","height","getContext","ImageData","putImageData","drawImage","toDataURL","HTMLImageElement","ImageBitmap","imageData","getImageData","data","_data","_i","Source","isSource","uuid","version","meta","isRootObject","images","output","url","Array","isArray","isDataTexture","serializeImage","getDataURL","from","textureId","_EventDispatcher","Texture","_super","_this2","DEFAULT_IMAGE","mapping","DEFAULT_MAPPING","wrapS","wrapT","magFilter","minFilter","format","anisotropy","DEFAULT_ANISOTROPY","isTexture","mipmaps","channel","internalFormat","repeat","matrixAutoUpdate","generateMipmaps","premultiplyAlpha","flipY","unpackAlignment","userData","onUpdate","isRenderTargetTexture","needsPMREMUpdate","setUvTransform","copy","JSON","parse","stringify","needsUpdate","textures","metadata","toJSON","dispatchEvent","uv","encoding","_Symbol$iterator2","Vector4","z","w","isVector4","m11","m12","m13","m21","m22","m23","m31","m32","m33","xx","yy","zz","xy","xz","yz","getZ","getW","_context3","_EventDispatcher2","WebGLRenderTarget","_super2","_this3","options","isWebGLRenderTarget","depth","scissor","scissorTest","viewport","texture","depthBuffer","stencilBuffer","depthTexture","samples","dispose","clone","assign","_Texture","DataArrayTexture","_super3","_this4","isDataArrayTexture","wrapR","_WebGLRenderTarget","WebGLArrayRenderTarget","_super4","_this5","isWebGLArrayRenderTarget","_Texture2","Data3DTexture","_super5","_this6","isData3DTexture","_WebGLRenderTarget2","WebGL3DRenderTarget","_super6","_this7","isWebGL3DRenderTarget","_WebGLRenderTarget3","WebGLMultipleRenderTargets","_super7","_this8","count","isWebGLMultipleRenderTargets","il","_Symbol$iterator3","Quaternion","isQuaternion","_x","_y","_z","_w","_onChangeCallback","quaternion","euler","update","_order","c1","c3","s1","s3","axis","halfAngle","trace","_s","_s2","_s3","vFrom","vTo","Number","EPSILON","step","angleTo","slerp","conjugate","multiplyQuaternions","qax","qay","qaz","qaw","qbx","qby","qbz","qbw","qb","cosHalfTheta","sqrSinHalfTheta","sinHalfTheta","halfTheta","ratioA","ratioB","qa","u1","sqrt1u1","sqrtu1","u2","u3","toArray","callback","_context4","dst","dstOffset","src0","srcOffset0","src1","srcOffset1","x0","y0","z0","w0","x1","y1","z1","w1","dir","sqrSin","len","tDir","_Symbol$iterator4","Vector3","isVector3","applyQuaternion","_quaternion$4","setFromEuler","setFromAxisAngle","qx","qy","qz","qw","ix","iy","iz","iw","camera","applyMatrix4","matrixWorldInverse","projectionMatrix","projectionMatrixInverse","matrixWorld","crossVectors","ax","ay","az","bx","by","bz","planeNormal","_vector$b","projectOnVector","sub","normal","dz","setFromSphericalCoords","radius","phi","sinPhiRadius","setFromCylindricalCoords","setFromMatrixColumn","sz","u","_context5","Box3","Infinity","isBox3","makeEmpty","expandByPoint","_vector$a","fromBufferAttribute","points","size","halfSize","add","precise","expandByObject","box","isEmpty","addVectors","subVectors","point","vector","addScalar","updateWorldMatrix","boundingBox","computeBoundingBox","_box$3","union","geometry","attributes","position","children","_i2","_l","sphere","clampPoint","plane","constant","triangle","getCenter","_center","_extents","_v0$2","_v1$7","_v2$4","_f0","_f1","_f2","axes","satForAxes","_triangleNormal","distanceTo","getSize","_points","setFromPoints","equals","_testAxis","v0","extents","j","p0","p1","p2","_box$2","_v1$6","_v2$3","Sphere","optionalCenter","maxRadiusSq","radiusSum","intersectsSphere","distanceToPoint","deltaLengthSq","expandByScalar","getMaxScaleOnAxis","delta","addScaledVector","setLength","_vector$9","_segCenter","_segDir","_diff","_edge1","_edge2","_normal$1","Ray","origin","direction","ray","at","directionDistance","distanceSqToPoint","optionalPointOnRay","optionalPointOnSegment","s0","sqrDist","extDet","segExtent","a01","b0","invDet","tca","radius2","thc","t0","t1","distanceToPlane","distToPoint","tmin","tmax","tymin","tymax","tzmin","tzmax","invdirx","invdiry","invdirz","intersectBox","backfaceCulling","sign","DdN","DdQxE2","DdE1xQ","cross","QdN","transformDirection","Matrix4","isMatrix4","n14","n24","n34","n41","n42","n43","n44","scaleX","_v1$5","scaleY","scaleZ","af","bf","ce","cf","de","df","_ce","_cf","_de","_df","_ae","_af","_be","_bf","ac","ad","bc","bd","_ac","_ad","_bc","_bd","compose","_zero","_one","eye","up","a14","a24","a34","a41","a42","a43","a44","b14","b24","b34","b41","b42","b43","b44","t14","scaleXSq","scaleYSq","scaleZSq","yx","zx","zy","scale","x2","y2","z2","wx","wy","wz","determinant","_m1$2","invSX","invSY","invSZ","setFromRotationMatrix","left","right","top","bottom","near","far","p","_matrix","_quaternion$3","_Symbol$iterator5","Euler","DEFAULT_ORDER","isEuler","asin","makeRotationFromQuaternion","newOrder","setFromQuaternion","_context6","Layers","mask","layers","_object3DId","_v1$4","_q1","_m1$1","_target","_position$3","_scale$2","_quaternion$2","_xAxis","_yAxis","_zAxis","_addedEvent","_removedEvent","_EventDispatcher3","Object3D","_super8","_this9","isObject3D","parent","DEFAULT_UP","_onChange","modelViewMatrix","normalMatrix","DEFAULT_MATRIX_AUTO_UPDATE","matrixWorldNeedsUpdate","matrixWorldAutoUpdate","DEFAULT_MATRIX_WORLD_AUTO_UPDATE","visible","castShadow","receiveShadow","frustumCulled","renderOrder","animations","updateMatrix","decompose","multiply","rotateOnAxis","distance","translateOnAxis","setFromMatrixPosition","isCamera","isLight","lookAt","extractRotation","remove","id","getObjectByProperty","childResult","getObjectsByProperty","traverse","traverseVisible","traverseAncestors","force","child","updateMatrixWorld","updateParents","updateChildren","geometries","materials","shapes","skeletons","nodes","serialize","library","element","isInstancedMesh","instanceMatrix","instanceColor","isScene","background","isColor","environment","isMesh","isLine","isPoints","parameters","shape","isSkinnedMesh","bindMode","bindMatrix","skeleton","material","uuids","_i3","_l2","_i4","_i5","animation","extractFromCache","_shapes","cache","recursive","_v0$1","_v1$3","_v2$2","_v3$1","_vab","_vac","_vbc","_vap","_vbp","_vcp","warnedGetUV","Triangle","i0","i1","i2","getNormal","setFromCoplanarPoints","getBarycoord","uv1","uv2","uv3","getInterpolation","v3","containsPoint","isFrontFacing","intersectsTriangle","d4","vc","d5","d6","vb","va","denom","targetLengthSq","dot00","dot01","dot02","dot11","dot12","invDenom","p3","setScalar","materialId","_EventDispatcher4","Material","_super9","_this10","isMaterial","blending","side","vertexColors","opacity","transparent","blendSrc","blendDst","blendEquation","blendSrcAlpha","blendDstAlpha","blendEquationAlpha","depthFunc","depthTest","depthWrite","stencilWriteMask","stencilFunc","stencilRef","stencilFuncMask","stencilFail","stencilZFail","stencilZPass","stencilWrite","clippingPlanes","clipIntersection","clipShadows","shadowSide","colorWrite","precision","polygonOffset","polygonOffsetFactor","polygonOffsetUnits","dithering","alphaToCoverage","premultipliedAlpha","forceSinglePass","toneMapped","_alphaTest","onBeforeCompile","newValue","currentValue","_data2","getHex","roughness","metalness","sheen","sheenColor","sheenRoughness","emissive","emissiveIntensity","specular","specularIntensity","specularColor","shininess","clearcoat","clearcoatRoughness","clearcoatMap","clearcoatRoughnessMap","clearcoatNormalMap","clearcoatNormalScale","iridescence","iridescenceIOR","iridescenceThicknessRange","iridescenceMap","iridescenceThicknessMap","map","matcap","alphaMap","lightMap","lightMapIntensity","aoMap","aoMapIntensity","bumpMap","bumpScale","normalMap","normalMapType","normalScale","displacementMap","displacementScale","displacementBias","roughnessMap","metalnessMap","emissiveMap","specularMap","specularIntensityMap","specularColorMap","envMap","combine","envMapIntensity","reflectivity","refractionRatio","gradientMap","transmission","transmissionMap","thickness","thicknessMap","attenuationDistance","attenuationColor","sizeAttenuation","linewidth","dashSize","gapSize","alphaTest","wireframe","wireframeLinewidth","wireframeLinecap","wireframeLinejoin","flatShading","fog","srcPlanes","dstPlanes","_colorKeywords","_hslA","_hslB","hue2rgb","_Symbol$iterator6","Color","setRGB","setHex","setStyle","hex","style","handleAlpha","string","parseFloat","exec","components","parseInt","setHSL","setColorName","copySRGBToLinear","copyLinearToSRGB","_color","hue","saturation","lightness","toFixed","getHSL","color1","color2","_context7","NAMES","_Material","MeshBasicMaterial","_super10","_this11","isMeshBasicMaterial","setValues","_tables","_generateTables","ArrayBuffer","floatView","uint32View","baseTable","shiftTable","mantissaTable","exponentTable","offsetTable","_i6","_e","_i7","_i8","_i9","_i10","toHalfFloat","val","fromHalfFloat","DataUtils","_vector$8","_vector2$1","BufferAttribute","itemSize","normalized","isBufferAttribute","usage","updateRange","index1","index2","setXY","_i11","_l3","setXYZ","applyNormalMatrix","onUploadCallback","_BufferAttribute","Int8BufferAttribute","_super11","_BufferAttribute2","Uint8BufferAttribute","_super12","_BufferAttribute3","Uint8ClampedBufferAttribute","_super13","_BufferAttribute4","Int16BufferAttribute","_super14","_BufferAttribute5","Uint16BufferAttribute","_super15","_BufferAttribute6","Int32BufferAttribute","_super16","_BufferAttribute7","Uint32BufferAttribute","_super17","_BufferAttribute8","Float16BufferAttribute","_super18","_this12","isFloat16BufferAttribute","_BufferAttribute9","Float32BufferAttribute","_super19","_BufferAttribute10","Float64BufferAttribute","_super20","_id$1","_m1","_obj","_offset","_box$1","_boxMorphTargets","_vector$7","_EventDispatcher5","BufferGeometry","_super21","_this13","isBufferGeometry","morphAttributes","morphTargetsRelative","groups","boundingSphere","drawRange","start","materialIndex","getNormalMatrix","tangent","computeBoundingSphere","makeRotationX","makeRotationY","makeRotationZ","negate","translate","setAttribute","morphAttributesPosition","isGLBufferAttribute","setFromBufferAttribute","morphAttribute","_i12","_il","_i13","_il2","_morphAttribute","jl","indices","positions","normals","uvs","nVertices","hasAttribute","tangents","getAttribute","tan1","tan2","vA","vB","vC","uvA","uvB","uvC","sdir","tdir","_i14","group","handleTriangle","tmp2","n2","_i15","_il3","_group","_start2","_j","_jl","handleVertex","isFinite","positionAttribute","normalAttribute","pA","pB","pC","nA","nB","nC","cb","ab","_i16","_il4","_i17","_il5","normalizeNormals","convertBufferAttribute","array2","isInterleavedBufferAttribute","stride","geometry2","newAttribute","_name","morphArray","_newAttribute","_i18","addGroup","_key","hasMorphAttributes","_key2","attributeArray","_attribute2","setIndex","_name2","_i19","_l4","_inverseMatrix$2","_ray$2","_sphere$4","_sphereHitAt","_vA$1","_vB$1","_vC$1","_tempA","_morphA","_uvA$1","_uvB$1","_uvC$1","_normalA","_normalB","_normalC","_intersectionPoint","_intersectionPointWorld","_Object3D","Mesh","_super22","_this14","updateMorphTargets","morphTargetInfluences","morphTargetDictionary","ml","String","morphPosition","morphInfluences","influence","raycaster","intersects","recast","intersectSphere","intersectsBox","_computeIntersections","intersection","groupMaterial","checkGeometryIntersection","faceIndex","face","_i20","_il6","_a","_b","_c","_i21","_il7","_group2","_groupMaterial","_j2","_jl2","_i22","_il8","getVertexPosition","intersectTriangle","checkIntersection","_BufferGeometry","BoxGeometry","_super23","_this15","widthSegments","heightSegments","depthSegments","scope","vertices","numberOfVertices","groupStart","buildPlane","udir","vdir","gridX","gridY","segmentWidth","segmentHeight","widthHalf","heightHalf","depthHalf","gridX1","gridY1","vertexCounter","groupCount","_iy","_ix","cloneUniforms","mergeUniforms","uniforms","merged","_tmp","getUnlitUniformColorSpace","renderer","getRenderTarget","outputColorSpace","UniformsUtils","merge","_Material2","ShaderMaterial","_super24","_this16","isShaderMaterial","defines","uniformsGroups","vertexShader","fragmentShader","lights","clipping","extensions","derivatives","fragDepth","drawBuffers","shaderTextureLOD","defaultAttributeValues","index0AttributeName","uniformsNeedUpdate","glslVersion","cloneUniformsGroups","_value","_Object3D2","Camera","_super25","_this17","_Camera","PerspectiveCamera","_super26","_this18","fov","aspect","isPerspectiveCamera","zoom","focus","view","filmGauge","filmOffset","updateProjectionMatrix","focalLength","vExtentSlope","getFilmHeight","atan","tan","fullWidth","fullHeight","offsetX","offsetY","skew","getFilmWidth","makePerspective","_Object3D3","CubeCamera","_super27","renderTarget","_this19","cameraPX","cameraNX","cameraPY","cameraNY","cameraPZ","cameraNZ","scene","_this$children","currentRenderTarget","currentToneMapping","toneMapping","currentXrEnabled","xr","setRenderTarget","render","_Texture3","CubeTexture","_super28","_this20","isCubeTexture","_WebGLRenderTarget4","WebGLCubeRenderTarget","_super29","_this21","isWebGLCubeRenderTarget","shader","tEquirect","mesh","currentMinFilter","stencil","clear","_vector1","_vector2","_normalMatrix","Plane","isPlane","setFromNormalAndCoplanarPoint","inverseNormalLength","line","startSign","endSign","end","intersectsPlane","optionalNormalMatrix","referencePoint","coplanarPoint","_sphere$3","_vector$6","Frustum","p4","p5","planes","frustum","me0","me1","me2","me3","me4","me5","me6","me7","me8","me9","me10","me11","me12","me13","me14","me15","setComponents","sprite","negRadius","WebGLAnimation","isAnimating","animationLoop","requestId","onAnimationFrame","time","frame","requestAnimationFrame","cancelAnimationFrame","setAnimationLoop","setContext","WebGLAttributes","gl","capabilities","isWebGL2","buffers","WeakMap","deleteBuffer","delete","bufferType","cached","bytesPerElement","elementSize","createBuffer","bindBuffer","bufferData","FLOAT","HALF_FLOAT","UNSIGNED_SHORT","SHORT","UNSIGNED_INT","INT","BYTE","UNSIGNED_BYTE","BYTES_PER_ELEMENT","bufferSubData","subarray","updateBuffer","_BufferGeometry2","PlaneGeometry","_super30","_this22","width_half","height_half","segment_width","segment_height","_iy2","_ix2","ShaderChunk","alphamap_fragment","alphamap_pars_fragment","alphatest_fragment","alphatest_pars_fragment","aomap_fragment","aomap_pars_fragment","begin_vertex","beginnormal_vertex","bsdfs","iridescence_fragment","bumpmap_pars_fragment","clipping_planes_fragment","clipping_planes_pars_fragment","clipping_planes_pars_vertex","clipping_planes_vertex","color_fragment","color_pars_fragment","color_pars_vertex","color_vertex","common","cube_uv_reflection_fragment","defaultnormal_vertex","displacementmap_pars_vertex","displacementmap_vertex","emissivemap_fragment","emissivemap_pars_fragment","encodings_fragment","encodings_pars_fragment","envmap_fragment","envmap_common_pars_fragment","envmap_pars_fragment","envmap_pars_vertex","envmap_physical_pars_fragment","envmap_vertex","fog_vertex","fog_pars_vertex","fog_fragment","fog_pars_fragment","gradientmap_pars_fragment","lightmap_fragment","lightmap_pars_fragment","lights_lambert_fragment","lights_lambert_pars_fragment","lights_pars_begin","lights_toon_fragment","lights_toon_pars_fragment","lights_phong_fragment","lights_phong_pars_fragment","lights_physical_fragment","lights_physical_pars_fragment","lights_fragment_begin","lights_fragment_maps","lights_fragment_end","logdepthbuf_fragment","logdepthbuf_pars_fragment","logdepthbuf_pars_vertex","logdepthbuf_vertex","map_fragment","map_pars_fragment","map_particle_fragment","map_particle_pars_fragment","metalnessmap_fragment","metalnessmap_pars_fragment","morphcolor_vertex","morphnormal_vertex","morphtarget_pars_vertex","morphtarget_vertex","normal_fragment_begin","normal_fragment_maps","normal_pars_fragment","normal_pars_vertex","normal_vertex","normalmap_pars_fragment","clearcoat_normal_fragment_begin","clearcoat_normal_fragment_maps","clearcoat_pars_fragment","iridescence_pars_fragment","output_fragment","packing","premultiplied_alpha_fragment","project_vertex","dithering_fragment","dithering_pars_fragment","roughnessmap_fragment","roughnessmap_pars_fragment","shadowmap_pars_fragment","shadowmap_pars_vertex","shadowmap_vertex","shadowmask_pars_fragment","skinbase_vertex","skinning_pars_vertex","skinning_vertex","skinnormal_vertex","specularmap_fragment","specularmap_pars_fragment","tonemapping_fragment","tonemapping_pars_fragment","transmission_fragment","transmission_pars_fragment","uv_pars_fragment","uv_pars_vertex","uv_vertex","worldpos_vertex","background_vert","background_frag","backgroundCube_vert","backgroundCube_frag","cube_vert","cube_frag","depth_vert","depth_frag","distanceRGBA_vert","distanceRGBA_frag","equirect_vert","equirect_frag","linedashed_vert","linedashed_frag","meshbasic_vert","meshbasic_frag","meshlambert_vert","meshlambert_frag","meshmatcap_vert","meshmatcap_frag","meshnormal_vert","meshnormal_frag","meshphong_vert","meshphong_frag","meshphysical_vert","meshphysical_frag","meshtoon_vert","meshtoon_frag","points_vert","points_frag","shadow_vert","shadow_frag","sprite_vert","sprite_frag","UniformsLib","diffuse","mapTransform","alphaMapTransform","specularmap","specularMapTransform","envmap","flipEnvMap","ior","aomap","aoMapTransform","lightmap","lightMapTransform","bumpmap","bumpMapTransform","normalmap","normalMapTransform","displacementmap","displacementMapTransform","emissivemap","emissiveMapTransform","metalnessmap","metalnessMapTransform","roughnessmap","roughnessMapTransform","gradientmap","fogDensity","fogNear","fogFar","fogColor","ambientLightColor","lightProbe","directionalLights","properties","directionalLightShadows","shadowBias","shadowNormalBias","shadowRadius","shadowMapSize","directionalShadowMap","directionalShadowMatrix","spotLights","coneCos","penumbraCos","decay","spotLightShadows","spotLightMap","spotShadowMap","spotLightMatrix","pointLights","pointLightShadows","shadowCameraNear","shadowCameraFar","pointShadowMap","pointShadowMatrix","hemisphereLights","skyColor","groundColor","rectAreaLights","ltc_1","ltc_2","uvTransform","ShaderLib","basic","lambert","phong","standard","toon","dashed","totalSize","t2D","backgroundIntensity","backgroundCube","backgroundBlurriness","cube","tCube","tFlip","equirect","distanceRGBA","referencePosition","nearDistance","farDistance","shadow","physical","clearcoatMapTransform","clearcoatNormalMapTransform","clearcoatRoughnessMapTransform","iridescenceMapTransform","iridescenceThicknessMinimum","iridescenceThicknessMaximum","iridescenceThicknessMapTransform","sheenColorMap","sheenColorMapTransform","sheenRoughnessMap","sheenRoughnessMapTransform","transmissionMapTransform","transmissionSamplerSize","transmissionSamplerMap","thicknessMapTransform","specularColorMapTransform","specularIntensityMapTransform","_rgb","WebGLBackground","cubemaps","cubeuvmaps","objects","planeMesh","boxMesh","clearColor","clearAlpha","currentBackground","currentBackgroundVersion","currentTonemapping","setClear","getRGB","getClearColor","setClearColor","getClearAlpha","setClearAlpha","renderList","forceClear","getEnvironmentBlendMode","autoClear","autoClearColor","autoClearDepth","autoClearStencil","deleteAttribute","onBeforeRender","copyPosition","enableAll","unshift","WebGLBindingStates","maxVertexAttributes","getParameter","MAX_VERTEX_ATTRIBS","extension","vaoAvailable","bindingStates","defaultState","createBindingState","currentState","forceUpdate","bindVertexArrayObject","vao","bindVertexArray","bindVertexArrayOES","deleteVertexArrayObject","deleteVertexArray","deleteVertexArrayOES","newAttributes","enabledAttributes","attributeDivisors","program","initAttributes","enableAttribute","enableAttributeAndDivisor","meshPerAttribute","enableVertexAttribArray","disableUnusedAttributes","disableVertexAttribArray","vertexAttribPointer","vertexAttribIPointer","resetDefaultState","setup","updateBuffers","programMap","stateMap","createVertexArray","createVertexArrayOES","getBindingState","cachedAttributes","geometryAttributes","attributesNum","programAttributes","getAttributes","location","cachedAttribute","geometryAttribute","saveCache","ELEMENT_ARRAY_BUFFER","isInstancedBufferGeometry","materialDefaultAttributeValues","programAttribute","isInstancedInterleavedBuffer","locationSize","_maxInstanceCount","_i23","ARRAY_BUFFER","_i24","isInstancedBufferAttribute","_i25","_i26","_i27","_value2","vertexAttrib2fv","vertexAttrib3fv","vertexAttrib4fv","vertexAttrib1fv","setupVertexAttributes","geometryId","programId","releaseStatesOfGeometry","releaseStatesOfProgram","WebGLBufferRenderer","mode","setMode","drawArrays","renderInstances","primcount","methodName","WebGLCapabilities","maxAnisotropy","getMaxPrecision","getShaderPrecisionFormat","VERTEX_SHADER","HIGH_FLOAT","FRAGMENT_SHADER","MEDIUM_FLOAT","WebGL2RenderingContext","maxPrecision","logarithmicDepthBuffer","maxTextures","MAX_TEXTURE_IMAGE_UNITS","maxVertexTextures","MAX_VERTEX_TEXTURE_IMAGE_UNITS","maxTextureSize","MAX_TEXTURE_SIZE","maxCubemapSize","MAX_CUBE_MAP_TEXTURE_SIZE","maxAttributes","maxVertexUniforms","MAX_VERTEX_UNIFORM_VECTORS","maxVaryings","MAX_VARYING_VECTORS","maxFragmentUniforms","MAX_FRAGMENT_UNIFORM_VECTORS","vertexTextures","floatFragmentTextures","getMaxAnisotropy","MAX_TEXTURE_MAX_ANISOTROPY_EXT","floatVertexTextures","maxSamples","MAX_SAMPLES","WebGLClipping","globalState","numGlobalPlanes","localClippingEnabled","renderingShadows","viewNormalMatrix","uniform","projectPlanes","skipTransform","nPlanes","dstArray","flatSize","viewMatrix","i4","numPlanes","numIntersection","init","enableLocalClipping","beginShadows","endShadows","setGlobalState","setState","useCache","materialProperties","resetGlobalState","nGlobal","lGlobal","clippingState","WebGLCubeMaps","mapTextureMapping","onTextureDispose","removeEventListener","cubemap","fromEquirectangularTexture","addEventListener","_Camera2","OrthographicCamera","_super31","_this23","isOrthographicCamera","scaleW","scaleH","makeOrthographic","EXTRA_LOD_SIGMA","_flatCamera","_clearColor","_oldTarget","PHI","INV_PHI","_axisDirections","PMREMGenerator","_renderer","_pingPongRenderTarget","_lodMax","_cubeSize","_lodPlanes","_sizeLods","_sigmas","_blurMaterial","_cubemapMaterial","_equirectMaterial","_compileMaterial","sigma","_setSize","cubeUVRenderTarget","_allocateTargets","_sceneToCubeUV","_blur","_applyPMREM","_cleanup","equirectangular","_fromTexture","_getCubemapMaterial","_getEquirectMaterial","_dispose","cubeSize","log2","outputTarget","_setViewport","_textureToCubeUV","params","_createRenderTarget","_createPlanes2","lodMax","lodPlanes","sizeLods","sigmas","lod","totalLods","sizeLod","texelSize","positionSize","uvSize","faceIndexSize","coordinates","fill","_createPlanes","weights","poleAxis","_getBlurShader","tmpMesh","compile","cubeCamera","upSign","forwardSign","originalAutoClear","backgroundMaterial","backgroundBox","useSolidColor","col","lodIn","lodOut","pingPongRenderTarget","_halfBlur","targetIn","targetOut","sigmaRadians","blurMaterial","blurMesh","blurUniforms","pixels","radiansPerPixel","sigmaPixels","sum","_x2","weight","_i28","outputSize","WebGLCubeUVMaps","cubeUVmaps","pmremGenerator","cubemapUV","isEquirectMap","isCubeMap","fromEquirectangular","fromCubemap","isCubeTextureComplete","_renderTarget","WebGLExtensions","getExtension","WebGLGeometries","wireframeAttributes","onGeometryDispose","memory","updateWireframeAttribute","geometryIndex","geometryPosition","_array","_i29","_l5","_a4","_b4","_c4","previousAttribute","_name3","getWireframeAttribute","currentAttribute","WebGLIndexedBufferRenderer","drawElements","WebGLInfo","calls","triangles","lines","programs","autoReset","instanceCount","TRIANGLES","LINES","LINE_STRIP","LINE_LOOP","POINTS","numericalSort","absNumericalSort","WebGLMorphtargets","influencesList","morphTextures","morph","workInfluences","objectInfluences","morphTargetsCount","hasMorphPosition","hasMorphNormals","hasMorphColors","morphTargets","morphNormals","morphColors","vertexDataCount","vertexDataStride","_i30","morphTarget","morphNormal","morphColor","disposeTexture","morphInfluencesSum","_i31","morphBaseInfluence","getUniforms","setValue","influences","_i32","_i33","sort","_i34","MAX_SAFE_INTEGER","_morphTargets","_morphNormals","_morphInfluencesSum","_i35","_influence","_value3","_morphBaseInfluence","WebGLObjects","updateMap","onInstancedMeshDispose","instancedMesh","buffergeometry","hasEventListener","emptyTexture","emptyArrayTexture","empty3dTexture","emptyCubeTexture","arrayCacheF32","arrayCacheI32","mat4array","mat3array","mat2array","flatten","nBlocks","blockSize","firstElem","arraysEqual","copyArray","allocTexUnits","allocateTextureUnit","setValueV1f","uniform1f","addr","setValueV2f","uniform2f","uniform2fv","setValueV3f","uniform3f","uniform3fv","setValueV4f","uniform4f","uniform4fv","setValueM2","uniformMatrix2fv","setValueM3","uniformMatrix3fv","setValueM4","uniformMatrix4fv","setValueV1i","uniform1i","setValueV2i","uniform2i","uniform2iv","setValueV3i","uniform3i","uniform3iv","setValueV4i","uniform4i","uniform4iv","setValueV1ui","uniform1ui","setValueV2ui","uniform2ui","uniform2uiv","setValueV3ui","uniform3ui","uniform3uiv","setValueV4ui","uniform4ui","uniform4uiv","setValueT1","unit","setTexture2D","setValueT3D1","setTexture3D","setValueT6","setTextureCube","setValueT2DArray1","setTexture2DArray","setValueV1fArray","uniform1fv","setValueV2fArray","setValueV3fArray","setValueV4fArray","setValueM2Array","setValueM3Array","setValueM4Array","setValueV1iArray","uniform1iv","setValueV2iArray","setValueV3iArray","setValueV4iArray","setValueV1uiArray","uniform1uiv","setValueV2uiArray","setValueV3uiArray","setValueV4uiArray","setValueT1Array","units","setValueT3DArray","setValueT6Array","setValueT2DArrayArray","SingleUniform","activeInfo","getSingularSetter","PureArrayUniform","getPureArraySetter","StructuredUniform","seq","RePathPart","addUniform","container","uniformObject","parseUniform","path","pathLength","lastIndex","match","matchEnd","_id2","idIsIndex","subscript","WebGLUniforms","getProgramParameter","ACTIVE_UNIFORMS","getActiveUniform","getUniformLocation","WebGLShader","createShader","shaderSource","compileShader","programIdCount","getShaderErrors","status","getShaderParameter","COMPILE_STATUS","errors","getShaderInfoLog","trim","errorMatches","errorLine","toUpperCase","split","lines2","to","join","handleSource","getShaderSource","getTexelEncodingFunction","functionName","getEncodingComponents","getToneMappingFunction","toneMappingName","filterEmptyLine","replaceLightNums","numSpotLightCoords","numSpotLightShadows","numSpotLightMaps","numSpotLightShadowsWithMaps","replace","numDirLights","numSpotLights","numRectAreaLights","numPointLights","numHemiLights","numDirLightShadows","numPointLightShadows","replaceClippingPlaneNums","numClippingPlanes","numClipIntersection","includePattern","resolveIncludes","includeReplacer","include","unrollLoopPattern","unrollLoops","loopReplacer","snippet","generatePrecision","precisionstring","WebGLProgram","cacheKey","prefixVertex","prefixFragment","shadowMapTypeDefine","shadowMapType","generateShadowMapTypeDefine","envMapTypeDefine","envMapMode","generateEnvMapTypeDefine","envMapModeDefine","generateEnvMapModeDefine","envMapBlendingDefine","generateEnvMapBlendingDefine","envMapCubeUVSize","imageHeight","envMapCubeUVHeight","maxMip","texelHeight","texelWidth","generateCubeUVSize","customExtensions","extensionDerivatives","normalMapTangentSpace","shaderID","extensionFragDepth","rendererExtensionFragDepth","extensionDrawBuffers","rendererExtensionDrawBuffers","extensionShaderTextureLOD","rendererExtensionShaderTextureLod","generateExtensions","customDefines","chunks","_value4","generateDefines","createProgram","versionString","isRawShaderMaterial","shaderName","instancing","instancingColor","useFog","fogExp2","normalMapObjectSpace","mapUv","alphaMapUv","lightMapUv","aoMapUv","emissiveMapUv","bumpMapUv","normalMapUv","displacementMapUv","metalnessMapUv","roughnessMapUv","clearcoatMapUv","clearcoatNormalMapUv","clearcoatRoughnessMapUv","iridescenceMapUv","iridescenceThicknessMapUv","sheenColorMapUv","sheenRoughnessMapUv","specularMapUv","specularColorMapUv","specularIntensityMapUv","transmissionMapUv","thicknessMapUv","vertexTangents","vertexAlphas","vertexUv1s","vertexUv2s","vertexUv3s","pointsUvs","skinning","morphTextureStride","doubleSided","flipSided","shadowMapEnabled","useLegacyLights","opaque","useDepthPacking","depthPacking","cachedUniforms","vertexGlsl","fragmentGlsl","glVertexShader","glFragmentShader","attachShader","bindAttribLocation","linkProgram","debug","checkShaderErrors","programLog","getProgramInfoLog","vertexLog","fragmentLog","runnable","haveDiagnostics","LINK_STATUS","onShaderError","vertexErrors","fragmentErrors","getError","VALIDATE_STATUS","diagnostics","prefix","deleteShader","ACTIVE_ATTRIBUTES","getActiveAttrib","FLOAT_MAT2","FLOAT_MAT3","FLOAT_MAT4","getAttribLocation","fetchAttributeLocations","destroy","deleteProgram","usedTimes","_id","WebGLShaderCache","shaderCache","materialCache","vertexShaderStage","_getShaderStage","fragmentShaderStage","materialShaders","_getShaderCacheForMaterial","_step","_iterator","shaderStage","code","Set","stage","WebGLShaderStage","WebGLPrograms","_programLayers","_customShaders","IS_WEBGL2","SUPPORTS_VERTEX_TEXTURES","shaderIDs","MeshDepthMaterial","MeshDistanceMaterial","MeshNormalMaterial","MeshLambertMaterial","MeshPhongMaterial","MeshToonMaterial","MeshStandardMaterial","MeshPhysicalMaterial","MeshMatcapMaterial","LineBasicMaterial","LineDashedMaterial","PointsMaterial","ShadowMaterial","SpriteMaterial","getChannel","getParameters","shadows","isMeshStandardMaterial","customVertexShaderID","customFragmentShaderID","getVertexShaderID","getFragmentShaderID","IS_INSTANCEDMESH","HAS_MAP","HAS_MATCAP","HAS_ENVMAP","HAS_AOMAP","HAS_LIGHTMAP","HAS_BUMPMAP","HAS_NORMALMAP","HAS_DISPLACEMENTMAP","HAS_EMISSIVEMAP","HAS_METALNESSMAP","HAS_ROUGHNESSMAP","HAS_CLEARCOAT","HAS_IRIDESCENCE","HAS_SHEEN","HAS_TRANSMISSION","HAS_CLEARCOATMAP","HAS_CLEARCOAT_NORMALMAP","HAS_CLEARCOAT_ROUGHNESSMAP","HAS_IRIDESCENCEMAP","HAS_IRIDESCENCE_THICKNESSMAP","HAS_SHEEN_COLORMAP","HAS_SHEEN_ROUGHNESSMAP","HAS_SPECULARMAP","HAS_SPECULAR_COLORMAP","HAS_SPECULAR_INTENSITYMAP","HAS_TRANSMISSIONMAP","HAS_THICKNESSMAP","HAS_GRADIENTMAP","HAS_ALPHAMAP","HAS_ALPHATEST","HAS_EXTENSIONS","HAS_ATTRIBUTE_UV1","HAS_ATTRIBUTE_UV2","HAS_ATTRIBUTE_UV3","supportsVertexTextures","isXRRenderTarget","isFogExp2","directional","spot","rectArea","hemi","shadowMap","customProgramCacheKey","getProgramCacheKey","morphAttributeCount","getProgramCacheKeyParameters","disableAll","enable","getProgramCacheKeyBooleans","acquireProgram","pl","preexistingProgram","releaseProgram","releaseShaderCache","WebGLProperties","painterSortStable","groupOrder","reversePainterSortStable","WebGLRenderList","renderItems","renderItemsIndex","transmissive","getNextRenderItem","renderItem","customOpaqueSort","customTransparentSort","WebGLRenderLists","lists","renderCallDepth","list","listArray","UniformsCache","light","halfWidth","halfHeight","nextVersion","shadowCastingAndTexturingLightsFirst","lightA","lightB","WebGLLights","shadowCache","ShadowUniformsCache","hash","directionalLength","pointLength","spotLength","rectAreaLength","hemiLength","numDirectionalShadows","numPointShadows","numSpotShadows","numSpotMaps","ambient","probe","directionalShadow","spotShadow","rectAreaLTC1","rectAreaLTC2","pointShadow","vector3","matrix42","_i36","numSpotShadowsWithMaps","scaleFactor","_i37","intensity","isAmbientLight","isLightProbe","sh","coefficients","isDirectionalLight","shadowUniforms","bias","normalBias","mapSize","isSpotLight","_uniforms","penumbra","_shadow","updateMatrices","_shadowUniforms","isRectAreaLight","_uniforms2","isPointLight","_uniforms3","_shadow2","_shadowUniforms2","isHemisphereLight","_uniforms4","LTC_FLOAT_1","LTC_FLOAT_2","LTC_HALF_1","LTC_HALF_2","setupView","_i38","_uniforms5","_uniforms6","identity","_uniforms7","_uniforms8","WebGLRenderState","lightsArray","shadowsArray","setupLights","setupLightsView","pushLight","pushShadow","shadowLight","WebGLRenderStates","renderStates","renderState","renderStateArray","_Material3","_super32","_this24","isMeshDepthMaterial","_Material4","_super33","_this25","isMeshDistanceMaterial","WebGLShadowMap","_objects","_capabilities","_shadowSide","_frustum","_shadowMapSize","_viewportSize","_viewport","_depthMaterial","_distanceMaterial","_materialCache","_maxTextureSize","shadowMaterialVertical","VSM_SAMPLES","shadow_pass","resolution","shadowMaterialHorizontal","HORIZONTAL_PASS","fullScreenTri","fullScreenMesh","autoUpdate","_previousType","VSMPass","blurSamples","mapPass","renderBufferDirect","getDepthMaterial","customMaterial","customDistanceMaterial","customDepthMaterial","keyA","keyB","materialsForVariant","cachedMaterial","renderObject","shadowCamera","intersectsObject","k","kl","depthMaterial","_depthMaterial2","activeCubeFace","getActiveCubeFace","activeMipmapLevel","getActiveMipmapLevel","_state","setBlending","setTest","setScissorTest","toVSM","fromVSM","shadowFrameExtents","getFrameExtents","pars","viewportCount","getViewportCount","vp","getViewport","getFrustum","isPointLightShadow","WebGLState","_equationToGL","_factorToGL","colorBuffer","locked","currentColorMask","currentColorClear","setMask","colorMask","setLocked","lock","currentDepthMask","currentDepthFunc","currentDepthClear","DEPTH_TEST","disable","depthMask","setFunc","NEVER","ALWAYS","LESS","LEQUAL","EQUAL","GEQUAL","GREATER","NOTEQUAL","clearDepth","currentStencilMask","currentStencilFunc","currentStencilRef","currentStencilFuncMask","currentStencilFail","currentStencilZFail","currentStencilZPass","currentStencilClear","stencilTest","STENCIL_TEST","stencilMask","setOp","stencilOp","clearStencil","uboBindings","uboProgramMap","enabledCapabilities","currentBoundFramebuffers","currentDrawbuffers","defaultDrawbuffers","currentProgram","currentBlendingEnabled","currentBlending","currentBlendEquation","currentBlendSrc","currentBlendDst","currentBlendEquationAlpha","currentBlendSrcAlpha","currentBlendDstAlpha","currentPremultipledAlpha","currentFlipSided","currentCullFace","currentLineWidth","currentPolygonOffsetFactor","currentPolygonOffsetUnits","MAX_COMBINED_TEXTURE_IMAGE_UNITS","lineWidthAvailable","glVersion","VERSION","currentTextureSlot","currentBoundTextures","scissorParam","SCISSOR_BOX","viewportParam","VIEWPORT","currentScissor","currentViewport","createTexture","dimensions","bindTexture","texParameteri","TEXTURE_MIN_FILTER","NEAREST","TEXTURE_MAG_FILTER","TEXTURE_3D","TEXTURE_2D_ARRAY","texImage2D","RGBA","texImage3D","emptyTextures","TEXTURE_2D","TEXTURE_CUBE_MAP","TEXTURE_CUBE_MAP_POSITIVE_X","setFlipSided","setCullFace","CULL_FACE","equationToGL","FUNC_ADD","FUNC_SUBTRACT","FUNC_REVERSE_SUBTRACT","MIN","MAX","MIN_EXT","MAX_EXT","factorToGL","ZERO","ONE","SRC_COLOR","SRC_ALPHA","SRC_ALPHA_SATURATE","DST_COLOR","DST_ALPHA","ONE_MINUS_SRC_COLOR","ONE_MINUS_SRC_ALPHA","ONE_MINUS_DST_COLOR","ONE_MINUS_DST_ALPHA","BLEND","blendEquationSeparate","blendFuncSeparate","blendFunc","frontFace","CW","CCW","cullFace","BACK","FRONT","FRONT_AND_BACK","setPolygonOffset","factor","POLYGON_OFFSET_FILL","bindFramebuffer","framebuffer","DRAW_FRAMEBUFFER","FRAMEBUFFER","COLOR_ATTACHMENT0","drawBuffersWEBGL","useProgram","setMaterial","frontFaceCW","SAMPLE_ALPHA_TO_COVERAGE","setLineWidth","lineWidth","SCISSOR_TEST","activeTexture","webglSlot","TEXTURE0","webglType","webglTexture","boundTexture","unbindTexture","compressedTexImage2D","compressedTexImage3D","updateUBOMapping","uniformsGroup","blockIndex","getUniformBlockIndex","uniformBlockBinding","__bindingPointIndex","texStorage2D","texStorage3D","texSubImage2D","texSubImage3D","compressedTexSubImage2D","compressedTexSubImage3D","KEEP","READ_FRAMEBUFFER","WebGLTextures","_gl","utils","_wrappingToGL","_filterToGL","_canvas","multisampledRTTExt","supportsInvalidateFramebuffer","navigator","userAgent","_videoTextures","_sources","useOffscreenCanvas","OffscreenCanvas","createCanvas","resizeImage","needsPowerOfTwo","needsNewCanvas","maxSize","isPowerOfTwo$1","textureNeedsGenerateMipmaps","supportsMips","generateMipmap","getInternalFormat","internalFormatName","glFormat","glType","forceLinearTransfer","RED","R32F","R16F","R8","RG","RG32F","RG16F","RG8","RGBA32F","RGBA16F","SRGB8_ALPHA8","RGBA8","UNSIGNED_SHORT_4_4_4_4","RGBA4","UNSIGNED_SHORT_5_5_5_1","RGB5_A1","getMipLevels","isFramebufferTexture","isCompressedTexture","filterFallback","LINEAR","textureProperties","__webglInit","webglTextures","__cacheKey","deleteTexture","deallocateTexture","isVideoTexture","onRenderTargetDispose","renderTargetProperties","__webglTexture","deleteFramebuffer","__webglFramebuffer","__webglDepthbuffer","deleteRenderbuffer","__webglMultisampledFramebuffer","__webglColorRenderbuffer","_i39","__webglDepthRenderbuffer","_i40","attachmentProperties","deallocateRenderTarget","textureUnits","slot","updateVideoTexture","__version","uploadTexture","wrappingToGL","REPEAT","CLAMP_TO_EDGE","MIRRORED_REPEAT","filterToGL","NEAREST_MIPMAP_NEAREST","NEAREST_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","LINEAR_MIPMAP_LINEAR","setTextureParameters","textureType","TEXTURE_WRAP_S","TEXTURE_WRAP_T","TEXTURE_WRAP_R","__currentAnisotropy","texParameterf","TEXTURE_MAX_ANISOTROPY_EXT","initTexture","forceUpload","textureCacheKey","getTextureCacheKey","isCompressedArrayTexture","sourceProperties","pixelStorei","UNPACK_FLIP_Y_WEBGL","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNPACK_ALIGNMENT","UNPACK_COLORSPACE_CONVERSION_WEBGL","NONE","mipmap","textureNeedsPowerOfTwo","verifyColorSpace","glInternalFormat","useTexStorage","allocateMemory","levels","isDepthTexture","DEPTH_COMPONENT","DEPTH_COMPONENT32F","DEPTH_COMPONENT24","DEPTH24_STENCIL8","DEPTH_COMPONENT16","DEPTH_STENCIL","_i41","_il9","_i42","_il10","_i43","_i44","_il11","setupFrameBufferTexture","attachment","textureTarget","__hasExternalTextures","useMultisampledRTT","framebufferTexture2DMultisampleEXT","getRenderTargetSamples","TEXTURE_CUBE_MAP_NEGATIVE_Z","framebufferTexture2D","setupRenderBufferStorage","renderbuffer","isMultisample","bindRenderbuffer","RENDERBUFFER","renderbufferStorageMultisampleEXT","renderbufferStorageMultisample","renderbufferStorage","framebufferRenderbuffer","DEPTH_ATTACHMENT","_samples","DEPTH_STENCIL_ATTACHMENT","_glInternalFormat","_samples2","setupDepthRenderbuffer","isCube","__autoAllocateDepthBuffer","webglDepthTexture","setupDepthTexture","createRenderbuffer","__useRenderToTexture","sRGBToLinear","textureUnit","resetTextureUnits","isCompressed","cubeImage","_i45","_i46","_j3","mipmapImage","_j4","_mipmap2","uploadCubeTexture","rebindTextures","colorTexture","setupRenderTarget","isMultipleRenderTargets","createFramebuffer","_i47","_textures","_i48","_texture","_i49","_textures2","_i50","_il12","_attachmentProperties","glTextureType","updateRenderTargetMipmap","updateMultisampleRenderTarget","COLOR_BUFFER_BIT","invalidationArray","depthStyle","_i51","ignoreDepthValues","__ignoreDepthValues","DEPTH_BUFFER_BIT","STENCIL_BUFFER_BIT","invalidateFramebuffer","blitFramebuffer","_i52","_webglTexture","WebGLUtils","HALF_FLOAT_OES","ALPHA","LUMINANCE","LUMINANCE_ALPHA","SRGB_ALPHA_EXT","RED_INTEGER","RG_INTEGER","RGBA_INTEGER","COMPRESSED_SRGB_S3TC_DXT1_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGB_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","COMPRESSED_RGB_ETC1_WEBGL","COMPRESSED_SRGB8_ETC2","COMPRESSED_RGB8_ETC2","COMPRESSED_SRGB8_ALPHA8_ETC2_EAC","COMPRESSED_RGBA8_ETC2_EAC","COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR","COMPRESSED_RGBA_ASTC_4x4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR","COMPRESSED_RGBA_ASTC_5x4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR","COMPRESSED_RGBA_ASTC_5x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR","COMPRESSED_RGBA_ASTC_6x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR","COMPRESSED_RGBA_ASTC_6x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR","COMPRESSED_RGBA_ASTC_8x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR","COMPRESSED_RGBA_ASTC_8x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR","COMPRESSED_RGBA_ASTC_8x8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR","COMPRESSED_RGBA_ASTC_10x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR","COMPRESSED_RGBA_ASTC_10x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR","COMPRESSED_RGBA_ASTC_10x8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR","COMPRESSED_RGBA_ASTC_10x10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR","COMPRESSED_RGBA_ASTC_12x10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR","COMPRESSED_RGBA_ASTC_12x12_KHR","COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT","COMPRESSED_RGBA_BPTC_UNORM_EXT","COMPRESSED_RED_RGTC1_EXT","COMPRESSED_SIGNED_RED_RGTC1_EXT","COMPRESSED_RED_GREEN_RGTC2_EXT","COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT","UNSIGNED_INT_24_8","UNSIGNED_INT_24_8_WEBGL","_PerspectiveCamera","ArrayCamera","_super34","_this26","isArrayCamera","cameras","_Object3D4","Group","_super35","_this27","isGroup","_moveEvent","WebXRController","_targetRay","_grip","_hand","joints","inputState","pinching","hasLinearVelocity","linearVelocity","hasAngularVelocity","angularVelocity","inputSource","hand","_step2","_iterator2","inputjoint","_getHandJoint","referenceSpace","inputPose","gripPose","handPose","targetRay","grip","session","visibilityState","_step3","_iterator3","jointPose","getJointPose","joint","transform","jointRadius","indexTip","thumbTip","distanceToPinch","handedness","gripSpace","getPose","targetRaySpace","jointName","_Texture4","DepthTexture","_super36","_this28","_EventDispatcher6","WebXRManager","_super37","_this29","framebufferScaleFactor","referenceSpaceType","foveation","customReferenceSpace","pose","glBinding","glProjLayer","glBaseLayer","xrFrame","getContextAttributes","initialRenderTarget","newRenderTarget","controllers","controllerInputSources","planesLastChangedTimes","cameraL","cameraR","cameraVR","_currentDepthNear","_currentDepthFar","onSessionEvent","controllerIndex","controller","onSessionEnd","onInputSourcesChange","disconnect","isPresenting","removed","_i53","added","_inputSource","_i54","connect","cameraAutoUpdate","getController","getTargetRaySpace","getControllerGrip","getGripSpace","getHand","getHandSpace","setFramebufferScaleFactor","setReferenceSpaceType","getReferenceSpace","setReferenceSpace","space","getBaseLayer","getBinding","getFrame","getSession","setSession","_ref","_callee","layerInit","depthFormat","depthType","glDepthFormat","projectionlayerInit","_context8","xrCompatible","makeXRCompatible","antialias","XRWebGLLayer","updateRenderState","baseLayer","framebufferWidth","framebufferHeight","colorFormat","XRWebGLBinding","createProjectionLayer","textureWidth","textureHeight","setFoveation","requestReferenceSpace","_x3","environmentBlendMode","cameraLPos","cameraRPos","updateCamera","depthNear","depthFar","ipd","projL","projR","topFov","bottomFov","leftFov","rightFov","zOffset","xOffset","translateX","translateZ","near2","far2","left2","right2","top2","bottom2","setProjectionFromUnion","updateUserCamera","getCamera","getFoveation","fixedFoveation","getPlanes","onAnimationFrameCallback","getViewerPose","views","setRenderTargetFramebuffer","cameraVRNeedsUpdate","glSubImage","getViewSubImage","setRenderTargetTextures","depthStencilTexture","_i55","detectedPlanes","_step4","planesToRemove","_iterator4","_plane","_step5","_iterator5","_step6","_iterator6","_plane2","lastKnownTime","lastChangedTime","WebGLMaterials","refreshTransformUniform","refreshUniformsCommon","refreshFogUniforms","isFog","density","refreshMaterialUniforms","pixelRatio","transmissionRenderTarget","isMeshLambertMaterial","isMeshToonMaterial","refreshUniformsToon","isMeshPhongMaterial","refreshUniformsPhong","refreshUniformsStandard","isMeshPhysicalMaterial","refreshUniformsPhysical","isMeshMatcapMaterial","refreshUniformsMatcap","refreshUniformsDistance","isMeshNormalMaterial","isLineBasicMaterial","refreshUniformsLine","isLineDashedMaterial","refreshUniformsDash","isPointsMaterial","refreshUniformsPoints","isSpriteMaterial","refreshUniformsSprites","isShadowMaterial","WebGLUniformsGroups","updateList","allocatedBindingPoints","maxBindingPoints","MAX_UNIFORM_BUFFER_BINDINGS","hasUniformChanged","tempValues","cachedObjects","_values","_i57","cachedObject","getUniformSize","boundary","storage","onUniformsGroupsDispose","bind","webglProgram","chunkOffset","infos","_info2","__data","__offset","remainingSizeInChunk","__size","__cache","prepareUniformsGroup","bindingPointIndex","allocateBindingPointIndex","UNIFORM_BUFFER","bindBufferBase","arrayOffset","_i56","_value5","_info","updateBufferData","_id3","createCanvasElement","display","WebGLRenderer","_alpha","_parameters$canvas","_parameters$context","_parameters$depth","_parameters$stencil","_parameters$alpha","_parameters$antialias","_parameters$premultip","_parameters$preserveD","preserveDrawingBuffer","_parameters$powerPref","powerPreference","_parameters$failIfMaj","failIfMajorPerformanceCaveat","isWebGLRenderer","currentRenderList","currentRenderState","renderListStack","renderStateStack","domElement","sortObjects","toneMappingExposure","_this","_isContextLost","_currentActiveCubeFace","_currentActiveMipmapLevel","_currentRenderTarget","_currentMaterialId","_currentCamera","_currentViewport","_currentScissor","_currentScissorTest","_width","_height","_pixelRatio","_opaqueSort","_transparentSort","_scissor","_scissorTest","_clippingEnabled","_localClippingEnabled","_transmissionRenderTarget","_projScreenMatrix","_vector3","_emptyScene","overrideMaterial","getTargetPixelRatio","programCache","renderLists","morphtargets","bufferRenderer","indexedBufferRenderer","contextNames","contextAttributes","contextName","_context9","onContextLost","onContextRestore","onContextCreationError","isWebGL1Renderer","shift","initGLContext","preventDefault","infoAutoReset","shadowMapAutoUpdate","shadowMapNeedsUpdate","statusMessage","onMaterialDispose","deallocateMaterial","releaseMaterialProgramReferences","forceContextLoss","loseContext","forceContextRestore","restoreContext","getPixelRatio","setPixelRatio","setSize","updateStyle","setViewport","getDrawingBufferSize","setDrawingBufferSize","getCurrentViewport","getScissor","setScissor","getScissorTest","boolean","setOpaqueSort","setTransparentSort","bits","onXRSessionStart","onXRSessionEnd","setProgram","rangeFactor","drawStart","drawEnd","drawCount","isLineSegments","isLineLoop","isSprite","maxInstanceCount","prepare","getProgram","projectObject","isLOD","intersectsSprite","_geometry2","_material","_i58","_l6","renderScene","opaqueObjects","transmissiveObjects","transparentObjects","renderTransmissionPass","renderObjects","renderTargetNeedsUpdate","currentSide","onAfterRender","lightsStateVersion","programCacheKey","updateCommonMaterialProperties","onBuild","needsLights","materialNeedsLights","progUniforms","uniformsList","seqWithValue","needsProgramChange","refreshProgram","refreshMaterial","refreshLights","p_uniforms","m_uniforms","uCamPos","cameraPosition","setOptional","boneTexture","computeBoneTexture","boneTextureSize","isMeshGouraudMaterial","markUniformsLightsNeedsUpdate","upload","setFromProjectionMatrix","camera2","defaultFramebuffer","__useDefaultFramebuffer","useDefaultFramebuffer","isRenderTarget3D","framebufferBound","_textureProperties","layer","framebufferTextureLayer","readRenderTargetPixels","activeCubeFaceIndex","textureFormat","IMPLEMENTATION_COLOR_READ_FORMAT","halfFloatSupportedByExt","IMPLEMENTATION_COLOR_READ_TYPE","readPixels","_framebuffer","copyFramebufferToTexture","level","levelScale","copyTexSubImage2D","copyTextureToTexture","srcTexture","dstTexture","copyTextureToTexture3D","sourceBox","glTarget","unpackRowLen","UNPACK_ROW_LENGTH","unpackImageHeight","UNPACK_IMAGE_HEIGHT","unpackSkipPixels","UNPACK_SKIP_PIXELS","unpackSkipRows","UNPACK_SKIP_ROWS","unpackSkipImages","UNPACK_SKIP_IMAGES","resetState","__THREE_DEVTOOLS__","CustomEvent","detail","_WebGLRenderer","WebGL1Renderer","_super38","_geometry","FogExp2","Fog","_Object3D5","Scene","_super39","_this30","InterleavedBuffer","isInterleavedBuffer","arrayBuffers","_uuid","ib","setUsage","_vector$5","InterleavedBufferAttribute","interleavedBuffer","interleavedBuffers","_Material5","_super40","_this31","_intersectPoint","_worldScale","_mvPosition","_alignedPosition","_rotatedPosition","_viewWorldMatrix","_vA","_vB","_vC","_uvA","_uvB","_uvC","_Object3D6","Sprite","_super41","_this32","float32Array","setFromMatrixScale","transformVertex","intersect","vertexPosition","mvPosition","_v1$2","_v2$1","_Object3D7","LOD","_super42","_this33","_currentLevel","addLevel","hysteresis","levelDistance","getObjectForDistance","raycast","_basePosition","_skinIndex","_skinWeight","_matrix4","_vertex","_Mesh","SkinnedMesh","_super43","_this34","bindMatrixInverse","applyBoneTransform","calculateInverses","skinWeight","manhattanLength","setXYZW","skinIndex","getComponent","boneIndex","bones","boneInverses","_Object3D8","Bone","_super44","_this35","isBone","_Texture5","DataTexture","_super45","_this36","_offsetMatrix","_identityMatrix","Skeleton","boneMatrices","inverse","bone","_i59","_il13","_bone","json","boneInverse","_BufferAttribute11","InstancedBufferAttribute","_super46","_this37","_instanceLocalMatrix","_instanceWorldMatrix","_instanceIntersects","_box3","_identity","_mesh","_sphere$2","_Mesh2","InstancedMesh","_super47","_this38","setMatrixAt","getMatrixAt","raycastTimes","instanceId","_Material6","_super48","_this39","linecap","linejoin","_start$1","_end$1","_inverseMatrix$1","_ray$1","_sphere$1","_Object3D9","Line","_super49","_this40","lineDistances","threshold","localThreshold","localThresholdSq","vStart","vEnd","interSegment","interRay","distanceSqToSegment","_i60","_l7","_distance","_start","_end","_Line","LineSegments","_super50","_this41","_Line2","LineLoop","_super51","_this42","_Material7","_super52","_this43","_inverseMatrix","_ray","_sphere","_position$2","_Object3D10","Points","_super53","_this44","testPoint","_i61","rayPointDistanceSq","intersectPoint","closestPointToPoint","distanceToRay","_Texture6","VideoTexture","_super54","video","_this45","requestVideoFrameCallback","updateVideo","readyState","HAVE_CURRENT_DATA","_Texture7","FramebufferTexture","_super55","_this46","_Texture8","CompressedTexture","_super56","_this47","_CompressedTexture","CompressedArrayTexture","_super57","_this48","_Texture9","CanvasTexture","_super58","_this49","isCanvasTexture","Curve","arcLengthDivisions","optionalTarget","getUtoTmapping","getPoint","divisions","getPointAt","lengths","getLengths","cacheArcLengths","current","last","targetArcLength","arcLengths","comparison","lengthBefore","t2","pt1","pt2","getTangent","segments","closed","binormals","vec","mat","getTangentAt","MAX_VALUE","tz","_i62","makeRotationAxis","_theta","_i63","_Curve","EllipseCurve","_super59","_this50","aX","aY","xRadius","yRadius","aStartAngle","aEndAngle","aClockwise","aRotation","isEllipseCurve","twoPi","deltaAngle","samePoints","_EllipseCurve","ArcCurve","_super60","aRadius","_this51","isArcCurve","CubicPoly","c0","initCatmullRom","x3","tension","initNonuniformCatmullRom","dt0","dt1","dt2","calc","px","py","pz","_Curve2","CatmullRomCurve3","_super61","_this52","curveType","isCatmullRomCurve3","intPoint","CatmullRom","QuadraticBezier","QuadraticBezierP0","QuadraticBezierP1","QuadraticBezierP2","CubicBezier","CubicBezierP0","CubicBezierP1","CubicBezierP2","CubicBezierP3","_Curve3","CubicBezierCurve","_super62","_this53","isCubicBezierCurve","_Curve4","CubicBezierCurve3","_super63","_this54","isCubicBezierCurve3","_Curve5","LineCurve","_super64","_this55","isLineCurve","_Curve6","LineCurve3","_super65","_this56","isLineCurve3","_Curve7","QuadraticBezierCurve","_super66","_this57","isQuadraticBezierCurve","_Curve8","QuadraticBezierCurve3","_super67","_this58","isQuadraticBezierCurve3","_Curve9","SplineCurve","_super68","_this59","isSplineCurve","Curves","freeze","_Curve10","CurvePath","_super69","_this60","curves","autoClose","curve","startPoint","endPoint","getLength","curveLengths","getCurveLengths","diff","segmentLength","lens","cacheLengths","sums","pts","getPoints","fromJSON","_CurvePath","Path","_super70","_this61","currentPoint","moveTo","lineTo","aCPx","aCPy","aCP1x","aCP1y","aCP2x","aCP2y","npts","absarc","absellipse","firstPoint","lastPoint","_BufferGeometry3","LatheGeometry","_super71","_this62","phiStart","phiLength","initNormals","inverseSegments","vertex","curNormal","prevNormal","_j5","_i64","_j6","_LatheGeometry","CapsuleGeometry","_super72","_this63","capSegments","radialSegments","_BufferGeometry4","CircleGeometry","_super73","_this64","thetaStart","thetaLength","segment","_i65","_BufferGeometry5","CylinderGeometry","_super74","_this65","radiusTop","radiusBottom","openEnded","indexArray","generateTorso","slope","indexRow","sinTheta","cosTheta","_x4","_y2","generateCap","centerIndexStart","centerIndexEnd","_x5","_x6","_CylinderGeometry","ConeGeometry","_super75","_this66","_BufferGeometry6","PolyhedronGeometry","_super76","_this67","vertexBuffer","uvBuffer","subdivide","getVertexByIndex","subdivideFace","cols","aj","bj","rows","_i66","_j7","pushVertex","applyRadius","generateUVs","azimuth","inclination","correctUVs","correctSeam","centroid","azi","correctUV","computeVertexNormals","details","_PolyhedronGeometry","DodecahedronGeometry","_super77","_this68","_v0","_v1$1","_normal","_triangle","_BufferGeometry7","EdgesGeometry","_super78","_this69","thresholdAngle","precisionPoints","thresholdDot","indexAttr","getIndex","positionAttr","indexCount","indexArr","vertKeys","hashes","edgeData","jNext","vecHash0","vecHash1","reverseHash","index0","_edgeData$key","_Path","Shape","_super79","_this70","holes","holesPts","getPointsHoles","hole","Earcut","holeIndices","minX","minY","maxX","maxY","invSize","dim","hasHoles","outerLen","outerNode","linkedList","eliminateHoles","earcutLinked","clockwise","signedArea","insertNode","removeNode","filterPoints","again","steiner","ear","pass","zOrder","prevZ","nextZ","tail","numMerges","pSize","qSize","inSize","sortLinked","indexCurve","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minZ","maxZ","locallyInside","isValidDiagonal","splitPolygon","queue","getLeftmost","compareX","eliminateHole","bridge","hx","hy","mx","my","tanMin","sectorContainsSector","findHoleBridge","bridgeReverse","leftmost","intersectsPolygon","inside","middleInside","q1","q2","o1","o2","o3","o4","onSegment","num","Node","an","bp","ShapeUtils","contour","area","faces","removeDupEndPts","addContour","holeIndex","_i67","_BufferGeometry8","ExtrudeGeometry","_super80","_this71","verticesArray","uvArray","addShape","extrudePts","splineTube","binormal","position2","placeholder","curveSegments","steps","bevelEnabled","bevelThickness","bevelSize","bevelOffset","bevelSegments","extrudePath","uvgen","UVGenerator","WorldUVGenerator","extrudeByPath","getSpacedPoints","computeFrenetFrames","shapePoints","extractPoints","isClockWise","hl","ahole","triangulateShape","_h","_hl","_ahole","scalePt2","pt","vlen","flen","getBevelVec","inPt","inPrev","inNext","v_trans_x","v_trans_y","shrink_by","v_prev_x","v_prev_y","v_next_x","v_next_y","v_prev_lensq","collinear0","v_prev_len","v_next_len","ptPrevShift_x","ptPrevShift_y","sf","v_trans_lensq","direction_eq","contourMovements","_i68","oneHoleMovements","holesMovements","verticesMovements","_h2","_hl2","_ahole2","_i69","_il14","_j8","_k","_bs","_i70","_il15","vert","_h3","_hl3","_ahole3","_i71","_il16","_vert","bs","_i72","_vert2","_i73","_vert3","_b5","_t","_z2","_bs2","_i74","_il17","_vert4","_h4","_hl4","_ahole4","_i75","_il18","_vert5","sidewalls","layeroffset","_j9","_k2","_s4","sl","slen1","slen2","f4","f3","addVertex","nextIndex","generateTopUV","addUV","generateSideWallUV","vector2","_i76","_i77","_face","_i78","_face2","_i79","_face3","buildLidFaces","_h5","_hl5","_ahole5","buildSideFaces","toJSON$1","geometryShapes","indexA","indexB","indexC","a_x","a_y","b_x","b_y","c_x","c_y","indexD","a_z","b_z","c_z","d_x","d_y","d_z","_PolyhedronGeometry2","IcosahedronGeometry","_super81","_this72","_PolyhedronGeometry3","OctahedronGeometry","_super82","_this73","_BufferGeometry9","RingGeometry","_super83","_this74","innerRadius","outerRadius","thetaSegments","phiSegments","radiusStep","_j10","thetaSegmentLevel","_i80","_segment","_BufferGeometry10","ShapeGeometry","_super84","_this75","indexOffset","shapeVertices","shapeHoles","_i81","shapeHole","_i82","_l8","_shapeHole","_i83","_l9","_vertex2","_i84","_l10","_toJSON","_BufferGeometry11","SphereGeometry","_super85","_this76","thetaEnd","grid","verticesRow","uOffset","_iy3","_ix3","_PolyhedronGeometry4","TetrahedronGeometry","_super86","_this77","_BufferGeometry12","TorusGeometry","_super87","_this78","tube","tubularSegments","arc","_j11","_i85","_BufferGeometry13","TorusKnotGeometry","_super88","_this79","P1","P2","B","T","N","calculatePositionOnCurve","_j12","_i86","cu","su","quOverP","cs","_BufferGeometry14","TubeGeometry","_super89","_this80","frames","P","generateBufferData","generateSegment","generateIndices","_BufferGeometry15","WireframeGeometry","_super90","_this81","edges","o","ol","isUniqueEdge","_position2","_i87","_l11","_j13","_index","_index2","hash1","hash2","Geometries","_Material8","_super91","_this82","_ShaderMaterial","RawShaderMaterial","_super92","_this83","_Material9","_super93","_this84","_MeshStandardMaterial","_super94","_this85","_sheen","_clearcoat","_iridescence","_transmission","_Material10","_super95","_this86","_Material11","_super96","_this87","_Material12","_super97","_this88","_Material13","_super98","_this89","_Material14","_super99","_this90","_LineBasicMaterial","_super100","_this91","arraySlice","isTypedArray","convertArray","forceClone","isView","DataView","getKeyframeOrder","times","sortedArray","nValues","srcOffset","flattenJSON","jsonKeys","valuePropertyName","AnimationUtils","subclip","sourceClip","startFrame","endFrame","fps","clip","tracks","track","valueSize","getValueSize","minStartTime","_i88","_i89","resetDuration","makeClipAdditive","targetClip","referenceFrame","referenceClip","numTracks","referenceTime","_loop","referenceTrack","referenceTrackType","ValueTypeName","targetTrack","find","referenceOffset","referenceValueSize","createInterpolant","isInterpolantFactoryMethodGLTFCubicSpline","targetOffset","targetValueSize","referenceValue","startIndex","endIndex","_startIndex","_endIndex","interpolant","_startIndex2","_endIndex2","evaluate","resultBuffer","numTimes","valueStart","multiplyQuaternionsFlat","valueEnd","blendMode","Interpolant","parameterPositions","sampleValues","sampleSize","_cachedIndex","settings","DefaultSettings_","pp","validate_interval","seek","linear_scan","forward_scan","giveUpAt","copySampleValue_","t1global","_giveUpAt","mid","intervalChanged_","interpolate_","_Interpolant","CubicInterpolant","_super101","_this92","_weightPrev","_offsetPrev","_weightNext","_offsetNext","endingStart","endingEnd","iPrev","iNext","tPrev","tNext","getSettings_","halfDt","o0","oP","oN","wP","wN","ppp","sP","sN","_Interpolant2","LinearInterpolant","_super102","offset1","offset0","weight1","weight0","_Interpolant3","DiscreteInterpolant","_super103","KeyframeTrack","interpolation","TimeBufferType","ValueBufferType","setInterpolation","DefaultInterpolation","factoryMethod","InterpolantFactoryMethodDiscrete","InterpolantFactoryMethodLinear","InterpolantFactoryMethodSmooth","timeOffset","timeScale","startTime","endTime","nKeys","valid","prevTime","currTime","_i90","_value7","smoothInterpolation","writeIndex","keep","offsetP","offsetN","_value8","readOffset","writeOffset","_j14","_readOffset","_writeOffset","_j15","TypedKeyframeTrack","trackType","_KeyframeTrack","BooleanKeyframeTrack","_super104","_KeyframeTrack2","ColorKeyframeTrack","_super105","_KeyframeTrack3","NumberKeyframeTrack","_super106","_Interpolant4","QuaternionLinearInterpolant","_super107","slerpFlat","_KeyframeTrack4","QuaternionKeyframeTrack","_super108","_KeyframeTrack5","StringKeyframeTrack","_super109","_KeyframeTrack6","VectorKeyframeTrack","_super110","AnimationClip","duration","validate","optimize","jsonTracks","frameTime","parseKeyframeTrack","clipTracks","morphTargetSequence","noLoop","numMorphTargets","objectOrClipArray","clipArray","animationToMorphTargets","pattern","parts","animationMorphTargets","clips","_name4","CreateFromMorphTargetSequence","addNonemptyTrack","trackName","animationKeys","propertyName","destTracks","clipName","hierarchyTracks","hierarchy","morphTargetNames","morphTargetName","_m","animationKey","boneName","typeName","getTrackTypeForValueTypeName","_context","Cache","files","file","LoadingManager","onLoad","onProgress","onError","isLoading","itemsLoaded","itemsTotal","urlModifier","handlers","onStart","itemStart","itemEnd","itemError","resolveURL","setURLModifier","addHandler","regex","loader","removeHandler","getHandler","global","DefaultLoadingManager","Loader","manager","crossOrigin","withCredentials","resourcePath","requestHeader","load","loading","_Error","HttpError","_super111","response","_this93","_Loader","FileLoader","_super112","_this94","setTimeout","req","Request","headers","Headers","credentials","mimeType","responseType","fetch","ReadableStream","body","getReader","callbacks","reader","contentLength","total","lengthComputable","loaded","stream","readData","read","_ref2","close","byteLength","ProgressEvent","enqueue","Response","statusText","arrayBuffer","blob","text","DOMParser","parseFromString","label","decoder","TextDecoder","decode","finally","_Loader2","AnimationLoader","_super113","setPath","setRequestHeader","setWithCredentials","_Loader3","CompressedTextureLoader","_super114","setResponseType","loadTexture","texDatas","mipmapCount","isCubemap","_i91","_Loader4","ImageLoader","_super115","onImageLoad","removeEventListeners","onImageError","_Loader5","CubeTextureLoader","_super116","urls","setCrossOrigin","_Loader6","DataTextureLoader","_super117","texData","_Loader7","TextureLoader","_super118","_Object3D11","Light","_super119","_this95","_Light","HemisphereLight","_super120","_this96","_projScreenMatrix$1","_lightPositionWorld$1","_lookTarget$1","LightShadow","_frameExtents","_viewportCount","_viewports","shadowMatrix","viewportIndex","_LightShadow","SpotLightShadow","_super121","_this97","isSpotLightShadow","_Light2","SpotLight","_super122","_this98","power","_lightPositionWorld","_lookTarget","_LightShadow2","PointLightShadow","_super123","_this99","_cubeDirections","_cubeUps","_Light3","PointLight","_super124","_this100","_LightShadow3","DirectionalLightShadow","_super125","_this101","isDirectionalLightShadow","_Light4","DirectionalLight","_super126","_this102","_Light5","AmbientLight","_super127","_this103","_Light6","RectAreaLight","_super128","_this104","SphericalHarmonics3","isSphericalHarmonics3","coeff","shBasis","_Light7","LightProbe","_super129","_this105","_Loader8","MaterialLoader","_super130","_this106","getTexture","createMaterialFromType","LoaderUtils","fromCharCode","decodeURIComponent","escape","lastIndexOf","_BufferGeometry16","InstancedBufferGeometry","_super131","_this107","_Loader9","BufferGeometryLoader","_super132","interleavedBufferMap","arrayBufferMap","getInterleavedBuffer","getArrayBuffer","typedArray","bufferAttribute","_typedArray","_key3","_attribute3","_bufferAttribute","_interleavedBuffer","_typedArray2","drawcalls","offsets","_i92","_Loader10","ObjectLoader","_super133","extractUrlBase","_loadAsync","_callee2","_context10","loadAsync","parseAsync","_x7","_x8","parseAnimations","parseShapes","parseGeometries","parseImages","parseTextures","parseMaterials","parseObject","parseSkeletons","bindSkeletons","hasImages","_parseAsync","_callee3","_context11","parseImagesAsync","_x9","bufferGeometryLoader","setTextures","deserializeImage","loadImage","imageArray","deserializedImage","_deserializedImage","_parseImagesAsync","_callee5","_deserializeImage","currentUrl","_deserializedImage2","_context13","_callee4","_url","_context12","_x11","_x10","parseConstant","TEXTURE_MAPPING","TEXTURE_WRAPPING","TEXTURE_FILTER","getGeometry","getMaterial","isInteger","objectAnimations","_i93","_Loader11","ImageBitmapLoader","_super134","_this108","isImageBitmapLoader","createImageBitmap","fetchOptions","res","colorSpaceConversion","imageBitmap","AudioContext","window","webkitAudioContext","_Loader12","AudioLoader","_super135","handleError","bufferCopy","decodeAudioData","audioBuffer","_LightProbe","HemisphereLightProbe","_super136","_this109","isHemisphereLightProbe","sky","ground","_LightProbe2","AmbientLightProbe","_super137","_this110","isAmbientLightProbe","_eyeRight","_eyeLeft","_projectionMatrix","StereoCamera","eyeSep","xmin","xmax","eyeSepHalf","eyeSepOnProjection","ymax","Clock","autoStart","oldTime","elapsedTime","running","now","getElapsedTime","getDelta","newTime","performance","Date","_position$1","_quaternion$1","_scale$1","_orientation$1","_Object3D12","AudioListener","_super138","_this111","gain","createGain","destination","timeDelta","_clock","setTargetAtTime","currentTime","positionX","linearRampToValueAtTime","positionY","positionZ","forwardX","forwardY","forwardZ","upX","upY","upZ","setPosition","setOrientation","_Object3D13","Audio","_super139","_this112","getInput","autoplay","detune","loop","loopStart","loopEnd","playbackRate","isPlaying","hasPlaybackControl","sourceType","_startedAt","_progress","_connected","filters","audioNode","mediaElement","createMediaElementSource","mediaStream","createMediaStreamSource","play","delay","createBufferSource","onended","onEnded","setDetune","setPlaybackRate","getOutput","getFilters","setFilters","_position","_quaternion","_scale","_orientation","_Audio","PositionalAudio","_super140","_this113","panner","createPanner","panningModel","refDistance","rolloffFactor","distanceModel","maxDistance","coneInnerAngle","coneOuterAngle","coneOuterGain","orientationX","orientationY","orientationZ","AudioAnalyser","audio","fftSize","analyser","createAnalyser","frequencyBinCount","getByteFrequencyData","getFrequencyData","PropertyMixer","binding","mixFunction","mixFunctionAdditive","setIdentity","_slerp","_slerpAdditive","_setAdditiveIdentityQuaternion","_workIndex","_select","_setAdditiveIdentityOther","_lerp","_lerpAdditive","_setAdditiveIdentityNumeric","_mixBufferRegion","_mixBufferRegionAdditive","_setIdentity","_origIndex","_addIndex","cumulativeWeight","cumulativeWeightAdditive","useCount","referenceCount","accuIndex","currentWeight","mix","weightAdditive","originalValueOffset","getValue","targetIndex","workOffset","_reservedRe","RegExp","_wordCharOrDot","_trackRe","_supportedObjectNames","Composite","targetGroup","optionalParsedPath","parsedPath","parseTrackName","_targetGroup","_bindings","subscribe_","firstValidIndex","nCachedObjects_","bindings","unbind","PropertyBinding","rootNode","node","findNode","nodeName","_getValue_unbound","_setValue_unbound","targetObject","resolvedProperty","propertyIndex","dest","targetArray","sourceArray","objectName","_getValue_unavailable","_setValue_unavailable","objectIndex","nodeProperty","versioning","Versioning","None","NeedsUpdate","MatrixWorldNeedsUpdate","bindingType","BindingType","Direct","ArrayElement","HasFromToArray","EntireArray","GetterByBindingType","SetterByBindingTypeAndVersioning","root","isAnimationObjectGroup","matches","results","lastDot","substring","getBoneByName","subTreeNode","searchNodeSubtree","childNode","_getValue_direct","_getValue_array","_getValue_arrayElement","_getValue_toArray","_setValue_direct","_setValue_direct_setNeedsUpdate","_setValue_direct_setMatrixWorldNeedsUpdate","_setValue_array","_setValue_array_setNeedsUpdate","_setValue_array_setMatrixWorldNeedsUpdate","_setValue_arrayElement","_setValue_arrayElement_setNeedsUpdate","_setValue_arrayElement_setMatrixWorldNeedsUpdate","_setValue_fromArray","_setValue_fromArray_setNeedsUpdate","_setValue_fromArray_setMatrixWorldNeedsUpdate","AnimationObjectGroup","_indicesByUUID","_paths","_parsedPaths","_bindingsIndicesByPath","stats","indicesByUUID","paths","parsedPaths","nBindings","knownObject","nObjects","nCachedObjects","firstActiveIndex","lastCachedObject","_j16","_m2","bindingsForPath","lastCached","lastCachedIndex","firstActiveObject","firstActive","lastObject","_lastIndex","_lastObject","_j17","_m4","_bindingsForPath","indicesByPath","lastBindingsIndex","lastBindings","AnimationAction","mixer","localRoot","_mixer","_clip","_localRoot","nTracks","interpolants","interpolantSettings","_interpolantSettings","_interpolants","_propertyBindings","_cacheIndex","_byClipCacheIndex","_timeScaleInterpolant","_weightInterpolant","_loopCount","_startTime","_effectiveTimeScale","_effectiveWeight","repetitions","paused","clampWhenFinished","zeroSlopeAtStart","zeroSlopeAtEnd","_activateAction","_deactivateAction","stopFading","stopWarping","_isActiveAction","_scheduleFading","fadeOutAction","warp","fadeOut","fadeIn","fadeInDuration","fadeOutDuration","startEndRatio","endStartRatio","fadeInAction","crossFadeFrom","weightInterpolant","_takeBackControlInterpolant","action","startTimeScale","endTimeScale","_lendControlInterpolant","timeScaleInterpolant","_root","deltaTime","timeDirection","timeRunning","_updateTimeScale","clipTime","_updateTime","_updateWeight","propertyMixers","accumulateAdditive","_j18","_m5","accumulate","interpolantValue","loopCount","pingPong","_setEndings","handle_stop","loopDelta","pending","atStart","atEnd","weightNow","weightThen","_controlInterpolantsResultBuffer","_EventDispatcher7","AnimationMixer","_super141","_this114","_initMemoryManager","_accuIndex","prototypeAction","rootUuid","bindingsByRoot","_bindingsByRootAndName","bindingsByName","_addInactiveBinding","clipUuid","actionsForClip","_actionsByClip","_bindAction","knownActions","_addInactiveAction","_lendBinding","saveOriginalState","_lendAction","restoreOriginalState","_takeBackBinding","_takeBackAction","_actions","_nActiveActions","_nActiveBindings","_controlInterpolants","_nActiveControlInterpolants","actions","controlInterpolants","actionsByClip","actionByRoot","lastInactiveAction","cacheIndex","knownActionsForClip","lastKnownAction","byClipCacheIndex","_removeInactiveBindingsForAction","_removeInactiveBinding","prevIndex","lastActiveIndex","firstInactiveAction","firstInactiveIndex","lastActiveAction","bindingByName","propBinding","lastInactiveBinding","firstInactiveBinding","lastActiveBinding","__cacheIndex","lastActiveInterpolant","optionalRoot","clipObject","findByName","existingAction","newAction","nActions","_update","_i94","timeInSeconds","actionsToRemove","_removeInactiveAction","Uniform","_EventDispatcher8","UniformsGroup","_super142","_this115","isUniformsGroup","uniformsSource","_InterleavedBuffer","InstancedInterleavedBuffer","_super143","_this116","GLBufferAttribute","Raycaster","coords","unproject","_intersectObject","ascSort","Spherical","other","setFromCartesianCoords","Cylindrical","_vector$4","Box2","isBox2","_startP","_startEnd","Line3","clampToLine","startEnd2","closestPointToPointParameter","_vector$3","_Object3D14","SpotLightHelper","_super144","_this117","cone","coneLength","coneWidth","_vector$2","_boneMatrix","_matrixWorldInv","_LineSegments","SkeletonHelper","_super145","_this118","getBoneList","boneList","colors","isSkeletonHelper","_Mesh3","PointLightHelper","_super146","sphereSize","_this119","_vector$1","_color1","_color2","_Object3D15","HemisphereLightHelper","_super147","_this120","rotateY","_LineSegments2","GridHelper","_super148","_this121","_LineSegments3","PolarGridHelper","_super149","_this122","sectors","rings","_i95","_color3","_v","_x12","_z3","_v1","_v2","_v3","_Object3D16","DirectionalLightHelper","_super150","_this123","lightPlane","targetLine","_vector","_camera","_LineSegments4","CameraHelper","_super151","_this124","pointMap","addLine","addPoint","colorFrustum","colorCone","colorUp","colorTarget","colorCross","setColors","colorAttribute","setPoint","_lineGeometry","_coneGeometry","_box","_LineSegments5","BoxHelper","_super152","_this125","setFromObject","_LineSegments6","Box3Helper","_super153","_this126","_Line3","PlaneHelper","_super154","_this127","positions2","_axis","_Object3D17","ArrowHelper","_super155","_this128","headLength","headWidth","setDirection","_LineSegments7","AxesHelper","_super156","_this129","xAxisColor","yAxisColor","zAxisColor","ShapePath","subPaths","currentPath","quadraticCurveTo","bezierCurveTo","splineThru","isCCW","isPointInsidePolygon","inPolygon","polyLen","edgeLowPt","edgeHighPt","edgeDx","edgeDy","perpEdge","solid","tmpPath","tmpShape","holesFirst","tmpPoints","tmpHoles","betterShapeHoles","newShapes","newShapeHoles","mainIdx","inSubpaths","_tmpPath","_tmpShape","toShapesNoHoles","ambiguous","toChange","sIdx","sLen","_sIdx","_sLen","sho","hIdx","ho","hole_unassigned","s2Idx","_i96","_BoxGeometry","BoxBufferGeometry","_super157","_CapsuleGeometry","CapsuleBufferGeometry","_super158","_CircleGeometry","CircleBufferGeometry","_super159","_ConeGeometry","ConeBufferGeometry","_super160","_CylinderGeometry2","CylinderBufferGeometry","_super161","_DodecahedronGeometry","DodecahedronBufferGeometry","_super162","_ExtrudeGeometry","ExtrudeBufferGeometry","_super163","_IcosahedronGeometry","IcosahedronBufferGeometry","_super164","_LatheGeometry2","LatheBufferGeometry","_super165","_OctahedronGeometry","OctahedronBufferGeometry","_super166","_PlaneGeometry","PlaneBufferGeometry","_super167","_PolyhedronGeometry5","PolyhedronBufferGeometry","_super168","_RingGeometry","RingBufferGeometry","_super169","_ShapeGeometry","ShapeBufferGeometry","_super170","_SphereGeometry","SphereBufferGeometry","_super171","_TetrahedronGeometry","TetrahedronBufferGeometry","_super172","_TorusGeometry","TorusBufferGeometry","_super173","_TorusKnotGeometry","TorusKnotBufferGeometry","_super174","_TubeGeometry","TubeBufferGeometry","_super175","revision","__THREE__","_slicedToArray","arr","_arr","_n","_d","unsupportedIterableToArray","classNames","classes","argType","inner","default","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","_extendStatics","__extends","__","_assign","__rest","propertyIsEnumerable","__decorate","decorators","decorate","__spreadArray","pack","ar","_inherits","subClass","superClass","_typeof","_possibleConstructorReturn","assertThisInitialized","_createSuper","Derived","Super","isNativeReflectConstruct","NewTarget","createNonEnumerableProperty","defineBuiltIn","defineGlobalProperty","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","sham","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","_toConsumableArray","arrayLikeToArray","_getPrototypeOf","ReactCSS","handleActive","handleHover","hover","_flattenNames2","_interopRequireDefault","_mergeClasses2","_autoprefix2","_hover3","_active2","_loop3","__esModule","_len","activations","activeNames","it","check","globalThis","DISPLAYNAME_PREFIX","INVALID_PROPS","removeNonHTMLProps","invalidProps","shouldMerge","reduce","curr","componentWillMount","getDerivedStateFromProps","componentWillReceiveProps","nextProps","prevState","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","Component","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","newApiName","componentDidUpdate","maybeSnapshot","snapshot","__suppressDeprecationWarning","isObject","argument","NATIVE_BIND","FunctionPrototype","uncurryThis","_defineProperty","ReferenceError","_taggedTemplateLiteral","strings","raw","interleave","interpolations","classCallCheck","createClass","_extends","inherits","possibleConstructorReturn","isPlainObject","EMPTY_ARRAY","EMPTY_OBJECT","isFunction","getComponentName","isStyledComponent","styledComponentId","SC_ATTR","process","REACT_APP_SC_ATTR","IS_BROWSER","DISABLE_SPEEDY","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","StyledComponentsError","SC_COMPONENT_ID","extractComps","maybeCSS","css","existingComponents","componentId","matchIndex","nextComp","cssFromDOM","COMMENT_REGEX","stylisSplitter","cascade","keyframe","compress","semicolon","stylis","parsingRules","returnRulesPlugin","parsedRules","parseRulesPlugin","rule","_componentId","_selector","_selectorRegexp","selfReferenceReplacer","use","_","selectors","splitByRules","stringifyRules","rules","selector","flatCSS","cssStr","getNonce","addNameForId","names","resetIdNames","hasNameForId","stringifyNames","str","sheetForTag","tag","sheet","ownerDocument","styleSheets","ownerNode","safeInsertRule","cssRule","maxIndex","cssRules","insertRule","makeTextMarker","addUpUntilIndex","sizes","totalUpToIndex","wrapAsHtmlTag","additionalAttrs","nonce","SC_VERSION_ATTR","Boolean","wrapAsElement","_props","createElement","dangerouslySetInnerHTML","__html","getIdsFromMarkersFactory","markers","makeTextNode","targetDocument","createTextNode","makeServerTag","namesArg","markersArg","insertMarker","cssForId","namesClone","cloneNames","markersClone","getIds","insertRules","removeRules","marker","sealed","styleTag","toElement","toHTML","makeTag","tagEl","forceServer","insertBefore","getImportRuleTag","el","appendChild","parentNode","nextSibling","makeStyleTag","extractImport","usedImportRuleTag","importRules","cssRulesSize","mayHaveImport","separator","appendData","newMarker","replaceChild","makeBrowserTag","cssText","insertIndex","injectedRules","isConnected","removalIndex","lowerBound","deleteRule","deleteRules","makeSpeedyTag","SPLIT_REGEX","MAX_SIZE","sheetRunningId","master","StyleSheet","head","importRuleTag","firstTag","tags","tagMap","deferred","rehydratedNames","ignoreRehydratedNames","capacity","clones","rehydrate","els","extracted","isStreamed","querySelectorAll","nodesSize","elNames","elNamesSize","textContent","extractedSize","_extracted$i","removeChild","ids","newTag","sealAllTags","lastEl","getTagForId","hasId","deferredInject","inject","toReactElements","Keyframes","styleSheet","getName","uppercasePattern","msPattern","hyphenateStyleName","isFalsish","chunk","objToCssArray","prevKey","executionContext","ruleSet","styles","murmurhash","charCodeAt","getAlphabeticChar","generateAlphabeticName","isStaticRules","attrs","some","hasFunctionObjectKey","_TYPE_STATICS","hasher","ComponentStyle","isStatic","generateAndInjectStyles","lastClassName","generateName","determineTheme","fallbackTheme","defaultProps","isDefaultTheme","theme","escapeRegex","dashesAtEnds","isTag","REACT_STATICS","childContextTypes","contextTypes","propTypes","KNOWN_STATICS","caller","callee","arity","TYPE_STATICS","$$typeof","defineProperty$1","getOwnPropertyNames","_Object$getOwnPropert","objectPrototype","arrayPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","ThemeContext","ThemeConsumer","Consumer","StyleSheetContext","_Component","ThemeProvider","renderInner","outerTheme","Provider","getTheme","ServerStyleSheet","masterSheet","seal","collectStyles","StyleSheetManager","getStyleTags","getStyleElement","interleaveWithNodeStream","readableStream","StyleSheetConsumer","identifiers","StyledComponent","renderOuter","forwardedComponent","componentStyle","_props$forwardedCompo","foldedComponentIds","generatedClassName","elementToBeCreated","as","isTargetTag","propsForElement","computedProps","ref","className","buildExecutionContext","attrDef","resolvedAttrDef","attrDefWasFn","attr","_props$forwardedCompo2","warnTooManyClasses","createStyledComponent","isTargetStyledComp","isClass","_options$displayName","generateDisplayName","_options$componentId","_ComponentStyle","_displayName","parentComponentId","nr","generateId","_options$ParentCompon","ParentComponent","_options$attrs","finalAttrs","WrappedStyledComponent","forwardRef","forwardedRef","withComponent","previousComponentId","optionsToCopy","objectWithoutProperties","newComponentId","_foldedDefaultProps","styled","constructWithOptions","componentConstructor","templateFunction","withConfig","config","GlobalStyle","createStyles","removeStyles","renderStyles","scCGSHMRCache","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","isCallable","tryToString","fails","anObject","isArrayIteratorMethod","lengthOfArrayLike","isPrototypeOf","getIterator","getIteratorMethod","iteratorClose","Result","stopped","ResultPrototype","unboundFunction","iterFn","that","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","condition","callFn","shared","uid","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","NAME","Prototype","NATIVE_ARRAY_BUFFER","DESCRIPTORS","classof","wellKnownSymbol","Int8ArrayPrototype","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQUIRED","TypedArrayConstructorsList","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","klass","aTypedArray","aTypedArrayConstructor","C","exportTypedArrayMethod","KEY","ARRAY","TypedArrayConstructor","error2","exportTypedArrayStaticMethod","ns","CLAMP_MIN_MAX","INPUT_WARN_LEFT_ELEMENT_LEFT_ICON_MUTEX","POPOVER_REQUIRES_TARGET","POPOVER_HAS_BACKDROP_INTERACTION","POPOVER_WARN_TOO_MANY_CHILDREN","POPOVER_WARN_DOUBLE_CONTENT","POPOVER_WARN_DOUBLE_TARGET","POPOVER_WARN_EMPTY_CONTENT","POPOVER_WARN_HAS_BACKDROP_INLINE","POPOVER_WARN_PLACEMENT_AND_POSITION_MUTEX","POPOVER_WARN_UNCONTROLLED_ONINTERACTION","PORTAL_CONTEXT_CLASS_NAME_STRING","RADIOGROUP_WARN_CHILDREN_OPTIONS_MUTEX","SLIDER_ZERO_STEP","SLIDER_ZERO_LABEL_STEP","MULTISLIDER_INVALID_CHILD","MULTISLIDER_WARN_LABEL_STEP_SIZE_LABEL_VALUES_MUTEX","SPINNER_WARN_CLASSES_SIZE","TOASTER_CREATE_NULL","TOASTER_WARN_INLINE","TOASTER_MAX_TOASTS_INVALID","toObject","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","O","Attributes","NS","BLUEPRINT_NAMESPACE","REACT_APP_BLUEPRINT_NAMESPACE","ACTIVE","ALIGN_LEFT","ALIGN_RIGHT","DARK","DISABLED","FILL","FIXED","FIXED_TOP","INLINE","INTERACTIVE","LARGE","LOADING","MINIMAL","OUTLINED","MULTILINE","ROUND","SMALL","VERTICAL","POSITION_TOP","positionClass","TOP","POSITION_BOTTOM","BOTTOM","POSITION_LEFT","POSITION_RIGHT","ELEVATION_0","elevationClass","ELEVATION_1","ELEVATION_2","TWO","ELEVATION_3","THREE","ELEVATION_4","FOUR","INTENT_PRIMARY","intentClass","PRIMARY","INTENT_SUCCESS","SUCCESS","INTENT_WARNING","WARNING","INTENT_DANGER","DANGER","FOCUS_DISABLED","UI_TEXT","RUNNING_TEXT","MONOSPACE_TEXT","TEXT_LARGE","TEXT_SMALL","TEXT_MUTED","TEXT_DISABLED","TEXT_OVERFLOW_ELLIPSIS","BLOCKQUOTE","CODE","CODE_BLOCK","HEADING","LIST","LIST_UNSTYLED","RTL","FIXED_POSITIONING_CONTAINING_BLOCK","ALERT","ALERT_BODY","ALERT_CONTENTS","ALERT_FOOTER","BREADCRUMB","BREADCRUMB_CURRENT","BREADCRUMBS","BREADCRUMBS_COLLAPSED","BUTTON","BUTTON_GROUP","BUTTON_SPINNER","BUTTON_TEXT","CALLOUT","CALLOUT_ICON","CARD","COLLAPSE","COLLAPSE_BODY","COLLAPSIBLE_LIST","CONTEXT_MENU","CONTEXT_MENU_POPOVER_TARGET","CONTROL_GROUP","DIALOG","DIALOG_CONTAINER","DIALOG_BODY","DIALOG_CLOSE_BUTTON","DIALOG_FOOTER","DIALOG_FOOTER_ACTIONS","DIALOG_HEADER","DIALOG_STEP","DIALOG_STEP_CONTAINER","DIALOG_STEP_TITLE","DIALOG_STEP_ICON","DIALOG_STEP_VIEWED","DIVIDER","DRAWER","DRAWER_BODY","DRAWER_FOOTER","DRAWER_HEADER","EDITABLE_TEXT","EDITABLE_TEXT_CONTENT","EDITABLE_TEXT_EDITING","EDITABLE_TEXT_INPUT","EDITABLE_TEXT_PLACEHOLDER","FLEX_EXPANDER","HTML_SELECT","SELECT","HTML_TABLE","HTML_TABLE_BORDERED","HTML_TABLE_CONDENSED","HTML_TABLE_STRIPED","INPUT","INPUT_GHOST","INPUT_GROUP","INPUT_LEFT_CONTAINER","INPUT_ACTION","CONTROL","CONTROL_INDICATOR","CONTROL_INDICATOR_CHILD","CHECKBOX","RADIO","SWITCH","SWITCH_INNER_TEXT","FILE_INPUT","FILE_INPUT_HAS_SELECTION","FILE_UPLOAD_INPUT","FILE_UPLOAD_INPUT_CUSTOM_TEXT","KEY_COMBO","MODIFIER_KEY","HOTKEY","HOTKEY_LABEL","HOTKEY_COLUMN","HOTKEY_DIALOG","LABEL","FORM_GROUP","FORM_CONTENT","FORM_HELPER_TEXT","FORM_GROUP_SUB_LABEL","MENU","MENU_ITEM","MENU_ITEM_LABEL","MENU_SUBMENU","MENU_DIVIDER","MENU_HEADER","MULTISTEP_DIALOG","MULTISTEP_DIALOG_PANELS","MULTISTEP_DIALOG_LEFT_PANEL","MULTISTEP_DIALOG_RIGHT_PANEL","MULTISTEP_DIALOG_FOOTER","NAVBAR","NAVBAR_GROUP","NAVBAR_HEADING","NAVBAR_DIVIDER","NON_IDEAL_STATE","NON_IDEAL_STATE_VISUAL","NUMERIC_INPUT","OVERFLOW_LIST","OVERFLOW_LIST_SPACER","OVERLAY","OVERLAY_BACKDROP","OVERLAY_CONTAINER","OVERLAY_CONTENT","OVERLAY_INLINE","OVERLAY_OPEN","OVERLAY_SCROLL_CONTAINER","OVERLAY_START_FOCUS_TRAP","OVERLAY_END_FOCUS_TRAP","PANEL_STACK","PANEL_STACK_HEADER","PANEL_STACK_HEADER_BACK","PANEL_STACK_VIEW","PANEL_STACK2","PANEL_STACK2_HEADER","PANEL_STACK2_HEADER_BACK","PANEL_STACK2_VIEW","POPOVER","POPOVER_ARROW","POPOVER_BACKDROP","POPOVER_CAPTURING_DISMISS","POPOVER_CONTENT","POPOVER_CONTENT_SIZING","POPOVER_DISMISS","POPOVER_DISMISS_OVERRIDE","POPOVER_OPEN","POPOVER_OUT_OF_BOUNDARIES","POPOVER_TARGET","POPOVER_WRAPPER","TRANSITION_CONTAINER","PROGRESS_BAR","PROGRESS_METER","PROGRESS_NO_STRIPES","PROGRESS_NO_ANIMATION","PORTAL","SKELETON","SLIDER","SLIDER_AXIS","SLIDER_HANDLE","SLIDER_LABEL","SLIDER_TRACK","SLIDER_PROGRESS","START","END","SPINNER","SPINNER_ANIMATION","SPINNER_HEAD","SPINNER_NO_SPIN","SPINNER_TRACK","TAB","TAB_INDICATOR","TAB_INDICATOR_WRAPPER","TAB_LIST","TAB_PANEL","TABS","TAG","TAG_REMOVE","TAG_INPUT","TAG_INPUT_ICON","TAG_INPUT_VALUES","TOAST","TOAST_CONTAINER","TOAST_MESSAGE","TOOLTIP","TOOLTIP_INDICATOR","TREE","TREE_NODE","TREE_NODE_CARET","TREE_NODE_CARET_CLOSED","TREE_NODE_CARET_NONE","TREE_NODE_CARET_OPEN","TREE_NODE_CONTENT","TREE_NODE_EXPANDED","TREE_NODE_ICON","TREE_NODE_LABEL","TREE_NODE_LIST","TREE_NODE_SECONDARY_LABEL","TREE_NODE_SELECTED","TREE_ROOT","ICON","ICON_STANDARD","ICON_LARGE","getClassNamespace","alignmentClass","alignment","elevation","iconClass","iconName","intent","aFunction","namespace","v4","requireObjectCoercible","aCallable","alias","freeSelf","_construct","Parent","toLength","_createForOfIteratorHelper","F","normalCompletion","didErr","_e2","Position","BOTTOM_LEFT","BOTTOM_RIGHT","LEFT_BOTTOM","LEFT_TOP","RIGHT_BOTTOM","RIGHT_TOP","TOP_LEFT","TOP_RIGHT","makeBuiltIn","simple","unsafe","_assertThisInitialized","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","_objectWithoutPropertiesLoose","_setPrototypeOf","OutboundLink","_getPrototypeOf2","_this$props","eventLabel","onClick","trackerNames","eventMeta","sameTarget","normalClick","ctrlKey","shiftKey","metaKey","button","trackLink","href","_this$props2","_objectSpread","handleClick","rel","isRequired","func","arrayOf","smallWords","titleCase","mightBeEmail","title","search","substr","gaCalls","ga","resetCalls","arr2","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_isNotBrowser","_debug","_titleCase","_testMode","_alwaysSendToDefaultTracker","_window","_format","_gaCommand","command","_initialize","gaTrackingID","useExistingGa","gaOptions","initialize","configsOrTrackingId","testMode","standardImplementation","gaAddress","getElementsByTagName","loadGA","alwaysSendToDefaultTracker","trackingId","_len2","fieldsObject","send","fieldObject","pageview","rawPath","extraFields","hitType","page","extraLog","modalview","rawModalName","modalName","timing","category","variable","timingCategory","timingVar","timingValue","timingLabel","nonInteraction","transport","eventCategory","eventAction","eventValue","_ref3","fatal","exDescription","exFatal","require","rawName","trackerName","requireString","execute","pluginName","payload","actionType","outboundLink","hitCallback","safetyCallbackCalled","clearTimeout","plugin","testModeAPI","origTrackLink","propertyIsEnumerableModule","createPropertyDescriptor","toIndexedObject","wrappedWellKnownSymbolModule","isClient","on","off","IndexedObject","arraySpeciesCreate","createMethod","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","$this","callbackfn","specificCreate","boundFunction","every","findIndex","filterReject","safeInvokeMember","member","isDarkTheme","Element","closest","durl","URL","createObjectURL","Blob","revokeObjectURL","encodeURI","Worker","u8","u16","u32","fleb","fdeb","clim","freb","eb","fl","revfl","fd","rev","hMap","cd","mb","co","le","rvb","sv","r_1","flt","fdt","flrm","fdrm","bits16","shft","slc","inflt","dat","buf","st","noBuf","noSt","cbuf","bl","nbuf","final","pos","bt","lm","dm","lbt","dbt","tbts","hLit","hcLen","tl","ldt","clt","clb","clbmsk","clm","lt","lms","dms","lpos","dsym","et","zlv","unzlibSync","out","td","findSpan","U","calcBasisFunctions","span","saved","rv","lv","temp","calcBSplinePoint","Nj","wNj","calcKoverI","nom","calcNURBSDerivatives","nd","Pders","Aders","wders","CK","calcRationalCurveDerivatives","du","nders","zeroArr","ders","ndu","_r","_r2","rk","pk","j2","calcBasisFunctionDerivatives","Pw","_point","calcBSplineDerivatives","fbxTree","connections","sceneGraph","NURBSCurve","degree","knots","controlPoints","startKnot","endKnot","hpoint","FBXLoader","FBXBuffer","CORRECT","convertArrayBufferToString","isFbxFormatBinary","FBXText","cursor","isFbxFormatASCII","getFbxVersion","textureLoader","FBXTreeParser","parseConnections","deformers","parseDeformers","geometryMap","parseScene","connectionMap","Connections","rawConnection","fromID","toID","relationship","parents","parentRelationship","ID","childRelationship","blobs","Objects","videoNodes","Video","nodeID","videoNode","RelativeFilename","Filename","arrayBufferContent","Content","base64Content","parseImage","filename","content","fileName","textureMap","textureNodes","parseTexture","textureNode","attrName","wrapModeU","WrapModeU","wrapModeV","WrapModeV","valueU","valueV","Scaling","Translation","FileName","materialMap","materialNodes","parseMaterial","materialNode","ShadingModel","parseParameters","BumpFactor","Diffuse","DiffuseColor","DisplacementFactor","Emissive","EmissiveColor","EmissiveFactor","Opacity","ReflectionFactor","Shininess","Specular","SpecularColor","LayeredTexture","DeformerNodes","Deformer","deformerNode","relationships","attrType","parseSkeleton","geometryID","rawTargets","parseMorphTargets","deformerNodes","rawBones","boneNode","rawBone","transformLink","TransformLink","Indexes","Weights","rawMorphTargets","morphTargetNode","rawMorphTarget","initialWeight","DeformPercent","fullWeights","FullWeights","geoID","modelMap","parseModels","modelNodes","Model","model","modelNode","setLookAtProperties","connection","bindSkeleton","createAmbientLight","transformData","parentMatrix","parentMatrixWorld","generateTransform","buildSkeleton","createCamera","createLight","createMesh","createCurve","sanitizeNodeName","getTransformData","subBone","cameraAttribute","NodeAttribute","CameraProjectionType","nearClippingPlane","NearPlane","farClippingPlane","FarPlane","innerWidth","innerHeight","AspectWidth","AspectHeight","FieldOfView","FocalLength","setFocalLength","lightAttribute","LightType","Intensity","CastLightOnObject","FarAttenuationEnd","EnableFarAttenuation","InnerAngle","OuterAngle","CastShadows","FBX_Deformer","normalizeSkinWeights","geo","inheritType","InheritType","eulerOrder","getEulerOrder","RotationOrder","translation","Lcl_Translation","preRotation","PreRotation","Lcl_Rotation","postRotation","PostRotation","Lcl_Scaling","scalingOffset","ScalingOffset","scalingPivot","ScalingPivot","rotationOffset","RotationOffset","rotationPivot","RotationPivot","lookAtTarget","bindMatrices","parsePoseNodes","_loop2","geoConnParent","BindPoseNode","Pose","NbPoseNodes","poseNodes","PoseNode","poseNode","Matrix","GlobalSettings","ambientColor","AmbientColor","GeometryParser","negativeMaterialIndices","geoNodes","Geometry","parseGeometry","geoNode","parseMeshGeometry","parseNurbsGeometry","GeometricTranslation","GeometricRotation","GeometricScaling","genGeometry","preTransform","geoInfo","parseGeoNode","genBuffers","weightsIndices","vertexWeights","mappingType","prevMaterialIndex","currentIndex","lastGroup","addMorphTargets","vertexPositions","Vertices","vertexIndices","PolygonVertexIndex","LayerElementColor","parseVertexColors","LayerElementMaterial","parseMaterialIndices","LayerElementNormal","parseNormals","LayerElementUV","UV","parseUVs","weightTable","polygonIndex","faceLength","displayedWeightsWarning","facePositionIndexes","faceNormals","faceColors","faceUVs","faceWeights","faceWeightIndices","vertexIndex","polygonVertexIndex","endOfFace","weightIndices","getData","wt","wIndex","Weight","weightIndex","comparedWeight","comparedWeightIndex","comparedWeightArray","genFace","parentGeo","parentGeoNode","rawTarget","morphGeoNode","genMorphGeometry","morphPositionsSparse","morphPositions","morphIndex","morphGeoInfo","morphBuffers","NormalNode","MappingInformationType","referenceType","ReferenceInformationType","Normals","indexBuffer","NormalIndex","NormalsIndex","dataSize","UVNode","UVIndex","ColorNode","Colors","ColorIndex","MaterialNode","materialIndexBuffer","Materials","materialIndices","Order","KnotVector","pointsValues","Form","AnimationParser","animationClips","rawClips","parseClips","rawClip","addClip","AnimationCurve","curveNodesMap","parseAnimationCurveNodes","parseAnimationCurves","layersMap","parseAnimationLayers","parseAnimStacks","rawCurveNodes","AnimationCurveNode","rawCurveNode","curveNode","rawCurves","animationCurve","KeyTime","convertFBXTimeToSeconds","KeyValueFloat","animationCurveID","animationCurveRelationship","rawLayers","AnimationLayer","_loop4","layerCurveNodes","modelID","rawModel","modelName","initialPosition","initialRotation","initialScale","deformerID","morpherID","_modelID","_rawModel","_node","morphName","rawStacks","AnimationStack","rawTracks","generateTracks","positionTrack","generateVectorTrack","R","rotationTrack","generateRotationTrack","S","scaleTrack","morphTrack","generateMorphTrack","initialValue","getTimesForAllAxes","getKeyframeTrackValues","interpolateRotations","quaternionValues","morphNum","getObjectByName","lastValue","prevValue","xIndex","yIndex","zIndex","xValue","yValue","zValue","valuesSpan","absoluteSpan","numSubIntervals","nextValue","initialTime","interval","nextTime","interpolatedTimes","interpolatedValues","TextParser","nodeStack","currentIndent","currentProp","currentPropName","allNodes","matchComment","matchEmpty","matchBeginning","matchProperty","parseNodeBegin","parseNodeProperty","popStack","parseNodePropertyContinued","nodeAttrs","parseNodeAttr","currentNode","getCurrentNode","pushStack","contentLine","propName","propValue","connProps","rest","append","elem","setCurrentProp","parseNumberArray","parseNodeSpecialProperty","prop","innerPropName","innerPropType1","innerPropType2","innerPropFlag","innerPropValue","getPrevNode","BinaryParser","skip","getUint32","endOfContent","parseNode","getOffset","endOffset","getUint64","numProperties","nameLen","getUint8","getString","propertyList","parseProperty","singleProperty","subNode","parseSubNode","getBoolean","getFloat64","getFloat32","getInt32","getInt64","getInt16","arrayLength","compressedLength","getBooleanArray","getFloat64Array","getFloat32Array","getInt32Array","getInt64Array","reader2","BinaryReader","littleEndian","dv","_textDecoder","nullByte","FBXTree","dataArray","infoObject","tempEuler","tempVec","lTranslationM","lPreRotationM","lRotationM","lPostRotationM","lScalingM","lScalingPivotM","lScalingOffsetM","lRotationOffsetM","lRotationPivotM","lParentGX","lParentLX","lGlobalT","makeRotationFromEuler","_array2","lLRM","lParentGRM","lParentTM","lParentGRSM","lParentGSM","lLSM","lGlobalRS","lParentLSM_inv","lParentGSM_noLocal","lRotationPivotM_inv","lScalingPivotM_inv","lTransform","lLocalTWithAllPivotAndOffsetInfo","lGlobalTranslation","enums","NATIVE_WEAK_MAP","sharedKey","hiddenKeys","store","wmget","wmhas","wmset","facade","STATE","enforce","getterFor","rgb","xyz","2","A","D50","D55","D65","D75","F2","F7","F11","E","10","whitepoint","_xyz","white","useDebounce_1","useDebounce","useDebouncedCallback_1","useDebouncedCallback","setRef","refTarget","isRefCallback","getRef","refHandler","refTargetParent","refTargetKey","refProp","aConstructor","SPECIES","defaultConstructor","quot","METHOD_NAME","isUndefined","isArrayBuffer","isBuffer","isFormData","FormData","isArrayBufferView","isString","isNumber","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","product","assignValue","deepMerge","extend","thisArg","ManagerReferenceNodeContext","ManagerReferenceNodeSetterContext","_React$Component","Manager","newReferenceNode","referenceNode","_proto","componentWillUnmount","setReferenceNode","unwrapArray","safeInvoke","InnerReference","innerRef","Reference","initialStyle","pointerEvents","initialArrowStyle","InnerPopper","placement","popperNode","updatePopperInstance","arrowNode","eventsEnabled","positionFixed","modifiers","arrow","applyStyle","updateStateModifier","popper","arrowStyles","hide","popperInstance","destroyPopperInstance","referenceElement","getOptions","scheduleUpdate","strict","enableEventListeners","disableEventListeners","setPopperNode","getPopperStyle","getPopperPlacement","outOfBoundaries","getOutOfBoundariesState","arrowProps","setArrowNode","getArrowStyle","placements","Popper","cannotCreatePortal","REACT_CONTEXT_TYPES","blueprintPortalClassName","Portal","hasMounted","portalElement","componentDidMount","createContainerElement","onChildrenMount","unstableRenderNoPortal","classList","maybeAddClass","ResizeObserverBoxOptions","Overlay","isAutoFocusing","hasEverOpened","isOpen","containerElement","startFocusTrapElement","endFocusTrapElement","refHandlers","endFocusTrap","startFocusTrap","maybeRenderChild","decoratedChild","onOpening","onOpened","onClosing","transitionDuration","transitionName","CSSTransitionImplicit","onEntering","onEntered","onExiting","onExited","handleTransitionExited","timeout","addEndListener","handleTransitionAddEnd","handleStartFocusTrapElementFocus","enforceFocus","relatedTarget","contains","preventScroll","handleStartFocusTrapElementKeyDown","which","lastFocusableElement","getKeyboardFocusableElements","handleEndFocusTrapElementFocus","firstFocusableElement","shouldReturnFocusOnClose","lastActiveElementBeforeOpened","HTMLElement","onClosed","handleBackdropMouseDown","backdropProps","canOutsideClickClose","onClose","bringFocusInsideOverlay","onMouseDown","handleDocumentClick","eventTarget","composed","composedPath","stackIndex","Overlay_1","openStack","isClickInThisOverlayOrDescendant","isSameNode","handleDocumentFocus","stopImmediatePropagation","handleKeyDown","canEscapeKeyClose","ESCAPE","lazy","autoFocus","usePortal","childrenWithTransitions","maybeBackdrop","maybeRenderBackdrop","renderDummyElement","onFocus","onKeyDown","containerClasses","transitionGroup","appear","component","portalClassName","portalContainer","overlayWillOpen","overlayWillClose","activeElement","backdropClassName","hasBackdrop","unmountOnExit","tabIndex","lastOpenedOverlay","getLastOpened","resizeObservers","msg","trigger","inlineSize","DOMRectReadOnly","fromRect","rectangle","isSVG","SVGElement","isHidden","getBBox","offsetWidth","offsetHeight","getClientRects","isElement","defaultView","scrollRegexp","verticalRegexp","IE","parseDimension","pixel","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","forceRecalculation","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","horizontalPadding","verticalPadding","horizontalBorderArea","borderLeftWidth","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","devicePixelRatio","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","shallowestDepth","ro","activeTargets","entries","ot","targetDepth","lastReportedSize","observer","callbacks_1","skippedTargets","observationTargets","isActive","ErrorEvent","createEvent","initEvent","deliverResizeLoopError","queueMicroTask","toggle_1","el_1","MutationObserver","observe","characterData","watching","observerConfig","childList","subtree","events","scheduled","scheduler","Scheduler","schedule","run","until","elementsHaveResized","updateCount","ResizeObservation","CONTENT_BOX","tagName","isReplacedElement","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","ResizeObserverController","firstObservation","unobserve","lastObservation","ResizeObserver","ResizeSensor","onResize","only","observeElement","observeParents","getElement","parent_1","parentElement","Tooltip","popover","popoverClassName","restProps","minimal","interactionKind","PopoverInteractionKind","HOVER_TARGET_ONLY","reposition","hoverCloseDelay","hoverOpenDelay","getPosition","isVerticalPosition","getOppositePosition","getAlignment","getTransformOrigin","arrowElement","arrowSizeShift","arrowOffsetModifier","arrowSize","isVertical","offsetSide","arrowOffsetSize","getArrowAngle","viewBox","positionToPlacement","assertNever","contextMenuElement","contextMenu","CLICK","CLICK_TARGET_ONLY","HOVER","Popover","popoverRef","popoverElement","targetElement","hasDarkParent","getIsOpen","transformOrigin","isMouseInTargetOrPopover","lostFocusOnSamePage","handlePopoverRef","handleTargetRef","popperScheduleUpdate","renderPopover","popperProps","popoverHandlers","handlePopoverClick","onMouseEnter","handleMouseEnter","onMouseLeave","handleMouseLeave","popoverClasses","inheritDarkTheme","captureDismiss","isArrowEnabled","understandChildren","referenceProps","openOnTargetFocus","targetClassName","targetProps","isControlled","isHoverInteractionKind","targetTagName","finalTargetProps","onBlur","handleTargetBlur","handleTargetFocus","handleTargetClick","rawTabIndex","clonedTarget","disabled","isElementInPopover","setOpenState","eventPopover","isEventFromSelf","isEventPopoverCapturing","dismissElement","shouldDismiss","isDisabled","handleOverlayClose","nativeEvent","KeyboardEvent","updatePopoverState","wrapperTagName","isContentEmpty","wrapperClasses","defaultAutoFocus","wrapper","getPopperModifiers","updateDarkParent","nextIsOpen","validateProps","onInteraction","childrenCount","hasContentProp","hasTargetProp","contentProp","targetProp","targetChild","contentChild","defaultIsOpen","flip","preventOverflow","arrowOffset","boundariesElement","cancelOpenTimeout","POPPER_MODIFIERS","ContextMenu","cancelContextMenu","handleBackdropContextMenu","persist","newTarget","elementFromPoint","clientX","clientY","newEventInit","MouseEvent","handlePopoverInteraction","nextOpenState","onContextMenu","menu","show","IconSize","IconSvgPaths16","IconSvgPaths20","SpinnerSize","Icon","icon","htmlTitle","iconSize","STANDARD","htmlprops","pixelGridSize","renderSvgPaths","pathsSize","pathStrings","fillRule","SIZE_STANDARD","SIZE_LARGE","AnimationStates","Spinner","strokeWidth","strokeOffset","role","getViewBox","strokeDasharray","strokeDashoffset","viewBoxX","viewBoxWidth","SIZE_SMALL","AbstractButton","isKeyboardClick","currentKeyDown","handleKeyUp","buttonRef","click","onKeyUp","handleBlur","getCommonButtonProps","active","alignText","large","outlined","small","renderChildren","rightIcon","maybeHasText","isReactNodeEmpty","Button","handleRef","elementRef","AnchorButton","commonProps","ButtonGroup","vertical","htmlProps","buttonGroupClasses","Card","interactive","Collapse","animationState","OPEN","CLOSED","heightWhenOpen","contents","contentsRefHandler","OPENING","OPEN_START","CLOSING","CLOSING_START","isContentVisible","shouldRenderChildren","keepChildrenMounted","displayWithTransform","isAutoHeight","containerStyle","transition","contentsStyle","onDelayedStateChange","clientHeight_1","browser","isEdge","isInternetExplorer","isWebkit","Browser","EditableText","inputElement","valueElement","spanElement","input","_input","alwaysRenderInput","isEditing","supportsSelection","inputSupportsSelection","length_1","setSelectionRange","selectAllOnFocus","scrollLeft","scrollWidth","cancelEditing","onChange","onCancel","toggleEditing","onConfirm","handleFocus","length_2","handleTextChange","handleKeyEvent","altKey","hasModifierKey","ENTER","confirmOnEnterKey","multiline","selectionEnd","selectionStart","before_1","after_1","insertAtCaret","defaultValue","inputHeight","inputWidth","contentStyle","contentId","hasValue","lineHeight","minWidth","shouldHideContents","spanProps","renderInput","updateInputDimensions","newState","onEdit","maxLines","minLines","maxLength","parentElement_1","scrollHeight_1","scrollHeight","getLineHeight","fontSize","getFontSize","innerHTML","singleLineHeight","doubleLineHeight","alignIndicator","indicatorChildren","inline","inputRef","labelElement","typeClassName","Switch","innerLabelChecked","innerLabel","controlProps","switchLabels","Radio","Checkbox","indeterminate","defaultIndeterminate","handleInputRef","handleChange","evt","updateIndeterminate","FormGroup","contentClassName","helperText","labelFor","labelInfo","subLabel","getClassName","htmlFor","AsyncControllableInput","hasPendingUpdate","isComposing","cancelPendingCompositionEnd","handleCompositionStart","onCompositionStart","handleCompositionEnd","AsyncControllableInput_1","COMPOSITION_END_DELAY","onCompositionEnd","InputGroup","leftElement","rightElement","asyncControl","inputGroupClasses","leftElementWidth","rightElementWidth","inputProps","maybeRenderLeftElement","maybeRenderRightElement","updateInputWidth","leftIcon","counter","nextName","RadioGroup","autoGroupName","renderOptions","getRadioProps","option","optionProps","checked","selectedValue","TextArea","textareaElement","growVertically","rootClasses","htmlElement","tagClassName","H1","H3","H4","H5","H6","MenuDivider","Text","isContentOverflowing","textRef","ellipsize","MenuItem","labelClassName","shouldDismissPopover","popoverProps","textClassName","hasSubmenu","anchorClasses","DISABLED_PROPS","maybeRenderLabel","liClasses","maybeRenderPopover","SUBMENU_POPOVER_MODIFIERS","padding","Menu","ulRef","Divider","Item","ProgressBar","animate","stripes","percent","formatPercentage","ratio","fillValues","fillValue","inc","NUMBER_PROPS","Handle","isMoving","handleElement","beginHandleMovement","handleHandleMovement","endHandleMovement","changeValue","clientToValue","mouseEventClientOffset","beginHandleTouchMovement","handleHandleTouchMovement","endHandleTouchMovement","touchEventClientOffset","getStyleProperties","tickSizeRatio","handleMidpoint","getHandleMidpointAndOffset","offsetCalc","handleMoveEndedAt","clientPixel","removeDocumentEventListeners","finalValue","onRelease","handleMovedTo","stepSize","ARROW_DOWN","ARROW_LEFT","ARROW_UP","ARROW_RIGHT","onTouchStart","tickSize","pixelDelta","getHandleElementCenterPixel","touch","changedTouches","NUMBER_PROPS_1","handleOffset","useOppositeDimension","handleRect","getBoundingClientRect","sizeKey","HandleType","HandleInteractionKind","MultiSliderHandle","MultiSlider","labelPrecision","getLabelPrecision","handleElements","trackElement","addHandleRef","maybeHandleTrackClick","canHandleTrackEvent","foundHandle","nearestHandleForValue","maybeHandleTrackTouch","getHandlerForIndex","getNewHandleValues","newValues","handleProps","getSortedInteractiveHandleProps","oldValues","handleRelease","MultiSlider_1","prevHandleProps","labelRenderer","renderTracks","renderLabels","renderHandles","updateTickSize","labelStepSize","labelValues","anyInvalidChildren","formatLabel","isHandleTooltip","getLabelValues","offsetPercentage","trackStops","getSortedHandleProps","previous","handles","renderTrackFill","getOffsetRatio","startRatio","endRatio","startOffset","orientationStyle","trackStyleAfter","trackStyleBefore","getTrackIntent","argFn","minValue","minArg","argMin","offsetValue","handleValue","oldIndex","newIndex","lockIndex","findFirstLockedHandleIndex","showTrackFill","intentAfter","intentBefore","defaultTrackIntent","trackSize","defaultSliderProps","childProps","predicate","maybeHandles","Slider","Tab","panel","TabTitle","parentId","selected","generateTabPanelId","generateTabTitleId","tabId","TAB_SELECTOR","Tabs","tablistElement","tablist","tabElement","focusedElement","enabledTabElements","getTabElements","focusedIndex","getKeyCodeDirection","handleKeyPress","targetTabElement","handleTabClick","newTabId","selectedTabId","renderTabPanel","tab","panelClassName","renderTabTitle","isTabElement","getInitialSelectedTabId","indicatorWrapperStyle","tabTitles","tabPanels","getTabChildren","renderActiveTabPanelOnly","tabIndicator","tabListClasses","onKeyPress","moveSelectionIndicator","getTabChildrenProps","defaultSelectedTabId","tabs","isEventKeyCode","subselector","tabIdSelector","selectedTabElement","querySelector","offsetLeft","offsetTop","Expander","codes","Tag","onRemoveClick","onRemove","isRemovable","tagClasses","isLarge","removeButton","Toast","handleActionClick","triggerDismiss","handleCloseClick","startTimeout","clearTimeouts","maybeRenderActionButton","didTimeoutExpire","onDismiss","Toaster","toasts","toastId","renderToast","toast","getDismissHandler","timeoutExpired","dismiss","handleClose","Toaster_1","toaster","maxToasts","dismissIfAtLimit","createToastOptions","isNewToastKey","matchesKey","getToasts","getPositionClasses","canEscapeKeyClear","trunc","number","Elevation","Intent","toIntegerOrInfinity","definePropertyModule","CORRECT_PROTOTYPE_GETTER","IE_PROTO","webpackPolyfill","deprecate","stringSlice","freeGlobal","activeXDocument","definePropertiesModule","enumBugKeys","html","documentCreateElement","EmptyConstructor","scriptTag","LT","NullProtoObjectViaActiveX","write","parentWindow","_NullProtoObject","ActiveXObject","domain","iframeDocument","iframe","contentWindow","open","NullProtoObjectViaIFrame","Properties","$","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","ArrayBufferModule","anInstance","isIntegralNumber","toIndex","toOffset","isSymbol","typedArrayFrom","setSpecies","getOwnPropertyDescriptorModule","InternalStateModule","inheritIfRequired","getInternalState","setInternalState","nativeDefineProperty","nativeGetOwnPropertyDescriptor","RangeError","ArrayBufferPrototype","fromList","addGetter","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","CLAMPED","BYTES","CONSTRUCTOR_NAME","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","exported","addElement","byteOffset","getter","setter","dummy","typedArrayOffset","$length","$len","FORCED","img","fetchBlobCallback","isInstanceOf","onerror","onload","hasMetaOption","fetchBlob","readFile","urlAPI","webkitURL","revokeHelper","noRevoke","originalWidth","naturalWidth","originalHeight","naturalHeight","FileReader","fileReader","isCommonjs","fnMap","ret","eventNameMap","change","fullscreenchange","fullscreenerror","screenfull","request","onFullScreenEntered","returnPromise","documentElement","requestFullscreen","exit","isFullscreen","onFullScreenExit","exitFullscreen","toggle","onchange","eventName","fullscreenElement","isEnabled","fullscreenEnabled","UNSCOPABLES","ArrayPrototype","Deno","versions","v8","getBuiltIn","toPrimitive","integer","bitmap","internalObjectKeys","aPossiblePrototype","CORRECT_SETTER","proto","propertyKey","TYPED_OK","_has","sources","shrinkBuf","fnTyped","arraySet","src_offs","dest_offs","flattenChunks","fnUntyped","setTyped","Buf8","Buf16","Buf32","pako","V","getOwnPropertyNamesModule","getOwnPropertyNamesExternalModule","isExtensible","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","fastKey","getWeakData","onFreeze","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","getRawTag","objectToString","symToStringTag","baseIsNative","safeInvokeOrValue","funcOrValue","freeExports","nodeType","freeModule","Buffer","IS_PURE","copyright","license","V8_VERSION","symbol","getDescriptor","EXISTS","PROPER","CONFIGURABLE","usingIterator","whitespaces","whitespace","ltrim","rtrim","__webpack_amd_options__","_unsupportedIterableToArray","minLen","addToUnscopables","Iterators","defineIterator","iterated","kind","Arguments","postfix","toAbsoluteIndex","IS_INCLUDES","fromIndex","includes","replacement","feature","detection","POLYFILL","NATIVE","createProperty","fin","preventExtensions","getMethod","ITERATOR","inspectSource","noop","empty","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","called","arraySpeciesConstructor","originalArray","foo","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","nextTick","env","argv","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","cwd","chdir","umask","NativePromiseConstructor","NativePromisePrototype","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","promise","FakePromise","CONSTRUCTOR","REJECTION_EVENT","PromiseCapability","$$resolve","$$reject","hasSymbols","toStr","origDefineProperty","hasPropertyDescriptors","supportsDescriptors","predicates","arrayLikeKeys","baseKeys","isArrayLike","Alignment","CENTER","preventScrollOnSwipe","rotationAngle","trackMouse","trackTouch","swipeDuration","touchEventOptions","passive","initialState","first","initial","swiping","rotateXYByAngle","angleInRadians","useSwipeable","defaultKey","transientState","transientProps","previousProps","_React$useMemo","handlerProps","isTouch","touches","onMove","onUp","onTouchStartOrOnMouseDown","timeStamp","_rotateXYByAngle","_rotateXYByAngle2","deltaX","deltaY","absX","absY","velocity","vxvy","getDirection","eventData","onSwipeStart","onSwiping","cancelablePageSwipe","onSwiped","cancelable","onEnd","onSwipedDir","onTap","onTouchEndOrOnMouseUp","cleanUpMouse","attachTouch","cleanup","baseOptions","tls","_ref4","_ref5","_ref6","addState","cleanUpTouch","getHandlers","stateSetter","_React$useMemo2","updateTransientState","_arrayLikeToArray","isMergeableObject","isNonNullObject","stringValue","REACT_ELEMENT_TYPE","isReactElement","isSpecial","for","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","getKeys","getEnumerableOwnPropertySymbols","propertyIsOnObject","mergeObject","propertyIsUnsafe","customMerge","getMergeFunction","arrayMerge","sourceIsArray","all","deepmerge_1","_CSSTransition","_ReplaceTransition","_TransitionGroup","_Transition","Transition","TransitionGroup","ReplaceTransition","CSSTransition","trimLeft","trimRight","tinyCounter","mathRound","mathMin","mathMax","mathRandom","tinycolor","opts","ok","named","matchers","rgba","hsl","hsla","hsv","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","convertToPercentage","mod","hsvToRgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_g","_roundA","_gradientType","gradientType","_ok","_tc_id","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","pad2","rgbaToArgbHex","convertDecimalToHex","_desaturate","amount","toHsl","clamp01","_saturate","_greyscale","desaturate","_lighten","_brighten","toRgb","_darken","_spin","_complement","_triad","_tetrad","_splitcomplement","_analogous","slices","part","_monochromatic","toHsv","modification","isDark","getBrightness","isValid","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHex","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","rgb1","rgb2","readability","isReadable","wcag2","wcag2Parms","parms","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellow","yellowgreen","flipped","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","functionToString","$propertyIsEnumerable","NASHORN_BUG","1","InternalMetadataModule","iterate","checkCorrectnessOfIteration","setToStringTag","IS_WEAK","ADDER","NativeConstructor","NativePrototype","fixMethod","uncurriedNativeMethod","getConstructor","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setStrong","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","FAILS_ON_PRIMITIVES","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","NewTargetPrototype","CONVERT_TO_STRING","second","codeAt","isConstructor","IS_RIGHT","argumentsLength","memo","$expm1","expm1","WEBKIT","__defineSetter__","defer","port","validateArgumentsLength","IS_IOS","IS_NODE","setImmediate","clearImmediate","Dispatch","MessageChannel","runner","post","postMessage","protocol","host","handler","port2","port1","onmessage","importScripts","passed","required","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","re","sticky","flags","charsAdded","strCopy","regexpExec","RegExpPrototype","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","uncurriedNativeRegExpMethod","methods","nativeMethod","regexp","arg2","forceStringMethod","$exec","speciesConstructor","factory","hasblobSlice","webkitSlice","mozSlice","blobSlice","metaDataParsers","jpeg","parseMetaData","maxMetaDataSize","markerBytes","markerLength","parsers","dataView","maxOffset","getUint16","disableMetaDataParsers","disableImageHead","imageHead","replaceHead","originalTransform","isLength","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","eq","nativeCreate","getNative","isKeyable","__data__","baseGetTag","toSource","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","Ctor","ctorString","baseAssignValue","customizer","isNew","t3","ypbpr","kb","kr","pb","BACKSPACE","SHIFT","SPACE","DELETE","keyCode","alea","xor128","xorwow","xorshift7","xor4096","tychei","sr","isNodeEnv","arrayLengthCompare","approxEqual","tolerance","countDecimalPlaces","uniqueCountForNamespace","uniqueId","curCount","effect","_FadeIn","_isNativeReflectConstruct","Proxy","blockTypesMapping","unstyled","blockquote","getBlockTag","getBlockStyle","getStylesAtOffset","inlineStyles","COLOR","BGCOLOR","FONTSIZE","FONTFAMILY","UNDERLINE","ITALIC","BOLD","STRIKETHROUGH","SUBSCRIPT","SUPERSCRIPT","sameStyleAsPrevious","sameStyled","getEntityMarkup","entityMap","entityKey","customEntityTransform","entity","targetOption","alt","getInlineStyleSections","block","styleSections","section","inlineStyleRanges","getStyleArrayForBlock","getInlineStyleSectionMarkup","styleSection","styleTagSections","styleSectionText","stylePropertySection","ch","getSectionText","addInlineStyleMarkup","getStyleTagSectionMarkup","styleString","addStylePropertyMarkup","getBlockInnerMarkup","hashtagConfig","blockMarkup","sections","lastOffset","sectionRanges","entityRanges","blockText","hashtag","getHashtagRanges","getSections","sectionText","entityInlineMarkup","getSectionMarkup","replacedText","trimLeadingZeros","trimTrailingZeros","getListMarkup","listBlocks","previousBlock","listHtml","nestedListBlock","nestedBlock","blockStyle","editorContent","blocks","blockType","blockHtml","isAtomicEntityBlock","blockTag","getBlockMarkup","objectKeys","FunctionName","createIteratorConstructor","IteratorsCore","PROPER_FUNCTION_NAME","CONFIGURABLE_FUNCTION_NAME","BUGGY_SAFARI_ITERATORS","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","enforceInternalState","CONFIGURABLE_LENGTH","TEMPLATE","getOwnPropertySymbolsModule","$getOwnPropertyNames","windowNames","getWindowNames","DOMIterables","DOMTokenListPrototype","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","propIsEnumerable","test1","test2","test3","letter","shouldUseNative","endPos","insertionSort","comparefn","llength","rlength","lindex","rindex","mergeSort","middle","webkit","MATCH","isRegExp","hasIndices","ignoreCase","dotAll","unicode","$RegExp","MISSED_STICKY","error1","0","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","needsEval","INTRINSICS","AggregateError","Atomics","BigInt","decodeURI","encodeURIComponent","eval","EvalError","FinalizationRegistry","SharedArrayBuffer","URIError","WeakRef","WeakSet","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","rePropName","reEscapeChar","stringToPath","quote","subString","getBaseIntrinsic","allowMissing","intrinsicName","doEval","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","isOwn","implementation","GetIntrinsic","$apply","$call","$reflectApply","$max","originalFunction","applyBind","React","QRCodeImpl","ErrorCorrectLevel","convertStr","charcode","DEFAULT_PROPS","bgColor","fgColor","includeMargin","generatePath","modules","margin","ops","row","cell","excavateModules","excavation","getImageSettings","cells","imageSettings","numCells","defaultSize","excavate","floorX","floorY","SUPPORTS_PATH2D","Path2D","addPath","QRCodeCanvas","_React$PureComponent","imgLoaded","_image","handleImageLoad","_this$props$imageSett","_nextProps$imageSetti","qrcode","addData","make","ctx","calculatedImageSettings","fillStyle","fillRect","rdx","cdx","otherProps","canvasStyle","imgSrc","Fragment","PureComponent","QRCodeSVG","_React$PureComponent2","_this$props3","xlinkHref","preserveAspectRatio","fgPath","shapeRendering","QRCode","renderAs","baseForOwn","castFunction","iteratee","stubFalse","freeProcess","nodeUtil","types","objectProto","getPrototype","overArg","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","arrayFilter","stubArray","nativeGetSymbols","getSymbols","reIsDeepProp","reIsPlainProp","isObjectLike","baseKeysIn","originalModule","hi","luv","lchuv","_luv","hr","warning","_react","_getRequireWildcardCache","newObj","hasPropertyDescriptor","_interopRequireWildcard","FadeIn","maxIsVisible","Children","setInterval","clearInterval","childClassName","_react2","_implementation2","createContext","isBrowser","timeoutDuration","longerTimeoutBrowsers","debounce","functionToCheck","getStyleComputedProperty","getParentNode","getScrollParent","_getStyleComputedProp","overflow","getReferenceNode","reference","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","findCommonOffsetParent","element1","element2","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","isOffsetContainer","element1root","getScroll","upperSide","scrollingElement","includeScroll","rect","subtract","scrollTop","modifier","getBordersSize","sideA","sideB","computedStyle","getWindowSizes","getClientRect","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","isFixed","getFixedPositionOffsetParent","getBoundaries","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","marginRight","getOppositePlacement","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","runModifiers","ends","cur","isDestroyed","originalPlacement","isCreated","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","removeAttribute","willChange","removeOnDestroy","getWindow","setupEventListeners","updateBound","scrollElement","attachToScrollParents","scrollParents","isBody","isNumeric","setStyles","isFirefox","isModifierRequired","requestingName","requestedName","requesting","_requesting","requested","validPlacements","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","divider","splitRegex","op","mergeWithPrevious","toValue","Defaults","shiftvariation","_data$offsets","shiftOffsets","transformProp","popperStyles","priority","primary","escapeWithReference","secondary","keepTogether","opSide","_data$offsets$arrow","sideCapitalized","altSide","arrowElementSize","popperMarginSide","popperBorderSide","sideValue","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","prefixedProperty","invertTop","invertLeft","modifierOptions","jquery","Utils","PopperUtils","W","D","I","J","M","Q","Z","pe","ke","ge","Ae","Ce","we","ve","xe","$e","ye","Oe","qe","Be","De","Ee","Ge","He","je","ze","Je","Re","Te","Ue","Ve","Xe","Ye","Qe","Pe","Ie","Me","Le","Ke","safeIsNaN","areInputsEqual","newInputs","lastInputs","resultFn","isEqual","lastThis","lastResult","lastArgs","calledOnce","newArgs","ordinaryToPrimitive","TO_PRIMITIVE","pref","exoticToPrim","valueOf","exceptions","ENUMERABLE_NEXT","PrototypeOfArrayIteratorPrototype","arrayIterator","innerResult","innerError","defineBuiltIns","internalStateGetterFor","getEntry","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","wasDeleted","collection","remover","allDeleted","mapFn","nextItem","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","SymbolPrototype","hint","keyFor","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolToString","symbolValueOf","defineWellKnownSymbol","defineSymbolToPrimitive","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","callWithSafeIterationClosing","arrayLike","IS_CONSTRUCTOR","mapfn","asap","LAST_ERROR","IS_ERROR","_U","_V","_W","_X","doResolve","_Y","onFulfilled","onRejected","ex","tryCallOne","handleResolved","getThen","finale","_Z","Handler","tryCallTwo","reason","_0","safeThen","copyWithin","flattenIntoArray","original","sourceLen","mapper","sourceIndex","arrayMethodIsStrict","$lastIndexOf","NEGATIVE_ZERO","STRICT_METHOD","searchElement","firefox","UA","IEEE754","arrayFill","NativeArrayBuffer","$ArrayBuffer","$DataView","DataViewPrototype","packIEEE754","unpackIEEE754","unpack","packInt8","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","isLittleEndian","intIndex","bytes","conversion","INCORRECT_ARRAY_BUFFER_NAME","NaN","testView","$setInt8","setInt8","getInt8","setUint8","bufferLength","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","log1p","n$ParseFloat","trimmedString","$parseInt","radix","$assign","chr","TO_ENTRIES","is","flush","notify","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","enter","task","newPromiseCapability","promiseCapability","regExpFlags","$repeat","IS_END","fillString","fillLen","stringFiller","intMaxLength","stringLength","fillStr","$trimEnd","forcedStringTrimMethod","trimEnd","$trimStart","trimStart","toPositiveInteger","ArrayIterationModule","uncaughtFrozenStore","frozen","UncaughtFrozenStore","findUncaughtFrozen","searchParams","pathname","username","USE_NATIVE_URL","$toString","arraySort","getInternalParamsState","URL_SEARCH_PARAMS","safeGetBuiltIn","nativeFetch","NativeRequest","RequestPrototype","HeadersPrototype","plus","sequences","percentSequence","percentDecode","sequence","deserialize","replacements","replacer","_serialize","URLSearchParamsIterator","URLSearchParamsState","parseQuery","bindURL","entryIterator","entryNext","query","updateURL","URLSearchParamsConstructor","URLSearchParamsPrototype","getAll","found","headersHas","headersSet","wrapRequestOptions","RequestConstructor","getState","getRandomValues","crypto","msCrypto","rnds8","rnds","byteToHex","bth","encode","paramsSerializer","serializedParams","toISOString","hashmarkIndex","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","defaults","adapter","XMLHttpRequest","getDefaultAdapter","transformRequest","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","settle","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","auth","password","Authorization","btoa","fullPath","baseURL","onreadystatechange","responseURL","responseHeaders","getAllResponseHeaders","responseText","onabort","ontimeout","timeoutErrorMessage","cookies","xsrfValue","onDownloadProgress","onUploadProgress","cancelToken","cancel","abort","enhanceError","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","axiosKeys","otherKeys","Cancel","adler","crcTable","table","makeTable","crc","STR_APPLY_OK","STR_APPLY_UIA_OK","_utf8len","buf2binstring","string2buf","m_pos","str_len","buf_len","binstring2buf","buf2string","c_len","utf16buf","utf8border","next_in","avail_in","total_in","next_out","avail_out","total_out","data_type","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","arrA","arrB","compare","shallowCompareKeys","objA","objB","shallowCompareKeysImpl","keysA","keysB","deepCompareKeys","isSimplePrimitiveType","deepCompareKeysImpl","getDeepUnequalKeyValues","compareFn","valueA","valueB","getUnequalKeyValues","keySet","arrayToObject","unionKeys","isAllowlist","exclude","isDenylist","keySet_1","filterKeys","elementIsOrContains","testElement","throttleEvent","newEventName","throttledFunc","throttleImpl","throttleReactEventCallback","event2","throttle","onAnimationFrameRequested","onBeforeIsRunningCheck","onAfterIsRunningCheck","isRunning","skipArray","isReactChildrenElementOrElements","ensureElement","getDisplayName","ComponentClass","isElementOfType","ComponentType","createReactRef","AbstractPureComponent2","timeoutIds","requestIds","timeoutId","cancelAnimationFrames","_prevProps","_prevState","_snapshot","EXITING","ENTERED","ENTERING","EXITED","UNMOUNTED","PropTypes","_reactDom","_reactLifecyclesCompat","initialStatus","parentGroup","isMounting","appearStatus","in","mountOnEnter","nextCallback","getChildContext","updateStatus","nextStatus","cancelNextCallback","getTimeouts","mounting","findDOMNode","performEnter","performExit","appearing","timeouts","enterTimeout","onEnter","safeSetState","onTransitionEnd","onExit","setNextCallback","doesNotHaveTimeoutOrListener","cloneElement","_default","classNamesShape","timeoutsShape","_propTypes","_ChildMapping","handleExited","firstRender","appeared","mounted","prevChildMapping","getInitialChildMapping","getNextChildMapping","currentChildMapping","getChildMapping","childFactory","isArgs","origKeys","keysShim","originalKeys","shim","symObj","syms","callBind","$indexOf","numberIsNaN","functionsHaveConfigurableNames","$Object","transformCoordinates","getTransformedOptions","newOptions","aspectRatio","crop","maxWidth","maxHeight","renderImageToCanvas","sourceX","sourceY","sourceWidth","sourceHeight","destX","destY","destWidth","destHeight","imageSmoothingEnabled","imageSmoothingQuality","hasCanvasOption","minHeight","downsamplingRatio","useCanvas","scaleUp","scaleDown","contain","cover","ExifMap","tagCode","privateIFDs","Orientation","Thumbnail","Exif","GPSInfo","Interoperability","ExifTagTypes","dataOffset","ascii","3","4","5","9","getExifValue","tiffOffset","tagSize","tagType","parseExifTags","dirOffset","tagOffsets","includeTags","excludeTags","tagsNumber","dirEndOffset","tagOffset","tagNumber","tagValue","parseExifData","disableExif","includeExifTags","excludeExifTags","exif","disableExifOffsets","exifOffsets","exifTiffOffset","exifLittleEndian","disableExifThumbnail","getExifThumbnail","parseExifPrivateIFD","exifWriters","writeExifData","IptcMap","getTagValue","outstr","getStringValue","combineTagValues","parseIptcTags","segmentOffset","segmentEnd","iptc","iptcOffsets","isSegmentStart","getHeaderLength","ObjectName","200","201","202","parseIptcData","disableIptc","headerLength","disableIptcOffsets","includeIptcTags","excludeIptcTags","MODE_NUMBER","MODE_ALPHA_NUM","MODE_8BIT_BYTE","MODE_KANJI","L","H","math","QRPolynomial","gexp","glog","QRMath","LOG_TABLE","EXP_TABLE","baseFor","baseTimes","isArguments","isIndex","inherited","isArr","isArg","isBuff","isType","skipIndexes","baseIsArguments","reIsUint","baseIsTypedArray","baseUnary","nodeIsTypedArray","funcToString","baseIsEqualDeep","baseIsEqual","bitmask","stack","SetCache","arraySome","cacheHas","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","baseGetAllKeys","arrayPush","keysFunc","symbolsFunc","srcValue","castPath","toKey","isKey","objValue","getSymbolsIn","hwb","wh","xyy","Y","X","yuv","ucs","lab","_u","xn","yn","zn","un","vn","yr","hsluv","intersectLineLine","intercept","distanceFromOrigin","distanceLineFromOrigin","perpendicularThroughPoint","angleFromOrigin","normalizeAngle","lengthOfRayUntilIntersect","Hsluv","getBounds","sub1","sub2","epsilon","kappa","m1","m2","m3","_g1","top1","maxSafeChromaForL","bounds","maxChromaForLH","hrad","dotProduct","fromLinear","toLinear","xyzToRgb","tuple","rgbToXyz","rgbl","minv","yToL","refY","lToY","xyzToLuv","varU","varV","refU","refV","luvToXyz","luvToLch","lchToLuv","Hrad","hsluvToLch","lchToHsluv","hpluvToLch","lchToHpluv","chan","digit2","digit1","hexChars","hexToRgb","lchToRgb","rgbToLch","hsluvToRgb","rgbToHsluv","hpluvToRgb","rgbToHpluv","hsluvToHex","hpluvToHex","hexToHsluv","hexToHpluv","react_1","maxWait","maxWaitHandler","useRef","maxWaitArgs","leading","trailing","leadingCall","functionTimeoutHandler","isComponentUnmounted","debouncedFunction","cancelDebouncedCallback","useCallback","useEffect","debouncedCallback","shouldCallFunction","callPending","dispatch","parseTypenames","typenames","typename","isRegex","getTime","deepEqual","actual","expected","isUndefinedOrNull","aIsRegex","bIsRegex","aIsBuffer","bIsBuffer","ka","objEquiv","DelayRender","ready","onRender","_localizedStrings2","placeholderRegex","formatString","valuesForPlaceholders","hasObject","textPart","matchedKey","valueForPlaceholder","valueFromObjectPlaceholder","isValidElement","COLOR_SPACE_SVG","SVGLoader","defaultDPI","defaultUnit","parseArcCommand","rx","ry","x_axis_rotation","large_arc_flag","sweep_flag","dx2","dy2","x1p","y1p","rxs","rys","x1ps","y1ps","cr","dq","pq","cxp","cyp","svgAngle","ux","uy","vx","vy","ang","parseStyle","stylesheetStyles","classSelectors","stylesheets","addStyle","svgName","jsName","adjustFunction","startsWith","parseFloatWithUnits","positive","getReflection","parseFloats","RE","SEPARATOR","WHITESPACE","DIGIT","SIGN","POINT","COMMA","EXP","FLAGS","seenComma","exponent","throwSyntaxError","partial","newNumber","unitConversion","theUnit","endsWith","isTransformFlipped","isTransformSkewed","basisDot","getTransformScaleX","getTransformScaleY","transformStack","tempTransform0","tempTransform1","tempTransform2","tempTransform3","tempV2","tempV3","currentTransform","xml","transformsTexts","tIndex","transformText","openParPos","closeParPos","transformType","_tx","_ty","parseNodeTransform","getNodeTransform","isDefsNode","stylesheet","selectorList","selectorText","definitions","fromEntries","parseCSSStylesheet","control","isFirstPoint","doSetFirstPoint","commands","numbers","_jl3","_jl4","_jl5","_jl6","_jl7","_jl8","_jl9","_jl10","_jl11","_jl12","_jl13","_jl14","_jl15","_jl16","_rx","_ry","_jl17","parsePathNode","bci","parseRectNode","parsePolygonNode","parsePolylineNode","subpath","parseCircleNode","parseEllipseNode","parseLineNode","usedNodeId","getAttributeNS","usedNode","viewportElement","getElementById","transfVec2","transfEllipseGeneric","f1","f2","mF","mFInv","mQe","ed","rt1","rt2","sn","sm","rt","eigenDecomposition","rt1sqrt","rt2sqrt","mDsqrt","mRT","mDRF","transformAngle","_Vector3$applyMatrix","cosR","sinR","transfEllipseNoSkew","transformPath","childNodes","fillOpacity","strokeOpacity","strokeLineJoin","strokeLineCap","strokeMiterLimit","shapePath","IntersectionLocationType","classifyResult","findEdgeIntersection","a0","x4","y3","y4","nom1","classifyPoint","toPrecision","edgeStart","edgeEnd","sa","getScanlineIntersections","scanline","allIntersections","path1","path2","intersectionsRaw","intersections","path1EdgeStart","path1EdgeEnd","path2EdgeStart","path2EdgeEnd","getIntersections","identifier","isCW","scanlineMinX","scanlineMaxX","simplePaths","_p","sp","isAHole","simplePath","allPaths","_fillRule","centerBoundingBox","scanlineIntersections","baseIntersections","otherIntersections","firstXOfPath","isHole","isHoleFor","_isHole","_isHoleFor","lastCWValue","isHoleTo","shapesToReturn","lineJoin","lineCap","miterLimit","strokeColor","arcDivisions","minDistance","pointsToStrokeWithBuffers","vertexOffset","tempV2_1","tempV2_2","tempV2_3","tempV2_4","tempV2_5","tempV2_6","tempV2_7","lastPointL","lastPointR","point0L","point0R","currentPointL","currentPointR","nextPointL","nextPointR","innerPoint","outerPoint","numPoints","dupPoints","newPoints","removeDuplicatedPoints","nextPoint","innerSideModified","joinIsOnLeftSide","isMiter","isClosed","previousPoint","strokeWidth2","deltaU","u0","initialJoinIsOnLeftSide","numVertices","currentCoordinate","currentCoordinateUV","iPoint","normal1","miterSide","miterLength2","segmentLengthPrev","segmentLengthNext","makeSegmentTriangles","makeSegmentWithBevelJoin","createSegmentTrianglesWithMiddleSection","makeCircularSector","miterFraction","addCapGeometry","lastOuter","lastInner","rotateAround","vl","allocUnsafe","isDeep","_ref$fill","_ref$width","_ref$height","_ref$style","fromSpace","spaces","hsi","cmyk","cmy","yiq","ydbdr","ycgco","ycbcr","xvycc","yccbccrc","uvw","labh","lchab","hpluv","cubehelix","coloroid","hcg","hcy","tsl","yes","osaucs","hsp","fromSpaceName","toSpaceName","getConvertor","toSheet","column","delimiter","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","orphans","tabSize","widows","WebkitLineClamp","floodOpacity","stopOpacity","strokeMiterlimit","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","nativeMax","nativeMin","toNumber","isBinary","wait","timerId","lastCallTime","lastInvokeTime","maxing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","MapShim","class_1","__entries__","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","trailingCall","resolvePending","proxy","timeoutCallback","addObserver","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","isDocumentElement","isSVGGraphicsElement","SVGGraphicsElement","getContentRect","bbox","getSVGContentRect","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","Constr","createReadOnlyRect","ResizeObserverSPI","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","clearActive","observation","cloudRadians","cloudText","cloudFont","cloudFontNormal","cloudFontSize","cloudRotate","cloudPadding","cloudSprite","contextAndRatio","di","clearRect","maxh","save","font","measureText","rotate","wcr","wsr","hcr","hsr","cw","fillText","strokeText","restore","xoff","yoff","hasText","w32","seenRow","cloudCollide","board","sw","lx","msx","cloudBounds","archimedeanSpiral","cloudCanvas","functor","fontStyle","spiral","words","timeInterval","timer","cloud","place","dxdy","startX","startY","maxDelta","strokeStyle","textAlign","zeroArray","spirals","archimedean","rectangular","argsTag","funcTag","genTag","mapTag","setTag","reFlags","reIsHostCtor","cloneableTags","moduleExports","addMapEntry","pair","addSetEntry","arrayReduce","accumulator","initAccum","isHostObject","mapToArray","setToArray","arrayProto","funcProto","coreJsData","maskSrcKey","reIsNative","objectCreate","nativeIsBuffer","nativeKeys","symbolProto","Hash","isArrayLikeObject","assocIndexOf","baseClone","isFull","initCloneArray","isFunc","cloneBuffer","isPrototype","initCloneObject","copyObject","copySymbols","baseAssign","cloneFunc","cloneArrayBuffer","cloneDataView","cloneTypedArray","cloneMap","cloneRegExp","cloneSet","initCloneByTag","stacked","getAllKeys","arrayEach","subValue","getMapData","pairs","LARGE_ARRAY_SIZE","RootIds","rootId","unsupportedValue","optionsToId","fallbackInView","IntersectionObserver","isIntersecting","intersectionRatio","boundingClientRect","intersectionRect","rootBounds","_createObserver","thresholds","_elements$get","inView","trackVisibility","isVisible","createObserver","_excluded","isPlainChildren","InView","_unobserveCb","handleNode","triggerOnce","initialInView","observeNode","rootMargin","_this$state","useInView","_temp","_React$useState","defaultTarget","isListenerType1","isListenerType2","naturalOrder","peek","r1","r2","g1","g2","histo","vboxes","vbox","volume","_volume","_count_set","_count","avg","_avg","gval","bval","palette","nearest","forcebw","quantize","getColor","getPalette","colorCount","quality","getColorFromUrl","getColorAsync","noTrailing","debounceMode","timeoutID","cancelled","lastExec","clearExistingTimeout","arguments_","elapsed","atBegin","FUNC_ERROR_TEXT","PLACEHOLDER","wrapFlags","arrayTag","boolTag","dateTag","errorTag","numberTag","objectTag","regexpTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint16Tag","uint32Tag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","reRegExpChar","reHasRegExpChar","reTrimStart","reWhitespace","reWrapComment","reWrapDetails","reSplitDetails","reAsciiWord","reForbiddenIdentifierChars","reEsTemplate","reLatin","reNoMatch","reUnescapedString","rsComboRange","rsComboMarksRange","rsBreakRange","rsMathOpRange","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsMiscLower","rsMiscUpper","reOptMod","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","contextProps","templateCounter","typedArrayTags","stringEscapes","freeParseFloat","nodeIsArrayBuffer","nodeIsDate","nodeIsMap","isMap","nodeIsRegExp","nodeIsSet","isSet","arrayAggregator","arrayEachRight","arrayEvery","resIndex","arrayIncludes","baseIndexOf","arrayIncludesWith","comparator","arrayMap","arrayReduceRight","asciiSize","baseProperty","baseFindKey","eachFunc","baseFindIndex","fromRight","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","basePropertyOf","baseReduce","baseTrim","trimmedEndIndex","baseValues","charsStartIndex","strSymbols","chrSymbols","charsEndIndex","countHolders","deburrLetter","escapeHtmlChar","escapeStringChar","hasUnicode","replaceHolders","setToPairs","stringSize","unicodeSize","stringToArray","unicodeToArray","asciiToArray","unescapeHtmlChar","runInContext","pick","idCounter","nativeObjectToString","objectCtorString","oldDash","spreadableSymbol","symIterator","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeIsFinite","nativeJoin","nativeNow","nativeParseInt","nativeRandom","nativeReverse","metaMap","realNames","lodash","LazyWrapper","LodashWrapper","wrapperClone","baseCreate","baseLodash","chainAll","__wrapped__","__actions__","__chain__","__index__","__values__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","arraySample","baseRandom","arraySampleSize","shuffleSelf","baseClamp","arrayShuffle","assignMergeValue","baseAggregator","baseEach","baseAt","lower","upper","isFlat","copySymbolsIn","keysIn","baseAssignIn","getAllKeysIn","baseConformsTo","baseDelay","baseDifference","isCommon","valuesLength","outer","computed","valuesIndex","templateSettings","createBaseEach","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","baseFilter","baseFlatten","isStrict","isFlattenable","createBaseFor","baseForRight","baseFunctions","baseGet","unmasked","baseGt","baseHas","baseHasIn","baseIntersection","arrays","caches","baseInvoke","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","equalObjects","baseIsMatch","matchData","noCustomizer","COMPARE_PARTIAL_FLAG","baseIteratee","baseMatchesProperty","baseMatches","nativeKeysIn","isProto","baseLt","baseMap","getMatchData","matchesStrictComparable","isStrictComparable","hasIn","baseMerge","srcIndex","mergeFunc","safeGet","isTyped","toPlainObject","baseMergeDeep","baseNth","baseOrderBy","iteratees","orders","getIteratee","comparer","baseSortBy","objCriteria","criteria","othCriteria","ordersLength","compareAscending","compareMultiple","basePickBy","baseSet","basePullAll","basePullAt","indexes","baseUnset","baseRepeat","baseRest","setToString","overRest","baseSample","baseSampleSize","nested","baseSetData","baseSetToString","baseShuffle","baseSlice","baseSome","baseSortedIndex","retHighest","MAX_ARRAY_LENGTH","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseToString","baseUniq","createSet","seenIndex","baseUpdate","updater","baseWhile","isDrop","baseWrapperValue","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castRest","castSlice","valIsDefined","valIsReflexive","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","createAggregator","initializer","createAssigner","assigner","guard","isIterateeCall","createCaseFirst","createCompounder","deburr","createCtor","thisBinding","createFind","findIndexFunc","createFlow","flatRest","funcs","prereq","thru","getFuncName","funcName","isLaziable","plant","createHybrid","partialsRight","holdersRight","argPos","ary","isAry","isBind","isBindKey","isFlip","getHolder","holdersCount","newHolders","createRecurry","reorder","createInverter","toIteratee","baseInverter","createMathOperation","operator","createOver","arrayFunc","createPadding","chars","charsLength","toFinite","baseRange","createRelationalOperation","wrapFunc","isCurry","newData","setData","setWrapToString","createRound","toInteger","createToPairs","baseToPairs","createWrap","srcBitmask","newBitmask","isCombo","mergeData","createCurry","createPartial","createBind","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","otherFunc","hasPath","hasFunc","isMaskable","otherArgs","oldArray","shortOut","insertWrapDetails","updateWrapDetails","getWrapDetails","lastCalled","stamp","remaining","rand","memoize","memoizeCapped","difference","differenceBy","differenceWith","findLastIndex","mapped","intersectionBy","intersectionWith","pull","pullAll","pullAt","unionBy","unionWith","unzip","unzipWith","without","xor","xorBy","xorWith","zip","zipWith","chain","interceptor","wrapperAt","countBy","findLast","forEachRight","groupBy","invokeMap","keyBy","partition","sortBy","before","bindKey","WRAP_BIND_FLAG","timeWaiting","resolver","memoized","overArgs","transforms","funcsLength","partialRight","rearg","gt","gte","isError","lte","iteratorToArray","remainder","assignIn","assignInWith","assignWith","propsIndex","propsLength","defaultsDeep","mergeWith","invertBy","omit","CLONE_DEEP_FLAG","basePick","pickBy","toPairs","toPairsIn","camelCase","word","capitalize","upperFirst","kebabCase","lowerCase","lowerFirst","snakeCase","startCase","upperCase","hasUnicodeWord","unicodeWords","asciiWords","attempt","bindAll","methodNames","flow","flowRight","methodOf","mixin","over","overEvery","overSome","basePropertyDeep","rangeRight","augend","addend","divide","dividend","divisor","multiplier","multiplicand","minuend","subtrahend","after","castArray","compact","cond","conforms","baseConforms","curry","curryRight","drop","dropRight","dropRightWhile","dropWhile","baseFill","flatMap","flatMapDeep","flatMapDepth","flattenDeep","flattenDepth","fromPairs","functions","functionsIn","mapKeys","mapValues","matchesProperty","nthArg","omitBy","orderBy","propertyOf","pullAllBy","pullAllWith","setWith","shuffle","sortedUniq","sortedUniqBy","limit","spread","take","takeRight","takeRightWhile","takeWhile","tap","toPath","isArrLike","unary","uniq","uniqBy","uniqWith","unset","updateWith","valuesIn","zipObject","zipObjectDeep","entriesIn","extendWith","cloneDeep","cloneDeepWith","cloneWith","conformsTo","defaultTo","escapeRegExp","findKey","findLastKey","forIn","forInRight","forOwn","forOwnRight","inRange","baseInRange","isBoolean","isEqualWith","isMatch","isMatchWith","isNative","isNil","isNull","isSafeInteger","isWeakMap","isWeakSet","strictLastIndexOf","maxBy","mean","meanBy","minBy","stubObject","stubString","stubTrue","nth","noConflict","pad","strLength","padEnd","padStart","floating","reduceRight","sample","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","sumBy","template","isEscaping","isEvaluating","imports","importsKeys","importsValues","interpolate","reDelimiters","sourceURL","escapeValue","interpolateValue","esTemplateValue","evaluateValue","toLower","toSafeInteger","toUpper","truncate","omission","newEnd","unescape","each","eachRight","isFilter","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","isLazy","useLazy","isHybrid","isUnwrapped","onlyLazy","chainName","isRight","getView","iterLength","takeCount","iterIndex","commit","wrapped","calculateChange","initialA","containerWidth","containerHeight","pageX","pageY","pageXOffset","pageYOffset","checkboardCache","serverCanvas","checkboard","renderers","borderRadius","boxShadow","absolute","Alpha","handleMouseDown","handleMouseUp","unbindEventListeners","gradient","pointer","slider","overwrite","onTouchMove","VALID_KEY_CODES","EditableInput","blurValue","setUpdatedValue","getNumberValue","getArrowOffset","updatedValue","handleDrag","dragLabel","movementX","dragMax","getValueObjectWithLabel","inputId","onChangeValue","spellCheck","hideLabel","Hue","_props$direction","zDepth","_ref$styles","passedStyles","bg","oneOf","Saturation","_container$getBoundin","bright","renderWindow","getContainerRenderWindow","circle","oldHue","lh","getContrastingColor","stringWithoutDegree","Picker","ColorPicker","onChangeComplete","handleSwatchHover","onSwatchHover","optionalEvents","Span","Focus","_ref$onClick","onHover","_ref$title","_ref$focusStyle","focusStyle","swatch","outline","onMouseOver","picker","backgroundColor","_ref$className","swatches","float","hexCode","card","alignItems","justifyContent","borderStyle","borderWidth","borderColor","border","oneOfType","deepPurple","lightBlue","lightGreen","amber","deepOrange","blueGrey","circleSize","circleSpacing","Swatch","flexWrap","ChromeFields","toggleViews","showHighlight","currentTarget","hideHighlight","fields","field","iconHighlight","textTransform","onMouseOut","disableAlpha","fontFamily","controls","toggles","bool","HEXwrap","HEXinput","HEXlabel","RGBwrap","RGBinput","RGBlabel","Compact","hoverSwatch","borderBottomColor","triangleShadow","HuePointer","Hex","third","fieldSymbols","PhotoshopPointer","triangleBorder","Extend","leftInside","rightInside","backgroundImage","currentColor","new","Photoshop","_props$styles","_props$className","previews","header","onAccept","PhotoshopFields","single","double","swatchWrap","colorObjOrString","presetColors","sliders","activeColor","hexcode","_values2","hsvValue","input2","label2","rgbValue","hslValue","filterEvents","mouseenter","mouseleave","filterContextListener","contextListener","related","event1","event0","__on","capture","onAdd","none","EnterNode","datum","namespaceURI","_parent","bindIndex","groupLength","dataLength","keyValue","nodeByKeyValue","keyValues","ascending","xhtml","xlink","xmlns","namespaces","local","attrRemove","attrRemoveNS","fullname","removeAttributeNS","attrConstant","attrConstantNS","setAttributeNS","attrFunction","attrFunctionNS","styleRemove","removeProperty","styleConstant","setProperty","styleFunction","styleValue","getPropertyValue","propertyRemove","propertyConstant","propertyFunction","classArray","ClassList","_names","classedAdd","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textConstant","textFunction","htmlRemove","htmlConstant","htmlFunction","raise","previousSibling","firstChild","creatorInherit","uri","creatorFixed","constantNull","selection_cloneShallow","cloneNode","selection_cloneDeep","bubbles","dispatchConstant","dispatchFunction","Selection","_groups","_parents","select","subgroups","subnode","subgroup","selectAll","selectorAll","matcher","enterGroup","updateGroup","_enter","_exit","sparse","onenter","onupdate","onexit","groups0","groups1","selection","m0","merges","group0","group1","compareNode","sortgroups","sortgroup","classed","creator","insert","deep","taskHead","taskTail","clockLast","clockNow","clockSkew","clock","setFrame","clearNow","Timer","_call","_time","restart","wake","timerFlush","sleep","nap","poke","emptyOn","emptyTween","schedules","__transition","tween","tick","ease","cssNode","cssRoot","cssView","svgNode","translateY","skewX","interpolateTransform","pxComma","pxParen","degParen","xa","ya","xb","yb","interpolateTransformCss","interpolateTransformSvg","baseVal","consolidate","tweenRemove","tween0","tween1","tweenFunction","tweenValue","definition","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","color_formatHex","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","rgbConvert","rgb_formatHex","rgb_formatRgb","Hsl","hslConvert","hsl2rgb","basis","channels","displayable","formatHsl","brighter","darker","linear","gamma","nogamma","exponential","rgbGamma","rgbSpline","spline","reA","reB","am","bm","bi","one","value1","string00","interpolate0","string1","string0","string10","attrInterpolate","attrInterpolateNS","attrTweenNS","attrTween","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","onFunction","on0","on1","sit","styleInterpolate","styleTween","textInterpolate","textTween","newId","selection_prototype","inherit","id0","id1","styleNull","listener0","styleMaybeRemove","interrupt","defaultTiming","isHTMLElement","isShadowRoot","ShadowRoot","includeScale","getWindowScroll","win","getNodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","getNodeScroll","clientLeft","clientTop","getLayoutRect","clientRect","assignedSlot","listScrollParents","_element$ownerDocumen","visualViewport","updatedList","isTableElement","getTrueOffsetParent","perspective","getContainingBlock","basePlacements","variationPlacements","acc","modifierPhases","visited","requires","requiresIfExists","dep","depModifier","DEFAULT_OPTIONS","strategy","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","orderedModifiers","modifiersData","effectCleanupFns","setOptions","setOptionsAction","cleanupModifierEffects","contextElement","phase","orderModifiers","existing","mergeByName","_ref3$options","cleanupFn","_state$elements","_state$orderedModifie","_state$orderedModifie2","_options","onFirstUpdate","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","commonX","commonY","mainAxis","unsetSides","mapToStyles","_Object$assign2","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","dpr","roundOffsetsByDPR","initialStyles","getOppositeVariationPlacement","getRootNode","rectToClientRect","getClientRectFromMixedType","clippingParent","getViewportRect","getInnerBoundingClientRect","winScroll","getDocumentRect","getClippingRect","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","within","getSideOffsets","preventedOffsets","isAnySideFullyClipped","_options$scroll","_options$resize","resize","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allowedPlacements","overflows","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","fittingPlacement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","additive","maxLen","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","_state$modifiersData$","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","axisProp","centerOffset","_options$element","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","TOUCH_OPTIONS","TIPPY_DEFAULT_APPEND_TO","getValueAtIndexOrReturn","invokeWithArgsOrReturn","ms","normalizeToArray","pushIfUnique","arrayFrom","removeUndefinedProps","div","isMouseEvent","isReferenceElement","_tippy","getArrayOfElements","isNodeList","setTransitionDuration","setVisibilityState","getOwnerDocument","elementOrElements","updateTransitionEndListener","actualContains","_target$getRootNode","currentInput","lastMouseMoveTime","onDocumentTouchStart","onDocumentMouseMove","onWindowBlur","blur","pluginProps","animateFill","followCursor","inlinePositioning","appendTo","aria","expanded","getReferenceClientRect","hideOnClick","ignoreAttributes","interactiveBorder","interactiveDebounce","moveTransition","onAfterUpdate","onBeforeUpdate","onDestroy","onHidden","onHide","onMount","onShow","onShown","onTrigger","onUntrigger","onClickOutside","plugins","popperOptions","showOnCreate","triggerTarget","allowHTML","inertia","defaultKeys","getExtendedPassedProps","passedProps","evaluateProps","valueAsString","getDataAttributeProps","createArrowElement","getChildren","boxChildren","backdrop","_getChildren","$$tippy","mouseMoveListeners","mountedInstances","createTippy","showTimeout","hideTimeout","scheduleHideAnimationFrame","lastTriggerEvent","currentTransitionEndListener","isVisibleFromClick","didHideDueToDocumentMouseDown","didTouchMove","ignoreOnFirstUpdate","debouncedOnMouseMove","onMouseMove","item","isMounted","isShown","clearDelayTimeouts","setProps","partialProps","invokeHook","removeListeners","addListeners","cleanupInteractiveMouseListeners","handleAriaExpandedAttribute","handleStyles","createPopperInstance","getNestedPopperTree","nestedPopper","setContent","isAlreadyVisible","isTouchAndTouchDisabled","getCurrentTarget","getIsDefaultRenderFn","visibility","addDocumentPress","_getDefaultTemplateCh2","getDefaultTemplateChildren","_instance$popperInsta2","_getDefaultTemplateCh3","_content","handleAriaContentAttribute","onTransitionedIn","mount","isAlreadyHidden","removeDocumentPress","_getDefaultTemplateCh4","onTransitionedOut","unmount","hideWithInteractivity","getDocument","_props$render","pluginsHooks","hasAriaExpanded","scheduleShow","getNormalizedTouchSettings","getIsCustomTouchBehavior","_instance$props$rende","getDelay","isShow","fromHide","hook","shouldInvokePropsHook","_instance$props","pluginHooks","onDocumentPress","actualTarget","doc","eventType","onBlurOrFocusOut","_lastTriggerEvent","shouldScheduleClickHide","isEventListenerStopped","wasFocused","scheduleHide","isCursorOverReferenceOrPopper","popperTreeData","popperState","topDistance","bottomDistance","leftDistance","rightDistance","exceedsTop","exceedsBottom","exceedsLeft","exceedsRight","isCursorOutsideInteractiveBorder","_instance$popperInsta","_instance$props2","computedReference","_getNormalizedTouchSe","touchValue","touchDelay","tippy","targets","optionalProps","instances","setDefaultProps","e10","e5","e2","ticks","tickIncrement","r0","LN10","formatDecimalParts","toExponential","coefficient","formatSpecifier","specifier","FormatSpecifier","align","zero","comma","prefixExponent","toLocaleString","formatRounded","locale","grouping","thousands","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","minus","nan","newFormat","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","formatPrefix","lo","ascendingComparator","ascendingBisect","bisector","bisectRight","bisect","isNumberArray","genericArray","nb","na","setTime","date","numberArray","bimap","polymap","unknown","transformer","untransform","piecewise","rescale","clamper","rangeRound","continuous","initRange","transformLog","transformExp","transformLogn","transformExpn","pow10","reflect","loggish","logs","pows","log10","logp","powp","tickFormat","nice","step0","step1","tickStep","precisionPrefix","precisionRound","precisionFixed","linearish","prestep","maxIter","transformPow","transformSqrt","transformSquare","powish","implicit","maxWords","deterministic","enableOptimizations","fontSizes","G","randomSeed","rotations","K","rotationAngles","revive","valueof","getWordColor","getWordTooltip","onWordClick","onWordMouseOver","onWordMouseOut","enableTooltip","textAttributes","tooltipOptions","ordinal","minSize","svgAttributes","reactPropsRegex","getType","__spreadArrays","assignProp","carry","newVal","originalObject","propType","mergeRecursively","newComer","newObject","targetVal","newComers","fnRef","useEffectOnce","setRafState","initialWidth","initialHeight","handler_1","real","deleteAll","getMapIterator","newMap","keyDerivative","derivedKey","sameValueZero","keyOf","of","noInitial","isPresentInMap","addAll","adder","newSet","getSetIterator","hasCheck","isDisjointFrom","isSubsetOf","otherSet","isSupersetOf","arrayJoin","sep","symmetricDifference","nativeObjectCreate","getOwnPropertyNamesExternal","$forEach","HIDDEN","QObject","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","$defineProperties","$getOwnPropertySymbols","IS_OBJECT_PROTOTYPE","useSetter","useSimple","NATIVE_SYMBOL_REGISTRY","StringToSymbolRegistry","SymbolToStringRegistry","$stringify","numberToString","tester","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","$replacer","fixIllFormed","ENTRIES","DEFAULT_WHITELIST","matchWhitelist","cls","displayId","rejections","onUnhandled","allRejections","whitelist","logged","logError","_1","onHandled","rawAsap","requestFlush","scan","newLength","BrowserMutationObserver","makeRequestCallFromTimer","timeoutHandle","handleTimer","intervalHandle","makeRequestCallFromMutationObserver","TRUE","valuePromise","FALSE","NULL","UNDEFINED","EMPTYSTRING","race","support","viewClasses","normalizeName","normalizeValue","iteratorFor","items","consumed","bodyUsed","fileReaderReady","readBlobAsArrayBuffer","readAsArrayBuffer","bufferClone","Body","_initBody","_bodyInit","_bodyText","_bodyBlob","_bodyFormData","_bodyArrayBuffer","rejected","isConsumed","readAsText","readBlobAsText","readArrayBufferAsText","formData","oldValue","signal","upcased","normalizeMethod","referrer","reParamSearch","form","rawHeaders","bodyInit","redirectStatuses","redirect","DOMException","aborted","xhr","abortXhr","fixUrl","vendors","raf","caf","_now","cp","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","uptime","$filter","$find","SKIPS_HOLES","$findIndex","flat","depthArg","$includes","$IndexOf","un$IndexOf","un$Join","ES3_STRINGS","$map","$reduce","CHROME_VERSION","$reduceRight","un$Slice","HAS_SPECIES_SUPPORT","internalSort","FF","IE_OR_EDGE","V8","un$Sort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STABLE_SORT","itemsLength","getSortCompare","deleteCount","insertCount","actualDeleteCount","actualStart","arrayBufferModule","mantissaLength","mantissa","exponentLength","eMax","eBias","nBits","dateToPrimitive","DatePrototype","HAS_INSTANCE","FUNCTION_NAME_EXISTS","nameRE","regExpExec","$acosh","acosh","$asinh","asinh","$atanh","atanh","cbrt","LOG2E","clz32","$cosh","cosh","fround","EPSILON32","MAX32","MIN32","$abs","$sign","roundTiesToEven","$hypot","hypot","value2","aLen","larg","$imul","xl","yl","LOG10E","sinh","tanh","thisNumberValue","NativeNumber","NumberPrototype","toNumeric","primValue","maxCode","digits","NumberWrapper","globalIsFinite","MIN_SAFE_INTEGER","un$ToFixed","dataToString","fractionDigits","fractDigits","__defineGetter__","$entries","$freeze","nativeGetPrototypeOf","$isFrozen","isFrozen","$isSealed","isSealed","__lookupGetter__","__lookupSetter__","$preventExtensions","$seal","$values","$parseFloat","Internal","OwnPromiseCapability","nativeThen","microtask","hostReportErrors","perform","Queue","PromiseConstructorDetection","newPromiseCapabilityModule","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","isThenable","callReaction","reaction","exited","fail","rejection","onHandleUnhandled","isReject","notified","reactions","isUnhandled","unwrap","internalReject","internalResolve","executor","PromiseWrapper","Pebble","capability","$promiseResolve","alreadyCalled","promiseResolve","PromiseConstructorWrapper","CHECK_WRAPPER","onFinally","functionApply","thisArgument","argumentsList","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","$args","factories","partArgs","deleteProperty","isDataDescriptor","objectGetPrototypeOf","objectPreventExtensions","existingDescriptor","ownDescriptor","objectSetPrototypeOf","getRegExpFlags","proxyAccessor","NativeRegExp","stringIndexOf","IS_NCG","CORRECT_NEW","BASE_FORCED","RegExpWrapper","rawFlags","handled","thisIsRegExp","patternIsRegExp","flagsAreUndefined","rawPattern","brackets","ncg","groupid","groupname","handleNCG","handleDotAll","defineBuiltInAccessor","n$ToString","NOT_GENERIC","INCORRECT_NAME","codePointAt","notARegExp","correctIsRegExpLogic","un$EndsWith","CORRECT_IS_REGEXP_LOGIC","searchString","endPosition","$fromCodePoint","fromCodePoint","fixRegExpWellKnownSymbolLogic","advanceStringIndex","nativeMatch","maybeCallNative","fullUnicode","matchStr","$padEnd","$padStart","rawTemplate","literalSegments","getSubstitution","REPLACE","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","UNSAFE_SUBSTITUTE","searchValue","replaceValue","functionalReplace","accumulatedResult","nextSourcePosition","captures","namedCaptures","replacerArgs","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","tailPos","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","callRegExpExec","$push","SPLIT","nativeSplit","internalSplit","lim","lastLength","lastLastIndex","separatorCopy","splitter","unicodeMatching","originalExec","un$StartsWith","$trim","createHTML","forcedStringHTMLMethod","anchor","big","blink","bold","fixed","fontcolor","fontsize","italics","link","strike","sup","createTypedArrayConstructor","u$ArrayCopyWithin","$every","$fill","fromSpeciesAndList","arrayFromConstructorAndList","typedArraySpeciesConstructor","ArrayIterators","arrayValues","arrayKeys","arrayEntries","GENERIC","ITERATOR_IS_VALUES","typedArrayValues","$join","$set","WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS","TO_OBJECT_BUG","$some","ACCEPT_INCORRECT_ARGUMENTS","begin","beginIndex","$toLocaleString","TO_LOCALE_STRING_BUG","Uint8ArrayPrototype","arrayToString","IS_NOT_ARRAY_METHOD","InternalWeakMap","collectionWeak","IS_IE11","$WeakMap","WeakMapPrototype","nativeDelete","nativeHas","nativeGet","nativeSet","EOF","toASCII","URLSearchParamsModule","getInternalURLState","getInternalSearchParamsState","NativeURL","ALPHANUMERIC","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","serializeHost","ignore0","ipv6","currStart","currLength","findLongestZeroSequence","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","specialSchemes","ftp","http","https","ws","wss","isWindowsDriveLetter","startsWithWindowsDriveLetter","isSingleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","isBase","baseState","failure","urlString","stateOverride","codePoints","bufferCodePoints","seenAt","seenBracket","seenPasswordToken","scheme","fragment","cannotBeABaseURL","includesCredentials","codePoint","encodedCodePoints","parseHost","shortenPath","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","parseIPv6","partsLength","ipv4","parseIPv4","cannotHaveUsernamePasswordPort","pathSize","setHref","getOrigin","URLConstructor","getProtocol","setProtocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","hostname","getPort","setPort","getPathname","setPathname","getSearch","setSearch","getSearchParams","getHash","setHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","nativeRevokeObjectURL","regexNonASCII","regexSeparators","OVERFLOW_ERROR","digitToBasic","digit","adapt","firstTime","baseMinusTMin","inputLength","extra","ucs2decode","basicLength","handledCPCount","handledCPCountPlusOne","qMinusT","baseMinusT","encoded","labels","runtime","makeInvokeMethod","regeneratorRuntime","accidentalStrictMode","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","isPureReactComponent","__self","__source","_owner","keyPrefix","aa","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Profiler","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","createFactory","createRef","_ctor","_status","_result","useContext","useDebugValue","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useState","da","ea","fa","ha","ia","ja","la","ma","oa","pa","ra","extractEvents","eventTypes","ta","phasedRegistrationNames","ua","registrationName","wa","dependencies","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","Ua","Va","Wa","Xa","Sa","Ta","Ra","Ya","Za","$a","bb","db","fb","gb","hb","jb","lb","_debugOwner","_debugSource","lineNumber","rb","sb","_valueTracker","stopTracking","tb","zb","defaultChecked","_wrapperState","initialChecked","Ab","controlled","Bb","Cb","Db","Eb","Gb","Fb","Hb","defaultSelected","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","Rb","lastChild","nodeValue","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","Xb","Yb","Zb","$b","cc","dc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","sibling","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","srcElement","correspondingUseElement","oc","pc","qc","topLevelType","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","pointerId","Mc","Nc","Pc","unstable_runWithPriority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","bubbled","captured","eventPriority","dd","unstable_UserBlockingPriority","gd","hd","Oc","jd","gridArea","lineClamp","kd","ld","md","menuitem","br","embed","keygen","param","wbr","od","pd","qd","rd","sd","ud","vd","xd","HTMLIFrameElement","yd","contentEditable","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","Interface","isDefaultPrevented","defaultPrevented","returnValue","ee","eventPool","fe","destructor","getPooled","stopPropagation","cancelBubble","eventPhase","isTrusted","he","ie","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","se","char","ue","datetime","email","month","tel","week","Fe","detachEvent","attachEvent","_isInputEventSupported","Ne","Alt","Control","Meta","Shift","getModifierState","Se","screenX","screenY","buttons","fromElement","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","mouseEnter","mouseLeave","pointerEnter","pointerLeave","ef","ff","gf","hf","jf","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","onSelect","lf","animationName","pseudoElement","mf","clipboardData","nf","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Apps","Scroll","MozPrintableKey","qf","8","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","rf","dataTransfer","tf","targetTouches","uf","vf","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","observedBits","responders","tg","ug","updateQueue","baseQueue","effects","vg","wg","suspenseConfig","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","contextType","Mg","Ng","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","elementType","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","dh","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","mh","nh","oh","ph","qh","rh","th","uh","vh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","xh","yh","zh","Ah","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","ci","ei","fi","gi","getDerivedStateFromError","pendingContext","ni","pi","qi","ii","retryTime","ji","fallback","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tailExpiration","tailMode","mi","ri","si","wasMultiple","multiple","onclick","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","Ki","Li","Di","Mi","Ni","Oi","Pi","Qi","_reactRootContainer","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","componentDidCatch","componentStack","Rj","cj","dj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","wd","removeAllRanges","addRange","Uj","Vj","Wj","hidden","ob","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hk","jk","kk","Lj","lk","Events","findFiberByHostInstance","supportsFiber","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","createPortal","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","_f","unstable_forceFrameRate","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","propFullName","secret","getShim","ReactPropTypes","bigint","any","instanceOf","objectOf","exact","checkPropTypes","_nodeId","_clockseq","rng","bytesToUuid","_lastMSecs","_lastNSecs","clockseq","seedBytes","msecs","nsecs","tmh","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","CancelToken","isCancel","promises","InterceptorManager","dispatchRequest","interceptors","fulfilled","getUri","eject","throwIfCancellationRequested","throwIfRequested","fns","normalizedName","isAxiosError","columnNumber","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","parsed","originURL","msie","urlParsingNode","requestURL","expires","secure","cookie","toGMTString","resolvePromise","token","zlib_deflate","ZStream","Deflate","chunkSize","windowBits","memLevel","opt","gzip","ended","strm","deflateInit2","deflateSetHeader","dictionary","dict","deflateSetDictionary","_dict_set","deflate","deflator","_mode","onData","deflateEnd","deflateRaw","configuration_table","trees","adler32","crc32","errorCode","rank","flush_pending","pending_buf","pending_out","flush_block_only","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","longest_match","cur_match","chain_length","max_chain_length","best_len","prev_length","nice_match","w_size","MAX_MATCH","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","more","_w_size","window_size","hash_size","ins_h","hash_shift","hash_mask","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","MIN_MATCH","last_lit","deflate_slow","max_insert","prev_match","match_available","Config","good_length","max_lazy","nice_length","max_chain","DeflateState","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","HEAP_SIZE","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","MAX_BITS","heap","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","deflateResetKeep","_tr_init","deflateReset","max_block_size","max_start","deflateInit","old_flush","beg","hcrc","comment","os","bstate","deflate_huff","deflate_rle","_tr_align","_tr_stored_block","avail","tmpDict","dictLength","deflateInfo","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","static_dtree","D_CODES","_dist_code","_length_code","base_length","static_l_desc","static_d_desc","static_bl_desc","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","dist","put_short","send_bits","send_code","tree","bi_reverse","gen_codes","next_code","init_block","LITERALS","END_BLOCK","bi_windup","smaller","_n2","pqdownheap","compress_block","ltree","dtree","build_tree","stree","xbits","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","stored_len","copy_block","LENGTH_CODES","L_CODES","tr_static_init","opt_lenb","static_lenb","max_blindex","black_mask","detect_data_type","BL_CODES","build_bl_tree","lcodes","dcodes","blcodes","send_all_trees","STATIC_TREES","bi_flush","zlib_inflate","GZheader","Inflate","inflateInit2","inflateGetHeader","inflateSetDictionary","inflate","inflator","next_out_utf8","utf8str","allowBufError","inflateEnd","inflateRaw","ungzip","inflate_fast","inflate_table","zswap32","InflateState","havedict","dmax","wbits","wsize","whave","wnext","hold","lencode","distcode","lenbits","distbits","ncode","nlen","ndist","have","work","lendyn","distdyn","sane","back","was","inflateResetKeep","inflateReset","inflateReset2","lenfix","distfix","virgin","fixedtables","updatewindow","inflateInit","put","_in","_out","from_source","here_bits","here_op","here_val","last_bits","last_op","last_val","here","hbuf","inf_leave","xflags","extra_len","inflateInfo","s_window","lcode","dcode","lmask","dmask","dolen","dodist","lbase","lext","dbase","dext","lens_index","table_index","incr","used","huff","base_index","MAXBITS","offs","extra_index","Alea","seed","mash","Mash","impl","prng","int32","quick","XorGen","strseed","pool","nodecrypto","startdenom","significance","seedrandom","shortseed","mixkey","typ","entropy","tostring","randomBytes","screen","autoseed","arc4","ARC4","is_math_call","keylen","smear","stringseed","createDocumentFragment","enoughArguments","mutationMacro","textNodeIfPrimitive","TemporaryPrototype","TemporaryTokenList","wrapVerifyToken","hOP","noClassName","_isSVG","classListDescriptor","DocumentFragmentPrototype","DocumentFragment","NodePrototype","CharacterData","CharacterDataPrototype","DocumentType","DocumentTypePrototype","ElementPrototype","selectRemove","matchesSelector","webkitMatchesSelector","khtmlMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","had","replaceWith","_dom4","o_O","verifyToken","rAF","cAF","goOn","defaultInitDict","initCustomEvent","eventInitDict","Event","$Event","$KeyboardEvent","initType","altGraphKey","language","initKeyboardEvent","keyIdentifier","keyLocation","getModifier","withDefaults","withInitValues","initKeyEvent","$MouseEvent","initMouseEvent","patch","what","dataScope","ELEMENT_NODE","$0","$1","$2","$3","DOMMap","dispatched","shouldDrop","__ce__","handleEvent","Dict","createEventListener","eventListener","augment","dE","aEL","rEL","increment","getListenerKey","createAEL","createREL","EventTarget","HTMLDocument","Window","_propTypes2","_gud2","createEventEmitter","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","emitter","_Component2","_temp2","_addClass","_removeClass","addClass","removeClass","getClassNames","removeClasses","activeClassName","reflowAndAddClass","appearClassName","doneClassName","enterClassName","isStringClassNames","_this$getClassNames6","_hasClass","replaceClassName","origClass","classToRemove","_args","handleEnter","handleLifecycle","handleEntering","_len3","handleEntered","_len4","_key4","handleExit","_len5","_key5","handleExiting","_len6","_key6","_len7","_key7","idx","originalArgs","_child$props","inProp","_React$Children$toArr","mergeChildMappings","getProp","nextChildMapping","hasPrev","hasNext","prevChild","isLeaving","getValueForKey","nextKeysPending","pendingKeys","childMapping","nextKey","pendingNextKey","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","hasToStringTag","callBound","isStandardArguments","isLegacyArguments","supportsStandardArguments","origSymbol","hasSymbolSham","ERROR_MESSAGE","binder","boundLength","boundArgs","Empty","getPolyfill","hasArrayLengthDefineBug","isRegexMarker","badStringifier","throwRegexMarker","gOPD","flagsBound","functionsHaveNames","$bind","boundFunctionsHaveNames","TypeErr","getDay","tryDateObject","sliceIterator","placeholderReplaceRegex","placeholderReferenceRegex","LocalizedStrings","customLanguageInterface","_opts","getInterfaceLanguage","pseudo","pseudoMultipleLanguages","logsEnabled","_interfaceLanguage","_language","_Object$keys","defaultLang","_defaultLanguage","_defaultLanguageFirstLevelKeys","validateTranslationKeys","setLanguage","_pseudoAllValues","strArr","randomPseudo","bestLanguage","getBestMatchingLanguage","defaultLanguage","localizedStrings","_fallbackValues","defaultStrings","_availableLanguages","omitWarning","nav","languages","userLanguage","browserLanguage","auxLang","translationKeys","reservedNames","possible","ExifMapProto","stringValues","ExposureProgram","6","7","MeteringMode","255","LightSource","11","14","15","21","22","23","24","Flash","SensingMethod","SceneCaptureType","SceneType","CustomRendered","WhiteBalance","GainControl","Contrast","Sharpness","SubjectDistanceRange","FileSource","ComponentsConfiguration","getText","privateIFD","subTags","IptcMapProto","25","26","30","42","47","50","55","60","62","63","65","70","75","80","85","90","92","95","100","101","103","105","110","125","130","131","135","150","151","152","153","154","184","185","186","187","188","221","225","228","230","231","232","originalHasCanvasOption","originalHasMetaOption","originalTransformCoordinates","originalGetTransformedOptions","orientation","styleWidth","styleHeight","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","encodingOrOffset","fromArrayLike","fromArrayBuffer","isEncoding","fromString","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","indexSize","valLength","readUInt16BE","foundIndex","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","bytesPerSequence","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","inspect","thisStart","thisEnd","thisCopy","targetCopy","checkOffset","ext","checkInt","objectWriteUInt16","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","b64","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","lookup","isLE","mLen","nBytes","eLen","BitByte","RSBlock","BitBuffer","util","Polynomial","typeNumber","errorCorrectLevel","moduleCount","dataCache","dataList","getModuleCount","rsBlocks","getRSBlocks","totalDataCount","dataCount","getLengthInBits","makeImpl","getBestMaskPattern","maskPattern","setupPositionProbePattern","setupPositionAdjustPattern","setupTimingPattern","setupTypeInfo","setupTypeNumber","createData","mapData","minLostPoint","lostPoint","getLostPoint","createMovieClip","target_mc","instance_name","qr_mc","createEmptyMovieClip","beginFill","endFill","getPatternPosition","getBCHTypeNumber","getBCHTypeInfo","bitIndex","byteIndex","dark","getMask","PAD0","PAD1","putBit","createBytes","maxDcCount","maxEcCount","dcdata","ecdata","dcCount","ecCount","totalCount","rsPoly","getErrorCorrectPolynomial","modPoly","modIndex","totalCodeCount","QR8bitByte","ECL","QRRSBlock","RS_BLOCK_TABLE","rsBlock","getRsBlockTable","QRBitBuffer","bufIndex","bit","Mode","QRMaskPattern","QRUtil","PATTERN_POSITION_TABLE","G15","G18","G15_MASK","getBCHDigit","errorCorrectLength","qrCode","sameCount","darkCount","equal","flattenNames","_isString3","_forOwn3","_isPlainObject3","_map3","things","thing","isMasked","hashClear","hashDelete","hashGet","hashHas","hashSet","setCacheAdd","setCacheHas","mergeClasses","_cloneDeep3","toMerge","cloneSymbol","baseIsMap","baseIsSet","autoprefix","_forOwn2","msBorderRadius","MozBorderRadius","OBorderRadius","WebkitBorderRadius","msBoxShadow","MozBoxShadow","OBoxShadow","WebkitBoxShadow","userSelect","WebkitTouchCallout","KhtmlUserSelect","MozUserSelect","msUserSelect","WebkitUserSelect","WebkitBoxFlex","MozBoxFlex","WebkitFlex","msFlex","flexBasis","WebkitFlexBasis","WebkitJustifyContent","msTransition","MozTransition","OTransition","WebkitTransition","msTransform","MozTransform","OTransform","WebkitTransform","otherElementStyles","otherStyle","prefixed","Hover","handleMouseOver","handleMouseOut","Active","onMouseUp","setProp","pi3","dr","HPE","VONKRIES","BFD","CAT97","CAT00","CAT02","lch","_hsluv","fraction","amp","angleTable","Xn","Yn","Zn","ew","Yl","pure","grayscale","chroma","r_","g_","Y0","L_","Pr","minOverMax","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","ForwardRef","Lazy","Memo","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","valueEquality","equalityFn","previousValue","useMemoHandler","keyFilter","handlerEvent","setIsFullscreen","onWebkitEndFullscreen","isScreenfullFullscreen","webkitEnterFullscreen","webkitExitFullscreen","matchMedia","mql","orientation_1","defaultEvents","localState","onEvent","onVisibility"],"mappings":"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AAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,MAkyBRW,GAAiBX,GA9xBH,CAChB,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,UAkyBP,SAASY,GAAiBjxC,GACxB,MAAO,KAAOuuC,GAAcvuC,GAwB9B,SAASkxC,GAAW/5S,GAClB,OAAO+2S,GAAallU,KAAKmuB,GA0C3B,SAAS0rS,GAAWpvS,GAClB,IAAI14B,GAAS,EACTtP,EAASkf,MAAM8oB,EAAI9Z,MAIvB,OAHA8Z,EAAI9tC,SAAQ,SAAUyB,EAAOxB,GAC3B6F,IAASsP,GAAS,CAACnV,EAAKwB,MAEnBqE,EAYT,SAASu5R,GAAQplF,EAAM5mG,GACrB,OAAO,SAAUrvG,GACf,OAAOi2M,EAAK5mG,EAAUrvG,KAc1B,SAASwnV,GAAej2U,EAAO05H,GAM7B,IALA,IAAI75H,GAAS,EACTtV,EAASyV,EAAMzV,OACf0pV,EAAW,EACX1jV,EAAS,KAEJsP,EAAQtV,GAAQ,CACvB,IAAI2B,EAAQ8T,EAAMH,GAEd3T,IAAUwtI,GAAextI,IAAUuiV,IACrCzuU,EAAMH,GAAS4uU,EACfl+U,EAAO0jV,KAAcp0U,GAIzB,OAAOtP,EAWT,SAASq3U,GAAWl8U,GAClB,IAAImU,GAAS,EACTtP,EAASkf,MAAM/jB,EAAI+yB,MAIvB,OAHA/yB,EAAIjB,SAAQ,SAAUyB,GACpBqE,IAASsP,GAAS3T,KAEbqE,EAWT,SAAS2lV,GAAWxqV,GAClB,IAAImU,GAAS,EACTtP,EAASkf,MAAM/jB,EAAI+yB,MAIvB,OAHA/yB,EAAIjB,SAAQ,SAAUyB,GACpBqE,IAASsP,GAAS,CAAC3T,EAAOA,MAErBqE,EA0DT,SAAS4lV,GAAWl6S,GAClB,OAAO+5S,GAAW/5S,GAiDpB,SAAqBA,GACnB,IAAI1rC,EAASuiV,GAAU7tQ,UAAY,EAEnC,KAAO6tQ,GAAUhlU,KAAKmuB,MAClB1rC,EAGJ,OAAOA,EAxDqB6lV,CAAYn6S,GAAUu4S,GAAUv4S,GAW9D,SAASo6S,GAAcp6S,GACrB,OAAO+5S,GAAW/5S,GAuDpB,SAAwBA,GACtB,OAAOA,EAAOipC,MAAM4tQ,KAAc,GAxDNwD,CAAer6S,GAnnB7C,SAAsBA,GACpB,OAAOA,EAAO0qC,MAAM,IAknBiC4vQ,CAAat6S,GAYpE,SAASq5S,GAAgBr5S,GAGvB,IAFA,IAAIp8B,EAAQo8B,EAAO1xC,OAEZsV,KAAW+wU,EAAa9iU,KAAKmuB,EAAOnpC,OAAO+M,MAElD,OAAOA,EAWT,IAAI22U,GAAmBrB,GAxhCH,CAClB,QAAS,IACT,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,QAAS,MA8lCX,IAoggBI15J,GApggBe,SAASg7J,EAAaroV,GAIvC,IAAIqhB,GAHJrhB,EAAqB,MAAXA,EAAkB0nK,GAAO2lB,GAAE+uH,SAAS10I,GAAKpsK,SAAU0E,EAASqtL,GAAEi7J,KAAK5gL,GAAMo9K,MAG/DzjU,MAChB47I,EAAOj9J,EAAQi9J,KACf38J,EAAQN,EAAQM,MAChBvD,EAAWiD,EAAQjD,SACnBkV,GAAOjS,EAAQiS,KACf3W,GAAS0E,EAAQ1E,OACjBqpK,GAAS3kK,EAAQ2kK,OACjBhpH,GAAS37C,EAAQ27C,OACjBx+C,GAAY6C,EAAQ7C,UAGpBs8U,GAAap4T,EAAMzjB,UACnB87U,GAAY38U,EAASa,UACrB49R,GAAclgS,GAAOsC,UAGrB+7U,GAAa35U,EAAQ,sBAGrBkxT,GAAewoB,GAAU18U,SAGzBsB,GAAiBk9R,GAAYl9R,eAG7BiqV,GAAY,EAGZ3O,GAAa,WACf,IAAIx6I,EAAM,SAASrxJ,KAAK4rS,IAAcA,GAAWt+U,MAAQs+U,GAAWt+U,KAAKm+P,UAAY,IACrF,OAAOp6D,EAAM,iBAAmBA,EAAM,GAFvB,GAWbopJ,GAAuBhtD,GAAYx+R,SAGnCyrV,GAAmBv3B,GAAaj0T,KAAK3B,IAGrCotV,GAAUhhL,GAAK2lB,EAGfwsJ,GAAal1K,GAAO,IAAMusJ,GAAaj0T,KAAKqB,IAAgBk7E,QAAQ6oQ,EAAc,QAAQ7oQ,QAAQ,yDAA0D,SAAW,KAGvKmqL,GAASo1E,GAAgB/4U,EAAQ2jQ,YA/nDnC9mQ,EAgoDEiC,GAASkB,EAAQlB,OACjBkV,GAAahU,EAAQgU,WACrBm3T,GAAcxnE,GAASA,GAAOwnE,iBAloDhCtuU,EAmoDE4+R,GAAeC,GAAQpgS,GAAOmC,eAAgBnC,IAC9Cw+U,GAAex+U,GAAOuC,OACtBkmL,GAAuBy3G,GAAYz3G,qBACnCryK,GAAS+nU,GAAW/nU,OACpBi3U,GAAmB7pV,GAASA,GAAO4yS,wBAvoDrC70S,EAwoDE+rV,GAAc9pV,GAASA,GAAOE,cAxoDhCnC,EAyoDEumQ,GAAiBtkQ,GAASA,GAAOM,iBAzoDnCvC,EA2oDEJ,GAAiB,WACnB,IACE,IAAI65M,EAAO0yE,GAAU1tR,GAAQ,kBAE7B,OADAg7M,EAAK,GAAI,GAAI,IACNA,EACP,MAAO7+L,KALU,GAUjBoxU,GAAkB7oV,EAAQm7M,eAAiBzzC,GAAKyzC,cAAgBn7M,EAAQm7M,aACxE2tI,GAAS7rL,GAAQA,EAAKL,MAAQ8K,GAAKzK,KAAKL,KAAOK,EAAKL,IACpDmsL,GAAgB/oV,EAAQgsJ,aAAe0b,GAAK1b,YAAchsJ,EAAQgsJ,WAGlEg9L,GAAa/2U,GAAKuB,KAClBy1U,GAAch3U,GAAK2B,MACnB6oR,GAAmBnhS,GAAOC,sBAC1Bw+U,GAAiBp2E,GAASA,GAAO9/B,cA7pDnChnO,EA8pDEqsV,GAAiBlpV,EAAQ83C,SACzBqxS,GAAa1P,GAAW/gQ,KACxBshQ,GAAat+C,GAAQpgS,GAAOD,KAAMC,IAClCw0U,GAAY79T,GAAKY,IACjBk9T,GAAY99T,GAAKW,IACjBw2U,GAAYnsL,EAAKL,IACjBysL,GAAiBrpV,EAAQiuC,SACzBq7S,GAAer3U,GAAKK,OACpBi3U,GAAgB9P,GAAWn1U,QAG3Bs4I,GAAWosI,GAAUhpR,EAAS,YAC9BpD,GAAMosR,GAAUhpR,EAAS,OACzBoE,GAAU4kR,GAAUhpR,EAAS,WAC7B+iF,GAAMimM,GAAUhpR,EAAS,OACzBgpD,GAAUggO,GAAUhpR,EAAS,WAC7B+oR,GAAeC,GAAU1tR,GAAQ,UAGjCkuV,GAAUxgS,IAAW,IAAIA,GAGzBygS,GAAY,GAGZpgE,GAAqBD,GAASxsI,IAC9B0sI,GAAgBF,GAASxsR,IACzB2sR,GAAoBH,GAAShlR,IAC7BolR,GAAgBJ,GAASrmM,IACzB0mM,GAAoBL,GAASpgO,IAG7BixR,GAAcn7U,GAASA,GAAOlB,eA9rDhCf,EA+rDEs0S,GAAgB8oC,GAAcA,GAAYvsC,aA/rD5C7wS,EAgsDEq0S,GAAiB+oC,GAAcA,GAAYj9U,cAhsD7CH,EAyzDF,SAAS6sV,GAAO5rV,GACd,GAAI++R,GAAa/+R,KAAWwjB,GAAQxjB,MAAYA,aAAiB6rV,IAAc,CAC7E,GAAI7rV,aAAiB8rV,GACnB,OAAO9rV,EAGT,GAAIQ,GAAerB,KAAKa,EAAO,eAC7B,OAAO+rV,GAAa/rV,GAIxB,OAAO,IAAI8rV,GAAc9rV,GAY3B,IAAIgsV,GAAa,WACf,SAAS3uV,KAET,OAAO,SAAU6lQ,GACf,IAAKr3E,GAASq3E,GACZ,MAAO,GAGT,GAAI84E,GACF,OAAOA,GAAa94E,GAGtB7lQ,EAAOyC,UAAYojQ,EACnB,IAAI7+P,EAAS,IAAIhH,EAEjB,OADAA,EAAOyC,eA91DTf,EA+1DSsF,GAfM,GAyBjB,SAAS4nV,MAWT,SAASH,GAAc9rV,EAAOksV,GAC5BtsV,KAAKusV,YAAcnsV,EACnBJ,KAAKwsV,YAAc,GACnBxsV,KAAKysV,YAAcH,EACnBtsV,KAAK0sV,UAAY,EACjB1sV,KAAK2sV,gBAz3DLxtV,EAs8DF,SAAS8sV,GAAY7rV,GACnBJ,KAAKusV,YAAcnsV,EACnBJ,KAAKwsV,YAAc,GACnBxsV,KAAK4sV,QAAU,EACf5sV,KAAK6sV,cAAe,EACpB7sV,KAAK8sV,cAAgB,GACrB9sV,KAAK+sV,cA74Dc,WA84DnB/sV,KAAKgtV,UAAY,GAqHnB,SAASxQ,GAAKxnG,GACZ,IAAIjhO,GAAS,EACTtV,EAAoB,MAAXu2O,EAAkB,EAAIA,EAAQv2O,OAG3C,IAFAuB,KAAK4nD,UAEI7zC,EAAQtV,GAAQ,CACvB,IAAI4G,EAAQ2vO,EAAQjhO,GACpB/T,KAAKJ,IAAIyF,EAAM,GAAIA,EAAM,KAwG7B,SAAS8lR,GAAUn2C,GACjB,IAAIjhO,GAAS,EACTtV,EAAoB,MAAXu2O,EAAkB,EAAIA,EAAQv2O,OAG3C,IAFAuB,KAAK4nD,UAEI7zC,EAAQtV,GAAQ,CACvB,IAAI4G,EAAQ2vO,EAAQjhO,GACpB/T,KAAKJ,IAAIyF,EAAM,GAAIA,EAAM,KAsH7B,SAASu5R,GAAS5pD,GAChB,IAAIjhO,GAAS,EACTtV,EAAoB,MAAXu2O,EAAkB,EAAIA,EAAQv2O,OAG3C,IAFAuB,KAAK4nD,UAEI7zC,EAAQtV,GAAQ,CACvB,IAAI4G,EAAQ2vO,EAAQjhO,GACpB/T,KAAKJ,IAAIyF,EAAM,GAAIA,EAAM,KAqG7B,SAASwuT,GAAS9vT,GAChB,IAAIgQ,GAAS,EACTtV,EAAmB,MAAVsF,EAAiB,EAAIA,EAAOtF,OAGzC,IAFAuB,KAAKwrR,SAAW,IAAIoT,KAEX7qR,EAAQtV,GACfuB,KAAK6yB,IAAI9uB,EAAOgQ,IAgDpB,SAASuqR,GAAMtpD,GACb,IAAIjyN,EAAO/iB,KAAKwrR,SAAW,IAAIL,GAAUn2C,GACzCh1O,KAAK2yB,KAAO5P,EAAK4P,KA6GnB,SAASs5O,GAAc7rQ,EAAOyyT,GAC5B,IAAIC,EAAQlvS,GAAQxjB,GAChB2yT,GAASD,GAASH,GAAYvyT,GAC9B4yT,GAAUF,IAAUC,GAAS5sF,GAAS/lO,GACtC6yT,GAAUH,IAAUC,IAAUC,GAAUl0K,GAAa1+I,GACrD8yT,EAAcJ,GAASC,GAASC,GAAUC,EAC1CxuT,EAASyuT,EAAcR,GAAUtyT,EAAM3B,OAAQw/C,IAAU,GACzDx/C,EAASgG,EAAOhG,OAEpB,IAAK,IAAIG,KAAOwB,GACTyyT,IAAajyT,GAAerB,KAAKa,EAAOxB,IAAWs0T,IACjD,UAAPt0T,GACAo0T,IAAkB,UAAPp0T,GAA0B,UAAPA,IAC9Bq0T,IAAkB,UAAPr0T,GAA0B,cAAPA,GAA8B,cAAPA,IACrDg0T,GAAQh0T,EAAKH,KACXgG,EAAOtG,KAAKS,GAIhB,OAAO6F,EAWT,SAASwoV,GAAY/4U,GACnB,IAAIzV,EAASyV,EAAMzV,OACnB,OAAOA,EAASyV,EAAMg5U,GAAW,EAAGzuV,EAAS,SA/lF7CU,EA2mFF,SAASguV,GAAgBj5U,EAAOmB,GAC9B,OAAO+3U,GAAY15Q,GAAUx/D,GAAQm5U,GAAUh4U,EAAG,EAAGnB,EAAMzV,SAW7D,SAAS6uV,GAAap5U,GACpB,OAAOk5U,GAAY15Q,GAAUx/D,IAa/B,SAASq5U,GAAiB9vV,EAAQmB,EAAKwB,SAroFrCjB,IAsoFIiB,IAAwBgrR,GAAG3tR,EAAOmB,GAAMwB,SAtoF5CjB,IAsoFsDiB,KAAyBxB,KAAOnB,KACpF0uR,GAAgB1uR,EAAQmB,EAAKwB,GAejC,SAAS8mO,GAAYzpO,EAAQmB,EAAKwB,GAChC,IAAI+0T,EAAW13T,EAAOmB,GAEhBgC,GAAerB,KAAK9B,EAAQmB,IAAQwsR,GAAG+pC,EAAU/0T,UAzpFvDjB,IAypFkEiB,GAAyBxB,KAAOnB,IAChG0uR,GAAgB1uR,EAAQmB,EAAKwB,GAajC,SAASs8U,GAAaxoU,EAAOtV,GAG3B,IAFA,IAAIH,EAASyV,EAAMzV,OAEZA,KACL,GAAI2sR,GAAGl3Q,EAAMzV,GAAQ,GAAIG,GACvB,OAAOH,EAIX,OAAQ,EAeV,SAAS+uV,GAAe18C,EAAYnxC,EAAQ89B,EAAUi+C,GAIpD,OAHA+R,GAAS38C,GAAY,SAAU1wS,EAAOxB,EAAKkyS,GACzCnxC,EAAO+7E,EAAat7U,EAAOq9R,EAASr9R,GAAQ0wS,MAEvC4qC,EAaT,SAAS0B,GAAW3/U,EAAQiB,GAC1B,OAAOjB,GAAUy/U,GAAWx+U,EAAQf,GAAKe,GAASjB,GA2BpD,SAAS0uR,GAAgB1uR,EAAQmB,EAAKwB,GACzB,aAAPxB,GAAsBG,GACxBA,GAAetB,EAAQmB,EAAK,CAC1B,cAAgB,EAChB,YAAc,EACd,MAASwB,EACT,UAAY,IAGd3C,EAAOmB,GAAOwB,EAalB,SAASstV,GAAOjwV,EAAQwuK,GAMtB,IALA,IAAIl4J,GAAS,EACTtV,EAASwtK,EAAMxtK,OACfgG,EAASkf,EAAMllB,GACfugO,EAAiB,MAAVvhO,IAEFsW,EAAQtV,GACfgG,EAAOsP,GAASirN,OAzwFlB7/N,EAywFqCQ,GAAIlC,EAAQwuK,EAAMl4J,IAGvD,OAAOtP,EAaT,SAAS4oV,GAAU7xF,EAAQmyF,EAAOC,GAWhC,OAVIpyF,IAAWA,SA1xFfr8P,IA2xFMyuV,IACFpyF,EAASA,GAAUoyF,EAAQpyF,EAASoyF,QA5xFxCzuV,IA+xFMwuV,IACFnyF,EAASA,GAAUmyF,EAAQnyF,EAASmyF,IAIjCnyF,EAoBT,SAASmhF,GAAUv8U,EAAOuzT,EAASvnC,EAAYxtR,EAAKnB,EAAQm2T,GAC1D,IAAInvT,EACAipU,EAnyFc,EAmyFL/Z,EACTk6B,EAnyFc,EAmyFLl6B,EACTipB,EAnyFiB,EAmyFRjpB,EAMb,GAJIvnC,IACF3nR,EAAShH,EAAS2uR,EAAWhsR,EAAOxB,EAAKnB,EAAQm2T,GAASxnC,EAAWhsR,SA/zFvEjB,IAk0FIsF,EACF,OAAOA,EAGT,IAAKwnL,GAAS7rL,GACZ,OAAOA,EAGT,IAAI0yT,EAAQlvS,GAAQxjB,GAEpB,GAAI0yT,GAGF,GAFAruT,EAstHJ,SAAwByP,GACtB,IAAIzV,EAASyV,EAAMzV,OACfgG,EAAS,IAAIyP,EAAMjU,YAAYxB,GAE/BA,GAA6B,iBAAZyV,EAAM,IAAkBtT,GAAerB,KAAK2U,EAAO,WACtEzP,EAAOsP,MAAQG,EAAMH,MACrBtP,EAAO8gP,MAAQrxO,EAAMqxO,OAGvB,OAAO9gP,EA/tHIo4U,CAAez8U,IAEnBstU,EACH,OAAOh6P,GAAUtzE,EAAOqE,OAErB,CACL,IAAIksL,EAAMq7F,GAAO5rR,GACb08U,EAASnsJ,GAAOmqJ,GAAWnqJ,GAAOoqJ,EAEtC,GAAI50G,GAAS/lO,GACX,OAAO28U,GAAY38U,EAAOstU,GAG5B,GAAI/8I,GAAOuyJ,GAAavyJ,GAAOkqJ,GAAWiC,IAAWr/U,GAGnD,GAFAgH,EAASopV,GAAU/Q,EAAS,GAAKG,GAAgB78U,IAE5CstU,EACH,OAAOmgB,EAixEf,SAAuBnvV,EAAQjB,GAC7B,OAAOy/U,GAAWx+U,EAAQ02T,GAAa12T,GAASjB,GAlxE1BqwV,CAAc1tV,EAhItC,SAAsB3C,EAAQiB,GAC5B,OAAOjB,GAAUy/U,GAAWx+U,EAAQqvV,GAAOrvV,GAASjB,GA+HTuwV,CAAavpV,EAAQrE,IAowElE,SAAqB1B,EAAQjB,GAC3B,OAAOy/U,GAAWx+U,EAAQsgS,GAAWtgS,GAASjB,GArwE4B0/U,CAAY/8U,EAAOg9U,GAAW34U,EAAQrE,QAEvG,CACL,IAAKg7U,GAAczqJ,GACjB,OAAOlzL,EAAS2C,EAAQ,GAG1BqE,EAmuHN,SAAwBhH,EAAQkzL,EAAK+8I,GACnC,IAAIzhD,EAAOxuR,EAAOwC,YAElB,OAAQ0wL,GACN,KAAK4yJ,EACH,OAAOjG,GAAiB7/U,GAE1B,KAAKqlV,EACL,KAAKC,EACH,OAAO,IAAI92D,GAAMxuR,GAEnB,KAAK+lV,EACH,OA9vDN,SAAuBn5D,EAAUqjD,GAC/B,IAAIxtT,EAASwtT,EAAS4P,GAAiBjzD,EAASnqQ,QAAUmqQ,EAASnqQ,OACnE,OAAO,IAAImqQ,EAASpqR,YAAYigB,EAAQmqQ,EAAS5qB,WAAY4qB,EAASx6H,YA4vD3D0tL,CAAc9/U,EAAQiwU,GAE/B,KAAK+V,EACL,KAAKC,EACL,KAAKC,EACL,KAAKC,EACL,KAAKC,EACL,KAAKC,EACL,IAv/MgB,6BAw/MhB,KAAKC,EACL,KAAKC,EACH,OAAOxG,GAAgB//U,EAAQiwU,GAEjC,KAAKsN,EACH,OAAO,IAAI/uD,EAEb,KAAKg3D,EACL,KAAKG,EACH,OAAO,IAAIn3D,EAAKxuR,GAElB,KAAK0lV,EACH,OAtwDN,SAAqB/5D,GACnB,IAAI3kR,EAAS,IAAI2kR,EAAOnpR,YAAYmpR,EAAO1qR,OAAQw8U,GAAQ7qS,KAAK+4O,IAEhE,OADA3kR,EAAO00E,UAAYiwM,EAAOjwM,UACnB10E,EAmwDIi5U,CAAYjgV,GAErB,KAAKw9U,EACH,OAAO,IAAIhvD,EAEb,KAAKo3D,EACH,OA9vDe/8E,EA8vDI7oQ,EA7vDhBg2S,GAAgB71S,GAAO61S,GAAcl0S,KAAK+mQ,IAAW,GAD9D,IAAqBA,EA5gENs3E,CAAex9U,EAAOuwL,EAAK+8I,IAKxC9Z,IAAUA,EAAQ,IAAIt1B,IACtB,IAAIu/C,EAAUjqB,EAAMj0T,IAAIS,GAExB,GAAIy9U,EACF,OAAOA,EAGTjqB,EAAMh0T,IAAIQ,EAAOqE,GAEbsjV,GAAM3nV,GACRA,EAAMzB,SAAQ,SAAUq/U,GACtBv5U,EAAOouB,IAAI8pT,GAAUqB,EAAUrqB,EAASvnC,EAAY4xD,EAAU59U,EAAOwzT,OAE9Dg0B,GAAMxnV,IACfA,EAAMzB,SAAQ,SAAUq/U,EAAUp/U,GAChC6F,EAAO7E,IAAIhB,EAAK+9U,GAAUqB,EAAUrqB,EAASvnC,EAAYxtR,EAAKwB,EAAOwzT,OAIzE,IACIjuI,EAAQmtI,OA93FZ3zT,GA63Fey9U,EAASiR,EAASI,GAAenQ,GAAa+P,EAASE,GAASpwV,IACtCyC,GAUzC,OATA29U,GAAUp4J,GAASvlL,GAAO,SAAU49U,EAAUp/U,GACxC+mL,IAEFq4J,EAAW59U,EADXxB,EAAMo/U,IAKR92G,GAAYziO,EAAQ7F,EAAK+9U,GAAUqB,EAAUrqB,EAASvnC,EAAYxtR,EAAKwB,EAAOwzT,OAEzEnvT,EA2BT,SAASypV,GAAezwV,EAAQiB,EAAQinL,GACtC,IAAIlnL,EAASknL,EAAMlnL,OAEnB,GAAc,MAAVhB,EACF,OAAQgB,EAKV,IAFAhB,EAASG,GAAOH,GAETgB,KAAU,CACf,IAAIG,EAAM+mL,EAAMlnL,GACZs3P,EAAYr3P,EAAOE,GACnBwB,EAAQ3C,EAAOmB,GAEnB,QAj7FFO,IAi7FMiB,KAAyBxB,KAAOnB,KAAYs4P,EAAU31P,GACxD,OAAO,EAIX,OAAO,EAcT,SAAS+tV,GAAUv1I,EAAM45H,EAAM9pJ,GAC7B,GAAmB,mBAARkwB,EACT,MAAM,IAAIn5M,GAAUijV,GAGtB,OAAOp0L,IAAW,WAChBsqD,EAAKx6M,WA18FPe,EA08FwBupL,KACrB8pJ,GAeL,SAAS4b,GAAel6U,EAAOnQ,EAAQ05R,EAAU8qD,GAC/C,IAAIx0U,GAAS,EACT8zP,EAAWugF,GACXiG,GAAW,EACX5vV,EAASyV,EAAMzV,OACfgG,EAAS,GACT6pV,EAAevqV,EAAOtF,OAE1B,IAAKA,EACH,OAAOgG,EAGLg5R,IACF15R,EAASykV,GAASzkV,EAAQuvT,GAAU71B,KAGlC8qD,GACF1gF,EAAWygF,GACX+F,GAAW,GACFtqV,EAAOtF,QAv+FC,MAw+FjBopQ,EAAWksD,GACXs6B,GAAW,EACXtqV,EAAS,IAAI8vT,GAAS9vT,IAGxBwqV,EAAO,OAASx6U,EAAQtV,GAAQ,CAC9B,IAAI2B,EAAQ8T,EAAMH,GACdy6U,EAAuB,MAAZ/wD,EAAmBr9R,EAAQq9R,EAASr9R,GAGnD,GAFAA,EAAQmoV,GAAwB,IAAVnoV,EAAcA,EAAQ,EAExCiuV,GAAYG,IAAaA,EAAU,CAGrC,IAFA,IAAIC,EAAcH,EAEXG,KACL,GAAI1qV,EAAO0qV,KAAiBD,EAC1B,SAASD,EAIb9pV,EAAOtG,KAAKiC,QACFynQ,EAAS9jQ,EAAQyqV,EAAUjG,IACrC9jV,EAAOtG,KAAKiC,GAIhB,OAAOqE,EAjoCTunV,GAAO0C,iBAAmB,CAOxB,OAAUlK,EAQV,SAAYC,EAQZ,YAAeC,EAQf,SAAY,GAQZ,QAAW,CAOT,EAAKsH,KAITA,GAAO9rV,UAAYmsV,GAAWnsV,UAC9B8rV,GAAO9rV,UAAUD,YAAc+rV,GAC/BE,GAAchsV,UAAYksV,GAAWC,GAAWnsV,WAChDgsV,GAAchsV,UAAUD,YAAcisV,GA2HtCD,GAAY/rV,UAAYksV,GAAWC,GAAWnsV,WAC9C+rV,GAAY/rV,UAAUD,YAAcgsV,GA2GpCzP,GAAKt8U,UAAU0nD,MA7Ef,WACE5nD,KAAKwrR,SAAWH,GAAeA,GAAa,MAAQ,GACpDrrR,KAAK2yB,KAAO,GA4Ed6pT,GAAKt8U,UAAkB,OA9DvB,SAAoBtB,GAClB,IAAI6F,EAASzE,KAAKN,IAAId,WAAeoB,KAAKwrR,SAAS5sR,GAEnD,OADAoB,KAAK2yB,MAAQluB,EAAS,EAAI,EACnBA,GA4DT+3U,GAAKt8U,UAAUP,IA/Cf,SAAiBf,GACf,IAAImkB,EAAO/iB,KAAKwrR,SAEhB,GAAIH,GAAc,CAChB,IAAI5mR,EAASse,EAAKnkB,GAClB,MA5mEe,8BA4mER6F,OA1nETtF,EA0nEiDsF,EAGjD,OAAO7D,GAAerB,KAAKwjB,EAAMnkB,GAAOmkB,EAAKnkB,QA7nE7CO,GAqqEFq9U,GAAKt8U,UAAUR,IA3Bf,SAAiBd,GACf,IAAImkB,EAAO/iB,KAAKwrR,SAChB,OAAOH,QA5oEPlsR,IA4oEsB4jB,EAAKnkB,GAAqBgC,GAAerB,KAAKwjB,EAAMnkB,IA0B5E49U,GAAKt8U,UAAUN,IAZf,SAAiBhB,EAAKwB,GACpB,IAAI2iB,EAAO/iB,KAAKwrR,SAGhB,OAFAxrR,KAAK2yB,MAAQ3yB,KAAKN,IAAId,GAAO,EAAI,EACjCmkB,EAAKnkB,GAAOysR,SA7pEZlsR,IA6pE4BiB,EA/oEX,4BA+oEkDA,EAC5DJ,MAiITmrR,GAAUjrR,UAAU0nD,MA3FpB,WACE5nD,KAAKwrR,SAAW,GAChBxrR,KAAK2yB,KAAO,GA0Fdw4P,GAAUjrR,UAAkB,OA7E5B,SAAyBtB,GACvB,IAAImkB,EAAO/iB,KAAKwrR,SACZz3Q,EAAQ2oU,GAAa35T,EAAMnkB,GAE/B,QAAImV,EAAQ,KAMRA,GAFYgP,EAAKtkB,OAAS,EAG5BskB,EAAKlc,MAELmN,GAAOzU,KAAKwjB,EAAMhP,EAAO,KAGzB/T,KAAK2yB,MACA,IA6DTw4P,GAAUjrR,UAAUP,IAhDpB,SAAsBf,GACpB,IAAImkB,EAAO/iB,KAAKwrR,SACZz3Q,EAAQ2oU,GAAa35T,EAAMnkB,GAC/B,OAAOmV,EAAQ,OApvEf5U,EAovE+B4jB,EAAKhP,GAAO,IA8C7Co3Q,GAAUjrR,UAAUR,IAjCpB,SAAsBd,GACpB,OAAO89U,GAAa18U,KAAKwrR,SAAU5sR,IAAQ,GAiC7CusR,GAAUjrR,UAAUN,IAnBpB,SAAsBhB,EAAKwB,GACzB,IAAI2iB,EAAO/iB,KAAKwrR,SACZz3Q,EAAQ2oU,GAAa35T,EAAMnkB,GAS/B,OAPImV,EAAQ,KACR/T,KAAK2yB,KACP5P,EAAK5kB,KAAK,CAACS,EAAKwB,KAEhB2iB,EAAKhP,GAAO,GAAK3T,EAGZJ,MA+GT4+R,GAAS1+R,UAAU0nD,MAzEnB,WACE5nD,KAAK2yB,KAAO,EACZ3yB,KAAKwrR,SAAW,CACd,KAAQ,IAAIgxD,GACZ,IAAO,IAAKt9U,IAAOisR,IACnB,OAAU,IAAIqxD,KAqElB59C,GAAS1+R,UAAkB,OAvD3B,SAAwBtB,GACtB,IAAI6F,EAASw5U,GAAWj+U,KAAMpB,GAAa,OAAEA,GAE7C,OADAoB,KAAK2yB,MAAQluB,EAAS,EAAI,EACnBA,GAqDTm6R,GAAS1+R,UAAUP,IAxCnB,SAAqBf,GACnB,OAAOq/U,GAAWj+U,KAAMpB,GAAKe,IAAIf,IAwCnCggS,GAAS1+R,UAAUR,IA3BnB,SAAqBd,GACnB,OAAOq/U,GAAWj+U,KAAMpB,GAAKc,IAAId,IA2BnCggS,GAAS1+R,UAAUN,IAbnB,SAAqBhB,EAAKwB,GACxB,IAAI2iB,EAAOk7T,GAAWj+U,KAAMpB,GACxB+zB,EAAO5P,EAAK4P,KAGhB,OAFA5P,EAAKnjB,IAAIhB,EAAKwB,GACdJ,KAAK2yB,MAAQ5P,EAAK4P,MAAQA,EAAO,EAAI,EAC9B3yB,MA8DT6zT,GAAS3zT,UAAU2yB,IAAMghS,GAAS3zT,UAAU/B,KArB5C,SAAqBiC,GAGnB,OAFAJ,KAAKwrR,SAAS5rR,IAAIQ,EAl6ED,6BAo6EVJ,MAmBT6zT,GAAS3zT,UAAUR,IANnB,SAAqBU,GACnB,OAAOJ,KAAKwrR,SAAS9rR,IAAIU,IA+G3Bk+R,GAAMp+R,UAAU0nD,MAlFhB,WACE5nD,KAAKwrR,SAAW,IAAIL,GACpBnrR,KAAK2yB,KAAO,GAiFd2rQ,GAAMp+R,UAAkB,OApExB,SAAqBtB,GACnB,IAAImkB,EAAO/iB,KAAKwrR,SACZ/mR,EAASse,EAAa,OAAEnkB,GAE5B,OADAoB,KAAK2yB,KAAO5P,EAAK4P,KACVluB,GAiET65R,GAAMp+R,UAAUP,IApDhB,SAAkBf,GAChB,OAAOoB,KAAKwrR,SAAS7rR,IAAIf,IAoD3B0/R,GAAMp+R,UAAUR,IAvChB,SAAkBd,GAChB,OAAOoB,KAAKwrR,SAAS9rR,IAAId,IAuC3B0/R,GAAMp+R,UAAUN,IAzBhB,SAAkBhB,EAAKwB,GACrB,IAAI2iB,EAAO/iB,KAAKwrR,SAEhB,GAAIzoQ,aAAgBooQ,GAAW,CAC7B,IAAI+yD,EAAQn7T,EAAKyoQ,SAEjB,IAAKtsR,IAAOg/U,EAAMz/U,OAAS0/U,IAGzB,OAFAD,EAAM//U,KAAK,CAACS,EAAKwB,IACjBJ,KAAK2yB,OAAS5P,EAAK4P,KACZ3yB,KAGT+iB,EAAO/iB,KAAKwrR,SAAW,IAAIoT,GAASs/C,GAKtC,OAFAn7T,EAAKnjB,IAAIhB,EAAKwB,GACdJ,KAAK2yB,KAAO5P,EAAK4P,KACV3yB,MAweT,IAAIytV,GAAWkB,GAAepxD,IAU1BqxD,GAAgBD,GAAeE,IAAiB,GAWpD,SAASC,GAAUh+C,EAAY/6C,GAC7B,IAAItxP,GAAS,EAKb,OAJAgpV,GAAS38C,GAAY,SAAU1wS,EAAO2T,EAAO+8R,GAE3C,OADArsS,IAAWsxP,EAAU31P,EAAO2T,EAAO+8R,MAG9BrsS,EAcT,SAASsqV,GAAa76U,EAAOupR,EAAU8qD,GAIrC,IAHA,IAAIx0U,GAAS,EACTtV,EAASyV,EAAMzV,SAEVsV,EAAQtV,GAAQ,CACvB,IAAI2B,EAAQ8T,EAAMH,GACd0jH,EAAUgmK,EAASr9R,GAEvB,GAAe,MAAXq3H,SApkGNt4H,IAokG0BqvV,EAAyB/2N,IAAYA,IAAYsmI,GAAStmI,GAAW8wN,EAAW9wN,EAAS+2N,IAC/G,IAAIA,EAAW/2N,EACXhzH,EAASrE,EAIjB,OAAOqE,EA8CT,SAASuqV,GAAWl+C,EAAY/6C,GAC9B,IAAItxP,EAAS,GAMb,OALAgpV,GAAS38C,GAAY,SAAU1wS,EAAO2T,EAAO+8R,GACvC/6C,EAAU31P,EAAO2T,EAAO+8R,IAC1BrsS,EAAOtG,KAAKiC,MAGTqE,EAeT,SAASwqV,GAAY/6U,EAAOqU,EAAOwtO,EAAWm5F,EAAUzqV,GACtD,IAAIsP,GAAS,EACTtV,EAASyV,EAAMzV,OAInB,IAHAs3P,IAAcA,EAAYo5F,IAC1B1qV,IAAWA,EAAS,MAEXsP,EAAQtV,GAAQ,CACvB,IAAI2B,EAAQ8T,EAAMH,GAEdwU,EAAQ,GAAKwtO,EAAU31P,GACrBmoB,EAAQ,EAEV0mU,GAAY7uV,EAAOmoB,EAAQ,EAAGwtO,EAAWm5F,EAAUzqV,GAEnDmwT,GAAUnwT,EAAQrE,GAEV8uV,IACVzqV,EAAOA,EAAOhG,QAAU2B,GAI5B,OAAOqE,EAeT,IAAIguT,GAAU28B,KAYVC,GAAeD,IAAc,GAUjC,SAAS7xD,GAAW9/R,EAAQggS,GAC1B,OAAOhgS,GAAUg1T,GAAQh1T,EAAQggS,EAAU9/R,IAY7C,SAASkxV,GAAgBpxV,EAAQggS,GAC/B,OAAOhgS,GAAU4xV,GAAa5xV,EAAQggS,EAAU9/R,IAalD,SAAS2xV,GAAc7xV,EAAQkoL,GAC7B,OAAOk5G,GAAYl5G,GAAO,SAAU/mL,GAClC,OAAOyuL,GAAW5vL,EAAOmB,OAa7B,SAAS2wV,GAAQ9xV,EAAQw7E,GAKvB,IAHA,IAAIllE,EAAQ,EACRtV,GAFJw6E,EAAO+7O,GAAS/7O,EAAMx7E,IAEJgB,OAED,MAAVhB,GAAkBsW,EAAQtV,GAC/BhB,EAASA,EAAOw3T,GAAMh8O,EAAKllE,OAG7B,OAAOA,GAASA,GAAStV,EAAShB,OA3vGlC0B,EA0wGF,SAASw1T,GAAel3T,EAAQo3T,EAAUC,GACxC,IAAIrwT,EAASowT,EAASp3T,GACtB,OAAOmmB,GAAQnmB,GAAUgH,EAASmwT,GAAUnwT,EAAQqwT,EAAYr3T,IAWlE,SAASguR,GAAWrrR,GAClB,OAAa,MAATA,OAxxGJjB,IAyxGSiB,EA/rGM,qBARL,gBA0sGHslQ,IAAkBA,MAAkB9nQ,GAAOwC,GAmkGpD,SAAmBA,GACjB,IAAIg5R,EAAQx4R,GAAerB,KAAKa,EAAOslQ,IACnC/0E,EAAMvwL,EAAMslQ,IAEhB,IACEtlQ,EAAMslQ,SAp2MRvmQ,EAq2ME,IAAIqwV,GAAW,EACf,MAAOz1U,IAET,IAAItV,EAASqmV,GAAqBvrV,KAAKa,GAEnCovV,IACEp2D,EACFh5R,EAAMslQ,IAAkB/0E,SAEjBvwL,EAAMslQ,KAIjB,OAAOjhQ,EAtlGoD+gQ,CAAUplQ,GAiqHvE,SAAwBA,GACtB,OAAO0qV,GAAqBvrV,KAAKa,GAlqH6CqlQ,CAAerlQ,GAa/F,SAASqvV,GAAOrvV,EAAO+2K,GACrB,OAAO/2K,EAAQ+2K,EAYjB,SAASu4K,GAAQjyV,EAAQmB,GACvB,OAAiB,MAAVnB,GAAkBmD,GAAerB,KAAK9B,EAAQmB,GAYvD,SAAS+wV,GAAUlyV,EAAQmB,GACzB,OAAiB,MAAVnB,GAAkBmB,KAAOhB,GAAOH,GA4BzC,SAASmyV,GAAiBC,EAAQpyD,EAAU8qD,GAS1C,IARA,IAAI1gF,EAAW0gF,EAAaD,GAAoBF,GAC5C3pV,EAASoxV,EAAO,GAAGpxV,OACnB01T,EAAY07B,EAAOpxV,OACnBi2T,EAAWP,EACX27B,EAASnsU,EAAMwwS,GACf9rE,EAAYj2N,IACZ3tB,EAAS,GAENiwT,KAAY,CACjB,IAAIxgT,EAAQ27U,EAAOn7B,GAEfA,GAAYj3B,IACdvpR,EAAQs0U,GAASt0U,EAAOo/S,GAAU71B,KAGpCp1C,EAAYgqF,GAAUn+T,EAAMzV,OAAQ4pP,GACpCynG,EAAOp7B,IAAa6zB,IAAe9qD,GAAYh/R,GAAU,KAAOyV,EAAMzV,QAAU,KAAO,IAAIo1T,GAASa,GAAYxgT,QAj3GlH/U,EAo3GA+U,EAAQ27U,EAAO,GACf,IAAI97U,GAAS,EACTugT,EAAOw7B,EAAO,GAElBvB,EAAO,OAASx6U,EAAQtV,GAAUgG,EAAOhG,OAAS4pP,GAAW,CAC3D,IAAIjoP,EAAQ8T,EAAMH,GACdy6U,EAAW/wD,EAAWA,EAASr9R,GAASA,EAG5C,GAFAA,EAAQmoV,GAAwB,IAAVnoV,EAAcA,EAAQ,IAEtCk0T,EAAOP,GAASO,EAAMk6B,GAAY3mF,EAASpjQ,EAAQ+pV,EAAUjG,IAAc,CAG/E,IAFA7zB,EAAWP,IAEFO,GAAU,CACjB,IAAInvR,EAAQuqT,EAAOp7B,GAEnB,KAAMnvR,EAAQwuR,GAASxuR,EAAOipT,GAAY3mF,EAASgoF,EAAOn7B,GAAW85B,EAAUjG,IAC7E,SAASgG,EAITj6B,GACFA,EAAKn2T,KAAKqwV,GAGZ/pV,EAAOtG,KAAKiC,IAIhB,OAAOqE,EAiCT,SAASsrV,GAAWtyV,EAAQw7E,EAAMyvG,GAGhC,IAAIkwB,EAAiB,OADrBn7M,EAASsjC,GAAOtjC,EADhBw7E,EAAO+7O,GAAS/7O,EAAMx7E,KAEMA,EAASA,EAAOw3T,GAAMv9L,GAAKz+C,KACvD,OAAe,MAAR2/H,OAr7GPz5M,EAq7GkCf,GAAMw6M,EAAMn7M,EAAQirL,GAWxD,SAASyqI,GAAgB/yT,GACvB,OAAO++R,GAAa/+R,IAAUqrR,GAAWrrR,IAAUy6U,EA0CrD,SAASnnB,GAAYtzT,EAAO+2K,EAAOw8I,EAASvnC,EAAYwnC,GACtD,OAAIxzT,IAAU+2K,IAID,MAAT/2K,GAA0B,MAAT+2K,IAAkBgoH,GAAa/+R,KAAW++R,GAAahoH,GACnE/2K,IAAUA,GAAS+2K,IAAUA,EAqBxC,SAAyB15K,EAAQ05K,EAAOw8I,EAASvnC,EAAY4nC,EAAWJ,GACtE,IAAIo8B,EAAWpsU,GAAQnmB,GACnBwyV,EAAWrsU,GAAQuzJ,GACnB+4K,EAASF,EAAWnN,EAAW72D,GAAOvuR,GACtC0yV,EAASF,EAAWpN,EAAW72D,GAAO70G,GAGtCi5K,GAFJF,EAASA,GAAUrV,EAAUqI,EAAYgN,IAEhBhN,EACrBmN,GAFJF,EAASA,GAAUtV,EAAUqI,EAAYiN,IAEhBjN,EACrBoN,EAAYJ,GAAUC,EAE1B,GAAIG,GAAanqH,GAAS1oO,GAAS,CACjC,IAAK0oO,GAAShvD,GACZ,OAAO,EAGT64K,GAAW,EACXI,GAAW,EAGb,GAAIE,IAAcF,EAEhB,OADAx8B,IAAUA,EAAQ,IAAIt1B,IACf0xD,GAAYlxM,GAAarhJ,GAAU8yV,GAAY9yV,EAAQ05K,EAAOw8I,EAASvnC,EAAY4nC,EAAWJ,GA6gFzG,SAAoBn2T,EAAQ05K,EAAOwZ,EAAKgjI,EAASvnC,EAAY4nC,EAAWJ,GACtE,OAAQjjI,GACN,KAAK6yJ,EACH,GAAI/lV,EAAOoyJ,YAAcsnB,EAAMtnB,YAAcpyJ,EAAOgiQ,YAActoF,EAAMsoF,WACtE,OAAO,EAGThiQ,EAASA,EAAOyiB,OAChBi3J,EAAQA,EAAMj3J,OAEhB,KAAKqjU,EACH,QAAI9lV,EAAOoyJ,YAAcsnB,EAAMtnB,aAAemkK,EAAU,IAAI19S,GAAW7Y,GAAS,IAAI6Y,GAAW6gK,KAMjG,KAAK2rK,EACL,KAAKC,EACL,KAAKE,EAGH,OAAO73D,IAAI3tR,GAAS05K,GAEtB,KAAK6rK,EACH,OAAOvlV,EAAO4I,MAAQ8wK,EAAM9wK,MAAQ5I,EAAO6iB,SAAW62J,EAAM72J,QAE9D,KAAK6iU,EACL,KAAKC,EAIH,OAAO3lV,GAAU05K,EAAQ,GAE3B,KAAK6jK,EACH,IAAI35T,EAAUw6T,GAEhB,KAAKZ,EACH,IAAIhnB,EAnjMe,EAmjMHN,EAGhB,GAFAtyS,IAAYA,EAAUy6T,IAElBr+U,EAAOk1B,MAAQwkJ,EAAMxkJ,OAASshS,EAChC,OAAO,EAIT,IAAI4pB,EAAUjqB,EAAMj0T,IAAIlC,GAExB,GAAIogV,EACF,OAAOA,GAAW1mK,EAGpBw8I,GAhkMqB,EAkkMrBC,EAAMh0T,IAAInC,EAAQ05K,GAClB,IAAI1yK,EAAS8rV,GAAYlvU,EAAQ5jB,GAAS4jB,EAAQ81J,GAAQw8I,EAASvnC,EAAY4nC,EAAWJ,GAE1F,OADAA,EAAc,OAAEn2T,GACTgH,EAET,KAAK4+U,EACH,GAAI5vC,GACF,OAAOA,GAAcl0S,KAAK9B,IAAWg2S,GAAcl0S,KAAK43K,GAK9D,OAAO,EA/kFyGq5K,CAAW/yV,EAAQ05K,EAAO+4K,EAAQv8B,EAASvnC,EAAY4nC,EAAWJ,GAGlL,KAngHuB,EAmgHjBD,GAAiC,CACrC,IAAI88B,EAAeL,GAAYxvV,GAAerB,KAAK9B,EAAQ,eACvDizV,EAAeL,GAAYzvV,GAAerB,KAAK43K,EAAO,eAE1D,GAAIs5K,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAehzV,EAAO2C,QAAU3C,EAC/CmzV,EAAeF,EAAev5K,EAAM/2K,QAAU+2K,EAElD,OADAy8I,IAAUA,EAAQ,IAAIt1B,IACf01B,EAAU28B,EAAcC,EAAcj9B,EAASvnC,EAAYwnC,IAItE,IAAK08B,EACH,OAAO,EAIT,OADA18B,IAAUA,EAAQ,IAAIt1B,IA6kFxB,SAAsB7gS,EAAQ05K,EAAOw8I,EAASvnC,EAAY4nC,EAAWJ,GACnE,IAAIK,EAjmMmB,EAimMPN,EACZk9B,EAAW/S,GAAWrgV,GACtBqzV,EAAYD,EAASpyV,OAErB01T,EADW2pB,GAAW3mK,GACD14K,OAEzB,GAAIqyV,GAAa38B,IAAcF,EAC7B,OAAO,EAGT,IAAIlgT,EAAQ+8U,EAEZ,KAAO/8U,KAAS,CACd,IAAInV,EAAMiyV,EAAS98U,GAEnB,KAAMkgT,EAAYr1T,KAAOu4K,EAAQv2K,GAAerB,KAAK43K,EAAOv4K,IAC1D,OAAO,EAKX,IAAImyV,EAAan9B,EAAMj0T,IAAIlC,GACvB42T,EAAaT,EAAMj0T,IAAIw3K,GAE3B,GAAI45K,GAAc18B,EAChB,OAAO08B,GAAc55K,GAASk9I,GAAc52T,EAG9C,IAAIgH,GAAS,EACbmvT,EAAMh0T,IAAInC,EAAQ05K,GAClBy8I,EAAMh0T,IAAIu3K,EAAO15K,GACjB,IAAIuzV,EAAW/8B,EAEf,OAASlgT,EAAQ+8U,GAAW,CAC1BlyV,EAAMiyV,EAAS98U,GACf,IAAIohT,EAAW13T,EAAOmB,GAClB41T,EAAWr9I,EAAMv4K,GAErB,GAAIwtR,EACF,IAAIqoC,EAAWR,EAAY7nC,EAAWooC,EAAUW,EAAUv2T,EAAKu4K,EAAO15K,EAAQm2T,GAASxnC,EAAW+oC,EAAUX,EAAU51T,EAAKnB,EAAQ05K,EAAOy8I,GAI5I,UAxqMFz0T,IAwqMQs1T,EAAyBU,IAAaX,GAAYR,EAAUmB,EAAUX,EAAUb,EAASvnC,EAAYwnC,GAASa,GAAW,CAC7HhwT,GAAS,EACT,MAGFusV,IAAaA,EAAkB,eAAPpyV,GAG1B,GAAI6F,IAAWusV,EAAU,CACvB,IAAIC,EAAUxzV,EAAOwC,YACjBixV,EAAU/5K,EAAMl3K,YAEhBgxV,GAAWC,KAAW,gBAAiBzzV,MAAU,gBAAiB05K,IAA6B,mBAAX85K,GAAyBA,aAAmBA,GAA6B,mBAAXC,GAAyBA,aAAmBA,IAChMzsV,GAAS,GAMb,OAFAmvT,EAAc,OAAEn2T,GAChBm2T,EAAc,OAAEz8I,GACT1yK,EA3oFA0sV,CAAa1zV,EAAQ05K,EAAOw8I,EAASvnC,EAAY4nC,EAAWJ,GA5D5DH,CAAgBrzT,EAAO+2K,EAAOw8I,EAASvnC,EAAYsnC,GAAaE,IAsFzE,SAASw9B,GAAY3zV,EAAQiB,EAAQ2yV,EAAWjlE,GAC9C,IAAIr4Q,EAAQs9U,EAAU5yV,OAClBA,EAASsV,EACTu9U,GAAgBllE,EAEpB,GAAc,MAAV3uR,EACF,OAAQgB,EAKV,IAFAhB,EAASG,GAAOH,GAETsW,KAAS,CACd,IAAIgP,EAAOsuU,EAAUt9U,GAErB,GAAIu9U,GAAgBvuU,EAAK,GAAKA,EAAK,KAAOtlB,EAAOslB,EAAK,MAAQA,EAAK,KAAMtlB,GACvE,OAAO,EAIX,OAASsW,EAAQtV,GAAQ,CAEvB,IAAIG,GADJmkB,EAAOsuU,EAAUt9U,IACF,GACXohT,EAAW13T,EAAOmB,GAClBm2T,EAAWhyS,EAAK,GAEpB,GAAIuuU,GAAgBvuU,EAAK,IACvB,QApmHJ5jB,IAomHQg2T,KAA4Bv2T,KAAOnB,GACrC,OAAO,MAEJ,CACL,IAAIm2T,EAAQ,IAAIt1B,GAEhB,GAAIlS,EACF,IAAI3nR,EAAS2nR,EAAW+oC,EAAUJ,EAAUn2T,EAAKnB,EAAQiB,EAAQk1T,GAGnE,UA9mHJz0T,IA8mHUsF,EAAuBivT,GAAYqB,EAAUI,EAAUo8B,EAA+CnlE,EAAYwnC,GAASnvT,GAC/H,OAAO,GAKb,OAAO,EAYT,SAASkhQ,GAAavlQ,GACpB,SAAK6rL,GAAS7rL,KAioGEw4M,EAjoGiBx4M,EAkoGxB87U,IAAcA,MAActjI,MA9nGvBvrB,GAAWjtL,GAAS+7U,GAAahB,IAChCn5T,KAAK0pQ,GAAStrR,IA4nG/B,IAAkBw4M,EA7kGlB,SAAS44I,GAAapxV,GAGpB,MAAoB,mBAATA,EACFA,EAGI,MAATA,EACK0vF,GAGW,iBAAT1vF,EACFwjB,GAAQxjB,GAASqxV,GAAoBrxV,EAAM,GAAIA,EAAM,IAAMsxV,GAAYtxV,GAGzEI,GAASJ,GAWlB,SAAS8rQ,GAASzuQ,GAChB,IAAKu/U,GAAYv/U,GACf,OAAO6+U,GAAW7+U,GAGpB,IAAIgH,EAAS,GAEb,IAAK,IAAI7F,KAAOhB,GAAOH,GACjBmD,GAAerB,KAAK9B,EAAQmB,IAAe,eAAPA,GACtC6F,EAAOtG,KAAKS,GAIhB,OAAO6F,EAWT,SAAS26R,GAAW3hS,GAClB,IAAKwuL,GAASxuL,GACZ,OAgsGJ,SAAsBA,GACpB,IAAIgH,EAAS,GAEb,GAAc,MAAVhH,EACF,IAAK,IAAImB,KAAOhB,GAAOH,GACrBgH,EAAOtG,KAAKS,GAIhB,OAAO6F,EAzsGEktV,CAAal0V,GAGtB,IAAIm0V,EAAU5U,GAAYv/U,GACtBgH,EAAS,GAEb,IAAK,IAAI7F,KAAOnB,GACD,eAAPmB,IAAyBgzV,GAAYhxV,GAAerB,KAAK9B,EAAQmB,KACrE6F,EAAOtG,KAAKS,GAIhB,OAAO6F,EAaT,SAASotV,GAAOzxV,EAAO+2K,GACrB,OAAO/2K,EAAQ+2K,EAYjB,SAAS26K,GAAQhhD,EAAYrT,GAC3B,IAAI1pR,GAAS,EACTtP,EAAS0nQ,GAAY2kC,GAAcntR,EAAMmtR,EAAWryS,QAAU,GAIlE,OAHAgvV,GAAS38C,GAAY,SAAU1wS,EAAOxB,EAAKkyS,GACzCrsS,IAASsP,GAAS0pR,EAASr9R,EAAOxB,EAAKkyS,MAElCrsS,EAWT,SAASitV,GAAYhzV,GACnB,IAAI2yV,EAAYU,GAAarzV,GAE7B,OAAwB,GAApB2yV,EAAU5yV,QAAe4yV,EAAU,GAAG,GACjCW,GAAwBX,EAAU,GAAG,GAAIA,EAAU,GAAG,IAGxD,SAAU5zV,GACf,OAAOA,IAAWiB,GAAU0yV,GAAY3zV,EAAQiB,EAAQ2yV,IAa5D,SAASI,GAAoBx4Q,EAAM87O,GACjC,OAAIG,GAAMj8O,IAASg5Q,GAAmBl9B,GAC7Bi9B,GAAwB/8B,GAAMh8O,GAAO87O,GAGvC,SAAUt3T,GACf,IAAI03T,EAAWx1T,GAAIlC,EAAQw7E,GAC3B,YA5zHF95E,IA4zHSg2T,GAA0BA,IAAaJ,EAAWm9B,GAAMz0V,EAAQw7E,GAAQy6O,GAAYqB,EAAUI,EAAUo8B,IAgBnH,SAASY,GAAU10V,EAAQiB,EAAQ0zV,EAAUhmE,EAAYwnC,GACnDn2T,IAAWiB,GAIf+zT,GAAQ/zT,GAAQ,SAAUq2T,EAAUn2T,GAGlC,GAFAg1T,IAAUA,EAAQ,IAAIt1B,IAElBryG,GAAS8oI,IA8BjB,SAAuBt3T,EAAQiB,EAAQE,EAAKwzV,EAAUC,EAAWjmE,EAAYwnC,GAC3E,IAAIuB,EAAWm9B,GAAQ70V,EAAQmB,GAC3Bm2T,EAAWu9B,GAAQ5zV,EAAQE,GAC3Bi/U,EAAUjqB,EAAMj0T,IAAIo1T,GAExB,GAAI8oB,EAEF,YADA0P,GAAiB9vV,EAAQmB,EAAKi/U,GAIhC,IAAI9yS,EAAWqhP,EAAaA,EAAW+oC,EAAUJ,EAAUn2T,EAAM,GAAInB,EAAQiB,EAAQk1T,QA53HrFz0T,EA63HIkvV,OA73HJlvV,IA63He4rC,EAEf,GAAIsjT,EAAU,CACZ,IAAIv7B,EAAQlvS,GAAQmxS,GAChB/B,GAAUF,GAAS3sF,GAAS4uF,GAC5Bw9B,GAAWz/B,IAAUE,GAAUl0K,GAAai2K,GAChDhqR,EAAWgqR,EAEPjC,GAASE,GAAUu/B,EACjB3uU,GAAQuxS,GACVpqR,EAAWoqR,EACFsnB,GAAkBtnB,GAC3BpqR,EAAW2oC,GAAUyhP,GACZnC,GACTq7B,GAAW,EACXtjT,EAAWgyS,GAAYhoB,GAAU,IACxBw9B,GACTlE,GAAW,EACXtjT,EAAWyyS,GAAgBzoB,GAAU,IAErChqR,EAAW,GAEJmiJ,GAAc6nI,IAAapC,GAAYoC,IAChDhqR,EAAWoqR,EAEPxC,GAAYwC,GACdpqR,EAAWynT,GAAcr9B,GACflpI,GAASkpI,KAAa9nI,GAAW8nI,KAC3CpqR,EAAWkyS,GAAgBloB,KAG7Bs5B,GAAW,EAIXA,IAEFz6B,EAAMh0T,IAAIm1T,EAAUhqR,GACpBsnT,EAAUtnT,EAAUgqR,EAAUq9B,EAAUhmE,EAAYwnC,GACpDA,EAAc,OAAEmB,IAGlBw4B,GAAiB9vV,EAAQmB,EAAKmsC,GAlF1B0nT,CAAch1V,EAAQiB,EAAQE,EAAKwzV,EAAUD,GAAW/lE,EAAYwnC,OAC/D,CACL,IAAI7oR,EAAWqhP,EAAaA,EAAWkmE,GAAQ70V,EAAQmB,GAAMm2T,EAAUn2T,EAAM,GAAInB,EAAQiB,EAAQk1T,QAv1HrGz0T,WAy1HQ4rC,IACFA,EAAWgqR,GAGbw4B,GAAiB9vV,EAAQmB,EAAKmsC,MAE/BgjT,IAoFL,SAAS2E,GAAQx+U,EAAOmB,GACtB,IAAI5W,EAASyV,EAAMzV,OAEnB,GAAKA,EAKL,OAAOm0T,GADPv9S,GAAKA,EAAI,EAAI5W,EAAS,EACJA,GAAUyV,EAAMmB,QA37HlClW,EAw8HF,SAASwzV,GAAY7hD,EAAY8hD,EAAWC,GAExCD,EADEA,EAAUn0V,OACA+pV,GAASoK,GAAW,SAAUn1D,GACxC,OAAI75Q,GAAQ65Q,GACH,SAAUr9R,GACf,OAAOmvV,GAAQnvV,EAA2B,IAApBq9R,EAASh/R,OAAeg/R,EAAS,GAAKA,IAIzDA,KAGG,CAAC3tM,IAGf,IAAI/7E,GAAS,EAYb,OAXA6+U,EAAYpK,GAASoK,EAAWt/B,GAAUw/B,OA76F9C,SAAoB5+U,EAAO6+U,GACzB,IAAIt0V,EAASyV,EAAMzV,OAGnB,IAFAyV,EAAM09D,KAAKmhR,GAEJt0V,KACLyV,EAAMzV,GAAUyV,EAAMzV,GAAQ2B,MAGhC,OAAO8T,EAg7FE8+U,CAVMlB,GAAQhhD,GAAY,SAAU1wS,EAAOxB,EAAKkyS,GAIrD,MAAO,CACL,SAJa03C,GAASoK,GAAW,SAAUn1D,GAC3C,OAAOA,EAASr9R,MAIhB,QAAW2T,EACX,MAAS3T,OAGa,SAAU3C,EAAQ05K,GAC1C,OA88BJ,SAAyB15K,EAAQ05K,EAAO07K,GACtC,IAAI9+U,GAAS,EACTk/U,EAAcx1V,EAAOy1V,SACrBC,EAAch8K,EAAM+7K,SACpBz0V,EAASw0V,EAAYx0V,OACrB20V,EAAeP,EAAOp0V,OAE1B,OAASsV,EAAQtV,GAAQ,CACvB,IAAIgG,EAAS4uV,GAAiBJ,EAAYl/U,GAAQo/U,EAAYp/U,IAE9D,GAAItP,EAAQ,CACV,GAAIsP,GAASq/U,EACX,OAAO3uV,EAGT,IAAImU,EAAQi6U,EAAO9+U,GACnB,OAAOtP,GAAmB,QAATmU,GAAmB,EAAI,IAW5C,OAAOnb,EAAOsW,MAAQojK,EAAMpjK,MAz+BnBu/U,CAAgB71V,EAAQ05K,EAAO07K,MA8B1C,SAASU,GAAW91V,EAAQwuK,EAAO8pF,GAKjC,IAJA,IAAIhiP,GAAS,EACTtV,EAASwtK,EAAMxtK,OACfgG,EAAS,KAEJsP,EAAQtV,GAAQ,CACvB,IAAIw6E,EAAOgzF,EAAMl4J,GACb3T,EAAQmvV,GAAQ9xV,EAAQw7E,GAExB88K,EAAU31P,EAAO64E,IACnBu6Q,GAAQ/uV,EAAQuwT,GAAS/7O,EAAMx7E,GAAS2C,GAI5C,OAAOqE,EA6BT,SAASgvV,GAAYv/U,EAAOnQ,EAAQ05R,EAAU8qD,GAC5C,IAAI/oV,EAAU+oV,EAAaW,GAAkBb,GACzCt0U,GAAS,EACTtV,EAASsF,EAAOtF,OAChB61T,EAAOpgT,EAUX,IARIA,IAAUnQ,IACZA,EAAS2vE,GAAU3vE,IAGjB05R,IACF62B,EAAOk0B,GAASt0U,EAAOo/S,GAAU71B,OAG1B1pR,EAAQtV,GAKf,IAJA,IAAImpQ,EAAY,EACZxnQ,EAAQ2D,EAAOgQ,GACfy6U,EAAW/wD,EAAWA,EAASr9R,GAASA,GAEpCwnQ,EAAYpoQ,EAAQ80T,EAAMk6B,EAAU5mF,EAAW2gF,KAAgB,GACjEj0B,IAASpgT,GACXF,GAAOzU,KAAK+0T,EAAM1sD,EAAW,GAG/B5zP,GAAOzU,KAAK2U,EAAO0zP,EAAW,GAIlC,OAAO1zP,EAaT,SAASw/U,GAAWx/U,EAAOy/U,GAIzB,IAHA,IAAIl1V,EAASyV,EAAQy/U,EAAQl1V,OAAS,EAClC06E,EAAY16E,EAAS,EAElBA,KAAU,CACf,IAAIsV,EAAQ4/U,EAAQl1V,GAEpB,GAAIA,GAAU06E,GAAaplE,IAAUogP,EAAU,CAC7C,IAAIA,EAAWpgP,EAEX6+S,GAAQ7+S,GACVC,GAAOzU,KAAK2U,EAAOH,EAAO,GAE1B6/U,GAAU1/U,EAAOH,IAKvB,OAAOG,EAaT,SAASg5U,GAAWS,EAAOC,GACzB,OAAOD,EAAQpC,GAAYK,MAAkBgC,EAAQD,EAAQ,IAqC/D,SAASkG,GAAW1jT,EAAQ96B,GAC1B,IAAI5Q,EAAS,GAEb,IAAK0rC,GAAU96B,EAAI,GAAKA,EApmIL,iBAqmIjB,OAAO5Q,EAKT,GACM4Q,EAAI,IACN5Q,GAAU0rC,IAGZ96B,EAAIk2U,GAAYl2U,EAAI,MAGlB86B,GAAUA,SAEL96B,GAET,OAAO5Q,EAYT,SAASqvV,GAASl7I,EAAM3hK,GACtB,OAAO88S,GAAYC,GAASp7I,EAAM3hK,EAAO64C,IAAW8oH,EAAO,IAW7D,SAASq7I,GAAWnjD,GAClB,OAAOm8C,GAAYlpV,GAAO+sS,IAY5B,SAASojD,GAAepjD,EAAYz7R,GAClC,IAAInB,EAAQnQ,GAAO+sS,GACnB,OAAOs8C,GAAYl5U,EAAOm5U,GAAUh4U,EAAG,EAAGnB,EAAMzV,SAclD,SAAS+0V,GAAQ/1V,EAAQw7E,EAAM74E,EAAOgsR,GACpC,IAAKngG,GAASxuL,GACZ,OAAOA,EAST,IALA,IAAIsW,GAAS,EACTtV,GAFJw6E,EAAO+7O,GAAS/7O,EAAMx7E,IAEJgB,OACd06E,EAAY16E,EAAS,EACrB01V,EAAS12V,EAEI,MAAV02V,KAAoBpgV,EAAQtV,GAAQ,CACzC,IAAIG,EAAMq2T,GAAMh8O,EAAKllE,IACjBg3B,EAAW3qC,EAEf,GAAY,cAARxB,GAA+B,gBAARA,GAAiC,cAARA,EAClD,OAAOnB,EAGT,GAAIsW,GAASolE,EAAW,CACtB,IAAIg8O,EAAWg/B,EAAOv1V,QAzvI1BO,KA0vII4rC,EAAWqhP,EAAaA,EAAW+oC,EAAUv2T,EAAKu1V,QA1vItDh1V,KA6vIM4rC,EAAWkhJ,GAASkpI,GAAYA,EAAWvC,GAAQ35O,EAAKllE,EAAQ,IAAM,GAAK,IAI/EmzN,GAAYitH,EAAQv1V,EAAKmsC,GACzBopT,EAASA,EAAOv1V,GAGlB,OAAOnB,EAYT,IAAI22V,GAAetI,GAAqB,SAAUlzI,EAAM71L,GAEtD,OADA+oU,GAAQlsV,IAAIg5M,EAAM71L,GACX61L,GAFoB9oH,GAazBukQ,GAAmBt1V,GAA4B,SAAU65M,EAAMzoK,GACjE,OAAOpxC,GAAe65M,EAAM,WAAY,CACtC,cAAgB,EAChB,YAAc,EACd,MAASvkL,GAAS8b,GAClB,UAAY,KALwB2/C,GAgBxC,SAASwkQ,GAAYxjD,GACnB,OAAOs8C,GAAYrpV,GAAO+sS,IAa5B,SAASyjD,GAAUrgV,EAAO+iC,EAAOsR,GAC/B,IAAIx0C,GAAS,EACTtV,EAASyV,EAAMzV,OAEfw4C,EAAQ,IACVA,GAASA,EAAQx4C,EAAS,EAAIA,EAASw4C,IAGzCsR,EAAMA,EAAM9pD,EAASA,EAAS8pD,GAEpB,IACRA,GAAO9pD,GAGTA,EAASw4C,EAAQsR,EAAM,EAAIA,EAAMtR,IAAU,EAC3CA,KAAW,EAGX,IAFA,IAAIxyC,EAASkf,EAAMllB,KAEVsV,EAAQtV,GACfgG,EAAOsP,GAASG,EAAMH,EAAQkjC,GAGhC,OAAOxyC,EAaT,SAAS+vV,GAAS1jD,EAAY/6C,GAC5B,IAAItxP,EAKJ,OAJAgpV,GAAS38C,GAAY,SAAU1wS,EAAO2T,EAAO+8R,GAE3C,QADArsS,EAASsxP,EAAU31P,EAAO2T,EAAO+8R,SAG1BrsS,EAgBX,SAASgwV,GAAgBvgV,EAAO9T,EAAOs0V,GACrC,IAAI/8U,EAAM,EACNC,EAAgB,MAAT1D,EAAgByD,EAAMzD,EAAMzV,OAEvC,GAAoB,iBAAT2B,GAAqBA,IAAUA,GAASwX,GAxzI3B+8U,WAwzI0D,CAChF,KAAOh9U,EAAMC,GAAM,CACjB,IAAI+rI,EAAMhsI,EAAMC,IAAS,EACrB42U,EAAWt6U,EAAMyvI,GAEJ,OAAb6qM,IAAsBzwF,GAASywF,KAAckG,EAAalG,GAAYpuV,EAAQouV,EAAWpuV,GAC3FuX,EAAMgsI,EAAM,EAEZ/rI,EAAO+rI,EAIX,OAAO/rI,EAGT,OAAOg9U,GAAkB1gV,EAAO9T,EAAO0vF,GAAU4kQ,GAiBnD,SAASE,GAAkB1gV,EAAO9T,EAAOq9R,EAAUi3D,GACjD,IAAI/8U,EAAM,EACNC,EAAgB,MAAT1D,EAAgB,EAAIA,EAAMzV,OAErC,GAAa,IAATmZ,EACF,OAAO,EAST,IALA,IAAIi9U,GADJz0V,EAAQq9R,EAASr9R,MACQA,EACrB00V,EAAsB,OAAV10V,EACZ20V,EAAch3F,GAAS39P,GACvB40V,OAr6IJ71V,IAq6IqBiB,EAEduX,EAAMC,GAAM,CACjB,IAAI+rI,EAAM4nM,IAAa5zU,EAAMC,GAAQ,GACjC42U,EAAW/wD,EAASvpR,EAAMyvI,IAC1BsxM,OA16IN91V,IA06IqBqvV,EACf0G,EAAyB,OAAb1G,EACZ2G,EAAiB3G,IAAaA,EAC9B4G,EAAcr3F,GAASywF,GAE3B,GAAIqG,EACF,IAAIQ,EAASX,GAAcS,OAE3BE,EADSL,EACAG,IAAmBT,GAAcO,GACjCH,EACAK,GAAkBF,IAAiBP,IAAeQ,GAClDH,EACAI,GAAkBF,IAAiBC,IAAcR,IAAeU,IAChEF,IAAaE,IAGbV,EAAalG,GAAYpuV,EAAQouV,EAAWpuV,GAGnDi1V,EACF19U,EAAMgsI,EAAM,EAEZ/rI,EAAO+rI,EAIX,OAAO0uL,GAAUz6T,EAp4IC+8U,YAi5IpB,SAASW,GAAephV,EAAOupR,GAM7B,IALA,IAAI1pR,GAAS,EACTtV,EAASyV,EAAMzV,OACf0pV,EAAW,EACX1jV,EAAS,KAEJsP,EAAQtV,GAAQ,CACvB,IAAI2B,EAAQ8T,EAAMH,GACdy6U,EAAW/wD,EAAWA,EAASr9R,GAASA,EAE5C,IAAK2T,IAAUq3Q,GAAGojE,EAAUl6B,GAAO,CACjC,IAAIA,EAAOk6B,EACX/pV,EAAO0jV,KAAwB,IAAV/nV,EAAc,EAAIA,GAI3C,OAAOqE,EAYT,SAAS8wV,GAAan1V,GACpB,MAAoB,iBAATA,EACFA,EAGL29P,GAAS39P,GAt7IP,KA07IEA,EAYV,SAASo1V,GAAap1V,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAGT,GAAIwjB,GAAQxjB,GAEV,OAAOooV,GAASpoV,EAAOo1V,IAAgB,GAGzC,GAAIz3F,GAAS39P,GACX,OAAOozS,GAAiBA,GAAej0S,KAAKa,GAAS,GAGvD,IAAIqE,EAASrE,EAAQ,GACrB,MAAiB,KAAVqE,GAAiB,EAAIrE,IAz9IjB,IAy9IsC,KAAOqE,EAa1D,SAASgxV,GAASvhV,EAAOupR,EAAU8qD,GACjC,IAAIx0U,GAAS,EACT8zP,EAAWugF,GACX3pV,EAASyV,EAAMzV,OACf4vV,GAAW,EACX5pV,EAAS,GACT6vT,EAAO7vT,EAEX,GAAI8jV,EACF8F,GAAW,EACXxmF,EAAWygF,QACN,GAAI7pV,GApiJQ,IAoiJoB,CACrC,IAAImB,EAAM69R,EAAW,KAAOi4D,GAAUxhV,GAEtC,GAAItU,EACF,OAAOk8U,GAAWl8U,GAGpByuV,GAAW,EACXxmF,EAAWksD,GACXO,EAAO,IAAIT,QAEXS,EAAO72B,EAAW,GAAKh5R,EAGzB8pV,EAAO,OAASx6U,EAAQtV,GAAQ,CAC9B,IAAI2B,EAAQ8T,EAAMH,GACdy6U,EAAW/wD,EAAWA,EAASr9R,GAASA,EAG5C,GAFAA,EAAQmoV,GAAwB,IAAVnoV,EAAcA,EAAQ,EAExCiuV,GAAYG,IAAaA,EAAU,CAGrC,IAFA,IAAImH,EAAYrhC,EAAK71T,OAEdk3V,KACL,GAAIrhC,EAAKqhC,KAAenH,EACtB,SAASD,EAIT9wD,GACF62B,EAAKn2T,KAAKqwV,GAGZ/pV,EAAOtG,KAAKiC,QACFynQ,EAASysD,EAAMk6B,EAAUjG,KAC/Bj0B,IAAS7vT,GACX6vT,EAAKn2T,KAAKqwV,GAGZ/pV,EAAOtG,KAAKiC,IAIhB,OAAOqE,EAYT,SAASmvV,GAAUn2V,EAAQw7E,GAGzB,OAAiB,OADjBx7E,EAASsjC,GAAOtjC,EADhBw7E,EAAO+7O,GAAS/7O,EAAMx7E,aAEUA,EAAOw3T,GAAMv9L,GAAKz+C,KAcpD,SAAS28Q,GAAWn4V,EAAQw7E,EAAM48Q,EAASzpE,GACzC,OAAOonE,GAAQ/1V,EAAQw7E,EAAM48Q,EAAQtG,GAAQ9xV,EAAQw7E,IAAQmzM,GAe/D,SAAS0pE,GAAU5hV,EAAO6hP,EAAWggG,EAAQhN,GAI3C,IAHA,IAAItqV,EAASyV,EAAMzV,OACfsV,EAAQg1U,EAAYtqV,GAAU,GAE1BsqV,EAAYh1U,MAAYA,EAAQtV,IAAWs3P,EAAU7hP,EAAMH,GAAQA,EAAOG,KAElF,OAAO6hV,EAASxB,GAAUrgV,EAAO60U,EAAY,EAAIh1U,EAAOg1U,EAAYh1U,EAAQ,EAAItV,GAAU81V,GAAUrgV,EAAO60U,EAAYh1U,EAAQ,EAAI,EAAGg1U,EAAYtqV,EAASsV,GAc7J,SAASiiV,GAAiB51V,EAAO2zK,GAC/B,IAAItvK,EAASrE,EAMb,OAJIqE,aAAkBwnV,KACpBxnV,EAASA,EAAOrE,SAGXq7U,GAAY1nK,GAAS,SAAUtvK,EAAQ2rK,GAC5C,OAAOA,EAAOwoC,KAAKx6M,MAAMgyK,EAAOi3D,QAASutF,GAAU,CAACnwT,GAAS2rK,EAAOsY,SACnEjkL,GAcL,SAASwxV,GAAQpG,EAAQpyD,EAAU8qD,GACjC,IAAI9pV,EAASoxV,EAAOpxV,OAEpB,GAAIA,EAAS,EACX,OAAOA,EAASg3V,GAAS5F,EAAO,IAAM,GAMxC,IAHA,IAAI97U,GAAS,EACTtP,EAASkf,EAAMllB,KAEVsV,EAAQtV,GAIf,IAHA,IAAIyV,EAAQ27U,EAAO97U,GACf2gT,GAAY,IAEPA,EAAWj2T,GACdi2T,GAAY3gT,IACdtP,EAAOsP,GAASq6U,GAAe3pV,EAAOsP,IAAUG,EAAO27U,EAAOn7B,GAAWj3B,EAAU8qD,IAKzF,OAAOkN,GAASxG,GAAYxqV,EAAQ,GAAIg5R,EAAU8qD,GAapD,SAAS2N,GAAcvwK,EAAO5hL,EAAQoyV,GAMpC,IALA,IAAIpiV,GAAS,EACTtV,EAASknL,EAAMlnL,OACf23V,EAAaryV,EAAOtF,OACpBgG,EAAS,KAEJsP,EAAQtV,GAAQ,CACvB,IAAI2B,EAAQ2T,EAAQqiV,EAAaryV,EAAOgQ,QArtJ1C5U,EAstJEg3V,EAAW1xV,EAAQkhL,EAAM5xK,GAAQ3T,GAGnC,OAAOqE,EAWT,SAAS4xV,GAAoBj2V,GAC3B,OAAOq8U,GAAkBr8U,GAASA,EAAQ,GAW5C,SAASo9R,GAAap9R,GACpB,MAAuB,mBAATA,EAAsBA,EAAQ0vF,GAY9C,SAASklO,GAAS50T,EAAO3C,GACvB,OAAImmB,GAAQxjB,GACHA,EAGF80T,GAAM90T,EAAO3C,GAAU,CAAC2C,GAASq4R,GAAan5R,GAASc,IAahE,IAAIk2V,GAAWxC,GAWf,SAASyC,GAAUriV,EAAO+iC,EAAOsR,GAC/B,IAAI9pD,EAASyV,EAAMzV,OAEnB,OADA8pD,OA5xJAppD,IA4xJMopD,EAAoB9pD,EAAS8pD,GAC3BtR,GAASsR,GAAO9pD,EAASyV,EAAQqgV,GAAUrgV,EAAO+iC,EAAOsR,GAUnE,IAAIk1J,GAAe0tI,IAAmB,SAAUzoT,GAC9C,OAAOsnI,GAAKyzC,aAAa/6K,IAY3B,SAASq6S,GAAY78T,EAAQwtT,GAC3B,GAAIA,EACF,OAAOxtT,EAAOjZ,QAGhB,IAAIxI,EAASyhB,EAAOzhB,OAChBgG,EAASgpU,GAAcA,GAAYhvU,GAAU,IAAIyhB,EAAOjgB,YAAYxB,GAExE,OADAyhB,EAAO6F,KAAKthB,GACLA,EAWT,SAAS64U,GAAiBptL,GACxB,IAAIzrJ,EAAS,IAAIyrJ,EAAYjwJ,YAAYiwJ,EAAYL,YAErD,OADA,IAAIv5I,GAAW7R,GAAQ7E,IAAI,IAAI0W,GAAW45I,IACnCzrJ,EAoDT,SAAS+4U,GAAgBrlL,EAAYu1K,GACnC,IAAIxtT,EAASwtT,EAAS4P,GAAiBnlL,EAAWj4I,QAAUi4I,EAAWj4I,OACvE,OAAO,IAAIi4I,EAAWl4J,YAAYigB,EAAQi4I,EAAWsnG,WAAYtnG,EAAW15J,QAY9E,SAAS40V,GAAiBjzV,EAAO+2K,GAC/B,GAAI/2K,IAAU+2K,EAAO,CACnB,IAAIq/K,OA94JNr3V,IA84JqBiB,EACf00V,EAAsB,OAAV10V,EACZq2V,EAAiBr2V,IAAUA,EAC3B20V,EAAch3F,GAAS39P,GACvB60V,OAl5JN91V,IAk5JqBg4K,EACf+9K,EAAsB,OAAV/9K,EACZg+K,EAAiBh+K,IAAUA,EAC3Bi+K,EAAcr3F,GAAS5mF,GAE3B,IAAK+9K,IAAcE,IAAgBL,GAAe30V,EAAQ+2K,GAAS49K,GAAeE,GAAgBE,IAAmBD,IAAcE,GAAeN,GAAaG,GAAgBE,IAAmBqB,GAAgBrB,IAAmBsB,EACnO,OAAO,EAGT,IAAK3B,IAAcC,IAAgBK,GAAeh1V,EAAQ+2K,GAASi+K,GAAeoB,GAAgBC,IAAmB3B,IAAcC,GAAeG,GAAasB,GAAgBC,IAAmBxB,GAAgBwB,IAAmBtB,EACnO,OAAQ,EAIZ,OAAO,EA4DT,SAASuB,GAAYhuK,EAAMiuK,EAAUC,EAASC,GAU5C,IATA,IAAIC,GAAa,EACbC,EAAaruK,EAAKjqL,OAClBu4V,EAAgBJ,EAAQn4V,OACxBw4V,GAAa,EACbC,EAAaP,EAASl4V,OACtB04V,EAAc/kB,GAAU2kB,EAAaC,EAAe,GACpDvyV,EAASkf,EAAMuzU,EAAaC,GAC5BC,GAAeP,IAEVI,EAAYC,GACnBzyV,EAAOwyV,GAAaN,EAASM,GAG/B,OAASH,EAAYE,IACfI,GAAeN,EAAYC,KAC7BtyV,EAAOmyV,EAAQE,IAAcpuK,EAAKouK,IAItC,KAAOK,KACL1yV,EAAOwyV,KAAevuK,EAAKouK,KAG7B,OAAOryV,EAeT,SAAS4yV,GAAiB3uK,EAAMiuK,EAAUC,EAASC,GAWjD,IAVA,IAAIC,GAAa,EACbC,EAAaruK,EAAKjqL,OAClB64V,GAAgB,EAChBN,EAAgBJ,EAAQn4V,OACxB84V,GAAc,EACdC,EAAcb,EAASl4V,OACvB04V,EAAc/kB,GAAU2kB,EAAaC,EAAe,GACpDvyV,EAASkf,EAAMwzU,EAAcK,GAC7BJ,GAAeP,IAEVC,EAAYK,GACnB1yV,EAAOqyV,GAAapuK,EAAKouK,GAK3B,IAFA,IAAI57U,EAAS47U,IAEJS,EAAaC,GACpB/yV,EAAOyW,EAASq8U,GAAcZ,EAASY,GAGzC,OAASD,EAAeN,IAClBI,GAAeN,EAAYC,KAC7BtyV,EAAOyW,EAAS07U,EAAQU,IAAiB5uK,EAAKouK,MAIlD,OAAOryV,EAYT,SAASivE,GAAUh1E,EAAQwV,GACzB,IAAIH,GAAS,EACTtV,EAASC,EAAOD,OAGpB,IAFAyV,IAAUA,EAAQyP,EAAMllB,MAEfsV,EAAQtV,GACfyV,EAAMH,GAASrV,EAAOqV,GAGxB,OAAOG,EAcT,SAASgpU,GAAWx+U,EAAQinL,EAAOloL,EAAQ2uR,GACzC,IAAIC,GAAS5uR,EACbA,IAAWA,EAAS,IAIpB,IAHA,IAAIsW,GAAS,EACTtV,EAASknL,EAAMlnL,SAEVsV,EAAQtV,GAAQ,CACvB,IAAIG,EAAM+mL,EAAM5xK,GACZg3B,EAAWqhP,EAAaA,EAAW3uR,EAAOmB,GAAMF,EAAOE,GAAMA,EAAKnB,EAAQiB,QAzkKhFS,WA2kKM4rC,IACFA,EAAWrsC,EAAOE,IAGhBytR,EACFF,GAAgB1uR,EAAQmB,EAAKmsC,GAE7Bm8L,GAAYzpO,EAAQmB,EAAKmsC,GAI7B,OAAOttC,EAsCT,SAASg6V,GAAiB93F,EAAQ+3F,GAChC,OAAO,SAAU5mD,EAAYrT,GAC3B,IAAI7kF,EAAOh1L,GAAQktR,GAAck3C,GAAkBwF,GAC/C9R,EAAcgc,EAAcA,IAAgB,GAChD,OAAO9+I,EAAKk4F,EAAYnxC,EAAQmzF,GAAYr1D,EAAU,GAAIi+C,IAY9D,SAASic,GAAeC,GACtB,OAAO9D,IAAS,SAAUr2V,EAAQimQ,GAChC,IAAI3vP,GAAS,EACTtV,EAASilQ,EAAQjlQ,OACjB2tR,EAAa3tR,EAAS,EAAIilQ,EAAQjlQ,EAAS,QAhpKjDU,EAipKM04V,EAAQp5V,EAAS,EAAIilQ,EAAQ,QAjpKnCvkQ,EA2pKE,IATAitR,EAAawrE,EAASn5V,OAAS,GAA0B,mBAAd2tR,GAA4B3tR,IAAU2tR,QAlpKnFjtR,EAopKM04V,GAASC,GAAep0F,EAAQ,GAAIA,EAAQ,GAAIm0F,KAClDzrE,EAAa3tR,EAAS,OArpK1BU,EAqpK0CitR,EACtC3tR,EAAS,GAGXhB,EAASG,GAAOH,KAEPsW,EAAQtV,GAAQ,CACvB,IAAIC,EAASglQ,EAAQ3vP,GAEjBrV,GACFk5V,EAASn6V,EAAQiB,EAAQqV,EAAOq4Q,GAIpC,OAAO3uR,KAaX,SAASkxV,GAAe9F,EAAUE,GAChC,OAAO,SAAUj4C,EAAYrT,GAC3B,GAAkB,MAAdqT,EACF,OAAOA,EAGT,IAAK3kC,GAAY2kC,GACf,OAAO+3C,EAAS/3C,EAAYrT,GAO9B,IAJA,IAAIh/R,EAASqyS,EAAWryS,OACpBsV,EAAQg1U,EAAYtqV,GAAU,EAC9BqH,EAAWlI,GAAOkzS,IAEfi4C,EAAYh1U,MAAYA,EAAQtV,KACc,IAA/Cg/R,EAAS33R,EAASiO,GAAQA,EAAOjO,KAKvC,OAAOgrS,GAYX,SAASs+C,GAAcrG,GACrB,OAAO,SAAUtrV,EAAQggS,EAAUo3B,GAMjC,IALA,IAAI9gT,GAAS,EACTjO,EAAWlI,GAAOH,GAClBkoL,EAAQkvI,EAASp3T,GACjBgB,EAASknL,EAAMlnL,OAEZA,KAAU,CACf,IAAIG,EAAM+mL,EAAMojK,EAAYtqV,IAAWsV,GAEvC,IAA+C,IAA3C0pR,EAAS33R,EAASlH,GAAMA,EAAKkH,GAC/B,MAIJ,OAAOrI,GAmCX,SAASs6V,GAAgB90R,GACvB,OAAO,SAAU9yB,GAEf,IAAIw5S,EAAaO,GADjB/5S,EAAS7wC,GAAS6wC,IACoBo6S,GAAcp6S,QArwKtDhxC,EAswKM65S,EAAM2wC,EAAaA,EAAW,GAAKx5S,EAAOnpC,OAAO,GACjDyzT,EAAWkvB,EAAa4M,GAAU5M,EAAY,GAAG3uQ,KAAK,IAAM7qC,EAAOlpC,MAAM,GAC7E,OAAO+xS,EAAI/1O,KAAgBw3P,GAY/B,SAASu9B,GAAiB5pU,GACxB,OAAO,SAAU+hB,GACf,OAAOsrS,GAAY3B,GAAMme,GAAO9nT,GAAQ2rC,QAAQgrQ,GAAQ,KAAM14T,EAAU,KAa5E,SAAS8pU,GAAWjsE,GAClB,OAAO,WAIL,IAAIvjG,EAAOlqL,UAEX,OAAQkqL,EAAKjqL,QACX,KAAK,EACH,OAAO,IAAIwtR,EAEb,KAAK,EACH,OAAO,IAAIA,EAAKvjG,EAAK,IAEvB,KAAK,EACH,OAAO,IAAIujG,EAAKvjG,EAAK,GAAIA,EAAK,IAEhC,KAAK,EACH,OAAO,IAAIujG,EAAKvjG,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAEzC,KAAK,EACH,OAAO,IAAIujG,EAAKvjG,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAElD,KAAK,EACH,OAAO,IAAIujG,EAAKvjG,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAE3D,KAAK,EACH,OAAO,IAAIujG,EAAKvjG,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAEpE,KAAK,EACH,OAAO,IAAIujG,EAAKvjG,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAG/E,IAAIyvK,EAAc/L,GAAWngE,EAAK/rR,WAC9BuE,EAASwnR,EAAK7tR,MAAM+5V,EAAazvK,GAGrC,OAAOuD,GAASxnL,GAAUA,EAAS0zV,GAiDvC,SAASC,GAAWC,GAClB,OAAO,SAAUvnD,EAAY/6C,EAAW6R,GACtC,IAAI9hQ,EAAWlI,GAAOkzS,GAEtB,IAAK3kC,GAAY2kC,GAAa,CAC5B,IAAIrT,EAAWq1D,GAAY/8F,EAAW,GACtC+6C,EAAanzS,GAAKmzS,GAElB/6C,EAAY,SAAmBn3P,GAC7B,OAAO6+R,EAAS33R,EAASlH,GAAMA,EAAKkH,IAIxC,IAAIiO,EAAQskV,EAAcvnD,EAAY/6C,EAAW6R,GACjD,OAAO7zP,GAAS,EAAIjO,EAAS23R,EAAWqT,EAAW/8R,GAASA,QAv4K9D5U,GAm5KF,SAASm5V,GAAWvP,GAClB,OAAOwP,IAAS,SAAUC,GACxB,IAAI/5V,EAAS+5V,EAAM/5V,OACfsV,EAAQtV,EACRg6V,EAASvM,GAAchsV,UAAUw4V,KAMrC,IAJI3P,GACFyP,EAAM5xV,UAGDmN,KAAS,CACd,IAAI6kM,EAAO4/I,EAAMzkV,GAEjB,GAAmB,mBAAR6kM,EACT,MAAM,IAAIn5M,GAAUijV,GAGtB,GAAI+V,IAAW56G,GAAgC,WAArB86G,GAAY//I,GACpC,IAAIilC,EAAU,IAAIquG,GAAc,IAAI,GAMxC,IAFAn4U,EAAQ8pO,EAAU9pO,EAAQtV,IAEjBsV,EAAQtV,GAAQ,CAEvB,IAAIm6V,EAAWD,GADf//I,EAAO4/I,EAAMzkV,IAETgP,EAAmB,WAAZ61U,EAAwBvjI,GAAQzc,QA96K/Cz5M,EAi7KM0+O,EADE96N,GAAQ81U,GAAW91U,EAAK,KAAkB,KAAXA,EAAK,KAAkFA,EAAK,GAAGtkB,QAAqB,GAAXskB,EAAK,GACrI86N,EAAQ86G,GAAY51U,EAAK,KAAK3kB,MAAMy/O,EAAS96N,EAAK,IAEnC,GAAf61L,EAAKn6M,QAAeo6V,GAAWjgJ,GAAQilC,EAAQ+6G,KAAc/6G,EAAQ66G,KAAK9/I,GAIxF,OAAO,WACL,IAAIlwB,EAAOlqL,UACP4B,EAAQsoL,EAAK,GAEjB,GAAIm1D,GAA0B,GAAfn1D,EAAKjqL,QAAemlB,GAAQxjB,GACzC,OAAOy9O,EAAQi7G,MAAM14V,GAAOA,QAM9B,IAHA,IAAI2T,EAAQ,EACRtP,EAAShG,EAAS+5V,EAAMzkV,GAAO3V,MAAM4B,KAAM0oL,GAAQtoL,IAE9C2T,EAAQtV,GACfgG,EAAS+zV,EAAMzkV,GAAOxU,KAAKS,KAAMyE,GAGnC,OAAOA,MAyBb,SAASs0V,GAAangJ,EAAM+6G,EAAStsF,EAASsvH,EAAUC,EAASoC,EAAeC,EAAcC,EAAQC,EAAK/+J,GACzG,IAAIg/J,EAz7KY,IAy7KJzlC,EACR0lC,EAj8Ka,EAi8KJ1lC,EACT2lC,EAj8KiB,EAi8KL3lC,EACZkjC,EAAsB,GAAVljC,EACZ4lC,EA37Ka,IA27KJ5lC,EACT1nC,EAAOqtE,OAr+KXn6V,EAq+KmC+4V,GAAWt/I,GAoD9C,OAlDA,SAASilC,IAKP,IAJA,IAAIp/O,EAASD,UAAUC,OACnBiqL,EAAO/kK,EAAMllB,GACbsV,EAAQtV,EAELsV,KACL20K,EAAK30K,GAASvV,UAAUuV,GAG1B,GAAI8iV,EACF,IAAIjpN,EAAc4rN,GAAU37G,GACxB47G,EAAe3P,GAAaphK,EAAM96C,GAaxC,GAVI+oN,IACFjuK,EAAOguK,GAAYhuK,EAAMiuK,EAAUC,EAASC,IAG1CmC,IACFtwK,EAAO2uK,GAAiB3uK,EAAMswK,EAAeC,EAAcpC,IAG7Dp4V,GAAUg7V,EAEN5C,GAAap4V,EAAS27L,EAAO,CAC/B,IAAIs/J,EAAavP,GAAezhK,EAAM96C,GACtC,OAAO+rN,GAAc/gJ,EAAM+6G,EAASolC,GAAcl7G,EAAQjwG,YAAay5F,EAAS3+C,EAAMgxK,EAAYR,EAAQC,EAAK/+J,EAAQ37L,GAGzH,IAAI05V,EAAckB,EAAShyH,EAAUrnO,KACjCZ,EAAKk6V,EAAYnB,EAAYv/I,GAAQA,EAiBzC,OAhBAn6M,EAASiqL,EAAKjqL,OAEVy6V,EACFxwK,EAAOkxK,GAAQlxK,EAAMwwK,GACZK,GAAU96V,EAAS,GAC5BiqL,EAAK9hL,UAGHwyV,GAASD,EAAM16V,IACjBiqL,EAAKjqL,OAAS06V,GAGZn5V,MAAQA,OAASgqK,IAAQhqK,gBAAgB69O,IAC3Cz+O,EAAK6sR,GAAQisE,GAAW94V,IAGnBA,EAAGhB,MAAM+5V,EAAazvK,IAejC,SAASmxK,GAAel6F,EAAQm6F,GAC9B,OAAO,SAAUr8V,EAAQggS,GACvB,OAxoEJ,SAAsBhgS,EAAQkiQ,EAAQ89B,EAAUi+C,GAI9C,OAHAn+C,GAAW9/R,GAAQ,SAAU2C,EAAOxB,EAAKnB,GACvCkiQ,EAAO+7E,EAAaj+C,EAASr9R,GAAQxB,EAAKnB,MAErCi+U,EAooEEqe,CAAat8V,EAAQkiQ,EAAQm6F,EAAWr8D,GAAW,KAa9D,SAASu8D,GAAoBC,EAAU5yG,GACrC,OAAO,SAAUjnP,EAAO+2K,GACtB,IAAI1yK,EAEJ,QAxjLFtF,IAwjLMiB,QAxjLNjB,IAwjL6Bg4K,EACzB,OAAOkwE,EAOT,QAhkLFloP,IA4jLMiB,IACFqE,EAASrE,QA7jLbjB,IAgkLMg4K,EAAqB,CACvB,QAjkLJh4K,IAikLQsF,EACF,OAAO0yK,EAGW,iBAAT/2K,GAAqC,iBAAT+2K,GACrC/2K,EAAQo1V,GAAap1V,GACrB+2K,EAAQq+K,GAAar+K,KAErB/2K,EAAQm1V,GAAan1V,GACrB+2K,EAAQo+K,GAAap+K,IAGvB1yK,EAASw1V,EAAS75V,EAAO+2K,GAG3B,OAAO1yK,GAYX,SAASy1V,GAAWC,GAClB,OAAO5B,IAAS,SAAU3F,GAExB,OADAA,EAAYpK,GAASoK,EAAWt/B,GAAUw/B,OACnCgB,IAAS,SAAUprK,GACxB,IAAI2+C,EAAUrnO,KACd,OAAOm6V,EAAUvH,GAAW,SAAUn1D,GACpC,OAAOr/R,GAAMq/R,EAAUp2D,EAAS3+C,YAgBxC,SAAS0xK,GAAc37V,EAAQ47V,GAE7B,IAAIC,GADJD,OAnnLAl7V,IAmnLQk7V,EAAsB,IAAM7E,GAAa6E,IACzB57V,OAExB,GAAI67V,EAAc,EAChB,OAAOA,EAAczG,GAAWwG,EAAO57V,GAAU47V,EAGnD,IAAI51V,EAASovV,GAAWwG,EAAO/O,GAAW7sV,EAAS4rV,GAAWgQ,KAC9D,OAAOnQ,GAAWmQ,GAAS9D,GAAUhM,GAAc9lV,GAAS,EAAGhG,GAAQu8E,KAAK,IAAMv2E,EAAOwC,MAAM,EAAGxI,GAkDpG,SAAS4jS,GAAY0mD,GACnB,OAAO,SAAU9xS,EAAOsR,EAAK97B,GAgB3B,OAfIA,GAAuB,iBAARA,GAAoBqrU,GAAe7gT,EAAOsR,EAAK97B,KAChE87B,EAAM97B,OAhrLVttB,GAorLE83C,EAAQsjT,GAAStjT,QAprLnB93C,IAsrLMopD,GACFA,EAAMtR,EACNA,EAAQ,GAERsR,EAAMgyS,GAAShyS,GArjDrB,SAAmBtR,EAAOsR,EAAK97B,EAAMs8T,GAKnC,IAJA,IAAIh1U,GAAS,EACTtV,EAAS2zU,GAAUkZ,IAAY/iS,EAAMtR,IAAUxqB,GAAQ,IAAK,GAC5DhoB,EAASkf,EAAMllB,GAEZA,KACLgG,EAAOskV,EAAYtqV,IAAWsV,GAASkjC,EACvCA,GAASxqB,EAGX,OAAOhoB,EA+iDE+1V,CAAUvjT,EAAOsR,EADxB97B,OA7rLFttB,IA6rLSstB,EAAqBwqB,EAAQsR,EAAM,GAAK,EAAIgyS,GAAS9tU,GACzBs8T,IAYvC,SAAS0R,GAA0BR,GACjC,OAAO,SAAU75V,EAAO+2K,GAMtB,MALsB,iBAAT/2K,GAAqC,iBAAT+2K,IACvC/2K,EAAQkyU,GAASlyU,GACjB+2K,EAAQm7J,GAASn7J,IAGZ8iL,EAAS75V,EAAO+2K,IAsB3B,SAASwiL,GAAc/gJ,EAAM+6G,EAAS+mC,EAAU9sN,EAAay5F,EAASsvH,EAAUC,EAASsC,EAAQC,EAAK/+J,GACpG,IAAIugK,EArsLc,EAqsLJhnC,EAKdA,GAAWgnC,EAxsLS,GACM,GAJF,GA4sLxBhnC,KAAagnC,EAxsLa,GADN,OA4sLlBhnC,IAAW,GAGb,IAAIinC,EAAU,CAAChiJ,EAAM+6G,EAAStsF,EATZszH,EAAUhE,OA3uL5Bx3V,EAyuLiBw7V,EAAU/D,OAzuL3Bz3V,EA4uLuBw7V,OA5uLvBx7V,EA4uL6Cw3V,EAFvBgE,OA1uLtBx7V,EA0uL4Cy3V,EAUuDsC,EAAQC,EAAK/+J,GAC5G31L,EAASi2V,EAASt8V,WArvLtBe,EAqvLuCy7V,GAOvC,OALI/B,GAAWjgJ,IACbiiJ,GAAQp2V,EAAQm2V,GAGlBn2V,EAAOmpI,YAAcA,EACdktN,GAAgBr2V,EAAQm0M,EAAM+6G,GAWvC,SAASonC,GAAY93R,GACnB,IAAI21I,EAAOrkM,GAAK0uD,GAChB,OAAO,SAAUu4L,EAAQpxN,GAIvB,GAHAoxN,EAAS82E,GAAS92E,IAClBpxN,EAAyB,MAAbA,EAAoB,EAAIioS,GAAU2oB,GAAU5wT,GAAY,OAEnDohT,GAAehwF,GAAS,CAGvC,IAAI+/E,GAAQj8U,GAASk8P,GAAU,KAAK3gL,MAAM,KAG1C,SADA0gQ,GAAQj8U,GADIs5M,EAAK2iI,EAAK,GAAK,MAAQA,EAAK,GAAKnxS,KACnB,KAAKywC,MAAM,MACvB,GAAK,MAAQ0gQ,EAAK,GAAKnxS,IAGvC,OAAOwuK,EAAK4iD,IAYhB,IAAIk6F,GAAcrwQ,IAAO,EAAIy2P,GAAW,IAAIz2P,GAAI,CAAC,EAAG,KAAK,IAzuL5C,IAyuLqE,SAAUthF,GAC1F,OAAO,IAAIshF,GAAIthF,IAD0D0kQ,GAW3E,SAASwyF,GAAcpmC,GACrB,OAAO,SAAUp3T,GACf,IAAIkzL,EAAMq7F,GAAOvuR,GAEjB,OAAIkzL,GAAOqqJ,EACFa,GAAWp+U,GAGhBkzL,GAAOsqJ,EACFmP,GAAW3sV,GAvsJ1B,SAAqBA,EAAQkoL,GAC3B,OAAO6iK,GAAS7iK,GAAO,SAAU/mL,GAC/B,MAAO,CAACA,EAAKnB,EAAOmB,OAwsJXs8V,CAAYz9V,EAAQo3T,EAASp3T,KA8BxC,SAAS09V,GAAWviJ,EAAM+6G,EAAStsF,EAASsvH,EAAUC,EAASsC,EAAQC,EAAK/+J,GAC1E,IAAIk/J,EAvzLiB,EAuzLL3lC,EAEhB,IAAK2lC,GAA4B,mBAAR1gJ,EACvB,MAAM,IAAIn5M,GAAUijV,GAGtB,IAAIjkV,EAASk4V,EAAWA,EAASl4V,OAAS,EAW1C,GATKA,IACHk1T,IAAW,GACXgjC,EAAWC,OAl2Lbz3V,GAq2LAg6V,OAr2LAh6V,IAq2LMg6V,EAAoBA,EAAM/mB,GAAU4oB,GAAU7B,GAAM,GAC1D/+J,OAt2LAj7L,IAs2LQi7L,EAAsBA,EAAQ4gK,GAAU5gK,GAChD37L,GAAUm4V,EAAUA,EAAQn4V,OAAS,EAj0LX,GAm0LtBk1T,EAAmC,CACrC,IAAIqlC,EAAgBrC,EAChBsC,EAAerC,EACnBD,EAAWC,OA52Lbz3V,EA+2LA,IAAI4jB,EAAOu2U,OA/2LXn6V,EA+2LmCk2N,GAAQzc,GACvCgiJ,EAAU,CAAChiJ,EAAM+6G,EAAStsF,EAASsvH,EAAUC,EAASoC,EAAeC,EAAcC,EAAQC,EAAK/+J,GAiBpG,GAfIr3K,GAk/BN,SAAmBA,EAAMrkB,GACvB,IAAIi1T,EAAU5wS,EAAK,GACfq4U,EAAa18V,EAAO,GACpB28V,EAAa1nC,EAAUynC,EACvB/M,EAAWgN,EAAa,IACxBC,EAl0NY,KAk0NFF,GAt0NI,GAs0N2BznC,GAl0N7B,KAk0N2DynC,GAj0NzD,KAi0NwFznC,GAA8B5wS,EAAK,GAAGtkB,QAAUC,EAAO,IAAoB,KAAd08V,GAAmD18V,EAAO,GAAGD,QAAUC,EAAO,IAt0NnO,GAs0NyOi1T,EAE3P,IAAM06B,IAAYiN,EAChB,OAAOv4U,EA50NQ,EAg1Nbq4U,IACFr4U,EAAK,GAAKrkB,EAAO,GAEjB28V,GAn1Ne,EAm1ND1nC,EAA2B,EAj1NnB,GAq1NxB,IAAIvzT,EAAQ1B,EAAO,GAEnB,GAAI0B,EAAO,CACT,IAAIu2V,EAAW5zU,EAAK,GACpBA,EAAK,GAAK4zU,EAAWD,GAAYC,EAAUv2V,EAAO1B,EAAO,IAAM0B,EAC/D2iB,EAAK,GAAK4zU,EAAWxM,GAAepnU,EAAK,GAAI4/T,GAAejkV,EAAO,IAIrE0B,EAAQ1B,EAAO,MAGbi4V,EAAW5zU,EAAK,GAChBA,EAAK,GAAK4zU,EAAWU,GAAiBV,EAAUv2V,EAAO1B,EAAO,IAAM0B,EACpE2iB,EAAK,GAAK4zU,EAAWxM,GAAepnU,EAAK,GAAI4/T,GAAejkV,EAAO,KAIrE0B,EAAQ1B,EAAO,MAGbqkB,EAAK,GAAK3iB,GAr2NI,IAy2NZg7V,IACFr4U,EAAK,GAAgB,MAAXA,EAAK,GAAarkB,EAAO,GAAK2zU,GAAUtvT,EAAK,GAAIrkB,EAAO,KAIrD,MAAXqkB,EAAK,KACPA,EAAK,GAAKrkB,EAAO,IAInBqkB,EAAK,GAAKrkB,EAAO,GACjBqkB,EAAK,GAAKs4U,EAxiCRE,CAAUX,EAAS73U,GAGrB61L,EAAOgiJ,EAAQ,GACfjnC,EAAUinC,EAAQ,GAClBvzH,EAAUuzH,EAAQ,GAClBjE,EAAWiE,EAAQ,GACnBhE,EAAUgE,EAAQ,KAClBxgK,EAAQwgK,EAAQ,QA33LhBz7V,IA23LqBy7V,EAAQ,GAAmBtB,EAAY,EAAI1gJ,EAAKn6M,OAAS2zU,GAAUwoB,EAAQ,GAAKn8V,EAAQ,KAErF,GAAVk1T,IACZA,IAAW,IAGRA,GAj2LY,GAi2LDA,EAGdlvT,EAj2LgB,GAg2LPkvT,GA/1La,IA+1LiBA,EA7iB3C,SAAqB/6G,EAAM+6G,EAASv5H,GAClC,IAAI6xF,EAAOisE,GAAWt/I,GAuBtB,OArBA,SAASilC,IAMP,IALA,IAAIp/O,EAASD,UAAUC,OACnBiqL,EAAO/kK,EAAMllB,GACbsV,EAAQtV,EACRmvI,EAAc4rN,GAAU37G,GAErB9pO,KACL20K,EAAK30K,GAASvV,UAAUuV,GAG1B,IAAI6iV,EAAUn4V,EAAS,GAAKiqL,EAAK,KAAO96C,GAAe86C,EAAKjqL,EAAS,KAAOmvI,EAAc,GAAKu8M,GAAezhK,EAAM96C,GAGpH,IAFAnvI,GAAUm4V,EAAQn4V,QAEL27L,EACX,OAAOu/J,GAAc/gJ,EAAM+6G,EAASolC,GAAcl7G,EAAQjwG,iBAv2K9DzuI,EAu2KsFupL,EAAMkuK,OAv2K5Fz3V,SAu2K2Hi7L,EAAQ37L,GAGjI,IAAIW,EAAKY,MAAQA,OAASgqK,IAAQhqK,gBAAgB69O,EAAUouC,EAAOrzE,EACnE,OAAOx6M,GAAMgB,EAAIY,KAAM0oL,IAyhBd8yK,CAAY5iJ,EAAM+6G,EAASv5H,GA/1LlB,IAg2LRu5H,GAA2C,IAAXA,GAAqDijC,EAAQn4V,OAG9Fs6V,GAAa36V,WAx4LxBe,EAw4LyCy7V,GA7P3C,SAAuBhiJ,EAAM+6G,EAAStsF,EAASsvH,GAC7C,IAAI0C,EA5mLa,EA4mLJ1lC,EACT1nC,EAAOisE,GAAWt/I,GAqBtB,OAnBA,SAASilC,IAQP,IAPA,IAAIi5G,GAAa,EACbC,EAAav4V,UAAUC,OACvBw4V,GAAa,EACbC,EAAaP,EAASl4V,OACtBiqL,EAAO/kK,EAAMuzU,EAAaH,GAC1B33V,EAAKY,MAAQA,OAASgqK,IAAQhqK,gBAAgB69O,EAAUouC,EAAOrzE,IAE1Dq+I,EAAYC,GACnBxuK,EAAKuuK,GAAaN,EAASM,GAG7B,KAAOF,KACLruK,EAAKuuK,KAAez4V,YAAYs4V,GAGlC,OAAO14V,GAAMgB,EAAIi6V,EAAShyH,EAAUrnO,KAAM0oL,IAuOjC+yK,CAAc7iJ,EAAM+6G,EAAStsF,EAASsvH,QAJ/C,IAAIlyV,EAppBR,SAAoBm0M,EAAM+6G,EAAStsF,GACjC,IAAIgyH,EA/sKa,EA+sKJ1lC,EACT1nC,EAAOisE,GAAWt/I,GAOtB,OALA,SAASilC,IACP,IAAIz+O,EAAKY,MAAQA,OAASgqK,IAAQhqK,gBAAgB69O,EAAUouC,EAAOrzE,EACnE,OAAOx5M,EAAGhB,MAAMi7V,EAAShyH,EAAUrnO,KAAMxB,YA8oB5Bk9V,CAAW9iJ,EAAM+6G,EAAStsF,GAUzC,OAAOyzH,IADM/3U,EAAOqxU,GAAcyG,IACJp2V,EAAQm2V,GAAUhiJ,EAAM+6G,GAgBxD,SAASgoC,GAAuBxmC,EAAUJ,EAAUn2T,EAAKnB,GACvD,YA75LA0B,IA65LIg2T,GAA0B/pC,GAAG+pC,EAAUr3B,GAAYl/R,MAAUgC,GAAerB,KAAK9B,EAAQmB,GACpFm2T,EAGFI,EAkBT,SAASymC,GAAoBzmC,EAAUJ,EAAUn2T,EAAKnB,EAAQiB,EAAQk1T,GAQpE,OAPI3nI,GAASkpI,IAAalpI,GAAS8oI,KAEjCnB,EAAMh0T,IAAIm1T,EAAUI,GACpBg9B,GAAUh9B,EAAUJ,OAv7LtB51T,EAu7L2Cy8V,GAAqBhoC,GAC9DA,EAAc,OAAEmB,IAGXI,EAaT,SAAS0mC,GAAgBz7V,GACvB,OAAO8sL,GAAc9sL,QAz8LrBjB,EAy8L0CiB,EAiB5C,SAASmwV,GAAYr8U,EAAOijK,EAAOw8I,EAASvnC,EAAY4nC,EAAWJ,GACjE,IAAIK,EA/7LmB,EA+7LPN,EACZO,EAAYhgT,EAAMzV,OAClB01T,EAAYh9I,EAAM14K,OAEtB,GAAIy1T,GAAaC,KAAeF,GAAaE,EAAYD,GACvD,OAAO,EAIT,IAAIE,EAAaR,EAAMj0T,IAAIuU,GACvBmgT,EAAaT,EAAMj0T,IAAIw3K,GAE3B,GAAIi9I,GAAcC,EAChB,OAAOD,GAAcj9I,GAASk9I,GAAcngT,EAG9C,IAAIH,GAAS,EACTtP,GAAS,EACT6vT,EAh9LqB,EAg9LdX,EAAmC,IAAIE,QA7+LlD10T,EAi/LA,IAHAy0T,EAAMh0T,IAAIsU,EAAOijK,GACjBy8I,EAAMh0T,IAAIu3K,EAAOjjK,KAERH,EAAQmgT,GAAW,CAC1B,IAAIK,EAAWrgT,EAAMH,GACjBygT,EAAWr9I,EAAMpjK,GAErB,GAAIq4Q,EACF,IAAIqoC,EAAWR,EAAY7nC,EAAWooC,EAAUD,EAAUxgT,EAAOojK,EAAOjjK,EAAO0/S,GAASxnC,EAAWmoC,EAAUC,EAAUzgT,EAAOG,EAAOijK,EAAOy8I,GAG9I,QAz/LFz0T,IAy/LMs1T,EAAwB,CAC1B,GAAIA,EACF,SAGFhwT,GAAS,EACT,MAIF,GAAI6vT,GACF,IAAKR,GAAU38I,GAAO,SAAUq9I,EAAUE,GACxC,IAAKX,GAASO,EAAMI,KAAcH,IAAaC,GAAYR,EAAUO,EAAUC,EAAUb,EAASvnC,EAAYwnC,IAC5G,OAAOU,EAAKn2T,KAAKu2T,MAEjB,CACFjwT,GAAS,EACT,YAEG,GAAM8vT,IAAaC,IAAYR,EAAUO,EAAUC,EAAUb,EAASvnC,EAAYwnC,GAAS,CAChGnvT,GAAS,EACT,OAMJ,OAFAmvT,EAAc,OAAE1/S,GAChB0/S,EAAc,OAAEz8I,GACT1yK,EAkLT,SAAS8zV,GAAS3/I,GAChB,OAAOm7I,GAAYC,GAASp7I,OAvsM5Bz5M,EAusM6Ck0E,IAAUulI,EAAO,IAWhE,SAASklI,GAAWrgV,GAClB,OAAOk3T,GAAel3T,EAAQE,GAAMqhS,IAYtC,SAASivD,GAAaxwV,GACpB,OAAOk3T,GAAel3T,EAAQswV,GAAQ34B,IAWxC,IAAI//F,GAAWy2H,GAAiB,SAAUlzI,GACxC,OAAOkzI,GAAQnsV,IAAIi5M,IADI6vD,GAWzB,SAASkwF,GAAY//I,GAKnB,IAJA,IAAIn0M,EAASm0M,EAAKvyM,KAAO,GACrB6N,EAAQ63U,GAAUtnV,GAClBhG,EAASmC,GAAerB,KAAKwsV,GAAWtnV,GAAUyP,EAAMzV,OAAS,EAE9DA,KAAU,CACf,IAAIskB,EAAO7O,EAAMzV,GACbq9V,EAAY/4U,EAAK61L,KAErB,GAAiB,MAAbkjJ,GAAqBA,GAAaljJ,EACpC,OAAO71L,EAAK1c,KAIhB,OAAO5B,EAWT,SAAS+0V,GAAU5gJ,GAEjB,OADah4M,GAAerB,KAAKysV,GAAQ,eAAiBA,GAASpzI,GACrDhrE,YAehB,SAASklN,KACP,IAAIruV,EAASunV,GAAOvuD,UAAYA,GAEhC,OADAh5R,EAASA,IAAWg5R,GAAW+zD,GAAe/sV,EACvCjG,UAAUC,OAASgG,EAAOjG,UAAU,GAAIA,UAAU,IAAMiG,EAYjE,SAASw5U,GAAWxxS,EAAK7tC,GACvB,IAAImkB,EAAO0pB,EAAI++O,SACf,OA2aF,SAAmBprR,GACjB,IAAIoD,SAAcpD,EAClB,MAAe,UAARoD,GAA4B,UAARA,GAA4B,UAARA,GAA4B,WAARA,EAA8B,cAAVpD,EAAkC,OAAVA,EA7axGmrR,CAAU3sR,GAAOmkB,EAAmB,iBAAPnkB,EAAkB,SAAW,QAAUmkB,EAAK0pB,IAWlF,SAASslT,GAAat0V,GAIpB,IAHA,IAAIgH,EAAS9G,GAAKF,GACdgB,EAASgG,EAAOhG,OAEbA,KAAU,CACf,IAAIG,EAAM6F,EAAOhG,GACb2B,EAAQ3C,EAAOmB,GACnB6F,EAAOhG,GAAU,CAACG,EAAKwB,EAAO6xV,GAAmB7xV,IAGnD,OAAOqE,EAYT,SAAS6mR,GAAU7tR,EAAQmB,GACzB,IAAIwB,EAnkKR,SAAkB3C,EAAQmB,GACxB,OAAiB,MAAVnB,OAjxCL0B,EAixCkC1B,EAAOmB,GAkkK7BioK,CAASppK,EAAQmB,GAC7B,OAAO+mQ,GAAavlQ,GAASA,OAp1M7BjB,EA63MF,IAAI6/R,GAAcD,GAA+B,SAAUthS,GACzD,OAAc,MAAVA,EACK,IAGTA,EAASG,GAAOH,GACTohS,GAAYE,GAAiBthS,IAAS,SAAU6oQ,GACrD,OAAOjgF,GAAqB9mL,KAAK9B,EAAQ6oQ,QAPRw4B,GAkBjCs2B,GAAgBr2B,GAA+B,SAAUthS,GAG3D,IAFA,IAAIgH,EAAS,GAENhH,GACLm3T,GAAUnwT,EAAQu6R,GAAWvhS,IAC7BA,EAASsgS,GAAatgS,GAGxB,OAAOgH,GAR8Bq6R,GAkBnC9S,GAASP,GAkGb,SAASswE,GAAQt+V,EAAQw7E,EAAM+iR,GAM7B,IAJA,IAAIjoV,GAAS,EACTtV,GAFJw6E,EAAO+7O,GAAS/7O,EAAMx7E,IAEJgB,OACdgG,GAAS,IAEJsP,EAAQtV,GAAQ,CACvB,IAAIG,EAAMq2T,GAAMh8O,EAAKllE,IAErB,KAAMtP,EAAmB,MAAVhH,GAAkBu+V,EAAQv+V,EAAQmB,IAC/C,MAGFnB,EAASA,EAAOmB,GAGlB,OAAI6F,KAAYsP,GAAStV,EAChBgG,KAGThG,EAAmB,MAAVhB,EAAiB,EAAIA,EAAOgB,SAClBosR,GAASpsR,IAAWm0T,GAAQh0T,EAAKH,KAAYmlB,GAAQnmB,IAAWk1T,GAAYl1T,IA+BjG,SAASw/U,GAAgBx/U,GACvB,MAAoC,mBAAtBA,EAAOwC,aAA8B+8U,GAAYv/U,GAA6C,GAAnC2uV,GAAWruD,GAAatgS,IAyFnG,SAAS0xV,GAAc/uV,GACrB,OAAOwjB,GAAQxjB,IAAUuyT,GAAYvyT,OAAa6qV,IAAoB7qV,GAASA,EAAM6qV,KAYvF,SAASr4B,GAAQxyT,EAAO3B,GACtB,IAAI+E,SAAcpD,EAElB,SADA3B,EAAmB,MAAVA,EAtmNU,iBAsmN0BA,KACjB,UAAR+E,GAA4B,UAARA,GAAoB4vT,GAASpxS,KAAK5hB,KAAWA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQ3B,EAc/H,SAASq5V,GAAe13V,EAAO2T,EAAOtW,GACpC,IAAKwuL,GAASxuL,GACZ,OAAO,EAGT,IAAI+F,SAAcuQ,EAElB,SAAY,UAARvQ,EAAmB2oQ,GAAY1uQ,IAAWm1T,GAAQ7+S,EAAOtW,EAAOgB,QAAkB,UAAR+E,GAAoBuQ,KAAStW,IAClG2tR,GAAG3tR,EAAOsW,GAAQ3T,GAe7B,SAAS80T,GAAM90T,EAAO3C,GACpB,GAAImmB,GAAQxjB,GACV,OAAO,EAGT,IAAIoD,SAAcpD,EAElB,QAAY,UAARoD,GAA4B,UAARA,GAA4B,WAARA,GAA8B,MAATpD,IAAiB29P,GAAS39P,MAIpF8+R,EAAcl9Q,KAAK5hB,KAAW6+R,EAAaj9Q,KAAK5hB,IAAoB,MAAV3C,GAAkB2C,KAASxC,GAAOH,IAyBrG,SAASo7V,GAAWjgJ,GAClB,IAAIggJ,EAAWD,GAAY//I,GACvBzhC,EAAQ60K,GAAO4M,GAEnB,GAAoB,mBAATzhL,KAAyByhL,KAAY3M,GAAY/rV,WAC1D,OAAO,EAGT,GAAI04M,IAASzhC,EACX,OAAO,EAGT,IAAIp0J,EAAOsyM,GAAQl+C,GACnB,QAASp0J,GAAQ61L,IAAS71L,EAAK,IApV7Bm8H,IAAY8sI,GAAO,IAAI9sI,GAAS,IAAIptG,YAAY,MAAQ0xS,GAAetkV,IAAO8sR,GAAO,IAAI9sR,KAAU87U,GAAUt0U,IA/0MlG,oBA+0M6GslR,GAAOtlR,GAAQpC,YAA4B+gF,IAAO2mM,GAAO,IAAI3mM,KAAU41P,GAAU3vR,IAAW0gO,GAAO,IAAI1gO,KAAcg4R,KAC/Ot3D,GAAS,SAAgB5rR,GACvB,IAAIqE,EAASgnR,GAAWrrR,GACpB6rR,EAAOxnR,GAAUy+U,EAAY9iV,EAAMH,iBAt6MzCd,EAu6MM+sR,EAAaD,EAAOP,GAASO,GAAQ,GAEzC,GAAIC,EACF,OAAQA,GACN,KAAKP,GACH,OAAO63D,EAET,KAAK53D,GACH,OAAOovD,EAET,KAAKnvD,GACH,MA91MK,mBAg2MP,KAAKC,GACH,OAAOmvD,EAET,KAAKlvD,GACH,OAAOu3D,EAIb,OAAO7+U,IAkVX,IAAIw3V,GAAahgB,GAAa5uJ,GAAaqwG,GAS3C,SAASs/C,GAAY58U,GACnB,IAAI6rR,EAAO7rR,GAASA,EAAMH,YAE1B,OAAOG,KADoB,mBAAR6rR,GAAsBA,EAAK/rR,WAAa49R,IAa7D,SAASm0D,GAAmB7xV,GAC1B,OAAOA,IAAUA,IAAU6rL,GAAS7rL,GAatC,SAAS4xV,GAAwBpzV,EAAKm2T,GACpC,OAAO,SAAUt3T,GACf,OAAc,MAAVA,IAIGA,EAAOmB,KAASm2T,SA1zNzB51T,IA0zNsC41T,GAA0Bn2T,KAAOhB,GAAOH,MAiJhF,SAASu2V,GAASp7I,EAAM3hK,EAAO+6D,GAE7B,OADA/6D,EAAQm7R,QA58NRjzU,IA48NkB83C,EAAsB2hK,EAAKn6M,OAAS,EAAIw4C,EAAO,GAC1D,WAML,IALA,IAAIyxI,EAAOlqL,UACPuV,GAAS,EACTtV,EAAS2zU,GAAU1pJ,EAAKjqL,OAASw4C,EAAO,GACxC/iC,EAAQyP,EAAMllB,KAETsV,EAAQtV,GACfyV,EAAMH,GAAS20K,EAAKzxI,EAAQljC,GAG9BA,GAAS,EAGT,IAFA,IAAImoV,EAAYv4U,EAAMszB,EAAQ,KAErBljC,EAAQkjC,GACfilT,EAAUnoV,GAAS20K,EAAK30K,GAI1B,OADAmoV,EAAUjlT,GAAS+6D,EAAU99F,GACtB9V,GAAMw6M,EAAM54M,KAAMk8V,IAa7B,SAASn7T,GAAOtjC,EAAQw7E,GACtB,OAAOA,EAAKx6E,OAAS,EAAIhB,EAAS8xV,GAAQ9xV,EAAQ82V,GAAUt7Q,EAAM,GAAI,IAcxE,SAAS2gR,GAAQ1lV,EAAOy/U,GAKtB,IAJA,IAAIz/B,EAAYhgT,EAAMzV,OAClBA,EAAS4zU,GAAUshB,EAAQl1V,OAAQy1T,GACnCioC,EAAWzoR,GAAUx/D,GAElBzV,KAAU,CACf,IAAIsV,EAAQ4/U,EAAQl1V,GACpByV,EAAMzV,GAAUm0T,GAAQ7+S,EAAOmgT,GAAaioC,EAASpoV,QAlgOvD5U,EAqgOA,OAAO+U,EAYT,SAASo+U,GAAQ70V,EAAQmB,GACvB,IAAY,gBAARA,GAAgD,oBAAhBnB,EAAOmB,KAIhC,aAAPA,EAIJ,OAAOnB,EAAOmB,GAkBhB,IAAIi8V,GAAUuB,GAAShI,IAUnB9lM,GAAa+8L,IAAiB,SAAUzyI,EAAM45H,GAChD,OAAOxoK,GAAK1b,WAAWsqD,EAAM45H,IAY3BuhB,GAAcqI,GAAS/H,IAY3B,SAASyG,GAAgBj9G,EAASwjD,EAAWsyB,GAC3C,IAAIj1T,EAAS2iS,EAAY,GACzB,OAAO0yD,GAAYl2G,EArdrB,SAA2Bn/O,EAAQknI,GACjC,IAAInnI,EAASmnI,EAAQnnI,OAErB,IAAKA,EACH,OAAOC,EAGT,IAAIy6E,EAAY16E,EAAS,EAGzB,OAFAmnI,EAAQzsD,IAAc16E,EAAS,EAAI,KAAO,IAAMmnI,EAAQzsD,GACxDysD,EAAUA,EAAQ5qD,KAAKv8E,EAAS,EAAI,KAAO,KACpCC,EAAOo9E,QAAQipQ,EAAe,uBAAyBn/M,EAAU,UA2c5Cy2N,CAAkB39V,EAiIhD,SAA2BknI,EAAS+tL,GAQlC,OAPAoqB,GAAU6E,GAAW,SAAUrH,GAC7B,IAAIn7U,EAAQ,KAAOm7U,EAAK,GAEpB5nB,EAAU4nB,EAAK,KAAO6M,GAAcxiN,EAASxlI,IAC/CwlI,EAAQznI,KAAKiC,MAGVwlI,EAAQh0D,OAzIuC0qR,CA7lBxD,SAAwB59V,GACtB,IAAI06E,EAAQ16E,EAAO06E,MAAM4rQ,GACzB,OAAO5rQ,EAAQA,EAAM,GAAGyB,MAAMoqQ,GAAkB,GA2lBwBsX,CAAe79V,GAASi1T,KAalG,SAASyoC,GAASxjJ,GAChB,IAAIhuL,EAAQ,EACR4xU,EAAa,EACjB,OAAO,WACL,IAAIC,EAAQ/Q,KACRgR,EAljOK,IAkjOmBD,EAAQD,GAGpC,GAFAA,EAAaC,EAETC,EAAY,GACd,KAAM9xU,GAvjOE,IAwjON,OAAOpsB,UAAU,QAGnBosB,EAAQ,EAGV,OAAOguL,EAAKx6M,WA9mOde,EA8mO+BX,YAajC,SAAS4uV,GAAYl5U,EAAOye,GAC1B,IAAI5e,GAAS,EACTtV,EAASyV,EAAMzV,OACf06E,EAAY16E,EAAS,EAGzB,IAFAk0B,OA/nOAxzB,IA+nOOwzB,EAAqBl0B,EAASk0B,IAE5B5e,EAAQ4e,GAAM,CACrB,IAAIgqU,EAAOzP,GAAWn5U,EAAOolE,GACzB/4E,EAAQ8T,EAAMyoV,GAClBzoV,EAAMyoV,GAAQzoV,EAAMH,GACpBG,EAAMH,GAAS3T,EAIjB,OADA8T,EAAMzV,OAASk0B,EACRze,EAWT,IAAIukR,GA7UJ,SAAuB7/E,GACrB,IAAIn0M,EAASm4V,GAAQhkJ,GAAM,SAAUh6M,GAKnC,OA5zNiB,MAwzNb2mC,EAAM5S,MACR4S,EAAMqiB,QAGDhpD,KAEL2mC,EAAQ9gC,EAAO8gC,MACnB,OAAO9gC,EAoUUo4V,EAAc,SAAU1sT,GACzC,IAAI1rC,EAAS,GAWb,OAT6B,KAAzB0rC,EAAOooJ,WAAW,IAGpB9zL,EAAOtG,KAAK,IAGdgyC,EAAO2rC,QAAQy8M,GAAY,SAAUn/M,EAAOoiL,EAAQk9B,EAAOC,GACzDl0R,EAAOtG,KAAKu6R,EAAQC,EAAU78M,QAAQ08M,GAAc,MAAQh9B,GAAUpiL,MAEjE30E,KAUT,SAASwwT,GAAM70T,GACb,GAAoB,iBAATA,GAAqB29P,GAAS39P,GACvC,OAAOA,EAGT,IAAIqE,EAASrE,EAAQ,GACrB,MAAiB,KAAVqE,GAAiB,EAAIrE,IAvnOjB,IAunOsC,KAAOqE,EAW1D,SAASinR,GAAS9yE,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAO46G,GAAaj0T,KAAKq5M,GACzB,MAAO7+L,IAET,IACE,OAAO6+L,EAAO,GACd,MAAO7+L,KAGX,MAAO,GA+BT,SAASoyU,GAAatuG,GACpB,GAAIA,aAAmBouG,GACrB,OAAOpuG,EAAQ50N,QAGjB,IAAIxkB,EAAS,IAAIynV,GAAcruG,EAAQ0uG,YAAa1uG,EAAQ4uG,WAI5D,OAHAhoV,EAAO+nV,YAAc94Q,GAAUmqK,EAAQ2uG,aACvC/nV,EAAOioV,UAAY7uG,EAAQ6uG,UAC3BjoV,EAAOkoV,WAAa9uG,EAAQ8uG,WACrBloV,EAmJT,IAAIq4V,GAAahJ,IAAS,SAAU5/U,EAAOnQ,GACzC,OAAO04U,GAAkBvoU,GAASk6U,GAAel6U,EAAO+6U,GAAYlrV,EAAQ,EAAG04U,IAAmB,IAAS,MA6BzGsgB,GAAejJ,IAAS,SAAU5/U,EAAOnQ,GAC3C,IAAI05R,EAAW/lK,GAAK3zH,GAMpB,OAJI04U,GAAkBh/C,KACpBA,OAn6OFt+R,GAs6OOs9U,GAAkBvoU,GAASk6U,GAAel6U,EAAO+6U,GAAYlrV,EAAQ,EAAG04U,IAAmB,GAAOqW,GAAYr1D,EAAU,IAAM,MA0BnIu/D,GAAiBlJ,IAAS,SAAU5/U,EAAOnQ,GAC7C,IAAIwkV,EAAa7wN,GAAK3zH,GAMtB,OAJI04U,GAAkB8L,KACpBA,OAp8OFppV,GAu8OOs9U,GAAkBvoU,GAASk6U,GAAel6U,EAAO+6U,GAAYlrV,EAAQ,EAAG04U,IAAmB,QAv8OlGt9U,EAu8OoHopV,GAAc,MA8OpI,SAASnpI,GAAUlrM,EAAO6hP,EAAW6R,GACnC,IAAInpQ,EAAkB,MAATyV,EAAgB,EAAIA,EAAMzV,OAEvC,IAAKA,EACH,OAAQ,EAGV,IAAIsV,EAAqB,MAAb6zP,EAAoB,EAAIozF,GAAUpzF,GAM9C,OAJI7zP,EAAQ,IACVA,EAAQq+T,GAAU3zU,EAASsV,EAAO,IAG7B+0U,GAAc50U,EAAO4+U,GAAY/8F,EAAW,GAAIhiP,GAuCzD,SAASkpV,GAAc/oV,EAAO6hP,EAAW6R,GACvC,IAAInpQ,EAAkB,MAATyV,EAAgB,EAAIA,EAAMzV,OAEvC,IAAKA,EACH,OAAQ,EAGV,IAAIsV,EAAQtV,EAAS,EAOrB,YAvvPAU,IAkvPIyoQ,IACF7zP,EAAQinV,GAAUpzF,GAClB7zP,EAAQ6zP,EAAY,EAAIwqE,GAAU3zU,EAASsV,EAAO,GAAKs+T,GAAUt+T,EAAOtV,EAAS,IAG5EqqV,GAAc50U,EAAO4+U,GAAY/8F,EAAW,GAAIhiP,GAAO,GAkBhE,SAASs/D,GAAQn/D,GAEf,OADsB,MAATA,EAAgB,EAAIA,EAAMzV,QACvBwwV,GAAY/6U,EAAO,GAAK,GAuG1C,SAASwhL,GAAKxhL,GACZ,OAAOA,GAASA,EAAMzV,OAASyV,EAAM,QAn3PrC/U,EAo8PF,IAAIw/C,GAAem1S,IAAS,SAAUjE,GACpC,IAAIqN,EAAS1U,GAASqH,EAAQwG,IAC9B,OAAO6G,EAAOz+V,QAAUy+V,EAAO,KAAOrN,EAAO,GAAKD,GAAiBsN,GAAU,MA0B3EC,GAAiBrJ,IAAS,SAAUjE,GACtC,IAAIpyD,EAAW/lK,GAAKm4N,GAChBqN,EAAS1U,GAASqH,EAAQwG,IAQ9B,OANI54D,IAAa/lK,GAAKwlO,GACpBz/D,OAr+PFt+R,EAu+PE+9V,EAAOr2V,MAGFq2V,EAAOz+V,QAAUy+V,EAAO,KAAOrN,EAAO,GAAKD,GAAiBsN,EAAQpK,GAAYr1D,EAAU,IAAM,MAwBrG2/D,GAAmBtJ,IAAS,SAAUjE,GACxC,IAAItH,EAAa7wN,GAAKm4N,GAClBqN,EAAS1U,GAASqH,EAAQwG,IAO9B,OANA9N,EAAkC,mBAAdA,EAA2BA,OArgQ/CppV,IAwgQE+9V,EAAOr2V,MAGFq2V,EAAOz+V,QAAUy+V,EAAO,KAAOrN,EAAO,GAAKD,GAAiBsN,OA3gQnE/9V,EA2gQsFopV,GAAc,MAqCtG,SAAS7wN,GAAKxjH,GACZ,IAAIzV,EAAkB,MAATyV,EAAgB,EAAIA,EAAMzV,OACvC,OAAOA,EAASyV,EAAMzV,EAAS,QAljQ/BU,EA8oQF,IAAIk+V,GAAOvJ,GAASwJ,IAsBpB,SAASA,GAAQppV,EAAOnQ,GACtB,OAAOmQ,GAASA,EAAMzV,QAAUsF,GAAUA,EAAOtF,OAASg1V,GAAYv/U,EAAOnQ,GAAUmQ,EAoFzF,IAAIqpV,GAAShF,IAAS,SAAUrkV,EAAOy/U,GACrC,IAAIl1V,EAAkB,MAATyV,EAAgB,EAAIA,EAAMzV,OACnCgG,EAASipV,GAAOx5U,EAAOy/U,GAI3B,OAHAD,GAAWx/U,EAAOs0U,GAASmL,GAAS,SAAU5/U,GAC5C,OAAO6+S,GAAQ7+S,EAAOtV,IAAWsV,EAAQA,KACxC69D,KAAKyhR,KACD5uV,KAgFT,SAASmC,GAAQsN,GACf,OAAgB,MAATA,EAAgBA,EAAQ23U,GAActsV,KAAK2U,GAobpD,IAAIyf,GAAQmgU,IAAS,SAAUjE,GAC7B,OAAO4F,GAASxG,GAAYY,EAAQ,EAAGpT,IAAmB,OA0BxD+gB,GAAU1J,IAAS,SAAUjE,GAC/B,IAAIpyD,EAAW/lK,GAAKm4N,GAMpB,OAJIpT,GAAkBh/C,KACpBA,OAnyRFt+R,GAsyROs2V,GAASxG,GAAYY,EAAQ,EAAGpT,IAAmB,GAAOqW,GAAYr1D,EAAU,OAwBrFggE,GAAY3J,IAAS,SAAUjE,GACjC,IAAItH,EAAa7wN,GAAKm4N,GAEtB,OADAtH,EAAkC,mBAAdA,EAA2BA,OAh0R/CppV,EAi0ROs2V,GAASxG,GAAYY,EAAQ,EAAGpT,IAAmB,QAj0R1Dt9U,EAi0R4EopV,MAmG9E,SAASmV,GAAMxpV,GACb,IAAMA,IAASA,EAAMzV,OACnB,MAAO,GAGT,IAAIA,EAAS,EAOb,OANAyV,EAAQ2qR,GAAY3qR,GAAO,SAAUulC,GACnC,GAAIgjS,GAAkBhjS,GAEpB,OADAh7C,EAAS2zU,GAAU34R,EAAMh7C,OAAQA,IAC1B,KAGJi0T,GAAUj0T,GAAQ,SAAUsV,GACjC,OAAOy0U,GAASt0U,EAAOy0U,GAAa50U,OA0BxC,SAAS4pV,GAAUzpV,EAAOupR,GACxB,IAAMvpR,IAASA,EAAMzV,OACnB,MAAO,GAGT,IAAIgG,EAASi5V,GAAMxpV,GAEnB,OAAgB,MAAZupR,EACKh5R,EAGF+jV,GAAS/jV,GAAQ,SAAUg1C,GAChC,OAAOr7C,GAAMq/R,OAv9Rft+R,EAu9RoCs6C,MAyBtC,IAAImkT,GAAU9J,IAAS,SAAU5/U,EAAOnQ,GACtC,OAAO04U,GAAkBvoU,GAASk6U,GAAel6U,EAAOnQ,GAAU,MAqBhE85V,GAAM/J,IAAS,SAAUjE,GAC3B,OAAOoG,GAAQp3D,GAAYgxD,EAAQpT,QA0BjCqhB,GAAQhK,IAAS,SAAUjE,GAC7B,IAAIpyD,EAAW/lK,GAAKm4N,GAMpB,OAJIpT,GAAkBh/C,KACpBA,OAriSFt+R,GAwiSO82V,GAAQp3D,GAAYgxD,EAAQpT,IAAoBqW,GAAYr1D,EAAU,OAwB3EsgE,GAAUjK,IAAS,SAAUjE,GAC/B,IAAItH,EAAa7wN,GAAKm4N,GAEtB,OADAtH,EAAkC,mBAAdA,EAA2BA,OAlkS/CppV,EAmkSO82V,GAAQp3D,GAAYgxD,EAAQpT,SAnkSnCt9U,EAmkSkEopV,MAmBhEyV,GAAMlK,GAAS4J,IA+DnB,IAAIO,GAAUnK,IAAS,SAAUjE,GAC/B,IAAIpxV,EAASoxV,EAAOpxV,OAChBg/R,EAAWh/R,EAAS,EAAIoxV,EAAOpxV,EAAS,QAvpS5CU,EAypSA,OADAs+R,EAA8B,mBAAZA,GAA0BoyD,EAAOhpV,MAAO42R,QAxpS1Dt+R,EAypSOw+V,GAAU9N,EAAQpyD,MAkC3B,SAASygE,GAAM99V,GACb,IAAIqE,EAASunV,GAAO5rV,GAEpB,OADAqE,EAAOgoV,WAAY,EACZhoV,EAwDT,SAASi0V,GAAKt4V,EAAO+9V,GACnB,OAAOA,EAAY/9V,GAoBrB,IAAIg+V,GAAY7F,IAAS,SAAUtsL,GACjC,IAAIxtK,EAASwtK,EAAMxtK,OACfw4C,EAAQx4C,EAASwtK,EAAM,GAAK,EAC5B7rK,EAAQJ,KAAKusV,YACb4R,EAAc,SAAqB1gW,GACrC,OAAOiwV,GAAOjwV,EAAQwuK,IAGxB,QAAIxtK,EAAS,GAAKuB,KAAKwsV,YAAY/tV,SAAY2B,aAAiB6rV,IAAiBr5B,GAAQ37Q,KAIzF72C,EAAQA,EAAM6G,MAAMgwC,GAAQA,GAASx4C,EAAS,EAAI,KAE5C+tV,YAAYruV,KAAK,CACrB,KAAQu6V,GACR,KAAQ,CAACyF,GACT,aA5xSFh/V,IA+xSO,IAAI+sV,GAAc9rV,EAAOJ,KAAKysV,WAAWiM,MAAK,SAAUxkV,GAK7D,OAJIzV,IAAWyV,EAAMzV,QACnByV,EAAM/V,UAjySVgB,GAoySS+U,MAhBAlU,KAAK04V,KAAKyF,MAsRrB,IAAIE,GAAU5G,IAAiB,SAAUhzV,EAAQrE,EAAOxB,GAClDgC,GAAerB,KAAKkF,EAAQ7F,KAC5B6F,EAAO7F,GAETutR,GAAgB1nR,EAAQ7F,EAAK,MA2IjC,IAAIyiJ,GAAO+2M,GAAWh5I,IAqBlBk/I,GAAWlG,GAAW6E,IA8G1B,SAASt+V,GAAQmyS,EAAYrT,GAE3B,OADW75Q,GAAQktR,GAAcitC,GAAY0P,IACjC38C,EAAYgiD,GAAYr1D,EAAU,IAwBhD,SAAS8gE,GAAaztD,EAAYrT,GAEhC,OADW75Q,GAAQktR,GAAcm3C,GAAiB2G,IACtC99C,EAAYgiD,GAAYr1D,EAAU,IA2BhD,IAAI+gE,GAAU/G,IAAiB,SAAUhzV,EAAQrE,EAAOxB,GAClDgC,GAAerB,KAAKkF,EAAQ7F,GAC9B6F,EAAO7F,GAAKT,KAAKiC,GAEjB+rR,GAAgB1nR,EAAQ7F,EAAK,CAACwB,OAsElC,IAAIq+V,GAAY3K,IAAS,SAAUhjD,EAAY73N,EAAMyvG,GACnD,IAAI30K,GAAS,EACT+oU,EAAwB,mBAAR7jQ,EAChBx0E,EAAS0nQ,GAAY2kC,GAAcntR,EAAMmtR,EAAWryS,QAAU,GAIlE,OAHAgvV,GAAS38C,GAAY,SAAU1wS,GAC7BqE,IAASsP,GAAS+oU,EAAS1+U,GAAM66E,EAAM74E,EAAOsoL,GAAQqnK,GAAW3vV,EAAO64E,EAAMyvG,MAEzEjkL,KA+BLi6V,GAAQjH,IAAiB,SAAUhzV,EAAQrE,EAAOxB,GACpDutR,GAAgB1nR,EAAQ7F,EAAKwB,MA6C/B,SAASqsC,GAAIqkQ,EAAYrT,GAEvB,OADW75Q,GAAQktR,GAAc03C,GAAWsJ,IAChChhD,EAAYgiD,GAAYr1D,EAAU,IAwFhD,IAAIkhE,GAAYlH,IAAiB,SAAUhzV,EAAQrE,EAAOxB,GACxD6F,EAAO7F,EAAM,EAAI,GAAGT,KAAKiC,MACxB,WACD,MAAO,CAAC,GAAI,OAiTd,IAAIw+V,GAAS9K,IAAS,SAAUhjD,EAAY8hD,GAC1C,GAAkB,MAAd9hD,EACF,MAAO,GAGT,IAAIryS,EAASm0V,EAAUn0V,OAQvB,OANIA,EAAS,GAAKq5V,GAAehnD,EAAY8hD,EAAU,GAAIA,EAAU,IACnEA,EAAY,GACHn0V,EAAS,GAAKq5V,GAAelF,EAAU,GAAIA,EAAU,GAAIA,EAAU,MAC5EA,EAAY,CAACA,EAAU,KAGlBD,GAAY7hD,EAAYm+C,GAAY2D,EAAW,GAAI,OAqBxD1zL,GAAMksL,IAAU,WAClB,OAAOphL,GAAKzK,KAAKL,OA6DnB,SAASi6L,GAAIvgJ,EAAMvjM,EAAGwiV,GAGpB,OAFAxiV,EAAIwiV,OAhgVJ14V,EAggVwBkW,EAEjB8lV,GAAWviJ,EA39UF,SAvChBz5M,uBAigVAkW,EAAIujM,GAAa,MAALvjM,EAAYujM,EAAKn6M,OAAS4W,GAsBxC,SAASwpV,GAAOxpV,EAAGujM,GACjB,IAAIn0M,EAEJ,GAAmB,mBAARm0M,EACT,MAAM,IAAIn5M,GAAUijV,GAItB,OADArtU,EAAI2lV,GAAU3lV,GACP,WASL,QARMA,EAAI,IACR5Q,EAASm0M,EAAKx6M,MAAM4B,KAAMxB,YAGxB6W,GAAK,IACPujM,OAriVJz5M,GAwiVSsF,GAwCX,IAAIm5G,GAAOk2O,IAAS,SAAUl7I,EAAMyuB,EAASsvH,GAC3C,IAAIhjC,EAjjVa,EAmjVjB,GAAIgjC,EAASl4V,OAAQ,CACnB,IAAIm4V,EAAUzM,GAAewM,EAAU6C,GAAU57O,KACjD+1M,GAhjVkB,GAmjVpB,OAAOwnC,GAAWviJ,EAAM+6G,EAAStsF,EAASsvH,EAAUC,MAgDlDkI,GAAUhL,IAAS,SAAUr2V,EAAQmB,EAAK+3V,GAC5C,IAAIhjC,EAAUorC,EAEd,GAAIpI,EAASl4V,OAAQ,CACnB,IAAIm4V,EAAUzM,GAAewM,EAAU6C,GAAUsF,KACjDnrC,GAxmVkB,GA2mVpB,OAAOwnC,GAAWv8V,EAAK+0T,EAASl2T,EAAQk5V,EAAUC,MAwJpD,SAAS/1D,GAASjoF,EAAM45H,EAAMnqT,GAC5B,IAAIonR,EACAF,EACA6qB,EACA31T,EACAguU,EACAC,EACAC,EAAiB,EACjBnY,GAAU,EACVoY,GAAS,EACTnY,GAAW,EAEf,GAAmB,mBAAR7hH,EACT,MAAM,IAAIn5M,GAAUijV,GAYtB,SAAS7P,EAAWloR,GAClB,IAAI+9H,EAAO+mH,EACPpoE,EAAUkoE,EAId,OAHAE,EAAWF,OAp0VbpwS,EAq0VEwzU,EAAiBhoR,EACjBlmD,EAASm0M,EAAKx6M,MAAMipO,EAAS3+C,GAI/B,SAASoqJ,EAAYnoR,GAMnB,OAJAgoR,EAAiBhoR,EAEjB8nR,EAAUnkL,GAAWykL,EAAcP,GAE5BhY,EAAUqY,EAAWloR,GAAQlmD,EAUtC,SAASuuU,EAAaroR,GACpB,IAAIsoR,EAAoBtoR,EAAO+nR,EAK/B,YAh2VFvzU,IAg2VSuzU,GAA8BO,GAAqBT,GAAQS,EAAoB,GAAKL,GAJjEjoR,EAAOgoR,GAI2FvY,EAG9H,SAAS2Y,IACP,IAAIpoR,EAAOu0G,KAEX,GAAI8zK,EAAaroR,GACf,OAAOuoR,EAAavoR,GAItB8nR,EAAUnkL,GAAWykL,EAxBvB,SAAuBpoR,GACrB,IAEIq0S,EAAcxsB,GAFM7nR,EAAO+nR,GAG/B,OAAOE,EAASP,GAAU2sB,EAAa5kC,GAFbzvQ,EAAOgoR,IAEuCqsB,EAoBrC7rB,CAAcxoR,IAGnD,SAASuoR,EAAavoR,GAIpB,OAHA8nR,OA/2VFtzU,EAk3VMs7T,GAAYhrB,EACPojC,EAAWloR,IAGpB8kP,EAAWF,OAt3VbpwS,EAu3VSsF,GAgBT,SAAS2uU,IACP,IAAIzoR,EAAOu0G,KACPm0K,EAAaL,EAAaroR,GAK9B,GAJA8kP,EAAWjxS,UACX+wS,EAAWvvS,KACX0yU,EAAe/nR,EAEX0oR,EAAY,CACd,QA/4VJl0U,IA+4VQszU,EACF,OAAOK,EAAYJ,GAGrB,GAAIE,EAIF,OAFAn1H,GAAag1H,GACbA,EAAUnkL,GAAWykL,EAAcP,GAC5BK,EAAWH,GAQtB,YA/5VFvzU,IA25VMszU,IACFA,EAAUnkL,GAAWykL,EAAcP,IAG9B/tU,EAKT,OA5GA+tU,EAAOF,GAASE,IAAS,EAErBvmJ,GAAS5jK,KACXmyS,IAAYnyS,EAAQmyS,QAEpBJ,GADAwY,EAAS,YAAavqT,GACH+pT,GAAUE,GAASjqT,EAAQ+xS,UAAY,EAAGoY,GAAQpY,EACrEK,EAAW,aAAcpyS,IAAYA,EAAQoyS,SAAWA,GAoG1D2Y,EAAUryB,OAxCV,gBA13VA5hT,IA23VMszU,GACFh1H,GAAag1H,GAGfE,EAAiB,EACjBljC,EAAWijC,EAAenjC,EAAWkjC,OAh4VvCtzU,GAm6VAi0U,EAAUj6B,MAhCV,WACE,YAp4VFh6S,IAo4VSszU,EAAwBhuU,EAASyuU,EAAah0K,OAgChDk0K,EAsBT,IAAIltD,GAAQ4tE,IAAS,SAAUl7I,EAAMlwB,GACnC,OAAOylK,GAAUv1I,EAAM,EAAGlwB,MAsBxB/lB,GAAQmxL,IAAS,SAAUl7I,EAAM45H,EAAM9pJ,GACzC,OAAOylK,GAAUv1I,EAAM05H,GAASE,IAAS,EAAG9pJ,MAsE9C,SAASk0K,GAAQhkJ,EAAMqmJ,GACrB,GAAmB,mBAARrmJ,GAAkC,MAAZqmJ,GAAuC,mBAAZA,EAC1D,MAAM,IAAIx/V,GAAUijV,GAGtB,IAAIwc,EAAW,SAASA,IACtB,IAAIx2K,EAAOlqL,UACPI,EAAMqgW,EAAWA,EAAS7gW,MAAM4B,KAAM0oL,GAAQA,EAAK,GACnDnjJ,EAAQ25T,EAAS35T,MAErB,GAAIA,EAAM7lC,IAAId,GACZ,OAAO2mC,EAAM5lC,IAAIf,GAGnB,IAAI6F,EAASm0M,EAAKx6M,MAAM4B,KAAM0oL,GAE9B,OADAw2K,EAAS35T,MAAQA,EAAM3lC,IAAIhB,EAAK6F,IAAW8gC,EACpC9gC,GAIT,OADAy6V,EAAS35T,MAAQ,IAAKq3T,GAAQhxM,OAASgzI,IAChCsgE,EA0BT,SAASznT,GAAOs+M,GACd,GAAwB,mBAAbA,EACT,MAAM,IAAIt2P,GAAUijV,GAGtB,OAAO,WACL,IAAIh6J,EAAOlqL,UAEX,OAAQkqL,EAAKjqL,QACX,KAAK,EACH,OAAQs3P,EAAUx2P,KAAKS,MAEzB,KAAK,EACH,OAAQ+1P,EAAUx2P,KAAKS,KAAM0oL,EAAK,IAEpC,KAAK,EACH,OAAQqtE,EAAUx2P,KAAKS,KAAM0oL,EAAK,GAAIA,EAAK,IAE7C,KAAK,EACH,OAAQqtE,EAAUx2P,KAAKS,KAAM0oL,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAGxD,OAAQqtE,EAAU33P,MAAM4B,KAAM0oL,IA5ClCk0K,GAAQhxM,MAAQgzI,GAuGhB,IAAIugE,GAAW7I,IAAS,SAAU19I,EAAMwmJ,GAEtC,IAAIC,GADJD,EAAkC,GAArBA,EAAW3gW,QAAemlB,GAAQw7U,EAAW,IAAM5W,GAAS4W,EAAW,GAAI9rC,GAAUw/B,OAAkBtK,GAASyG,GAAYmQ,EAAY,GAAI9rC,GAAUw/B,QACtIr0V,OAC7B,OAAOq1V,IAAS,SAAUprK,GAIxB,IAHA,IAAI30K,GAAS,EACTtV,EAAS4zU,GAAU3pJ,EAAKjqL,OAAQ4gW,KAE3BtrV,EAAQtV,GACfiqL,EAAK30K,GAASqrV,EAAWrrV,GAAOxU,KAAKS,KAAM0oL,EAAK30K,IAGlD,OAAO3V,GAAMw6M,EAAM54M,KAAM0oL,SAqCzB63I,GAAUuzB,IAAS,SAAUl7I,EAAM+9I,GAErC,OAAOwE,GAAWviJ,EApqWE,QArCpBz5M,EAysWsDw3V,EADxCxM,GAAewM,EAAU6C,GAAUj5B,SAoC/C++B,GAAexL,IAAS,SAAUl7I,EAAM+9I,GAE1C,OAAOwE,GAAWviJ,EAxsWQ,QAtC1Bz5M,EA8uW4Dw3V,EAD9CxM,GAAewM,EAAU6C,GAAU8F,SA0B/CC,GAAQhH,IAAS,SAAU3/I,EAAM+6I,GACnC,OAAOwH,GAAWviJ,EAhuWA,SAxClBz5M,gBAwwW0Ew0V,MAkb5E,SAASvoE,GAAGhrR,EAAO+2K,GACjB,OAAO/2K,IAAU+2K,GAAS/2K,IAAUA,GAAS+2K,IAAUA,EA2BzD,IAAIqoL,GAAK/E,GAA0BhL,IAyB/BgQ,GAAMhF,IAA0B,SAAUr6V,EAAO+2K,GACnD,OAAO/2K,GAAS+2K,KAqBdw7I,GAAcQ,GAAgB,WAChC,OAAO30T,UADyB,IAE3B20T,GAAkB,SAAU/yT,GACjC,OAAO++R,GAAa/+R,IAAUQ,GAAerB,KAAKa,EAAO,YAAcimL,GAAqB9mL,KAAKa,EAAO,WA0BtGwjB,GAAUD,EAAMC,QAmBhBsiN,GAAgBuhH,GAAoBn0B,GAAUm0B,IAz2QlD,SAA2BrnV,GACzB,OAAO++R,GAAa/+R,IAAUqrR,GAAWrrR,IAAUmjV,GAm4QrD,SAASp3E,GAAY/rQ,GACnB,OAAgB,MAATA,GAAiByqR,GAASzqR,EAAM3B,UAAY4uL,GAAWjtL,GA6BhE,SAASq8U,GAAkBr8U,GACzB,OAAO++R,GAAa/+R,IAAU+rQ,GAAY/rQ,GA2C5C,IAAI+lO,GAAWk2G,IAAkB3+C,GAmB7Bj3D,GAASihH,GAAap0B,GAAUo0B,IAr9QpC,SAAoBtnV,GAClB,OAAO++R,GAAa/+R,IAAUqrR,GAAWrrR,IAAU2iV,GAooRrD,SAAS2c,GAAQt/V,GACf,IAAK++R,GAAa/+R,GAChB,OAAO,EAGT,IAAIuwL,EAAM86F,GAAWrrR,GACrB,OAAOuwL,GAAOqyJ,GAvhYF,yBAuhYcryJ,GAA4C,iBAAjBvwL,EAAMkgB,SAA4C,iBAAdlgB,EAAMiG,OAAqB6mL,GAAc9sL,GAoDpI,SAASitL,GAAWjtL,GAClB,IAAK6rL,GAAS7rL,GACZ,OAAO,EAKT,IAAIuwL,EAAM86F,GAAWrrR,GACrB,OAAOuwL,GAAOmqJ,GAAWnqJ,GAAOoqJ,GAtlYrB,0BAslY+BpqJ,GA1kY/B,kBA0kYkDA,EA8B/D,SAAS30B,GAAU57J,GACjB,MAAuB,iBAATA,GAAqBA,GAAS46V,GAAU56V,GA8BxD,SAASyqR,GAASzqR,GAChB,MAAuB,iBAATA,GAAqBA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GAnqYhD,iBAgsYrB,SAAS6rL,GAAS7rL,GAChB,IAAIoD,SAAcpD,EAClB,OAAgB,MAATA,IAA0B,UAARoD,GAA4B,YAARA,GA4B/C,SAAS27R,GAAa/+R,GACpB,OAAgB,MAATA,GAAiC,iBAATA,EAqBjC,IAAIwnV,GAAQD,GAAYr0B,GAAUq0B,IAnvRlC,SAAmBvnV,GACjB,OAAO++R,GAAa/+R,IAAU4rR,GAAO5rR,IAAU46U,GA28RjD,SAASx0G,GAASpmO,GAChB,MAAuB,iBAATA,GAAqB++R,GAAa/+R,IAAUqrR,GAAWrrR,IAAU6iV,EAgCjF,SAAS/1J,GAAc9sL,GACrB,IAAK++R,GAAa/+R,IAAUqrR,GAAWrrR,IAAU8iV,EAC/C,OAAO,EAGT,IAAI5/E,EAAQy6B,GAAa39R,GAEzB,GAAc,OAAVkjQ,EACF,OAAO,EAGT,IAAI2oB,EAAOrrR,GAAerB,KAAK+jQ,EAAO,gBAAkBA,EAAMrjQ,YAC9D,MAAsB,mBAARgsR,GAAsBA,aAAgBA,GAAQunC,GAAaj0T,KAAK0sR,IAAS8+D,GAqBzF,IAAI/0D,GAAW6xD,GAAev0B,GAAUu0B,IAx7RxC,SAAsBznV,GACpB,OAAO++R,GAAa/+R,IAAUqrR,GAAWrrR,IAAU+iV,GA0+RrD,IAAI4E,GAAQD,GAAYx0B,GAAUw0B,IA/9RlC,SAAmB1nV,GACjB,OAAO++R,GAAa/+R,IAAU4rR,GAAO5rR,IAAU66U,GAi/RjD,SAAS10G,GAASnmO,GAChB,MAAuB,iBAATA,IAAsBwjB,GAAQxjB,IAAU++R,GAAa/+R,IAAUqrR,GAAWrrR,IAAUgjV,EAqBpG,SAASrlF,GAAS39P,GAChB,MAAuB,iBAATA,GAAqB++R,GAAa/+R,IAAUqrR,GAAWrrR,IAAUijV,EAqBjF,IAAIvkM,GAAey0K,GAAmBD,GAAUC,IAlhShD,SAA0BnzT,GACxB,OAAO++R,GAAa/+R,IAAUyqR,GAASzqR,EAAM3B,WAAa6oV,GAAe77D,GAAWrrR,KA4mStF,IAAIkjN,GAAKm3I,GAA0B5I,IAyB/B8N,GAAMlF,IAA0B,SAAUr6V,EAAO+2K,GACnD,OAAO/2K,GAAS+2K,KA0BlB,SAAShpJ,GAAQ/tB,GACf,IAAKA,EACH,MAAO,GAGT,GAAI+rQ,GAAY/rQ,GACd,OAAOmmO,GAASnmO,GAASmqV,GAAcnqV,GAASszE,GAAUtzE,GAG5D,GAAI8qV,IAAe9qV,EAAM8qV,IACvB,OAhiXN,SAAyB5pV,GAIvB,IAHA,IAAIyhB,EACAte,EAAS,KAEJse,EAAOzhB,EAAS2D,QAAQxB,MAC/BgB,EAAOtG,KAAK4kB,EAAK3iB,OAGnB,OAAOqE,EAwhXIm7V,CAAgBx/V,EAAM8qV,OAG/B,IAAIv6J,EAAMq7F,GAAO5rR,GAEjB,OADWuwL,GAAOqqJ,EAASa,GAAalrJ,GAAOsqJ,EAASa,GAAa/3U,IACzD3D,GA2Bd,SAASm6V,GAASn6V,GAChB,OAAKA,GAILA,EAAQkyU,GAASlyU,MAh0ZN,KAk0ZeA,KAl0Zf,IAEG,uBAi0ZDA,EAAQ,GAAK,EAAI,GAIvBA,IAAUA,EAAQA,EAAQ,EAVd,IAAVA,EAAcA,EAAQ,EAwCjC,SAAS46V,GAAU56V,GACjB,IAAIqE,EAAS81V,GAASn6V,GAClBy/V,EAAYp7V,EAAS,EACzB,OAAOA,IAAWA,EAASo7V,EAAYp7V,EAASo7V,EAAYp7V,EAAS,EA+BvE,SAASwxM,GAAS71M,GAChB,OAAOA,EAAQitV,GAAU2N,GAAU56V,GAAQ,EAl4ZxB,YAk4Z+C,EA2BpE,SAASkyU,GAASlyU,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAGT,GAAI29P,GAAS39P,GACX,OAt6ZI,IAy6ZN,GAAI6rL,GAAS7rL,GAAQ,CACnB,IAAI+2K,EAAgC,mBAAjB/2K,EAAM4vS,QAAwB5vS,EAAM4vS,UAAY5vS,EACnEA,EAAQ6rL,GAAS9U,GAASA,EAAQ,GAAKA,EAGzC,GAAoB,iBAAT/2K,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAGhCA,EAAQmpV,GAASnpV,GACjB,IAAImyU,EAAWN,GAAWjwT,KAAK5hB,GAC/B,OAAOmyU,GAAYL,GAAUlwT,KAAK5hB,GAAS+xU,GAAa/xU,EAAM6G,MAAM,GAAIsrU,EAAW,EAAI,GAAKP,GAAWhwT,KAAK5hB,GAp7ZtG,KAo7ZsHA,EA4B9H,SAASoyV,GAAcpyV,GACrB,OAAO88U,GAAW98U,EAAO2tV,GAAO3tV,IAsDlC,SAASd,GAASc,GAChB,OAAgB,MAATA,EAAgB,GAAKo1V,GAAap1V,GAsC3C,IAAI8oB,GAASyuU,IAAe,SAAUl6V,EAAQiB,GAC5C,GAAIs+U,GAAYt+U,IAAWytQ,GAAYztQ,GACrCw+U,GAAWx+U,EAAQf,GAAKe,GAASjB,QAInC,IAAK,IAAImB,KAAOF,EACVkC,GAAerB,KAAKb,EAAQE,IAC9BsoO,GAAYzpO,EAAQmB,EAAKF,EAAOE,OAoClCkhW,GAAWnI,IAAe,SAAUl6V,EAAQiB,GAC9Cw+U,GAAWx+U,EAAQqvV,GAAOrvV,GAASjB,MAgCjCsiW,GAAepI,IAAe,SAAUl6V,EAAQiB,EAAQ0zV,EAAUhmE,GACpE8wD,GAAWx+U,EAAQqvV,GAAOrvV,GAASjB,EAAQ2uR,MA+BzC4zE,GAAarI,IAAe,SAAUl6V,EAAQiB,EAAQ0zV,EAAUhmE,GAClE8wD,GAAWx+U,EAAQf,GAAKe,GAASjB,EAAQ2uR,MAoBvC30P,GAAK8gU,GAAS7K,IA+DlB,IAAIhvC,GAAWo1C,IAAS,SAAUr2V,EAAQimQ,GACxCjmQ,EAASG,GAAOH,GAChB,IAAIsW,GAAS,EACTtV,EAASilQ,EAAQjlQ,OACjBo5V,EAAQp5V,EAAS,EAAIilQ,EAAQ,QA/yajCvkQ,EAqzaA,IAJI04V,GAASC,GAAep0F,EAAQ,GAAIA,EAAQ,GAAIm0F,KAClDp5V,EAAS,KAGFsV,EAAQtV,GAMf,IALA,IAAIC,EAASglQ,EAAQ3vP,GACjB4xK,EAAQooK,GAAOrvV,GACfuhW,GAAc,EACdC,EAAcv6K,EAAMlnL,SAEfwhW,EAAaC,GAAa,CACjC,IAAIthW,EAAM+mL,EAAMs6K,GACZ7/V,EAAQ3C,EAAOmB,SA7zavBO,IA+zaQiB,GAAuBgrR,GAAGhrR,EAAO09R,GAAYl/R,MAAUgC,GAAerB,KAAK9B,EAAQmB,MACrFnB,EAAOmB,GAAOF,EAAOE,IAK3B,OAAOnB,KAsBL0iW,GAAerM,IAAS,SAAUprK,GAEpC,OADAA,EAAKvqL,UA51aLgB,EA41aqBy8V,IACdx9V,GAAMgiW,QA71abjhW,EA61amCupL,MAoSrC,SAAS/oL,GAAIlC,EAAQw7E,EAAMouK,GACzB,IAAI5iP,EAAmB,MAAVhH,OAlobb0B,EAkob0CowV,GAAQ9xV,EAAQw7E,GAC1D,YAnobA95E,IAmobOsF,EAAuB4iP,EAAe5iP,EA8D/C,SAASytV,GAAMz0V,EAAQw7E,GACrB,OAAiB,MAAVx7E,GAAkBs+V,GAAQt+V,EAAQw7E,EAAM02Q,IAsBjD,IAAIjxU,GAASm7U,IAAe,SAAUp1V,EAAQrE,EAAOxB,GACtC,MAATwB,GAA0C,mBAAlBA,EAAMd,WAChCc,EAAQ0qV,GAAqBvrV,KAAKa,IAGpCqE,EAAOrE,GAASxB,IACfy1B,GAASy7D,KA4BRuwQ,GAAWxG,IAAe,SAAUp1V,EAAQrE,EAAOxB,GACxC,MAATwB,GAA0C,mBAAlBA,EAAMd,WAChCc,EAAQ0qV,GAAqBvrV,KAAKa,IAGhCQ,GAAerB,KAAKkF,EAAQrE,GAC9BqE,EAAOrE,GAAOjC,KAAKS,GAEnB6F,EAAOrE,GAAS,CAACxB,KAElBk0V,IAoBCtuV,GAASsvV,GAAS/D,IA8BtB,SAASpyV,GAAKF,GACZ,OAAO0uQ,GAAY1uQ,GAAUwuQ,GAAcxuQ,GAAUyuQ,GAASzuQ,GA2BhE,SAASswV,GAAOtwV,GACd,OAAO0uQ,GAAY1uQ,GAAUwuQ,GAAcxuQ,GAAQ,GAAQ2hS,GAAW3hS,GAwGxE,IAAI4kD,GAAQs1S,IAAe,SAAUl6V,EAAQiB,EAAQ0zV,GACnDD,GAAU10V,EAAQiB,EAAQ0zV,MAkCxBgO,GAAYzI,IAAe,SAAUl6V,EAAQiB,EAAQ0zV,EAAUhmE,GACjE+lE,GAAU10V,EAAQiB,EAAQ0zV,EAAUhmE,MAuBlCk0E,GAAO/H,IAAS,SAAU96V,EAAQwuK,GACpC,IAAIxnK,EAAS,GAEb,GAAc,MAAVhH,EACF,OAAOgH,EAGT,IAAIipU,GAAS,EACbzhK,EAAQu8K,GAASv8K,GAAO,SAAUhzF,GAGhC,OAFAA,EAAO+7O,GAAS/7O,EAAMx7E,GACtBiwU,IAAWA,EAASz0P,EAAKx6E,OAAS,GAC3Bw6E,KAETikQ,GAAWz/U,EAAQwwV,GAAaxwV,GAASgH,GAErCipU,IACFjpU,EAASk4U,GAAUl4U,EAAQ87V,EAAwD1E,KAKrF,IAFA,IAAIp9V,EAASwtK,EAAMxtK,OAEZA,KACLm1V,GAAUnvV,EAAQwnK,EAAMxtK,IAG1B,OAAOgG,KA6CT,IAAImmV,GAAO2N,IAAS,SAAU96V,EAAQwuK,GACpC,OAAiB,MAAVxuK,EAAiB,GA3kU1B,SAAkBA,EAAQwuK,GACxB,OAAOsnL,GAAW91V,EAAQwuK,GAAO,SAAU7rK,EAAO64E,GAChD,OAAOi5Q,GAAMz0V,EAAQw7E,MAykUMunR,CAAS/iW,EAAQwuK,MAqBhD,SAASw0L,GAAOhjW,EAAQs4P,GACtB,GAAc,MAAVt4P,EACF,MAAO,GAGT,IAAIkoL,EAAQ6iK,GAASyF,GAAaxwV,IAAS,SAAU+gO,GACnD,MAAO,CAACA,MAGV,OADAu3B,EAAY+8F,GAAY/8F,GACjBw9F,GAAW91V,EAAQkoL,GAAO,SAAUvlL,EAAO64E,GAChD,OAAO88K,EAAU31P,EAAO64E,EAAK,OAkJjC,IAAIynR,GAAUzF,GAAct9V,IA0BxBgjW,GAAY1F,GAAclN,IAgL9B,SAAShqV,GAAOtG,GACd,OAAiB,MAAVA,EAAiB,GAAKgsV,GAAWhsV,EAAQE,GAAKF,IAgOvD,IAAImjW,GAAY5I,IAAiB,SAAUvzV,EAAQo8V,EAAM9sV,GAEvD,OADA8sV,EAAOA,EAAK7rV,cACLvQ,GAAUsP,EAAQ+sV,GAAWD,GAAQA,MAkB9C,SAASC,GAAW3wT,GAClB,OAAO4wT,GAAWzhW,GAAS6wC,GAAQn7B,eAsBrC,SAASijV,GAAO9nT,GAEd,OADAA,EAAS7wC,GAAS6wC,KACDA,EAAO2rC,QAAQupQ,GAAS0E,IAAcjuQ,QAAQirQ,GAAa,IAkH9E,IAAIia,GAAYhJ,IAAiB,SAAUvzV,EAAQo8V,EAAM9sV,GACvD,OAAOtP,GAAUsP,EAAQ,IAAM,IAAM8sV,EAAK7rV,iBAuBxCisV,GAAYjJ,IAAiB,SAAUvzV,EAAQo8V,EAAM9sV,GACvD,OAAOtP,GAAUsP,EAAQ,IAAM,IAAM8sV,EAAK7rV,iBAoBxCksV,GAAanJ,GAAgB,eAwNjC,IAAIoJ,GAAYnJ,IAAiB,SAAUvzV,EAAQo8V,EAAM9sV,GACvD,OAAOtP,GAAUsP,EAAQ,IAAM,IAAM8sV,EAAK7rV,iBAoE5C,IAAIosV,GAAYpJ,IAAiB,SAAUvzV,EAAQo8V,EAAM9sV,GACvD,OAAOtP,GAAUsP,EAAQ,IAAM,IAAMgtV,GAAWF,MAuhBlD,IAAIQ,GAAYrJ,IAAiB,SAAUvzV,EAAQo8V,EAAM9sV,GACvD,OAAOtP,GAAUsP,EAAQ,IAAM,IAAM8sV,EAAKjmR,iBAoBxCmmR,GAAahJ,GAAgB,eAqBjC,SAASje,GAAM3pS,EAAQm6G,EAASutM,GAI9B,OAHA1nT,EAAS7wC,GAAS6wC,QArsflBhxC,KAssfAmrJ,EAAUutM,OAtsfV14V,EAssf8BmrJ,GA95clC,SAAwBn6G,GACtB,OAAOg3S,GAAiBnlU,KAAKmuB,GAg6clBmxT,CAAenxT,GArqc5B,SAAsBA,GACpB,OAAOA,EAAOipC,MAAM6tQ,KAAkB,GAoqcFsa,CAAapxT,GA/0dnD,SAAoBA,GAClB,OAAOA,EAAOipC,MAAM8rQ,IAAgB,GA80duBsc,CAAWrxT,GAG7DA,EAAOipC,MAAMkxE,IAAY,GA4BlC,IAAIm3M,GAAU3N,IAAS,SAAUl7I,EAAMlwB,GACrC,IACE,OAAOtqL,GAAMw6M,OA1uffz5M,EA0ufgCupL,GAC9B,MAAO3uK,GACP,OAAO2lV,GAAQ3lV,GAAKA,EAAI,IAAInX,EAAMmX,OA8BlC2nV,GAAUnJ,IAAS,SAAU96V,EAAQkkW,GAKvC,OAJA5jB,GAAU4jB,GAAa,SAAU/iW,GAC/BA,EAAMq2T,GAAMr2T,GACZutR,GAAgB1uR,EAAQmB,EAAKg/G,GAAKngH,EAAOmB,GAAMnB,OAE1CA,KAwGT,SAAS42B,GAASj0B,GAChB,OAAO,WACL,OAAOA,GAoDX,IAAIwhW,GAAOtJ,KAuBPuJ,GAAYvJ,IAAW,GAkB3B,SAASxoQ,GAAS1vF,GAChB,OAAOA,EA8CT,SAASq9R,GAAS7kF,GAChB,OAAO44I,GAA4B,mBAAR54I,EAAqBA,EAAO+jI,GAAU/jI,EA/+f/C,IAylgBpB,IAAIl2M,GAASoxV,IAAS,SAAU76Q,EAAMyvG,GACpC,OAAO,SAAUjrL,GACf,OAAOsyV,GAAWtyV,EAAQw7E,EAAMyvG,OA2BhCo5K,GAAWhO,IAAS,SAAUr2V,EAAQirL,GACxC,OAAO,SAAUzvG,GACf,OAAO82Q,GAAWtyV,EAAQw7E,EAAMyvG,OAwCpC,SAASq5K,GAAMtkW,EAAQiB,EAAQ2pB,GAC7B,IAAIs9J,EAAQhoL,GAAKe,GACbijW,EAAcrS,GAAc5wV,EAAQinL,GAEzB,MAAXt9J,GAAqB4jK,GAASvtL,KAAYijW,EAAYljW,SAAWknL,EAAMlnL,UACzE4pB,EAAU3pB,EACVA,EAASjB,EACTA,EAASuC,KACT2hW,EAAcrS,GAAc5wV,EAAQf,GAAKe,KAG3C,IAAIw/V,IAAUjyK,GAAS5jK,IAAY,UAAWA,MAAcA,EAAQ61U,MAChEphB,EAASzvJ,GAAW5vL,GAyBxB,OAxBAsgV,GAAU4jB,GAAa,SAAU1+R,GAC/B,IAAI21I,EAAOl6M,EAAOukE,GAClBxlE,EAAOwlE,GAAc21I,EAEjBkkI,IACFr/U,EAAOyC,UAAU+iE,GAAc,WAC7B,IAAIqpR,EAAWtsV,KAAKysV,UAEpB,GAAIyR,GAAS5R,EAAU,CACrB,IAAI7nV,EAAShH,EAAOuC,KAAKusV,aACrBx4K,EAAUtvK,EAAO+nV,YAAc94Q,GAAU1zE,KAAKwsV,aAOlD,OANAz4K,EAAQ51K,KAAK,CACX,KAAQy6M,EACR,KAAQp6M,UACR,QAAWf,IAEbgH,EAAOgoV,UAAYH,EACZ7nV,EAGT,OAAOm0M,EAAKx6M,MAAMX,EAAQm3T,GAAU,CAAC50T,KAAKI,SAAU5B,iBAInDf,EAsCT,SAASgrQ,MAkDT,IAAIu5F,GAAO9H,GAAW1R,IA8BlByZ,GAAY/H,GAAWhS,IAiCvBga,GAAWhI,GAAWpmC,IAwB1B,SAAStzT,GAASy4E,GAChB,OAAOi8O,GAAMj8O,GAAQ0vQ,GAAa1zB,GAAMh8O,IAj3Y1C,SAA0BA,GACxB,OAAO,SAAUx7E,GACf,OAAO8xV,GAAQ9xV,EAAQw7E,IA+2YwBkpR,CAAiBlpR,GAyEpE,IAAIlhE,GAAQsqR,KAsCR+/D,GAAa//D,IAAY,GAoB7B,SAASvD,KACP,MAAO,GAiBT,SAASpB,KACP,OAAO,EAyKT,IAAI7qQ,GAAMmnU,IAAoB,SAAUqI,EAAQC,GAC9C,OAAOD,EAASC,IACf,GAuBCxsV,GAAOilV,GAAY,QAiBnBwH,GAASvI,IAAoB,SAAUwI,EAAUC,GACnD,OAAOD,EAAWC,IACjB,GAuBCvsV,GAAQ6kV,GAAY,SAsKxB,IAAI/4T,GAAWg4T,IAAoB,SAAU0I,EAAYC,GACvD,OAAOD,EAAaC,IACnB,GAuBCjsV,GAAQqkV,GAAY,SAiBpB93D,GAAW+2D,IAAoB,SAAU4I,EAASC,GACpD,OAAOD,EAAUC,IAChB,GAsmBH,OAnjBA7W,GAAO8W,MAnjNP,SAAeztV,EAAGujM,GAChB,GAAmB,mBAARA,EACT,MAAM,IAAIn5M,GAAUijV,GAItB,OADArtU,EAAI2lV,GAAU3lV,GACP,WACL,KAAMA,EAAI,EACR,OAAOujM,EAAKx6M,MAAM4B,KAAMxB,aA4iN9BwtV,GAAOmN,IAAMA,GACbnN,GAAO9iU,OAASA,GAChB8iU,GAAO8T,SAAWA,GAClB9T,GAAO+T,aAAeA,GACtB/T,GAAOgU,WAAaA,GACpBhU,GAAOv0T,GAAKA,GACZu0T,GAAO6S,OAASA,GAChB7S,GAAOpuO,KAAOA,GACdouO,GAAO0V,QAAUA,GACjB1V,GAAO8S,QAAUA,GACjB9S,GAAO+W,UAxiLP,WACE,IAAKvkW,UAAUC,OACb,MAAO,GAGT,IAAI2B,EAAQ5B,UAAU,GACtB,OAAOolB,GAAQxjB,GAASA,EAAQ,CAACA,IAmiLnC4rV,GAAOkS,MAAQA,GACflS,GAAOh0J,MAvxTP,SAAe9jL,EAAOye,EAAMklU,GAExBllU,GADEklU,EAAQC,GAAe5jV,EAAOye,EAAMklU,QA1wOxC14V,IA0wOiDwzB,GACxC,EAEAy/S,GAAU4oB,GAAUroU,GAAO,GAGpC,IAAIl0B,EAAkB,MAATyV,EAAgB,EAAIA,EAAMzV,OAEvC,IAAKA,GAAUk0B,EAAO,EACpB,MAAO,GAOT,IAJA,IAAI5e,EAAQ,EACRo0U,EAAW,EACX1jV,EAASkf,EAAM2nU,GAAW7sV,EAASk0B,IAEhC5e,EAAQtV,GACbgG,EAAO0jV,KAAcoM,GAAUrgV,EAAOH,EAAOA,GAAS4e,GAGxD,OAAOluB,GAmwTTunV,GAAOgX,QAhvTP,SAAiB9uV,GAMf,IALA,IAAIH,GAAS,EACTtV,EAAkB,MAATyV,EAAgB,EAAIA,EAAMzV,OACnC0pV,EAAW,EACX1jV,EAAS,KAEJsP,EAAQtV,GAAQ,CACvB,IAAI2B,EAAQ8T,EAAMH,GAEd3T,IACFqE,EAAO0jV,KAAc/nV,GAIzB,OAAOqE,GAmuTTunV,GAAOtqU,OAzsTP,WACE,IAAIjjB,EAASD,UAAUC,OAEvB,IAAKA,EACH,MAAO,GAOT,IAJA,IAAIiqL,EAAO/kK,EAAMllB,EAAS,GACtByV,EAAQ1V,UAAU,GAClBuV,EAAQtV,EAELsV,KACL20K,EAAK30K,EAAQ,GAAKvV,UAAUuV,GAG9B,OAAO6gT,GAAUhxS,GAAQ1P,GAASw/D,GAAUx/D,GAAS,CAACA,GAAQ+6U,GAAYvmK,EAAM,KA2rTlFsjK,GAAOiX,KApvCP,SAAc/kB,GACZ,IAAIz/U,EAAkB,MAATy/U,EAAgB,EAAIA,EAAMz/U,OACnCq7V,EAAahH,KAQjB,OAPA5U,EAASz/U,EAAc+pV,GAAStK,GAAO,SAAU3C,GAC/C,GAAsB,mBAAXA,EAAK,GACd,MAAM,IAAI97U,GAAUijV,GAGtB,MAAO,CAACoX,EAAWve,EAAK,IAAKA,EAAK,OALlB,GAOXuY,IAAS,SAAUprK,GAGxB,IAFA,IAAI30K,GAAS,IAEJA,EAAQtV,GAAQ,CACvB,IAAI88U,EAAO2C,EAAMnqU,GAEjB,GAAI3V,GAAMm9U,EAAK,GAAIv7U,KAAM0oL,GACvB,OAAOtqL,GAAMm9U,EAAK,GAAIv7U,KAAM0oL,QAouCpCsjK,GAAOkX,SArsCP,SAAkBxkW,GAChB,OA78ZF,SAAsBA,GACpB,IAAIinL,EAAQhoL,GAAKe,GACjB,OAAO,SAAUjB,GACf,OAAOywV,GAAezwV,EAAQiB,EAAQinL,IA08ZjCw9K,CAAaxmB,GAAUj+U,EAz0fZ,KA8giBpBstV,GAAO33T,SAAWA,GAClB23T,GAAOqS,QAAUA,GACjBrS,GAAO7rV,OAvxHP,SAAgBD,EAAW+3D,GACzB,IAAIxzD,EAAS2nV,GAAWlsV,GACxB,OAAqB,MAAd+3D,EAAqBxzD,EAAS24U,GAAW34U,EAAQwzD,IAsxH1D+zR,GAAOoX,MA52MP,SAASA,EAAMxqJ,EAAMxe,EAAOy9J,GAE1B,IAAIpzV,EAAS02V,GAAWviJ,EA3pVN,OAnClBz5M,8BA6rVAi7L,EAAQy9J,OA7rVR14V,EA6rV4Bi7L,GAG5B,OADA31L,EAAOmpI,YAAcw1N,EAAMx1N,YACpBnpI,GAy2MTunV,GAAOqX,WA/zMP,SAASA,EAAWzqJ,EAAMxe,EAAOy9J,GAE/B,IAAIpzV,EAAS02V,GAAWviJ,EAxsVA,QApCxBz5M,8BA2uVAi7L,EAAQy9J,OA3uVR14V,EA2uV4Bi7L,GAG5B,OADA31L,EAAOmpI,YAAcy1N,EAAWz1N,YACzBnpI,GA4zMTunV,GAAOnrD,SAAWA,GAClBmrD,GAAOttC,SAAWA,GAClBstC,GAAOmU,aAAeA,GACtBnU,GAAO9lE,MAAQA,GACf8lE,GAAOrpL,MAAQA,GACfqpL,GAAO8Q,WAAaA,GACpB9Q,GAAO+Q,aAAeA,GACtB/Q,GAAOgR,eAAiBA,GACxBhR,GAAOsX,KA/kTP,SAAcpvV,EAAOmB,EAAGwiV,GACtB,IAAIp5V,EAAkB,MAATyV,EAAgB,EAAIA,EAAMzV,OAEvC,OAAKA,EAKE81V,GAAUrgV,GADjBmB,EAAIwiV,QA1+OJ14V,IA0+OakW,EAAkB,EAAI2lV,GAAU3lV,IACjB,EAAI,EAAIA,EAAG5W,GAJ9B,IA4kTXutV,GAAOuX,UA3iTP,SAAmBrvV,EAAOmB,EAAGwiV,GAC3B,IAAIp5V,EAAkB,MAATyV,EAAgB,EAAIA,EAAMzV,OAEvC,OAAKA,EAME81V,GAAUrgV,EAAO,GADxBmB,EAAI5W,GADJ4W,EAAIwiV,QA/gPJ14V,IA+gPakW,EAAkB,EAAI2lV,GAAU3lV,KAEd,EAAI,EAAIA,GAL9B,IAwiTX22U,GAAOwX,eA5/SP,SAAwBtvV,EAAO6hP,GAC7B,OAAO7hP,GAASA,EAAMzV,OAASq3V,GAAU5hV,EAAO4+U,GAAY/8F,EAAW,IAAI,GAAM,GAAQ,IA4/S3Fi2F,GAAOyX,UAr9SP,SAAmBvvV,EAAO6hP,GACxB,OAAO7hP,GAASA,EAAMzV,OAASq3V,GAAU5hV,EAAO4+U,GAAY/8F,EAAW,IAAI,GAAQ,IAq9SrFi2F,GAAO9gR,KAp7SP,SAAch3D,EAAO9T,EAAO62C,EAAOsR,GACjC,IAAI9pD,EAAkB,MAATyV,EAAgB,EAAIA,EAAMzV,OAEvC,OAAKA,GAIDw4C,GAAyB,iBAATA,GAAqB6gT,GAAe5jV,EAAO9T,EAAO62C,KACpEA,EAAQ,EACRsR,EAAM9pD,GAnjJV,SAAkByV,EAAO9T,EAAO62C,EAAOsR,GACrC,IAAI9pD,EAASyV,EAAMzV,OAenB,KAdAw4C,EAAQ+jT,GAAU/jT,IAEN,IACVA,GAASA,EAAQx4C,EAAS,EAAIA,EAASw4C,IAGzCsR,OAhmGAppD,IAgmGMopD,GAAqBA,EAAM9pD,EAASA,EAASu8V,GAAUzyS,IAEnD,IACRA,GAAO9pD,GAGT8pD,EAAMtR,EAAQsR,EAAM,EAAI0tJ,GAAS1tJ,GAE1BtR,EAAQsR,GACbr0C,EAAM+iC,KAAW72C,EAGnB,OAAO8T,EAkiJAwvV,CAASxvV,EAAO9T,EAAO62C,EAAOsR,IAR5B,IAi7SXyjS,GAAOjuV,OAx6OP,SAAgB+yS,EAAY/6C,GAE1B,OADWnyO,GAAQktR,GAAcjS,GAAcmwD,IACnCl+C,EAAYgiD,GAAY/8F,EAAW,KAu6OjDi2F,GAAO2X,QAn1OP,SAAiB7yD,EAAYrT,GAC3B,OAAOwxD,GAAYxiT,GAAIqkQ,EAAYrT,GAAW,IAm1OhDuuD,GAAO4X,YA3zOP,SAAqB9yD,EAAYrT,GAC/B,OAAOwxD,GAAYxiT,GAAIqkQ,EAAYrT,GAtsTxB,MAigiBbuuD,GAAO6X,aAlyOP,SAAsB/yD,EAAYrT,EAAUl1Q,GAE1C,OADAA,OAzxTAppB,IAyxTQopB,EAAsB,EAAIyyU,GAAUzyU,GACrC0mU,GAAYxiT,GAAIqkQ,EAAYrT,GAAWl1Q,IAiyOhDyjU,GAAO34Q,QAAUA,GACjB24Q,GAAO8X,YA/xSP,SAAqB5vV,GAEnB,OADsB,MAATA,EAAgB,EAAIA,EAAMzV,QACvBwwV,GAAY/6U,EAtuPjB,KAsuPoC,IA8xSjD83U,GAAO+X,aAtwSP,SAAsB7vV,EAAOqU,GAG3B,OAFsB,MAATrU,EAAgB,EAAIA,EAAMzV,QAOhCwwV,GAAY/6U,EADnBqU,OA9zPAppB,IA8zPQopB,EAAsB,EAAIyyU,GAAUzyU,IAHnC,IAmwSXyjU,GAAOrtG,KAvlMP,SAAc/lC,GACZ,OAAOuiJ,GAAWviJ,EA/7VD,MAshiBnBozI,GAAO4V,KAAOA,GACd5V,GAAO6V,UAAYA,GACnB7V,GAAOgY,UA/uSP,SAAmB9lB,GAKjB,IAJA,IAAInqU,GAAS,EACTtV,EAAkB,MAATy/U,EAAgB,EAAIA,EAAMz/U,OACnCgG,EAAS,KAEJsP,EAAQtV,GAAQ,CACvB,IAAI88U,EAAO2C,EAAMnqU,GACjBtP,EAAO82U,EAAK,IAAMA,EAAK,GAGzB,OAAO92U,GAsuSTunV,GAAOiY,UA3/GP,SAAmBxmW,GACjB,OAAiB,MAAVA,EAAiB,GAAK6xV,GAAc7xV,EAAQE,GAAKF,KA2/G1DuuV,GAAOkY,YAh+GP,SAAqBzmW,GACnB,OAAiB,MAAVA,EAAiB,GAAK6xV,GAAc7xV,EAAQswV,GAAOtwV,KAg+G5DuuV,GAAOwS,QAAUA,GACjBxS,GAAOj/E,QAxpSP,SAAiB74P,GAEf,OADsB,MAATA,EAAgB,EAAIA,EAAMzV,QACvB81V,GAAUrgV,EAAO,GAAI,GAAK,IAupS5C83U,GAAOrtS,aAAeA,GACtBqtS,GAAOmR,eAAiBA,GACxBnR,GAAOoR,iBAAmBA,GAC1BpR,GAAOttU,OAASA,GAChBstU,GAAOqU,SAAWA,GAClBrU,GAAOyS,UAAYA,GACnBzS,GAAOvuD,SAAWA,GAClBuuD,GAAO0S,MAAQA,GACf1S,GAAOruV,KAAOA,GACdquV,GAAO+B,OAASA,GAChB/B,GAAOv/S,IAAMA,GACbu/S,GAAOmY,QAruGP,SAAiB1mW,EAAQggS,GACvB,IAAIh5R,EAAS,GAKb,OAJAg5R,EAAWq1D,GAAYr1D,EAAU,GACjCF,GAAW9/R,GAAQ,SAAU2C,EAAOxB,EAAKnB,GACvC0uR,GAAgB1nR,EAAQg5R,EAASr9R,EAAOxB,EAAKnB,GAAS2C,MAEjDqE,GAguGTunV,GAAOoY,UAhsGP,SAAmB3mW,EAAQggS,GACzB,IAAIh5R,EAAS,GAKb,OAJAg5R,EAAWq1D,GAAYr1D,EAAU,GACjCF,GAAW9/R,GAAQ,SAAU2C,EAAOxB,EAAKnB,GACvC0uR,GAAgB1nR,EAAQ7F,EAAK6+R,EAASr9R,EAAOxB,EAAKnB,OAE7CgH,GA2rGTunV,GAAO9hL,QAtiCP,SAAiBxrK,GACf,OAAOgzV,GAAY/U,GAAUj+U,EAvhgBX,KA6jiBpBstV,GAAOqY,gBAjgCP,SAAyBprR,EAAM87O,GAC7B,OAAO08B,GAAoBx4Q,EAAM0jQ,GAAU5nB,EA7jgBzB,KA8jiBpBi3B,GAAO4Q,QAAUA,GACjB5Q,GAAO3pS,MAAQA,GACf2pS,GAAOoU,UAAYA,GACnBpU,GAAOtpV,OAASA,GAChBspV,GAAO8V,SAAWA,GAClB9V,GAAO+V,MAAQA,GACf/V,GAAOv0S,OAASA,GAChBu0S,GAAOsY,OAl0BP,SAAgBjvV,GAEd,OADAA,EAAI2lV,GAAU3lV,GACPy+U,IAAS,SAAUprK,GACxB,OAAOgqK,GAAQhqK,EAAMrzK,OAg0BzB22U,GAAOsU,KAAOA,GACdtU,GAAOuY,OAxjGP,SAAgB9mW,EAAQs4P,GACtB,OAAO0qG,GAAOhjW,EAAQg6C,GAAOq7S,GAAY/8F,MAwjG3Ci2F,GAAO7hF,KA5+LP,SAAcvxD,GACZ,OAAOimJ,GAAO,EAAGjmJ,IA4+LnBozI,GAAOwY,QA5iOP,SAAiB1zD,EAAY8hD,EAAWC,EAAQgF,GAC9C,OAAkB,MAAd/mD,EACK,IAGJltR,GAAQgvU,KACXA,EAAyB,MAAbA,EAAoB,GAAK,CAACA,IAKnChvU,GAFLivU,EAASgF,OA7jUT14V,EA6jU6B0zV,KAG3BA,EAAmB,MAAVA,EAAiB,GAAK,CAACA,IAG3BF,GAAY7hD,EAAY8hD,EAAWC,KA8hO5C7G,GAAOgW,KAAOA,GACdhW,GAAOmT,SAAWA,GAClBnT,GAAOiW,UAAYA,GACnBjW,GAAOkW,SAAWA,GAClBlW,GAAOzrB,QAAUA,GACjByrB,GAAOsT,aAAeA,GACtBtT,GAAO2S,UAAYA,GACnB3S,GAAOpB,KAAOA,GACdoB,GAAOyU,OAASA,GAChBzU,GAAOxrV,SAAWA,GAClBwrV,GAAOyY,WAtsBP,SAAoBhnW,GAClB,OAAO,SAAUw7E,GACf,OAAiB,MAAVx7E,OAv6gBT0B,EAu6gBsCowV,GAAQ9xV,EAAQw7E,KAqsBxD+yQ,GAAOqR,KAAOA,GACdrR,GAAOsR,QAAUA,GACjBtR,GAAO0Y,UA96RP,SAAmBxwV,EAAOnQ,EAAQ05R,GAChC,OAAOvpR,GAASA,EAAMzV,QAAUsF,GAAUA,EAAOtF,OAASg1V,GAAYv/U,EAAOnQ,EAAQ+uV,GAAYr1D,EAAU,IAAMvpR,GA86RnH83U,GAAO2Y,YAn5RP,SAAqBzwV,EAAOnQ,EAAQwkV,GAClC,OAAOr0U,GAASA,EAAMzV,QAAUsF,GAAUA,EAAOtF,OAASg1V,GAAYv/U,EAAOnQ,OA7tQ7E5E,EA6tQgGopV,GAAcr0U,GAm5RhH83U,GAAOuR,OAASA,GAChBvR,GAAOj0U,MAAQA,GACfi0U,GAAOoW,WAAaA,GACpBpW,GAAOuT,MAAQA,GACfvT,GAAOznV,OAx5NP,SAAgBusS,EAAY/6C,GAE1B,OADWnyO,GAAQktR,GAAcjS,GAAcmwD,IACnCl+C,EAAYr5P,GAAOq7S,GAAY/8F,EAAW,MAu5NxDi2F,GAAOvpT,OAv1RP,SAAgBvuB,EAAO6hP,GACrB,IAAItxP,EAAS,GAEb,IAAMyP,IAASA,EAAMzV,OACnB,OAAOgG,EAGT,IAAIsP,GAAS,EACT4/U,EAAU,GACVl1V,EAASyV,EAAMzV,OAGnB,IAFAs3P,EAAY+8F,GAAY/8F,EAAW,KAE1BhiP,EAAQtV,GAAQ,CACvB,IAAI2B,EAAQ8T,EAAMH,GAEdgiP,EAAU31P,EAAO2T,EAAOG,KAC1BzP,EAAOtG,KAAKiC,GACZuzV,EAAQx1V,KAAK4V,IAKjB,OADA2/U,GAAWx/U,EAAOy/U,GACXlvV,GAk0RTunV,GAAO9tH,KAl1LP,SAActlB,EAAM3hK,GAClB,GAAmB,mBAAR2hK,EACT,MAAM,IAAIn5M,GAAUijV,GAItB,OAAOoR,GAASl7I,EADhB3hK,OAzyWA93C,IAyyWQ83C,EAAsBA,EAAQ+jT,GAAU/jT,KA80LlD+0S,GAAOplV,QAAUA,GACjBolV,GAAOlpM,WA92NP,SAAoBguJ,EAAYz7R,EAAGwiV,GAQjC,OANExiV,GADEwiV,EAAQC,GAAehnD,EAAYz7R,EAAGwiV,QA3wU1C14V,IA2wUmDkW,GAC7C,EAEA2lV,GAAU3lV,IAGLuO,GAAQktR,GAAcq8C,GAAkB+G,IACvCpjD,EAAYz7R,IAu2N1B22U,GAAOpsV,IAt8FP,SAAanC,EAAQw7E,EAAM74E,GACzB,OAAiB,MAAV3C,EAAiBA,EAAS+1V,GAAQ/1V,EAAQw7E,EAAM74E,IAs8FzD4rV,GAAO4Y,QA16FP,SAAiBnnW,EAAQw7E,EAAM74E,EAAOgsR,GAEpC,OADAA,EAAkC,mBAAdA,EAA2BA,OAjtc/CjtR,EAktciB,MAAV1B,EAAiBA,EAAS+1V,GAAQ/1V,EAAQw7E,EAAM74E,EAAOgsR,IAy6FhE4/D,GAAO6Y,QAt1NP,SAAiB/zD,GAEf,OADWltR,GAAQktR,GAAcw8C,GAAegH,IACpCxjD,IAq1Ndk7C,GAAO/kV,MAxxRP,SAAeiN,EAAO+iC,EAAOsR,GAC3B,IAAI9pD,EAAkB,MAATyV,EAAgB,EAAIA,EAAMzV,OAEvC,OAAKA,GAID8pD,GAAqB,iBAAPA,GAAmBuvS,GAAe5jV,EAAO+iC,EAAOsR,IAChEtR,EAAQ,EACRsR,EAAM9pD,IAENw4C,EAAiB,MAATA,EAAgB,EAAI+jT,GAAU/jT,GACtCsR,OAh3QFppD,IAg3QQopD,EAAoB9pD,EAASu8V,GAAUzyS,IAGxCgsS,GAAUrgV,EAAO+iC,EAAOsR,IAXtB,IAqxRXyjS,GAAO4S,OAASA,GAChB5S,GAAO8Y,WAjlRP,SAAoB5wV,GAClB,OAAOA,GAASA,EAAMzV,OAAS62V,GAAephV,GAAS,IAilRzD83U,GAAO+Y,aA7jRP,SAAsB7wV,EAAOupR,GAC3B,OAAOvpR,GAASA,EAAMzV,OAAS62V,GAAephV,EAAO4+U,GAAYr1D,EAAU,IAAM,IA6jRnFuuD,GAAOnxQ,MA5iEP,SAAe1qC,EAAQokJ,EAAWywK,GAOhC,OANIA,GAAyB,iBAATA,GAAqBlN,GAAe3nT,EAAQokJ,EAAWywK,KACzEzwK,EAAYywK,OAtled7lW,IAyleA6lW,OAzleA7lW,IAyleQ6lW,EA1heW,WA0he8BA,IAAU,IAM3D70T,EAAS7wC,GAAS6wC,MAEiB,iBAAbokJ,GAAsC,MAAbA,IAAsByhG,GAASzhG,OAC5EA,EAAYihK,GAAajhK,KAEP21J,GAAW/5S,GACpBomT,GAAUhM,GAAcp6S,GAAS,EAAG60T,GAIxC70T,EAAO0qC,MAAM05G,EAAWywK,GAbtB,IAqiEXhZ,GAAOiZ,OAjzLP,SAAgBrsJ,EAAM3hK,GACpB,GAAmB,mBAAR2hK,EACT,MAAM,IAAIn5M,GAAUijV,GAItB,OADAzrS,EAAiB,MAATA,EAAgB,EAAIm7R,GAAU4oB,GAAU/jT,GAAQ,GACjD68S,IAAS,SAAUprK,GACxB,IAAIx0K,EAAQw0K,EAAKzxI,GACbilT,EAAY3F,GAAU7tK,EAAM,EAAGzxI,GAMnC,OAJI/iC,GACF0gT,GAAUsnC,EAAWhoV,GAGhB9V,GAAMw6M,EAAM54M,KAAMk8V,OAoyL7BlQ,GAAOpiN,KA7iRP,SAAc11H,GACZ,IAAIzV,EAAkB,MAATyV,EAAgB,EAAIA,EAAMzV,OACvC,OAAOA,EAAS81V,GAAUrgV,EAAO,EAAGzV,GAAU,IA4iRhDutV,GAAOkZ,KA/gRP,SAAchxV,EAAOmB,EAAGwiV,GACtB,OAAM3jV,GAASA,EAAMzV,OAKd81V,GAAUrgV,EAAO,GADxBmB,EAAIwiV,QAznRJ14V,IAynRakW,EAAkB,EAAI2lV,GAAU3lV,IACd,EAAI,EAAIA,GAJ9B,IA8gRX22U,GAAOmZ,UA7+QP,SAAmBjxV,EAAOmB,EAAGwiV,GAC3B,IAAIp5V,EAAkB,MAATyV,EAAgB,EAAIA,EAAMzV,OAEvC,OAAKA,EAME81V,GAAUrgV,GADjBmB,EAAI5W,GADJ4W,EAAIwiV,QA9pRJ14V,IA8pRakW,EAAkB,EAAI2lV,GAAU3lV,KAEjB,EAAI,EAAIA,EAAG5W,GAL9B,IA0+QXutV,GAAOoZ,eA97QP,SAAwBlxV,EAAO6hP,GAC7B,OAAO7hP,GAASA,EAAMzV,OAASq3V,GAAU5hV,EAAO4+U,GAAY/8F,EAAW,IAAI,GAAO,GAAQ,IA87Q5Fi2F,GAAOqZ,UAv5QP,SAAmBnxV,EAAO6hP,GACxB,OAAO7hP,GAASA,EAAMzV,OAASq3V,GAAU5hV,EAAO4+U,GAAY/8F,EAAW,IAAM,IAu5Q/Ei2F,GAAOsZ,IA96PP,SAAallW,EAAO+9V,GAElB,OADAA,EAAY/9V,GACLA,GA66PT4rV,GAAOjlC,SAzvLP,SAAkBnuG,EAAM45H,EAAMnqT,GAC5B,IAAImyS,GAAU,EACVC,GAAW,EAEf,GAAmB,mBAAR7hH,EACT,MAAM,IAAIn5M,GAAUijV,GAQtB,OALIz2J,GAAS5jK,KACXmyS,EAAU,YAAanyS,IAAYA,EAAQmyS,QAAUA,EACrDC,EAAW,aAAcpyS,IAAYA,EAAQoyS,SAAWA,GAGnD55B,GAASjoF,EAAM45H,EAAM,CAC1B,QAAWhY,EACX,QAAWgY,EACX,SAAY/X,KA0uLhBuxB,GAAO0M,KAAOA,GACd1M,GAAO79T,QAAUA,GACjB69T,GAAO0U,QAAUA,GACjB1U,GAAO2U,UAAYA,GACnB3U,GAAOuZ,OAnfP,SAAgBnlW,GACd,OAAIwjB,GAAQxjB,GACHooV,GAASpoV,EAAO60T,IAGlBl3D,GAAS39P,GAAS,CAACA,GAASszE,GAAU+kN,GAAan5R,GAASc,MA+erE4rV,GAAOwG,cAAgBA,GACvBxG,GAAOh6O,UAv2FP,SAAmBv0G,EAAQggS,EAAUi+C,GACnC,IAAI5oB,EAAQlvS,GAAQnmB,GAChB+nW,EAAY1yC,GAAS3sF,GAAS1oO,IAAWqhJ,GAAarhJ,GAG1D,GAFAggS,EAAWq1D,GAAYr1D,EAAU,GAEd,MAAfi+C,EAAqB,CACvB,IAAIzvD,EAAOxuR,GAAUA,EAAOwC,YAG1By7U,EADE8pB,EACY1yC,EAAQ,IAAI7mC,EAAS,GAC1BhgG,GAASxuL,IACJ4vL,GAAW4+F,GAAQmgE,GAAWruD,GAAatgS,IAE3C,GAOlB,OAHC+nW,EAAYznB,GAAYxgD,IAAY9/R,GAAQ,SAAU2C,EAAO2T,EAAOtW,GACnE,OAAOggS,EAASi+C,EAAat7U,EAAO2T,EAAOtW,MAEtCi+U,GAo1FTsQ,GAAOyZ,MA7tLP,SAAe7sJ,GACb,OAAOugJ,GAAIvgJ,EAAM,IA6tLnBozI,GAAOr4T,MAAQA,GACfq4T,GAAOwR,QAAUA,GACjBxR,GAAOyR,UAAYA,GACnBzR,GAAO0Z,KA9zQP,SAAcxxV,GACZ,OAAOA,GAASA,EAAMzV,OAASg3V,GAASvhV,GAAS,IA8zQnD83U,GAAO2Z,OAnyQP,SAAgBzxV,EAAOupR,GACrB,OAAOvpR,GAASA,EAAMzV,OAASg3V,GAASvhV,EAAO4+U,GAAYr1D,EAAU,IAAM,IAmyQ7EuuD,GAAO4Z,SA3wQP,SAAkB1xV,EAAOq0U,GAEvB,OADAA,EAAkC,mBAAdA,EAA2BA,OA54R/CppV,EA64RO+U,GAASA,EAAMzV,OAASg3V,GAASvhV,OA74RxC/U,EA64R0DopV,GAAc,IA0wQ1EyD,GAAO6Z,MA5zFP,SAAepoW,EAAQw7E,GACrB,OAAiB,MAAVx7E,GAAwBm2V,GAAUn2V,EAAQw7E,IA4zFnD+yQ,GAAO0R,MAAQA,GACf1R,GAAO2R,UAAYA,GACnB3R,GAAOvgU,OA/xFP,SAAgBhuB,EAAQw7E,EAAM48Q,GAC5B,OAAiB,MAAVp4V,EAAiBA,EAASm4V,GAAWn4V,EAAQw7E,EAAMukN,GAAaq4D,KA+xFzE7J,GAAO8Z,WAnwFP,SAAoBroW,EAAQw7E,EAAM48Q,EAASzpE,GAEzC,OADAA,EAAkC,mBAAdA,EAA2BA,OAz5c/CjtR,EA05ciB,MAAV1B,EAAiBA,EAASm4V,GAAWn4V,EAAQw7E,EAAMukN,GAAaq4D,GAAUzpE,IAkwFnF4/D,GAAOjoV,OAASA,GAChBioV,GAAO+Z,SAxsFP,SAAkBtoW,GAChB,OAAiB,MAAVA,EAAiB,GAAKgsV,GAAWhsV,EAAQswV,GAAOtwV,KAwsFzDuuV,GAAO4R,QAAUA,GACjB5R,GAAOlS,MAAQA,GACfkS,GAAOlqV,KAltLP,SAAc1B,EAAOy9O,GACnB,OAAO0iF,GAAQ/iC,GAAa3/C,GAAUz9O,IAktLxC4rV,GAAO6R,IAAMA,GACb7R,GAAO8R,MAAQA,GACf9R,GAAO+R,QAAUA,GACjB/R,GAAOgS,IAAMA,GACbhS,GAAOga,UA7jQP,SAAmBrgL,EAAO5hL,GACxB,OAAOmyV,GAAcvwK,GAAS,GAAI5hL,GAAU,GAAImjO,KA6jQlD8kH,GAAOia,cA1iQP,SAAuBtgL,EAAO5hL,GAC5B,OAAOmyV,GAAcvwK,GAAS,GAAI5hL,GAAU,GAAIyvV,KA0iQlDxH,GAAOiS,QAAUA,GAEjBjS,GAAOh3G,QAAU0rH,GACjB1U,GAAOka,UAAYvF,GACnB3U,GAAO5kH,OAAS04H,GAChB9T,GAAOma,WAAapG,GAEpBgC,GAAM/V,GAAQA,IAIdA,GAAOn5T,IAAMA,GACbm5T,GAAOyV,QAAUA,GACjBzV,GAAO4U,UAAYA,GACnB5U,GAAO8U,WAAaA,GACpB9U,GAAOl2U,KAAOA,GACdk2U,GAAO/2U,MAxsFP,SAAeumP,EAAQmyF,EAAOC,GAgB5B,YA//cAzuV,IAg/cIyuV,IACFA,EAAQD,EACRA,OAl/cFxuV,YAq/cIyuV,IAEFA,GADAA,EAAQtb,GAASsb,MACCA,EAAQA,EAAQ,QAv/cpCzuV,IA0/cIwuV,IAEFA,GADAA,EAAQrb,GAASqb,MACCA,EAAQA,EAAQ,GAG7BN,GAAU/a,GAAS92E,GAASmyF,EAAOC,IAyrF5C5B,GAAO/iU,MA9pLP,SAAe7oB,GACb,OAAOu8U,GAAUv8U,EAlgXI,IAgqiBvB4rV,GAAOoa,UAnmLP,SAAmBhmW,GACjB,OAAOu8U,GAAUv8U,EAAOmgW,IAmmL1BvU,GAAOqa,cAnkLP,SAAuBjmW,EAAOgsR,GAE5B,OAAOuwD,GAAUv8U,EAAOmgW,EADxBn0E,EAAkC,mBAAdA,EAA2BA,OAxnX/CjtR,IA2riBF6sV,GAAOsa,UA7nLP,SAAmBlmW,EAAOgsR,GAExB,OAAOuwD,GAAUv8U,EAviXI,EAsiXrBgsR,EAAkC,mBAAdA,EAA2BA,OA/jX/CjtR,IA4riBF6sV,GAAOua,WAviLP,SAAoB9oW,EAAQiB,GAC1B,OAAiB,MAAVA,GAAkBwvV,GAAezwV,EAAQiB,EAAQf,GAAKe,KAuiL/DstV,GAAOiM,OAASA,GAChBjM,GAAOwa,UA5yCP,SAAmBpmW,EAAOinP,GACxB,OAAgB,MAATjnP,GAAiBA,IAAUA,EAAQinP,EAAejnP,GA4yC3D4rV,GAAOuW,OAASA,GAChBvW,GAAOrrB,SA/9EP,SAAkBxwR,EAAQ7xC,EAAQw1B,GAChCqc,EAAS7wC,GAAS6wC,GAClB7xC,EAASk3V,GAAal3V,GACtB,IAAIG,EAAS0xC,EAAO1xC,OAEhB8pD,EADJz0B,OArudA30B,IAqudW20B,EAAyBr1B,EAAS4uV,GAAU2N,GAAUlnU,GAAW,EAAGr1B,GAG/E,OADAq1B,GAAYx1B,EAAOG,SACA,GAAK0xC,EAAOlpC,MAAM6sB,EAAUy0B,IAAQjqD,GAy9EzD0tV,GAAO5gE,GAAKA,GACZ4gE,GAAO10L,OA17EP,SAAgBnnH,GAEd,OADAA,EAAS7wC,GAAS6wC,KACDo0S,EAAmBviU,KAAKmuB,GAAUA,EAAO2rC,QAAQuoQ,EAAiB2F,IAAkB75S,GAy7EvG67S,GAAOya,aAt6EP,SAAsBt2T,GAEpB,OADAA,EAAS7wC,GAAS6wC,KACDy0S,EAAgB5iU,KAAKmuB,GAAUA,EAAO2rC,QAAQ6oQ,EAAc,QAAUx0S,GAq6EzF67S,GAAO7sI,MAzmPP,SAAe2xF,EAAY/6C,EAAW8hG,GACpC,IAAIj/I,EAAOh1L,GAAQktR,GAAco3C,GAAa4G,GAM9C,OAJI+I,GAASC,GAAehnD,EAAY/6C,EAAW8hG,KACjD9hG,OA/lTF52P,GAkmTOy5M,EAAKk4F,EAAYgiD,GAAY/8F,EAAW,KAmmPjDi2F,GAAO3qM,KAAOA,GACd2qM,GAAO5sI,UAAYA,GACnB4sI,GAAO0a,QAp0HP,SAAiBjpW,EAAQs4P,GACvB,OAAO6yF,GAAYnrV,EAAQq1V,GAAY/8F,EAAW,GAAIwnC,KAo0HxDyuD,GAAOsS,SAAWA,GAClBtS,GAAOiR,cAAgBA,GACvBjR,GAAO2a,YA/xHP,SAAqBlpW,EAAQs4P,GAC3B,OAAO6yF,GAAYnrV,EAAQq1V,GAAY/8F,EAAW,GAAI84F,KA+xHxD7C,GAAO91U,MAAQA,GACf81U,GAAOrtV,QAAUA,GACjBqtV,GAAOuS,aAAeA,GACtBvS,GAAO4a,MAlwHP,SAAenpW,EAAQggS,GACrB,OAAiB,MAAVhgS,EAAiBA,EAASg1T,GAAQh1T,EAAQq1V,GAAYr1D,EAAU,GAAIswD,KAkwH7E/B,GAAO6a,WApuHP,SAAoBppW,EAAQggS,GAC1B,OAAiB,MAAVhgS,EAAiBA,EAAS4xV,GAAa5xV,EAAQq1V,GAAYr1D,EAAU,GAAIswD,KAouHlF/B,GAAO8a,OApsHP,SAAgBrpW,EAAQggS,GACtB,OAAOhgS,GAAU8/R,GAAW9/R,EAAQq1V,GAAYr1D,EAAU,KAosH5DuuD,GAAO+a,YAtqHP,SAAqBtpW,EAAQggS,GAC3B,OAAOhgS,GAAUoxV,GAAgBpxV,EAAQq1V,GAAYr1D,EAAU,KAsqHjEuuD,GAAOrsV,IAAMA,GACbqsV,GAAOwT,GAAKA,GACZxT,GAAOyT,IAAMA,GACbzT,GAAOtsV,IAnjHP,SAAajC,EAAQw7E,GACnB,OAAiB,MAAVx7E,GAAkBs+V,GAAQt+V,EAAQw7E,EAAMy2Q,KAmjHjD1D,GAAOkG,MAAQA,GACflG,GAAOt2J,KAAOA,GACds2J,GAAOl8P,SAAWA,GAClBk8P,GAAOnkF,SAh0OP,SAAkBipC,EAAY1wS,EAAOwnQ,EAAWiwF,GAC9C/mD,EAAa3kC,GAAY2kC,GAAcA,EAAa/sS,GAAO+sS,GAC3DlpC,EAAYA,IAAciwF,EAAQmD,GAAUpzF,GAAa,EACzD,IAAInpQ,EAASqyS,EAAWryS,OAMxB,OAJImpQ,EAAY,IACdA,EAAYwqE,GAAU3zU,EAASmpQ,EAAW,IAGrCrhC,GAASuqE,GAAclpC,GAAanpQ,GAAUqyS,EAAWtxS,QAAQY,EAAOwnQ,IAAc,IAAMnpQ,GAAU4pV,GAAYv3C,EAAY1wS,EAAOwnQ,IAAc,GAwzO5JokF,GAAOxsV,QA50SP,SAAiB0U,EAAO9T,EAAOwnQ,GAC7B,IAAInpQ,EAAkB,MAATyV,EAAgB,EAAIA,EAAMzV,OAEvC,IAAKA,EACH,OAAQ,EAGV,IAAIsV,EAAqB,MAAb6zP,EAAoB,EAAIozF,GAAUpzF,GAM9C,OAJI7zP,EAAQ,IACVA,EAAQq+T,GAAU3zU,EAASsV,EAAO,IAG7Bs0U,GAAYn0U,EAAO9T,EAAO2T,IAg0SnCi4U,GAAOgb,QAlrFP,SAAiBxrG,EAAQvkN,EAAOsR,GAW9B,OAVAtR,EAAQsjT,GAAStjT,QA1idjB93C,IA4idIopD,GACFA,EAAMtR,EACNA,EAAQ,GAERsR,EAAMgyS,GAAShyS,GA/tWnB,SAAqBizM,EAAQvkN,EAAOsR,GAClC,OAAOizM,GAAU62E,GAAUp7R,EAAOsR,IAAQizM,EAAS42E,GAAUn7R,EAAOsR,GAkuW7D0+S,CADPzrG,EAAS82E,GAAS92E,GACSvkN,EAAOsR,IAwqFpCyjS,GAAOxnV,OAASA,GAChBwnV,GAAOr5B,YAAcA,GACrBq5B,GAAOpoU,QAAUA,GACjBooU,GAAO9lH,cAAgBA,GACvB8lH,GAAO7/E,YAAcA,GACrB6/E,GAAOvP,kBAAoBA,GAC3BuP,GAAOkb,UA91KP,SAAmB9mW,GACjB,OAAiB,IAAVA,IAA4B,IAAVA,GAAmB++R,GAAa/+R,IAAUqrR,GAAWrrR,IAAU0iV,GA81K1FkJ,GAAO7lH,SAAWA,GAClB6lH,GAAOvlH,OAASA,GAChBulH,GAAOz6G,UAryKP,SAAmBnxO,GACjB,OAAO++R,GAAa/+R,IAA6B,IAAnBA,EAAM2lQ,WAAmB74E,GAAc9sL,IAqyKvE4rV,GAAO/4T,QAhwKP,SAAiB7yB,GACf,GAAa,MAATA,EACF,OAAO,EAGT,GAAI+rQ,GAAY/rQ,KAAWwjB,GAAQxjB,IAA0B,iBAATA,GAA4C,mBAAhBA,EAAM4T,QAAwBmyN,GAAS/lO,IAAU0+I,GAAa1+I,IAAUuyT,GAAYvyT,IAClK,OAAQA,EAAM3B,OAGhB,IAAIkyL,EAAMq7F,GAAO5rR,GAEjB,GAAIuwL,GAAOqqJ,GAAUrqJ,GAAOsqJ,EAC1B,OAAQ76U,EAAMuyB,KAGhB,GAAIqqT,GAAY58U,GACd,OAAQ8rQ,GAAS9rQ,GAAO3B,OAG1B,IAAK,IAAIG,KAAOwB,EACd,GAAIQ,GAAerB,KAAKa,EAAOxB,GAC7B,OAAO,EAIX,OAAO,GAwuKTotV,GAAO18C,QAxsKP,SAAiBlvS,EAAO+2K,GACtB,OAAOu8I,GAAYtzT,EAAO+2K,IAwsK5B60K,GAAOmb,YApqKP,SAAqB/mW,EAAO+2K,EAAOi1G,GAEjC,IAAI3nR,GADJ2nR,EAAkC,mBAAdA,EAA2BA,OArkY/CjtR,GAskY0BitR,EAAWhsR,EAAO+2K,QAtkY5Ch4K,EAukYA,YAvkYAA,IAukYOsF,EAAuBivT,GAAYtzT,EAAO+2K,OAvkYjDh4K,EAukYmEitR,KAAgB3nR,GAkqKrFunV,GAAO0T,QAAUA,GACjB1T,GAAO5xS,SAzmKP,SAAkBh6C,GAChB,MAAuB,iBAATA,GAAqBorV,GAAeprV,IAymKpD4rV,GAAO3+J,WAAaA,GACpB2+J,GAAOhwL,UAAYA,GACnBgwL,GAAOnhE,SAAWA,GAClBmhE,GAAOpE,MAAQA,GACfoE,GAAOob,QAn6JP,SAAiB3pW,EAAQiB,GACvB,OAAOjB,IAAWiB,GAAU0yV,GAAY3zV,EAAQiB,EAAQqzV,GAAarzV,KAm6JvEstV,GAAOqb,YA/3JP,SAAqB5pW,EAAQiB,EAAQ0tR,GAEnC,OADAA,EAAkC,mBAAdA,EAA2BA,OAl3Y/CjtR,EAm3YOiyV,GAAY3zV,EAAQiB,EAAQqzV,GAAarzV,GAAS0tR,IA83J3D4/D,GAAOhmV,MA91JP,SAAe5F,GAIb,OAAOomO,GAASpmO,IAAUA,IAAUA,GA21JtC4rV,GAAOsb,SA7zJP,SAAkBlnW,GAChB,GAAI67V,GAAW77V,GACb,MAAM,IAAIwC,EA96YM,mEAi7YlB,OAAO+iQ,GAAavlQ,IAyzJtB4rV,GAAOub,MA3wJP,SAAennW,GACb,OAAgB,MAATA,GA2wJT4rV,GAAOwb,OAryJP,SAAgBpnW,GACd,OAAiB,OAAVA,GAqyJT4rV,GAAOxlH,SAAWA,GAClBwlH,GAAO//J,SAAWA,GAClB+/J,GAAO7sD,aAAeA,GACtB6sD,GAAO9+J,cAAgBA,GACvB8+J,GAAOh2D,SAAWA,GAClBg2D,GAAOyb,cAppJP,SAAuBrnW,GACrB,OAAO47J,GAAU57J,IAAUA,IA7iZR,kBA6iZsCA,GA7iZtC,kBAisiBrB4rV,GAAOjE,MAAQA,GACfiE,GAAOzlH,SAAWA,GAClBylH,GAAOjuF,SAAWA,GAClBiuF,GAAOltM,aAAeA,GACtBktM,GAAO/lH,YAjjJP,SAAqB7lO,GACnB,YA/sZAjB,IA+sZOiB,GAijJT4rV,GAAO0b,UA5hJP,SAAmBtnW,GACjB,OAAO++R,GAAa/+R,IAAU4rR,GAAO5rR,IAAUkjV,GA4hJjD0I,GAAO2b,UAvgJP,SAAmBvnW,GACjB,OAAO++R,GAAa/+R,IA/pZP,oBA+pZiBqrR,GAAWrrR,IAugJ3C4rV,GAAOhxQ,KAruSP,SAAc9mE,EAAOqgL,GACnB,OAAgB,MAATrgL,EAAgB,GAAKu3U,GAAWlsV,KAAK2U,EAAOqgL,IAquSrDy3J,GAAOgV,UAAYA,GACnBhV,GAAOt0N,KAAOA,GACds0N,GAAOz0L,YA1rSP,SAAqBrjJ,EAAO9T,EAAOwnQ,GACjC,IAAInpQ,EAAkB,MAATyV,EAAgB,EAAIA,EAAMzV,OAEvC,IAAKA,EACH,OAAQ,EAGV,IAAIsV,EAAQtV,EAOZ,YAzlQAU,IAolQIyoQ,IAEF7zP,GADAA,EAAQinV,GAAUpzF,IACF,EAAIwqE,GAAU3zU,EAASsV,EAAO,GAAKs+T,GAAUt+T,EAAOtV,EAAS,IAGxE2B,IAAUA,EAzpNrB,SAA2B8T,EAAO9T,EAAOwnQ,GAGvC,IAFA,IAAI7zP,EAAQ6zP,EAAY,EAEjB7zP,KACL,GAAIG,EAAMH,KAAW3T,EACnB,OAAO2T,EAIX,OAAOA,EAgpNoB6zV,CAAkB1zV,EAAO9T,EAAO2T,GAAS+0U,GAAc50U,EAAO+0U,GAAWl1U,GAAO,IA6qS3Gi4U,GAAOiV,UAAYA,GACnBjV,GAAOkV,WAAaA,GACpBlV,GAAO1oI,GAAKA,GACZ0oI,GAAO2T,IAAMA,GACb3T,GAAO72U,IAxeP,SAAajB,GACX,OAAOA,GAASA,EAAMzV,OAASswV,GAAa76U,EAAO47E,GAAU2/P,SAnyhB7DtwV,GA2wiBF6sV,GAAO6b,MA7cP,SAAe3zV,EAAOupR,GACpB,OAAOvpR,GAASA,EAAMzV,OAASswV,GAAa76U,EAAO4+U,GAAYr1D,EAAU,GAAIgyD,SA/zhB7EtwV,GA4wiBF6sV,GAAO8b,KA3bP,SAAc5zV,GACZ,OAAOi1U,GAASj1U,EAAO47E,KA2bzBk8P,GAAO+b,OAhaP,SAAgB7zV,EAAOupR,GACrB,OAAO0rD,GAASj1U,EAAO4+U,GAAYr1D,EAAU,KAga/CuuD,GAAO92U,IA1YP,SAAahB,GACX,OAAOA,GAASA,EAAMzV,OAASswV,GAAa76U,EAAO47E,GAAU+hQ,SAr4hB7D1yV,GA+wiBF6sV,GAAOgc,MA/WP,SAAe9zV,EAAOupR,GACpB,OAAOvpR,GAASA,EAAMzV,OAASswV,GAAa76U,EAAO4+U,GAAYr1D,EAAU,GAAIo0D,SAj6hB7E1yV,GAgxiBF6sV,GAAOltD,UAAYA,GACnBktD,GAAOtuD,UAAYA,GACnBsuD,GAAOic,WA1tBP,WACE,MAAO,IA0tBTjc,GAAOkc,WAzsBP,WACE,MAAO,IAysBTlc,GAAOmc,SAxrBP,WACE,OAAO,GAwrBTnc,GAAOhqT,SAAWA,GAClBgqT,GAAOoc,IApqSP,SAAal0V,EAAOmB,GAClB,OAAOnB,GAASA,EAAMzV,OAASi0V,GAAQx+U,EAAO8mV,GAAU3lV,SAnnQxDlW,GAuxiBF6sV,GAAOqc,WA1iCP,WAKE,OAJIr+L,GAAK2lB,IAAM3vL,OACbgqK,GAAK2lB,EAAIq7J,IAGJhrV,MAsiCTgsV,GAAOvjF,KAAOA,GACdujF,GAAO9sL,IAAMA,GACb8sL,GAAOsc,IA55EP,SAAan4T,EAAQ1xC,EAAQ47V,GAC3BlqT,EAAS7wC,GAAS6wC,GAElB,IAAIo4T,GADJ9pW,EAASu8V,GAAUv8V,IACM4rV,GAAWl6S,GAAU,EAE9C,IAAK1xC,GAAU8pW,GAAa9pW,EAC1B,OAAO0xC,EAGT,IAAIwzG,GAAOllJ,EAAS8pW,GAAa,EACjC,OAAOnO,GAAc7O,GAAY5nM,GAAM02M,GAASlqT,EAASiqT,GAAc9O,GAAW3nM,GAAM02M,IAm5E1FrO,GAAOwc,OAx3EP,SAAgBr4T,EAAQ1xC,EAAQ47V,GAC9BlqT,EAAS7wC,GAAS6wC,GAElB,IAAIo4T,GADJ9pW,EAASu8V,GAAUv8V,IACM4rV,GAAWl6S,GAAU,EAC9C,OAAO1xC,GAAU8pW,EAAY9pW,EAAS0xC,EAASiqT,GAAc37V,EAAS8pW,EAAWlO,GAASlqT,GAq3E5F67S,GAAOyc,SA11EP,SAAkBt4T,EAAQ1xC,EAAQ47V,GAChClqT,EAAS7wC,GAAS6wC,GAElB,IAAIo4T,GADJ9pW,EAASu8V,GAAUv8V,IACM4rV,GAAWl6S,GAAU,EAC9C,OAAO1xC,GAAU8pW,EAAY9pW,EAAS27V,GAAc37V,EAAS8pW,EAAWlO,GAASlqT,EAASA,GAu1E5F67S,GAAOz7S,SA3zEP,SAAkBJ,EAAQ2oQ,EAAO++C,GAO/B,OANIA,GAAkB,MAAT/+C,EACXA,EAAQ,EACCA,IACTA,GAASA,GAGJ6yC,GAAersV,GAAS6wC,GAAQ2rC,QAAQ+oQ,EAAa,IAAK/rC,GAAS,IAqzE5EkzC,GAAOp3U,OAvsFP,SAAgB+4U,EAAOC,EAAO8a,GA6B5B,GA5BIA,GAA+B,kBAAZA,GAAyB5Q,GAAenK,EAAOC,EAAO8a,KAC3E9a,EAAQ8a,OAzldVvpW,YA4ldIupW,IACkB,kBAAT9a,GACT8a,EAAW9a,EACXA,OA/ldJzuV,GAgmd6B,kBAATwuV,IAChB+a,EAAW/a,EACXA,OAlmdJxuV,aAsmdIwuV,QAtmdJxuV,IAsmd2ByuV,GACzBD,EAAQ,EACRC,EAAQ,IAERD,EAAQ4M,GAAS5M,QA1mdnBxuV,IA4mdMyuV,GACFA,EAAQD,EACRA,EAAQ,GAERC,EAAQ2M,GAAS3M,IAIjBD,EAAQC,EAAO,CACjB,IAAIrpI,EAAOopI,EACXA,EAAQC,EACRA,EAAQrpI,EAGV,GAAImkJ,GAAY/a,EAAQ,GAAKC,EAAQ,EAAG,CACtC,IAAI+O,EAAO/Q,KACX,OAAOvZ,GAAUsb,EAAQgP,GAAQ/O,EAAQD,EAAQnG,GAAe,QAAUmV,EAAO,IAAIl+V,OAAS,KAAMmvV,GAGtG,OAAOV,GAAWS,EAAOC,IAgqF3B5B,GAAO3hK,OAzoOP,SAAgBymH,EAAYrT,EAAUi+C,GACpC,IAAI9iI,EAAOh1L,GAAQktR,GAAc2qC,GAAc6N,GAC3C3N,EAAYn9U,UAAUC,OAAS,EACnC,OAAOm6M,EAAKk4F,EAAYgiD,GAAYr1D,EAAU,GAAIi+C,EAAaC,EAAW8R,KAuoO5EzB,GAAO2c,YA7mOP,SAAqB73D,EAAYrT,EAAUi+C,GACzC,IAAI9iI,EAAOh1L,GAAQktR,GAAc23C,GAAmBa,GAChD3N,EAAYn9U,UAAUC,OAAS,EACnC,OAAOm6M,EAAKk4F,EAAYgiD,GAAYr1D,EAAU,GAAIi+C,EAAaC,EAAWiT,KA2mO5E5C,GAAO5mU,OA9xEP,SAAgB+qB,EAAQ96B,EAAGwiV,GAOzB,OALExiV,GADEwiV,EAAQC,GAAe3nT,EAAQ96B,EAAGwiV,QApgetC14V,IAoge+CkW,GACzC,EAEA2lV,GAAU3lV,GAGTw+U,GAAWv0V,GAAS6wC,GAAS96B,IAwxEtC22U,GAAOlwQ,QAjwEP,WACE,IAAI4sG,EAAOlqL,UACP2xC,EAAS7wC,GAASopL,EAAK,IAC3B,OAAOA,EAAKjqL,OAAS,EAAI0xC,EAASA,EAAO2rC,QAAQ4sG,EAAK,GAAIA,EAAK,KA+vEjEsjK,GAAOvnV,OArqGP,SAAgBhH,EAAQw7E,EAAMouK,GAE5B,IAAItzO,GAAS,EACTtV,GAFJw6E,EAAO+7O,GAAS/7O,EAAMx7E,IAEJgB,OAOlB,IALKA,IACHA,EAAS,EACThB,OArocF0B,KAwocS4U,EAAQtV,GAAQ,CACvB,IAAI2B,EAAkB,MAAV3C,OAzocd0B,EAyoc2C1B,EAAOw3T,GAAMh8O,EAAKllE,UAzoc7D5U,IA2ocMiB,IACF2T,EAAQtV,EACR2B,EAAQinP,GAGV5pP,EAAS4vL,GAAWjtL,GAASA,EAAMb,KAAK9B,GAAU2C,EAGpD,OAAO3C,GAipGTuuV,GAAOt1U,MAAQA,GACfs1U,GAAOrB,aAAeA,EACtBqB,GAAO4c,OAtjOP,SAAgB93D,GAEd,OADWltR,GAAQktR,GAAcm8C,GAAcgH,IACnCnjD,IAqjOdk7C,GAAOr5T,KAv+NP,SAAcm+Q,GACZ,GAAkB,MAAdA,EACF,OAAO,EAGT,GAAI3kC,GAAY2kC,GACd,OAAOvqE,GAASuqE,GAAcu5C,GAAWv5C,GAAcA,EAAWryS,OAGpE,IAAIkyL,EAAMq7F,GAAO8kB,GAEjB,OAAIngH,GAAOqqJ,GAAUrqJ,GAAOsqJ,EACnBnqC,EAAWn+Q,KAGbu5O,GAAS4kC,GAAYryS,QAy9N9ButV,GAAOmV,UAAYA,GACnBnV,GAAOpzJ,KAl7NP,SAAck4G,EAAY/6C,EAAW8hG,GACnC,IAAIj/I,EAAOh1L,GAAQktR,GAAcgjB,GAAY0gC,GAM7C,OAJIqD,GAASC,GAAehnD,EAAY/6C,EAAW8hG,KACjD9hG,OA33UF52P,GA83UOy5M,EAAKk4F,EAAYgiD,GAAY/8F,EAAW,KA46NjDi2F,GAAO6c,YAl6RP,SAAqB30V,EAAO9T,GAC1B,OAAOq0V,GAAgBvgV,EAAO9T,IAk6RhC4rV,GAAO8c,cAr4RP,SAAuB50V,EAAO9T,EAAOq9R,GACnC,OAAOm3D,GAAkB1gV,EAAO9T,EAAO0yV,GAAYr1D,EAAU,KAq4R/DuuD,GAAO+c,cAj3RP,SAAuB70V,EAAO9T,GAC5B,IAAI3B,EAAkB,MAATyV,EAAgB,EAAIA,EAAMzV,OAEvC,GAAIA,EAAQ,CACV,IAAIsV,EAAQ0gV,GAAgBvgV,EAAO9T,GAEnC,GAAI2T,EAAQtV,GAAU2sR,GAAGl3Q,EAAMH,GAAQ3T,GACrC,OAAO2T,EAIX,OAAQ,GAu2RVi4U,GAAOgd,gBAj1RP,SAAyB90V,EAAO9T,GAC9B,OAAOq0V,GAAgBvgV,EAAO9T,GAAO,IAi1RvC4rV,GAAOid,kBApzRP,SAA2B/0V,EAAO9T,EAAOq9R,GACvC,OAAOm3D,GAAkB1gV,EAAO9T,EAAO0yV,GAAYr1D,EAAU,IAAI,IAozRnEuuD,GAAOkd,kBAhyRP,SAA2Bh1V,EAAO9T,GAGhC,GAFsB,MAAT8T,EAAgB,EAAIA,EAAMzV,OAE3B,CACV,IAAIsV,EAAQ0gV,GAAgBvgV,EAAO9T,GAAO,GAAQ,EAElD,GAAIgrR,GAAGl3Q,EAAMH,GAAQ3T,GACnB,OAAO2T,EAIX,OAAQ,GAsxRVi4U,GAAOoV,UAAYA,GACnBpV,GAAO1sB,WAppEP,SAAoBnvR,EAAQ7xC,EAAQw1B,GAIlC,OAHAqc,EAAS7wC,GAAS6wC,GAClBrc,EAAuB,MAAZA,EAAmB,EAAIu5T,GAAU2N,GAAUlnU,GAAW,EAAGqc,EAAO1xC,QAC3EH,EAASk3V,GAAal3V,GACf6xC,EAAOlpC,MAAM6sB,EAAUA,EAAWx1B,EAAOG,SAAWH,GAipE7D0tV,GAAO/oD,SAAWA,GAClB+oD,GAAOl/Q,IAnUP,SAAa54D,GACX,OAAOA,GAASA,EAAMzV,OAAS2qV,GAAQl1U,EAAO47E,IAAY,GAmU5Dk8P,GAAOmd,MAxSP,SAAej1V,EAAOupR,GACpB,OAAOvpR,GAASA,EAAMzV,OAAS2qV,GAAQl1U,EAAO4+U,GAAYr1D,EAAU,IAAM,GAwS5EuuD,GAAOod,SAxiEP,SAAkBj5T,EAAQ9nB,EAASwvU,GAIjC,IAAI70M,EAAWgpM,GAAO0C,iBAElBmJ,GAASC,GAAe3nT,EAAQ9nB,EAASwvU,KAC3CxvU,OApxeFlpB,GAuxeAgxC,EAAS7wC,GAAS6wC,GAClB9nB,EAAU03U,GAAa,GAAI13U,EAAS26H,EAAU24M,IAC9C,IAGI0N,EACAC,EAJAC,EAAUxJ,GAAa,GAAI13U,EAAQkhV,QAASvmN,EAASumN,QAAS5N,IAC9D6N,EAAc7rW,GAAK4rW,GACnBE,EAAgBhgB,GAAW8f,EAASC,GAGpCz1V,EAAQ,EACR21V,EAAcrhV,EAAQqhV,aAAepkB,GACrC5mV,EAAS,WAETirW,EAAe1iM,IAAQ5+I,EAAQivI,QAAUguL,IAAW5mV,OAAS,IAAMgrW,EAAYhrW,OAAS,KAAOgrW,IAAgBhlB,EAAgBU,GAAeE,IAAW5mV,OAAS,KAAO2pB,EAAQ+5H,UAAYkjM,IAAW5mV,OAAS,KAAM,KAKvNkrW,EAAY,kBAAoBhpW,GAAerB,KAAK8oB,EAAS,cAAgBA,EAAQuhV,UAAY,IAAI9tR,QAAQ,MAAO,KAAO,6BAA8BurQ,GAAkB,KAAO,KACtLl3S,EAAO2rC,QAAQ6tR,GAAc,SAAUvwR,EAAOywR,EAAaC,EAAkBC,EAAiBC,EAAe9uV,GAsB3G,OArBA4uV,IAAqBA,EAAmBC,GAExCrrW,GAAUyxC,EAAOlpC,MAAM8M,EAAOmH,GAAQ4gE,QAAQypQ,GAAmB0E,IAE7D4f,IACFR,GAAa,EACb3qW,GAAU,YAAcmrW,EAAc,UAGpCG,IACFV,GAAe,EACf5qW,GAAU,OAASsrW,EAAgB,eAGjCF,IACFprW,GAAU,iBAAmBorW,EAAmB,+BAGlD/1V,EAAQmH,EAASk+D,EAAM36E,OAGhB26E,KAET16E,GAAU,OAGV,IAAIs9M,EAAWp7M,GAAerB,KAAK8oB,EAAS,aAAeA,EAAQ2zL,SAEnE,GAAKA,GAIA,GAAImpI,GAA2BnjU,KAAKg6L,GACvC,MAAM,IAAIp5M,EA/zemB,2DA2ze7BlE,EAAS,iBAAmBA,EAAS,QAQvCA,GAAU4qW,EAAe5qW,EAAOo9E,QAAQmoQ,EAAsB,IAAMvlV,GAAQo9E,QAAQooQ,EAAqB,MAAMpoQ,QAAQqoQ,EAAuB,OAE9IzlV,EAAS,aAAes9M,GAAY,OAAS,SAAWA,EAAW,GAAK,wBAA0B,qBAAuBqtJ,EAAa,mBAAqB,KAAOC,EAAe,uFAA8F,OAAS5qW,EAAS,gBACjS,IAAI+F,EAASg9V,IAAQ,WACnB,OAAOpiW,EAASmqW,EAAaI,EAAY,UAAYlrW,GAAQN,WAl1e/De,EAk1egFsqW,MAMhF,GAFAhlW,EAAO/F,OAASA,EAEZghW,GAAQj7V,GACV,MAAMA,EAGR,OAAOA,GA09DTunV,GAAO5sM,MAlsBP,SAAe/pI,EAAGooR,GAGhB,IAFApoR,EAAI2lV,GAAU3lV,IAEN,GAAKA,EA7jhBM,iBA8jhBjB,MAAO,GAGT,IAAItB,EA5jhBe,WA6jhBftV,EAAS4zU,GAAUh9T,EA7jhBJ,YA+jhBnBA,GA/jhBmB,WAkkhBnB,IAFA,IAAI5Q,EAASiuT,GAAUj0T,EAFvBg/R,EAAWq1D,GAAYr1D,MAId1pR,EAAQsB,GACfooR,EAAS1pR,GAGX,OAAOtP,GAkrBTunV,GAAOuO,SAAWA,GAClBvO,GAAOgP,UAAYA,GACnBhP,GAAO/1I,SAAWA,GAClB+1I,GAAOie,QAr8DP,SAAiB7pW,GACf,OAAOd,GAASc,GAAO4U,eAq8DzBg3U,GAAO1Z,SAAWA,GAClB0Z,GAAOke,cAnxIP,SAAuB9pW,GACrB,OAAOA,EAAQitV,GAAU2N,GAAU56V,IAh/ZhB,mCAg/ZyE,IAAVA,EAAcA,EAAQ,GAmxI1G4rV,GAAO1sV,SAAWA,GAClB0sV,GAAOme,QA/6DP,SAAiB/pW,GACf,OAAOd,GAASc,GAAOw6E,eA+6DzBoxQ,GAAOvxQ,KAr5DP,SAActqC,EAAQkqT,EAAOxC,GAG3B,IAFA1nT,EAAS7wC,GAAS6wC,MAEH0nT,QA76ef14V,IA66ewBk7V,GACtB,OAAO9Q,GAASp5S,GAGlB,IAAKA,KAAYkqT,EAAQ7E,GAAa6E,IACpC,OAAOlqT,EAGT,IAAIw5S,EAAaY,GAAcp6S,GAC3By5S,EAAaW,GAAc8P,GAG/B,OAAO9D,GAAU5M,EAFLD,GAAgBC,EAAYC,GAC9BC,GAAcF,EAAYC,GAAc,GACT5uQ,KAAK,KAu4DhDgxQ,GAAOtxC,QAh3DP,SAAiBvqQ,EAAQkqT,EAAOxC,GAG9B,IAFA1nT,EAAS7wC,GAAS6wC,MAEH0nT,QAn9ef14V,IAm9ewBk7V,GACtB,OAAOlqT,EAAOlpC,MAAM,EAAGuiV,GAAgBr5S,GAAU,GAGnD,IAAKA,KAAYkqT,EAAQ7E,GAAa6E,IACpC,OAAOlqT,EAGT,IAAIw5S,EAAaY,GAAcp6S,GAE/B,OAAOomT,GAAU5M,EAAY,EADnBE,GAAcF,EAAYY,GAAc8P,IAAU,GACvBr/Q,KAAK,KAo2D5CgxQ,GAAOpxC,UA70DP,SAAmBzqQ,EAAQkqT,EAAOxC,GAGhC,IAFA1nT,EAAS7wC,GAAS6wC,MAEH0nT,QAv/ef14V,IAu/ewBk7V,GACtB,OAAOlqT,EAAO2rC,QAAQ+oQ,EAAa,IAGrC,IAAK10S,KAAYkqT,EAAQ7E,GAAa6E,IACpC,OAAOlqT,EAGT,IAAIw5S,EAAaY,GAAcp6S,GAE/B,OAAOomT,GAAU5M,EADLD,GAAgBC,EAAYY,GAAc8P,KAClBr/Q,KAAK,KAi0D3CgxQ,GAAOoe,SAxxDP,SAAkBj6T,EAAQ9nB,GACxB,IAAI5pB,EA//emB,GAggfnB4rW,EA//eqB,MAigfzB,GAAIp+K,GAAS5jK,GAAU,CACrB,IAAIksK,EAAY,cAAelsK,EAAUA,EAAQksK,UAAYA,EAC7D91L,EAAS,WAAY4pB,EAAU2yU,GAAU3yU,EAAQ5pB,QAAUA,EAC3D4rW,EAAW,aAAchiV,EAAUmtU,GAAantU,EAAQgiV,UAAYA,EAItE,IAAI9B,GADJp4T,EAAS7wC,GAAS6wC,IACK1xC,OAEvB,GAAIyrV,GAAW/5S,GAAS,CACtB,IAAIw5S,EAAaY,GAAcp6S,GAC/Bo4T,EAAY5e,EAAWlrV,OAGzB,GAAIA,GAAU8pW,EACZ,OAAOp4T,EAGT,IAAIoY,EAAM9pD,EAAS4rV,GAAWggB,GAE9B,GAAI9hT,EAAM,EACR,OAAO8hT,EAGT,IAAI5lW,EAASklV,EAAa4M,GAAU5M,EAAY,EAAGphS,GAAKyyB,KAAK,IAAM7qC,EAAOlpC,MAAM,EAAGshD,GAEnF,QAxkfAppD,IAwkfIo1L,EACF,OAAO9vL,EAAS4lW,EAOlB,GAJI1gB,IACFphS,GAAO9jD,EAAOhG,OAAS8pD,GAGrBytO,GAASzhG,IACX,GAAIpkJ,EAAOlpC,MAAMshD,GAAK2wJ,OAAO3kB,GAAY,CACvC,IAAIn7G,EACAixF,EAAY5lK,EAQhB,IANK8vL,EAAUpnC,SACbonC,EAAYttB,GAAOstB,EAAU71L,OAAQY,GAAS47U,GAAQ7qS,KAAKkkJ,IAAc,MAG3EA,EAAUp7G,UAAY,EAEfC,EAAQm7G,EAAUlkJ,KAAKg6H,IAC5B,IAAIigM,EAASlxR,EAAMrlE,MAGrBtP,EAASA,EAAOwC,MAAM,OA/lf1B9H,IA+lf6BmrW,EAAuB/hT,EAAM+hT,SAEnD,GAAIn6T,EAAO3wC,QAAQg2V,GAAajhK,GAAYhsI,IAAQA,EAAK,CAC9D,IAAIx0C,EAAQtP,EAAO8yJ,YAAYg9B,GAE3BxgL,GAAS,IACXtP,EAASA,EAAOwC,MAAM,EAAG8M,IAI7B,OAAOtP,EAAS4lW,GA0tDlBre,GAAOue,SAnsDP,SAAkBp6T,GAEhB,OADAA,EAAS7wC,GAAS6wC,KACDm0S,EAAiBtiU,KAAKmuB,GAAUA,EAAO2rC,QAAQsoQ,EAAesG,IAAoBv6S,GAksDrG67S,GAAOn+D,SAhpBP,SAAkBjqM,GAChB,IAAIlhD,IAAOmoT,GACX,OAAOvrV,GAASskF,GAAUlhD,GA+oB5BspT,GAAOqV,UAAYA,GACnBrV,GAAO+U,WAAaA,GAEpB/U,GAAOwe,KAAO7rW,GACdqtV,GAAOye,UAAYlM,GACnBvS,GAAOl/E,MAAQp3E,GACfqsK,GAAM/V,GAAQ,WACZ,IAAIttV,EAAS,GAMb,OALA6+R,GAAWyuD,IAAQ,SAAUpzI,EAAM31I,GAC5BriE,GAAerB,KAAKysV,GAAO9rV,UAAW+iE,KACzCvkE,EAAOukE,GAAc21I,MAGlBl6M,EAPK,GAQT,CACH,OAAS,IAYXstV,GAAO9yP,QA71iBK,UA+1iBZ6kP,GAAU,CAAC,OAAQ,UAAW,QAAS,aAAc,UAAW,iBAAiB,SAAU96Q,GACzF+oR,GAAO/oR,GAAY2qE,YAAco+M,MAGnCjO,GAAU,CAAC,OAAQ,SAAS,SAAU96Q,EAAYlvD,GAChDk4U,GAAY/rV,UAAU+iE,GAAc,SAAU5tD,GAC5CA,OAx2iBFlW,IAw2iBMkW,EAAkB,EAAI+8T,GAAU4oB,GAAU3lV,GAAI,GAClD,IAAI5Q,EAASzE,KAAK6sV,eAAiB94U,EAAQ,IAAIk4U,GAAYjsV,MAAQA,KAAKipB,QAWxE,OATIxkB,EAAOooV,aACTpoV,EAAOsoV,cAAgB1a,GAAUh9T,EAAG5Q,EAAOsoV,eAE3CtoV,EAAOuoV,UAAU7uV,KAAK,CACpB,KAAQk0U,GAAUh9T,EAhziBL,YAiziBb,KAAQ4tD,GAAcx+D,EAAOmoV,QAAU,EAAI,QAAU,MAIlDnoV,GAGTwnV,GAAY/rV,UAAU+iE,EAAa,SAAW,SAAU5tD,GACtD,OAAOrV,KAAK4G,UAAUq8D,GAAY5tD,GAAGzO,cAIzCm3U,GAAU,CAAC,SAAU,MAAO,cAAc,SAAU96Q,EAAYlvD,GAC9D,IAAIvQ,EAAOuQ,EAAQ,EACf22V,EA10iBe,GA00iBJlnW,GAx0iBG,GAw0iByBA,EAE3CyoV,GAAY/rV,UAAU+iE,GAAc,SAAUw6N,GAC5C,IAAIh5R,EAASzE,KAAKipB,QAQlB,OANAxkB,EAAOqoV,cAAc3uV,KAAK,CACxB,SAAY20V,GAAYr1D,EAAU,GAClC,KAAQj6R,IAGViB,EAAOooV,aAAepoV,EAAOooV,cAAgB6d,EACtCjmW,MAIXs5U,GAAU,CAAC,OAAQ,SAAS,SAAU96Q,EAAYlvD,GAChD,IAAI42V,EAAW,QAAU52V,EAAQ,QAAU,IAE3Ck4U,GAAY/rV,UAAU+iE,GAAc,WAClC,OAAOjjE,KAAK2qW,GAAU,GAAGvqW,QAAQ,OAIrC29U,GAAU,CAAC,UAAW,SAAS,SAAU96Q,EAAYlvD,GACnD,IAAI62V,EAAW,QAAU72V,EAAQ,GAAK,SAEtCk4U,GAAY/rV,UAAU+iE,GAAc,WAClC,OAAOjjE,KAAK6sV,aAAe,IAAIZ,GAAYjsV,MAAQA,KAAK4qW,GAAU,OAItE3e,GAAY/rV,UAAU8iW,QAAU,WAC9B,OAAOhjW,KAAKjC,OAAO+xF,KAGrBm8P,GAAY/rV,UAAUmhJ,KAAO,SAAU00G,GACrC,OAAO/1P,KAAKjC,OAAOg4P,GAAWrgE,QAGhCu2J,GAAY/rV,UAAUo+V,SAAW,SAAUvoG,GACzC,OAAO/1P,KAAK4G,UAAUy6I,KAAK00G,IAG7Bk2F,GAAY/rV,UAAUu+V,UAAY3K,IAAS,SAAU76Q,EAAMyvG,GACzD,MAAmB,mBAARzvG,EACF,IAAIgzQ,GAAYjsV,MAGlBA,KAAKysC,KAAI,SAAUrsC,GACxB,OAAO2vV,GAAW3vV,EAAO64E,EAAMyvG,SAInCujK,GAAY/rV,UAAUqE,OAAS,SAAUwxP,GACvC,OAAO/1P,KAAKjC,OAAO05C,GAAOq7S,GAAY/8F,MAGxCk2F,GAAY/rV,UAAU+G,MAAQ,SAAUgwC,EAAOsR,GAC7CtR,EAAQ+jT,GAAU/jT,GAClB,IAAIxyC,EAASzE,KAEb,OAAIyE,EAAOooV,eAAiB51S,EAAQ,GAAKsR,EAAM,GACtC,IAAI0jS,GAAYxnV,IAGrBwyC,EAAQ,EACVxyC,EAASA,EAAO0gW,WAAWluT,GAClBA,IACTxyC,EAASA,EAAO6+V,KAAKrsT,SAl8iBvB93C,IAq8iBIopD,IAEF9jD,GADA8jD,EAAMyyS,GAAUzyS,IACD,EAAI9jD,EAAO8+V,WAAWh7S,GAAO9jD,EAAOygW,KAAK38S,EAAMtR,IAGzDxyC,IAGTwnV,GAAY/rV,UAAUklW,eAAiB,SAAUrvG,GAC/C,OAAO/1P,KAAK4G,UAAUy+V,UAAUtvG,GAAWnvP,WAG7CqlV,GAAY/rV,UAAUiuB,QAAU,WAC9B,OAAOnuB,KAAKklW,KAn5iBO,aAu5iBrB3nE,GAAW0uD,GAAY/rV,WAAW,SAAU04M,EAAM31I,GAChD,IAAI4nS,EAAgB,qCAAqC7oV,KAAKihD,GAC1D6nS,EAAU,kBAAkB9oV,KAAKihD,GACjC8nS,EAAa/e,GAAO8e,EAAU,QAAwB,QAAd7nS,EAAuB,QAAU,IAAMA,GAC/E+nS,EAAeF,GAAW,QAAQ9oV,KAAKihD,GAEtC8nS,IAIL/e,GAAO9rV,UAAU+iE,GAAc,WAC7B,IAAI7iE,EAAQJ,KAAKusV,YACb7jK,EAAOoiL,EAAU,CAAC,GAAKtsW,UACvBysW,EAAS7qW,aAAiB6rV,GAC1BxuD,EAAW/0G,EAAK,GAChBwiL,EAAUD,GAAUrnV,GAAQxjB,GAE5B+9V,EAAc,SAAqB/9V,GACrC,IAAIqE,EAASsmW,EAAW3sW,MAAM4tV,GAAQp3B,GAAU,CAACx0T,GAAQsoL,IACzD,OAAOoiL,GAAWxe,EAAW7nV,EAAO,GAAKA,GAGvCymW,GAAWL,GAAoC,mBAAZptE,GAA6C,GAAnBA,EAASh/R,SAExEwsW,EAASC,GAAU,GAGrB,IAAI5e,EAAWtsV,KAAKysV,UAChB0e,IAAanrW,KAAKwsV,YAAY/tV,OAC9B2sW,EAAcJ,IAAiB1e,EAC/B+e,EAAWJ,IAAWE,EAE1B,IAAKH,GAAgBE,EAAS,CAC5B9qW,EAAQirW,EAAWjrW,EAAQ,IAAI6rV,GAAYjsV,MAC3C,IAAIyE,EAASm0M,EAAKx6M,MAAMgC,EAAOsoL,GAQ/B,OANAjkL,EAAO+nV,YAAYruV,KAAK,CACtB,KAAQu6V,GACR,KAAQ,CAACyF,GACT,aA7/iBNh/V,IAggjBW,IAAI+sV,GAAcznV,EAAQ6nV,GAGnC,OAAI8e,GAAeC,EACVzyJ,EAAKx6M,MAAM4B,KAAM0oL,IAG1BjkL,EAASzE,KAAK04V,KAAKyF,GACZiN,EAAcN,EAAUrmW,EAAOrE,QAAQ,GAAKqE,EAAOrE,QAAUqE,QAIxEs5U,GAAU,CAAC,MAAO,OAAQ,QAAS,OAAQ,SAAU,YAAY,SAAU96Q,GACzE,IAAI21I,EAAOmjI,GAAW94Q,GAClBqoS,EAAY,0BAA0BtpV,KAAKihD,GAAc,MAAQ,OACjE+nS,EAAe,kBAAkBhpV,KAAKihD,GAE1C+oR,GAAO9rV,UAAU+iE,GAAc,WAC7B,IAAIylH,EAAOlqL,UAEX,GAAIwsW,IAAiBhrW,KAAKysV,UAAW,CACnC,IAAIrsV,EAAQJ,KAAKI,QACjB,OAAOw4M,EAAKx6M,MAAMwlB,GAAQxjB,GAASA,EAAQ,GAAIsoL,GAGjD,OAAO1oL,KAAKsrW,IAAW,SAAUlrW,GAC/B,OAAOw4M,EAAKx6M,MAAMwlB,GAAQxjB,GAASA,EAAQ,GAAIsoL,UAKrD60G,GAAW0uD,GAAY/rV,WAAW,SAAU04M,EAAM31I,GAChD,IAAI8nS,EAAa/e,GAAO/oR,GAExB,GAAI8nS,EAAY,CACd,IAAInsW,EAAMmsW,EAAW1kW,KAAO,GAEvBzF,GAAerB,KAAKwsV,GAAWntV,KAClCmtV,GAAUntV,GAAO,IAGnBmtV,GAAUntV,GAAKT,KAAK,CAClB,KAAQ8kE,EACR,KAAQ8nS,QAIdhf,GAAUgN,QA/ijBR55V,EAiCqB,GA8gjB+BkH,MAAQ,CAAC,CAC7D,KAAQ,UACR,UAjjjBAlH,IAojjBF8sV,GAAY/rV,UAAU+oB,MA3lftB,WACE,IAAIxkB,EAAS,IAAIwnV,GAAYjsV,KAAKusV,aAOlC,OANA9nV,EAAO+nV,YAAc94Q,GAAU1zE,KAAKwsV,aACpC/nV,EAAOmoV,QAAU5sV,KAAK4sV,QACtBnoV,EAAOooV,aAAe7sV,KAAK6sV,aAC3BpoV,EAAOqoV,cAAgBp5Q,GAAU1zE,KAAK8sV,eACtCroV,EAAOsoV,cAAgB/sV,KAAK+sV,cAC5BtoV,EAAOuoV,UAAYt5Q,GAAU1zE,KAAKgtV,WAC3BvoV,GAolfTwnV,GAAY/rV,UAAU0G,QAxkftB,WACE,GAAI5G,KAAK6sV,aAAc,CACrB,IAAIpoV,EAAS,IAAIwnV,GAAYjsV,MAC7ByE,EAAOmoV,SAAW,EAClBnoV,EAAOooV,cAAe,OAEtBpoV,EAASzE,KAAKipB,SACP2jU,UAAY,EAGrB,OAAOnoV,GA+jfTwnV,GAAY/rV,UAAUE,MAnjftB,WACE,IAAI8T,EAAQlU,KAAKusV,YAAYnsV,QACzBgvB,EAAMpvB,KAAK4sV,QACX95B,EAAQlvS,GAAQ1P,GAChBq3V,EAAUn8U,EAAM,EAChB8kS,EAAYpB,EAAQ5+S,EAAMzV,OAAS,EACnCgmD,EAk8IN,SAAiBxN,EAAOsR,EAAK62S,GAC3B,IAAIrrV,GAAS,EACTtV,EAAS2gW,EAAW3gW,OAExB,OAASsV,EAAQtV,GAAQ,CACvB,IAAIskB,EAAOq8U,EAAWrrV,GAClB4e,EAAO5P,EAAK4P,KAEhB,OAAQ5P,EAAKvf,MACX,IAAK,OACHyzC,GAAStkB,EACT,MAEF,IAAK,YACH41B,GAAO51B,EACP,MAEF,IAAK,OACH41B,EAAM8pR,GAAU9pR,EAAKtR,EAAQtkB,GAC7B,MAEF,IAAK,YACHskB,EAAQm7R,GAAUn7R,EAAOsR,EAAM51B,IAKrC,MAAO,CACL,MAASskB,EACT,IAAOsR,GA/9IEijT,CAAQ,EAAGt3C,EAAWl0T,KAAKgtV,WAClC/1S,EAAQwN,EAAKxN,MACbsR,EAAM9D,EAAK8D,IACX9pD,EAAS8pD,EAAMtR,EACfljC,EAAQw3V,EAAUhjT,EAAMtR,EAAQ,EAChC27S,EAAY5yV,KAAK8sV,cACjB2e,EAAa7Y,EAAUn0V,OACvB0pV,EAAW,EACXujB,EAAYr5B,GAAU5zU,EAAQuB,KAAK+sV,eAEvC,IAAKj6B,IAAUy4C,GAAWr3C,GAAaz1T,GAAUitW,GAAajtW,EAC5D,OAAOu3V,GAAiB9hV,EAAOlU,KAAKwsV,aAGtC,IAAI/nV,EAAS,GAEb8pV,EAAO,KAAO9vV,KAAY0pV,EAAWujB,GAAW,CAK9C,IAHA,IAAIC,GAAa,EACbvrW,EAAQ8T,EAFZH,GAASqb,KAIAu8U,EAAYF,GAAY,CAC/B,IAAI1oV,EAAO6vU,EAAU+Y,GACjBluE,EAAW16Q,EAAK06Q,SAChBj6R,EAAOuf,EAAKvf,KACZgrV,EAAW/wD,EAASr9R,GAExB,GA/+DY,GA++DRoD,EACFpD,EAAQouV,OACH,IAAKA,EAAU,CACpB,GAn/Da,GAm/DThrV,EACF,SAAS+qV,EAET,MAAMA,GAKZ9pV,EAAO0jV,KAAc/nV,EAGvB,OAAOqE,GAsgfTunV,GAAO9rV,UAAUu3B,GAAK2mU,GACtBpS,GAAO9rV,UAAUg+V,MAtvQjB,WACE,OAAOA,GAAMl+V,OAsvQfgsV,GAAO9rV,UAAU0rW,OAxtQjB,WACE,OAAO,IAAI1f,GAAclsV,KAAKI,QAASJ,KAAKysV,YAwtQ9CT,GAAO9rV,UAAU+E,KA9rQjB,gBA73SE9F,IA83SIa,KAAK2sV,aACP3sV,KAAK2sV,WAAax+T,GAAQnuB,KAAKI,UAGjC,IAAIqD,EAAOzD,KAAK0sV,WAAa1sV,KAAK2sV,WAAWluV,OAE7C,MAAO,CACL,KAAQgF,EACR,MAHUA,OAn4SZtE,EAm4S+Ba,KAAK2sV,WAAW3sV,KAAK0sV,eAyrQtDV,GAAO9rV,UAAU44V,MAloQjB,SAAsB14V,GAIpB,IAHA,IAAIqE,EACAs8B,EAAS/gC,KAEN+gC,aAAkBsrT,IAAY,CACnC,IAAIpjU,EAAQkjU,GAAaprT,GACzB9X,EAAMyjU,UAAY,EAClBzjU,EAAM0jU,gBAj8SRxtV,EAm8SMsF,EACF0vP,EAASo4F,YAActjU,EAEvBxkB,EAASwkB,EAGX,IAAIkrO,EAAWlrO,EACf8X,EAASA,EAAOwrT,YAIlB,OADAp4F,EAASo4F,YAAcnsV,EAChBqE,GA+mQTunV,GAAO9rV,UAAU0G,QAvlQjB,WACE,IAAIxG,EAAQJ,KAAKusV,YAEjB,GAAInsV,aAAiB6rV,GAAa,CAChC,IAAI4f,EAAUzrW,EAcd,OAZIJ,KAAKwsV,YAAY/tV,SACnBotW,EAAU,IAAI5f,GAAYjsV,QAG5B6rW,EAAUA,EAAQjlW,WAEV4lV,YAAYruV,KAAK,CACvB,KAAQu6V,GACR,KAAQ,CAAC9xV,IACT,aAr/SJzH,IAw/SS,IAAI+sV,GAAc2f,EAAS7rW,KAAKysV,WAGzC,OAAOzsV,KAAK04V,KAAK9xV,KAmkQnBolV,GAAO9rV,UAAUomB,OAAS0lU,GAAO9rV,UAAU8vS,QAAUg8C,GAAO9rV,UAAUE,MAjjQtE,WACE,OAAO41V,GAAiBh2V,KAAKusV,YAAavsV,KAAKwsV,cAkjQjDR,GAAO9rV,UAAU4sQ,MAAQk/E,GAAO9rV,UAAUw1L,KAEtCw1J,KACFc,GAAO9rV,UAAUgrV,IAtqQnB,WACE,OAAOlrV,OAwqQFgsV,GAMDrB,GAQN3gL,GAAK2lB,EAAIA,QApljBPxwL,KAuljBF,aACE,OAAOwwL,IACR,gCAWFpwL,KAAKS,Q,+FC/mjBG8rW,EAAkB,SAAyB/xV,EAAG64P,EAAKr7O,EAAWw0U,EAAUjzR,GACjF,IAAIkzR,EAAiBlzR,EAAUm7J,YAC3Bg4H,EAAkBnzR,EAAUi7J,aAC5Bv+N,EAAuB,kBAAZuE,EAAEmyV,MAAqBnyV,EAAEmyV,MAAQnyV,EAAE4zP,QAAQ,GAAGu+F,MACzDz2V,EAAuB,kBAAZsE,EAAEoyV,MAAqBpyV,EAAEoyV,MAAQpyV,EAAE4zP,QAAQ,GAAGw+F,MACzD3tU,EAAOhpB,GAAKsjE,EAAU84K,wBAAwBpzN,KAAOs+H,OAAOsvM,aAC5D1tU,EAAMjpB,GAAKqjE,EAAU84K,wBAAwBlzN,IAAMo+H,OAAOuvM,aAE9D,GAAkB,aAAd90U,EAA0B,CAC5B,IAAI9e,OAAI,EAUR,GAPEA,EADEimB,EAAM,EACJ,EACKA,EAAMutU,EACX,EAEA13V,KAAKmC,MAAY,IAANgoB,EAAYutU,GAAmB,IAG5Cr5F,EAAIn6P,IAAMA,EACZ,MAAO,CACLwF,EAAG20P,EAAI30P,EACPhG,EAAG26P,EAAI36P,EACP9D,EAAGy+P,EAAIz+P,EACPsE,EAAGA,EACH/Z,OAAQ,WAGP,CACL,IAAIwgD,OAAK,EAUT,GAAI6sT,KAPF7sT,EADE1gB,EAAO,EACJ,EACIA,EAAOwtU,EACX,EAEAz3V,KAAKmC,MAAa,IAAP8nB,EAAawtU,GAAkB,KAI/C,MAAO,CACL/tV,EAAG20P,EAAI30P,EACPhG,EAAG26P,EAAI36P,EACP9D,EAAGy+P,EAAIz+P,EACPsE,EAAGymC,EACHxgD,OAAQ,OAKd,OAAO,MClDL4tW,EAAkB,GAwBX3sW,EAAM,SAAagsB,EAAI5S,EAAI4Z,EAAM45U,GAC1C,IAAI3tW,EAAM+sB,EAAK,IAAM5S,EAAK,IAAM4Z,GAAQ45U,EAAe,UAAY,IAEnE,GAAID,EAAgB1tW,GAClB,OAAO0tW,EAAgB1tW,GAGzB,IAAI4tW,EA9Bc,SAAgB7gV,EAAI5S,EAAI4Z,EAAM45U,GAChD,GAAwB,qBAAbnsV,WAA6BmsV,EACtC,OAAO,KAGT,IAAIpqV,EAASoqV,EAAe,IAAIA,EAAiBnsV,SAAS4xK,cAAc,UACxE7vK,EAAOC,MAAe,EAAPuQ,EACfxQ,EAAOE,OAAgB,EAAPsQ,EAChB,IAAIwpQ,EAAMh6Q,EAAOG,WAAW,MAE5B,OAAK65Q,GAKLA,EAAIE,UAAY1wQ,EAChBwwQ,EAAIG,SAAS,EAAG,EAAGn6Q,EAAOC,MAAOD,EAAOE,QACxC85Q,EAAIE,UAAYtjR,EAChBojR,EAAIG,SAAS,EAAG,EAAG3pQ,EAAMA,GACzBwpQ,EAAIzkP,UAAU/kB,EAAMA,GACpBwpQ,EAAIG,SAAS,EAAG,EAAG3pQ,EAAMA,GAClBxQ,EAAOO,aAVL,KAmBQ,CAAOiJ,EAAI5S,EAAI4Z,EAAM45U,GAEtC,OADAD,EAAgB1tW,GAAO4tW,EAChBA,GCjCLz/K,EAAWnvL,OAAOsrB,QAAU,SAAU5qB,GACxC,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GAEvB,IAAK,IAAIK,KAAOF,EACVd,OAAOsC,UAAUU,eAAerB,KAAKb,EAAQE,KAC/CN,EAAOM,GAAOF,EAAOE,IAK3B,OAAON,GAME,EAAa,SAAoB83G,GAC1C,IAAI2uH,EAAQ3uH,EAAK2uH,MACb04C,EAAOrnK,EAAKqnK,KACZ9qP,EAAOyjF,EAAKzjF,KACZ85U,EAAYr2P,EAAKq2P,UACjBC,EAAet2P,EAAKs2P,aACpBC,EAAYv2P,EAAKu2P,UACjB54U,EAAWqiF,EAAKriF,SAChBskK,EAAS,IAAS,CACpB,QAAW,CACTv/C,KAAM,CACJ4zN,aAAcA,EACdC,UAAWA,EACXC,SAAU,kBACV1oU,WAAY,OAAS,EAAe6gM,EAAO04C,EAAM9qP,EAAM85U,EAAUtqV,QAAU,oBAIjF,OAAO,yBAAe4R,GAAY,IAAMs2R,aAAat2R,EAAUg5J,EAAS,GAAIh5J,EAAS4xJ,MAAO,CAC1F11I,MAAO88I,EAAS,GAAIh5J,EAAS4xJ,MAAM11I,MAAOooJ,EAAOv/C,SAC7C,IAAMk5C,cAAc,MAAO,CAC/B/hJ,MAAOooJ,EAAOv/C,QAGlB,EAAWygD,aAAe,CACxB5mK,KAAM,EACNoyM,MAAO,cACP04C,KAAM,kBACNgvF,UAAW,IAEE,QC/CX,EAAW7uW,OAAOsrB,QAAU,SAAU5qB,GACxC,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GAEvB,IAAK,IAAIK,KAAOF,EACVd,OAAOsC,UAAUU,eAAerB,KAAKb,EAAQE,KAC/CN,EAAOM,GAAOF,EAAOE,IAK3B,OAAON,GAGLunL,EAAe,WACjB,SAAS/mL,EAAiBR,EAAQqnL,GAChC,IAAK,IAAIpnL,EAAI,EAAGA,EAAIonL,EAAMlnL,OAAQF,IAAK,CACrC,IAAIqnL,EAAaD,EAAMpnL,GACvBqnL,EAAW1nL,WAAa0nL,EAAW1nL,aAAc,EACjD0nL,EAAWtlL,cAAe,EACtB,UAAWslL,IAAYA,EAAWvlL,UAAW,GACjDzC,OAAOmB,eAAeT,EAAQsnL,EAAWhnL,IAAKgnL,IAIlD,OAAO,SAAUH,EAAaK,EAAYC,GAGxC,OAFID,GAAYhnL,EAAiB2mL,EAAYvlL,UAAW4lL,GACpDC,GAAajnL,EAAiB2mL,EAAaM,GACxCN,GAdQ,GAkBnB,SAASF,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIhmL,UAAU,qCAIxB,SAASunL,EAA2B/kL,EAAM1C,GACxC,IAAK0C,EACH,MAAM,IAAIsqL,eAAe,6DAG3B,OAAOhtL,GAAyB,kBAATA,GAAqC,oBAATA,EAA8B0C,EAAP1C,EAuBrE,IAqHQ,EArHI,SAAU62G,GAG3B,SAASy2P,IACP,IAAIl9M,EAEAswL,EAAOv/N,EAEX6kE,EAAgBvlL,KAAM6sW,GAEtB,IAAK,IAAInjL,EAAOlrL,UAAUC,OAAQiqL,EAAO/kK,MAAM+lK,GAAO3tI,EAAO,EAAGA,EAAO2tI,EAAM3tI,IAC3E2sI,EAAK3sI,GAAQv9C,UAAUu9C,GAGzB,OAAekkS,EAASv/N,EAAQsmE,EAA2BhnL,MAAO2vJ,EAAQk9M,EAAMtmW,WAAa3I,OAAOmC,eAAe8sW,IAAQttW,KAAKnB,MAAMuxJ,EAAO,CAAC3vJ,MAAM0hB,OAAOgnK,KAAiBhoE,EAAMqpI,aAAe,SAAUhwO,GACzM,IAAIwnP,EAAS,EAAsBxnP,EAAG2mG,EAAMilE,MAAMitF,IAAKlyJ,EAAMilE,MAAMpuJ,UAAWmpF,EAAMilE,MAAMltK,EAAGioG,EAAM5nC,WACnGyoL,GAA0C,oBAAzB7gJ,EAAMilE,MAAMwgE,UAA2BzlI,EAAMilE,MAAMwgE,SAASob,EAAQxnP,IACpF2mG,EAAMosP,gBAAkB,SAAU/yV,GACnC2mG,EAAMqpI,aAAahwO,GAEnB+iJ,OAAOz1F,iBAAiB,YAAaq5C,EAAMqpI,cAC3CjtF,OAAOz1F,iBAAiB,UAAWq5C,EAAMqsP,gBACxCrsP,EAAMqsP,cAAgB,WACvBrsP,EAAMssP,wBACLtsP,EAAMssP,qBAAuB,WAC9BlwM,OAAO51F,oBAAoB,YAAaw5C,EAAMqpI,cAC9CjtF,OAAO51F,oBAAoB,UAAWw5C,EAAMqsP,gBACnC/lL,EAA2BtmE,EAAnCu/N,GAwFL,OAvIF,SAAmBp5J,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIrnL,UAAU,kEAAoEqnL,GAG1FD,EAAS3mL,UAAYtC,OAAOuC,OAAO2mL,GAAcA,EAAW5mL,UAAW,CACrED,YAAa,CACXG,MAAOymL,EACP3oL,YAAY,EACZmC,UAAU,EACVC,cAAc,KAGdwmL,IAAYlpL,OAAO2C,eAAiB3C,OAAO2C,eAAesmL,EAAUC,GAAcD,EAAStgL,UAAYugL,GAQ3GF,CAAUimL,EAAOz2P,GA6BjByvE,EAAagnL,EAAO,CAAC,CACnBjuW,IAAK,uBACLwB,MAAO,WACLJ,KAAKgtW,yBAEN,CACDpuW,IAAK,SACLwB,MAAO,WACL,IAAIikB,EAASrkB,KAETgkO,EAAMhkO,KAAK2lL,MAAMq+C,IACjB3rC,EAAS,IAAS,CACpB,QAAW,CACTt9K,MAAO,CACL6xV,SAAU,kBACVF,aAAc1sW,KAAK2lL,MAAMh0J,QAE3B66U,WAAY,CACVI,SAAU,kBACVzrE,SAAU,SACVurE,aAAc1sW,KAAK2lL,MAAMh0J,QAE3Bs7U,SAAU,CACRL,SAAU,kBACV1oU,WAAY,kCAAoC8/L,EAAIplN,EAAI,IAAMolN,EAAIhmN,EAAI,IAAMgmN,EAAItrN,EAAI,6BAA+BsrN,EAAIplN,EAAI,IAAMolN,EAAIhmN,EAAI,IAAMgmN,EAAItrN,EAAI,aACvJi0V,UAAW3sW,KAAK2lL,MAAMzqH,OACtBwxS,aAAc1sW,KAAK2lL,MAAMh0J,QAE3BmnD,UAAW,CACThlD,SAAU,WACVzR,OAAQ,OACRm4Q,OAAQ,SAEV0yE,QAAS,CACPp5U,SAAU,WACV0K,KAAc,IAARwlM,EAAIvrN,EAAU,KAEtB00V,OAAQ,CACN/qV,MAAO,MACPsqV,aAAc,MACdrqV,OAAQ,MACRsqV,UAAW,4BACXzoU,WAAY,OACZggQ,UAAW,MACXlyL,UAAW,qBAGf,SAAY,CACVi7P,SAAU,CACR/oU,WAAY,mCAAqC8/L,EAAIplN,EAAI,IAAMolN,EAAIhmN,EAAI,IAAMgmN,EAAItrN,EAAI,6BAA+BsrN,EAAIplN,EAAI,IAAMolN,EAAIhmN,EAAI,IAAMgmN,EAAItrN,EAAI,cAE1Jw0V,QAAS,CACP1uU,KAAM,EACNE,IAAa,IAARslM,EAAIvrN,EAAU,MAGvB,UAAa,EAAS,GAAIzY,KAAK2lL,MAAM11I,QACpC,CACDmzM,SAAmC,aAAzBpjP,KAAK2lL,MAAMpuJ,UACrB61U,WAAW,IAEb,OAAO,IAAMp7K,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOt9K,OACb,IAAMi3K,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOm0K,YACb,IAAMx6K,cAAc,EAAY,CACjCy6K,UAAWzsW,KAAK2lL,MAAM8mL,aACnB,IAAMz6K,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAO40K,WACZ,IAAMj7K,cAAc,MAAO,CAC7B/hJ,MAAOooJ,EAAOv/G,UACdskH,IAAK,SAAatkH,GAChB,OAAOz0D,EAAOy0D,UAAYA,GAE5Bo1J,YAAaluO,KAAK8sW,gBAClBO,YAAartW,KAAK+pP,aAClBmH,aAAclxP,KAAK+pP,cAClB,IAAM/3D,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAO60K,SACbltW,KAAK2lL,MAAMunL,QAAU,IAAMl7K,cAAchyL,KAAK2lL,MAAMunL,QAASltW,KAAK2lL,OAAS,IAAMqM,cAAc,MAAO,CACvG/hJ,MAAOooJ,EAAO80K,gBAKbN,EAnHU,CAoHjB,iBAAiB,aCtLf,EAAe,WACjB,SAAS/tW,EAAiBR,EAAQqnL,GAChC,IAAK,IAAIpnL,EAAI,EAAGA,EAAIonL,EAAMlnL,OAAQF,IAAK,CACrC,IAAIqnL,EAAaD,EAAMpnL,GACvBqnL,EAAW1nL,WAAa0nL,EAAW1nL,aAAc,EACjD0nL,EAAWtlL,cAAe,EACtB,UAAWslL,IAAYA,EAAWvlL,UAAW,GACjDzC,OAAOmB,eAAeT,EAAQsnL,EAAWhnL,IAAKgnL,IAIlD,OAAO,SAAUH,EAAaK,EAAYC,GAGxC,OAFID,GAAYhnL,EAAiB2mL,EAAYvlL,UAAW4lL,GACpDC,GAAajnL,EAAiB2mL,EAAaM,GACxCN,GAdQ,GAiEnB,IAGI6nL,EAAkB,CAFJ,GACE,IAWhBziB,EAAY,EAmKD,EAlKY,SAAUz0O,GAGnC,SAASm3P,EAAc5nL,IAjDzB,SAAyBH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIhmL,UAAU,qCAgDpB,CAAgBO,KAAMutW,GAEtB,IAAI7sP,EA9CR,SAAoCz+G,EAAM1C,GACxC,IAAK0C,EACH,MAAM,IAAIsqL,eAAe,6DAG3B,OAAOhtL,GAAyB,kBAATA,GAAqC,oBAATA,EAA8B0C,EAAP1C,EAyC5D,CAA2BS,MAAOutW,EAAchnW,WAAa3I,OAAOmC,eAAewtW,IAAgBhuW,KAAKS,OAiEpH,OA/DA0gH,EAAMyhI,WAAa,WACbzhI,EAAMj+G,MAAM+qW,WACd9sP,EAAMl6C,SAAS,CACbpmE,MAAOsgH,EAAMj+G,MAAM+qW,UACnBA,UAAW,QAKjB9sP,EAAMqpI,aAAe,SAAUhwO,GAC7B2mG,EAAM+sP,gBAAgB1zV,EAAEzb,OAAO8B,MAAO2Z,IAGxC2mG,EAAMouH,cAAgB,SAAU/0N,GAI9B,IAlCuCgzQ,EAkCnC3sR,EA9BW,SAAwBA,GAC3C,OAAOmsB,OAAO0xB,OAAO79C,GAAO07E,QAAQ,KAAM,KA6B1B4xR,CAAe3zV,EAAEzb,OAAO8B,OAEpC,IAAK4F,MAAM5F,KApC4B2sR,EAoCHhzQ,EAAEgzQ,QAnCnCugF,EAAgB9tW,QAAQutR,IAAY,GAmCS,CAC9C,IAAI7xQ,EAASwlG,EAAMitP,iBAEfC,EA3CM,KA2CS7zV,EAAEgzQ,QAA0B3sR,EAAQ8a,EAAS9a,EAAQ8a,EAExEwlG,EAAM+sP,gBAAgBG,EAAc7zV,KAIxC2mG,EAAMmtP,WAAa,SAAU9zV,GAC3B,GAAI2mG,EAAMilE,MAAMmoL,UAAW,CACzB,IAAI/iU,EAAWx2B,KAAKmC,MAAMgqG,EAAMilE,MAAMvlL,MAAQ2Z,EAAEg0V,WAE5ChjU,GAAY,GAAKA,GAAY21E,EAAMilE,MAAMqoL,SAC3CttP,EAAMilE,MAAMwgE,UAAYzlI,EAAMilE,MAAMwgE,SAASzlI,EAAMutP,wBAAwBljU,GAAWhxB,KAK5F2mG,EAAMosP,gBAAkB,SAAU/yV,GAC5B2mG,EAAMilE,MAAMmoL,YACd/zV,EAAEmpG,iBAEFxC,EAAMmtP,WAAW9zV,GAEjB+iJ,OAAOz1F,iBAAiB,YAAaq5C,EAAMmtP,YAC3C/wM,OAAOz1F,iBAAiB,UAAWq5C,EAAMqsP,iBAI7CrsP,EAAMqsP,cAAgB,WACpBrsP,EAAMssP,wBAGRtsP,EAAMssP,qBAAuB,WAC3BlwM,OAAO51F,oBAAoB,YAAaw5C,EAAMmtP,YAC9C/wM,OAAO51F,oBAAoB,UAAWw5C,EAAMqsP,gBAG9CrsP,EAAMj+G,MAAQ,CACZrC,MAAO69C,OAAO0nI,EAAMvlL,OAAOw6E,cAC3B4yR,UAAWvvT,OAAO0nI,EAAMvlL,OAAOw6E,eAEjC8lC,EAAMwtP,QAAU,qBAAuBrjB,IAChCnqO,EAyFT,OAhMF,SAAmBmmE,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIrnL,UAAU,kEAAoEqnL,GAG1FD,EAAS3mL,UAAYtC,OAAOuC,OAAO2mL,GAAcA,EAAW5mL,UAAW,CACrED,YAAa,CACXG,MAAOymL,EACP3oL,YAAY,EACZmC,UAAU,EACVC,cAAc,KAGdwmL,IAAYlpL,OAAO2C,eAAiB3C,OAAO2C,eAAesmL,EAAUC,GAAcD,EAAStgL,UAAYugL,GAoB3G,CAAUymL,EAAen3P,GAyEzB,EAAam3P,EAAe,CAAC,CAC3B3uW,IAAK,qBACLwB,MAAO,SAA4B0qL,EAAWH,GACxC3qL,KAAK2lL,MAAMvlL,QAAUJ,KAAKyC,MAAMrC,OAAU0qL,EAAU1qL,QAAUJ,KAAK2lL,MAAMvlL,OAASuqL,EAAUvqL,QAAUJ,KAAKyC,MAAMrC,QAC/GJ,KAAKulP,QAAUnlO,SAAS8vN,cAC1BlwO,KAAKwmE,SAAS,CACZgnS,UAAWvvT,OAAOj+C,KAAK2lL,MAAMvlL,OAAOw6E,gBAGtC56E,KAAKwmE,SAAS,CACZpmE,MAAO69C,OAAOj+C,KAAK2lL,MAAMvlL,OAAOw6E,cAChC4yR,WAAYxtW,KAAKyC,MAAM+qW,WAAavvT,OAAOj+C,KAAK2lL,MAAMvlL,OAAOw6E,mBAKpE,CACDh8E,IAAK,uBACLwB,MAAO,WACLJ,KAAKgtW,yBAEN,CACDpuW,IAAK,0BACLwB,MAAO,SAAiCA,GACtC,OA/JN,SAAyBwB,EAAKhD,EAAKwB,GAYjC,OAXIxB,KAAOgD,EACThE,OAAOmB,eAAe6C,EAAKhD,EAAK,CAC9BwB,MAAOA,EACPlC,YAAY,EACZoC,cAAc,EACdD,UAAU,IAGZuB,EAAIhD,GAAOwB,EAGNwB,EAmJI0qL,CAAgB,GAAItsL,KAAK2lL,MAAMp1B,MAAOnwJ,KAE9C,CACDxB,IAAK,iBACLwB,MAAO,WACL,OAAOJ,KAAK2lL,MAAMk5D,aArHG,IAuHtB,CACDjgP,IAAK,kBACLwB,MAAO,SAAyBA,EAAO2Z,GACrC,IAAIo0V,EAAgBnuW,KAAK2lL,MAAMp1B,MAAQvwJ,KAAKiuW,wBAAwB7tW,GAASA,EAC7EJ,KAAK2lL,MAAMwgE,UAAYnmP,KAAK2lL,MAAMwgE,SAASgoH,EAAep0V,GAC1D/Z,KAAKwmE,SAAS,CACZpmE,MAAOA,MAGV,CACDxB,IAAK,SACLwB,MAAO,WACL,IAAIikB,EAASrkB,KAETq4L,EAAS,IAAS,CACpB,QAAW,CACTv2L,KAAM,CACJgyB,SAAU,aAGd,gBAAiB,CACfhyB,KAAM9B,KAAK2lL,MAAM11I,OAASjwC,KAAK2lL,MAAM11I,MAAMnuC,KAAO9B,KAAK2lL,MAAM11I,MAAMnuC,KAAO,GAC1EyjP,MAAOvlP,KAAK2lL,MAAM11I,OAASjwC,KAAK2lL,MAAM11I,MAAMs1M,MAAQvlP,KAAK2lL,MAAM11I,MAAMs1M,MAAQ,GAC7Eh1F,MAAOvwJ,KAAK2lL,MAAM11I,OAASjwC,KAAK2lL,MAAM11I,MAAMsgH,MAAQvwJ,KAAK2lL,MAAM11I,MAAMsgH,MAAQ,IAE/E,iBAAkB,CAChBA,MAAO,CACL22D,OAAQ,eAGX,CACD,iBAAiB,GAChBlnN,KAAK2lL,OACR,OAAO,IAAMqM,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOv2L,MACb,IAAMkwL,cAAc,QAAS,CAC9BtvJ,GAAI1iC,KAAKkuW,QACTj+T,MAAOooJ,EAAOktD,MACdnoD,IAAK,SAAamoD,GAChB,OAAOlhO,EAAOkhO,MAAQA,GAExBnlP,MAAOJ,KAAKyC,MAAMrC,MAClBqvO,UAAWzvO,KAAK8uO,cAChBqX,SAAUnmP,KAAK+pP,aACfzN,OAAQt8O,KAAKmiP,WACbv0G,YAAa5tI,KAAK2lL,MAAM/3C,YACxBwgO,WAAY,UACVpuW,KAAK2lL,MAAMp1B,QAAUvwJ,KAAK2lL,MAAM0oL,UAAY,IAAMr8K,cAAc,QAAS,CAC3Ey4D,QAASzqP,KAAKkuW,QACdj+T,MAAOooJ,EAAO9nC,MACd29E,YAAaluO,KAAK8sW,iBACjB9sW,KAAK2lL,MAAMp1B,OAAS,UAIpBg9M,EAhKkB,CAiKzB,iBAAiB,aChPR,EAAkB,SAAyBxzV,EAAGwd,EAAWq7O,EAAK95L,GACvE,IAAIkzR,EAAiBlzR,EAAUm7J,YAC3Bg4H,EAAkBnzR,EAAUi7J,aAC5Bv+N,EAAuB,kBAAZuE,EAAEmyV,MAAqBnyV,EAAEmyV,MAAQnyV,EAAE4zP,QAAQ,GAAGu+F,MACzDz2V,EAAuB,kBAAZsE,EAAEoyV,MAAqBpyV,EAAEoyV,MAAQpyV,EAAE4zP,QAAQ,GAAGw+F,MACzD3tU,EAAOhpB,GAAKsjE,EAAU84K,wBAAwBpzN,KAAOs+H,OAAOsvM,aAC5D1tU,EAAMjpB,GAAKqjE,EAAU84K,wBAAwBlzN,IAAMo+H,OAAOuvM,aAE9D,GAAkB,aAAd90U,EAA0B,CAC5B,IAAItZ,OAAI,EAER,GAAIygB,EAAM,EACRzgB,EAAI,SACC,GAAIygB,EAAMutU,EACfhuV,EAAI,MACC,CAELA,EAAI,MADkB,IAANygB,EAAYutU,EAAmB,KAC3B,IAGtB,GAAIr5F,EAAI30P,IAAMA,EACZ,MAAO,CACLA,EAAGA,EACHhG,EAAG26P,EAAI36P,EACP9D,EAAGy+P,EAAIz+P,EACPsE,EAAGm6P,EAAIn6P,EACP/Z,OAAQ,WAGP,CACL,IAAIuwI,OAAK,EAET,GAAIzwG,EAAO,EACTywG,EAAK,OACA,GAAIzwG,EAAOwtU,EAChB/8N,EAAK,QACA,CAGLA,EAAK,KAFiB,IAAPzwG,EAAawtU,GAEN,IAGxB,GAAIp5F,EAAI30P,IAAMgxH,EACZ,MAAO,CACLhxH,EAAGgxH,EACHh3H,EAAG26P,EAAI36P,EACP9D,EAAGy+P,EAAIz+P,EACPsE,EAAGm6P,EAAIn6P,EACP/Z,OAAQ,OAKd,OAAO,MCrDL,EAAe,WACjB,SAASI,EAAiBR,EAAQqnL,GAChC,IAAK,IAAIpnL,EAAI,EAAGA,EAAIonL,EAAMlnL,OAAQF,IAAK,CACrC,IAAIqnL,EAAaD,EAAMpnL,GACvBqnL,EAAW1nL,WAAa0nL,EAAW1nL,aAAc,EACjD0nL,EAAWtlL,cAAe,EACtB,UAAWslL,IAAYA,EAAWvlL,UAAW,GACjDzC,OAAOmB,eAAeT,EAAQsnL,EAAWhnL,IAAKgnL,IAIlD,OAAO,SAAUH,EAAaK,EAAYC,GAGxC,OAFID,GAAYhnL,EAAiB2mL,EAAYvlL,UAAW4lL,GACpDC,GAAajnL,EAAiB2mL,EAAaM,GACxCN,GAdQ,GAkBnB,SAAS,EAAgBD,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIhmL,UAAU,qCAIxB,SAAS,EAA2BwC,EAAM1C,GACxC,IAAK0C,EACH,MAAM,IAAIsqL,eAAe,6DAG3B,OAAOhtL,GAAyB,kBAATA,GAAqC,oBAATA,EAA8B0C,EAAP1C,EAsBrE,IAsGQ,EAtGE,SAAU62G,GAGzB,SAASk4P,IACP,IAAI3+M,EAEAswL,EAAOv/N,EAEX,EAAgB1gH,KAAMsuW,GAEtB,IAAK,IAAI5kL,EAAOlrL,UAAUC,OAAQiqL,EAAO/kK,MAAM+lK,GAAO3tI,EAAO,EAAGA,EAAO2tI,EAAM3tI,IAC3E2sI,EAAK3sI,GAAQv9C,UAAUu9C,GAGzB,OAAekkS,EAASv/N,EAAQ,EAA2B1gH,MAAO2vJ,EAAQ2+M,EAAI/nW,WAAa3I,OAAOmC,eAAeuuW,IAAM/uW,KAAKnB,MAAMuxJ,EAAO,CAAC3vJ,MAAM0hB,OAAOgnK,KAAiBhoE,EAAMqpI,aAAe,SAAUhwO,GACrM,IAAIwnP,EAAS,EAAoBxnP,EAAG2mG,EAAMilE,MAAMpuJ,UAAWmpF,EAAMilE,MAAMitF,IAAKlyJ,EAAM5nC,WAClFyoL,GAA0C,oBAAzB7gJ,EAAMilE,MAAMwgE,UAA2BzlI,EAAMilE,MAAMwgE,SAASob,EAAQxnP,IACpF2mG,EAAMosP,gBAAkB,SAAU/yV,GACnC2mG,EAAMqpI,aAAahwO,GAEnB+iJ,OAAOz1F,iBAAiB,YAAaq5C,EAAMqpI,cAC3CjtF,OAAOz1F,iBAAiB,UAAWq5C,EAAMqsP,gBACxCrsP,EAAMqsP,cAAgB,WACvBrsP,EAAMssP,wBACG,EAA2BtsP,EAAnCu/N,GA4EL,OAvHF,SAAmBp5J,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIrnL,UAAU,kEAAoEqnL,GAG1FD,EAAS3mL,UAAYtC,OAAOuC,OAAO2mL,GAAcA,EAAW5mL,UAAW,CACrED,YAAa,CACXG,MAAOymL,EACP3oL,YAAY,EACZmC,UAAU,EACVC,cAAc,KAGdwmL,IAAYlpL,OAAO2C,eAAiB3C,OAAO2C,eAAesmL,EAAUC,GAAcD,EAAStgL,UAAYugL,GAO3G,CAAUwnL,EAAKl4P,GA0Bf,EAAak4P,EAAK,CAAC,CACjB1vW,IAAK,uBACLwB,MAAO,WACLJ,KAAKgtW,yBAEN,CACDpuW,IAAK,uBACLwB,MAAO,WACL08J,OAAO51F,oBAAoB,YAAalnE,KAAK+pP,cAC7CjtF,OAAO51F,oBAAoB,UAAWlnE,KAAK+sW,iBAE5C,CACDnuW,IAAK,SACLwB,MAAO,WACL,IAAIikB,EAASrkB,KAETuuW,EAAmBvuW,KAAK2lL,MAAMpuJ,UAC9BA,OAAiCp4B,IAArBovW,EAAiC,aAAeA,EAC5Dl2K,EAAS,IAAS,CACpB,QAAW,CACTxnJ,IAAK,CACH+7T,SAAU,kBACVF,aAAc1sW,KAAK2lL,MAAMh0J,OACzBg7U,UAAW3sW,KAAK2lL,MAAMzqH,QAExB4d,UAAW,CACTw1K,QAAS,QACTx6N,SAAU,WACVzR,OAAQ,OACRqqV,aAAc1sW,KAAK2lL,MAAMh0J,QAE3Bu7U,QAAS,CACPp5U,SAAU,WACV0K,KAAyB,IAAnBx+B,KAAK2lL,MAAMitF,IAAI30P,EAAU,IAAM,KAEvCkvV,OAAQ,CACNjpE,UAAW,MACX9hR,MAAO,MACPsqV,aAAc,MACdrqV,OAAQ,MACRsqV,UAAW,4BACXzoU,WAAY,OACZ8tE,UAAW,qBAGf,SAAY,CACVk7P,QAAS,CACP1uU,KAAM,MACNE,KAA0B,IAAnB1+B,KAAK2lL,MAAMitF,IAAI30P,EAAU,IAAO,IAAM,OAGhD,CACDmlO,SAAwB,aAAd7rN,IAEZ,OAAO,IAAMy6J,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOxnJ,KACb,IAAMmhJ,cAAc,MAAO,CAC5BqL,UAAW,OAAS9lK,EACpB0Y,MAAOooJ,EAAOv/G,UACdskH,IAAK,SAAatkH,GAChB,OAAOz0D,EAAOy0D,UAAYA,GAE5Bo1J,YAAaluO,KAAK8sW,gBAClBO,YAAartW,KAAK+pP,aAClBmH,aAAclxP,KAAK+pP,cAClB,IAAM/3D,cAAc,QAAS,KAAM,4qBAA6qB,IAAMA,cAAc,MAAO,CAC5uB/hJ,MAAOooJ,EAAO60K,SACbltW,KAAK2lL,MAAMunL,QAAU,IAAMl7K,cAAchyL,KAAK2lL,MAAMunL,QAASltW,KAAK2lL,OAAS,IAAMqM,cAAc,MAAO,CACvG/hJ,MAAOooJ,EAAO80K,gBAKbmB,EApGQ,CAqGf,iBAAiB,a,iBC5IJ,MALf,WACEtuW,KAAKwrR,SAAW,GAChBxrR,KAAK2yB,KAAO,GC2BC,MAJf,SAAYvyB,EAAO+2K,GACjB,OAAO/2K,IAAU+2K,GAAS/2K,IAAUA,GAAS+2K,IAAUA,GCX1C,MAZf,SAAsBjjK,EAAOtV,GAG3B,IAFA,IAAIH,EAASyV,EAAMzV,OAEZA,KACL,GAAI,EAAGyV,EAAMzV,GAAQ,GAAIG,GACvB,OAAOH,EAIX,OAAQ,GCbNuV,EAHa2P,MAAMzjB,UAGC8T,OA+BT,MApBf,SAAyBpV,GACvB,IAAImkB,EAAO/iB,KAAKwrR,SACZz3Q,EAAQ,EAAagP,EAAMnkB,GAE/B,QAAImV,EAAQ,KAMRA,GAFYgP,EAAKtkB,OAAS,EAG5BskB,EAAKlc,MAELmN,EAAOzU,KAAKwjB,EAAMhP,EAAO,KAGzB/T,KAAK2yB,MACA,ICjBM,MANf,SAAsB/zB,GACpB,IAAImkB,EAAO/iB,KAAKwrR,SACZz3Q,EAAQ,EAAagP,EAAMnkB,GAC/B,OAAOmV,EAAQ,OAAI5U,EAAY4jB,EAAKhP,GAAO,ICC9B,MAJf,SAAsBnV,GACpB,OAAO,EAAaoB,KAAKwrR,SAAU5sR,IAAQ,GCc9B,MAdf,SAAsBA,EAAKwB,GACzB,IAAI2iB,EAAO/iB,KAAKwrR,SACZz3Q,EAAQ,EAAagP,EAAMnkB,GAS/B,OAPImV,EAAQ,KACR/T,KAAK2yB,KACP5P,EAAK5kB,KAAK,CAACS,EAAKwB,KAEhB2iB,EAAKhP,GAAO,GAAK3T,EAGZJ,MCVT,SAASmrR,EAAUn2C,GACjB,IAAIjhO,GAAS,EACTtV,EAAoB,MAAXu2O,EAAkB,EAAIA,EAAQv2O,OAG3C,IAFAuB,KAAK4nD,UAEI7zC,EAAQtV,GAAQ,CACvB,IAAI4G,EAAQ2vO,EAAQjhO,GACpB/T,KAAKJ,IAAIyF,EAAM,GAAIA,EAAM,KAK7B8lR,EAAUjrR,UAAU0nD,MAAQ,EAC5BujO,EAAUjrR,UAAkB,OAAI,EAChCirR,EAAUjrR,UAAUP,IAAM,EAC1BwrR,EAAUjrR,UAAUR,IAAM,EAC1ByrR,EAAUjrR,UAAUN,IAAM,EACX,QChBA,MALf,WACEI,KAAKwrR,SAAW,IAAI,EACpBxrR,KAAK2yB,KAAO,GCKC,MAPf,SAAqB/zB,GACnB,IAAImkB,EAAO/iB,KAAKwrR,SACZ/mR,EAASse,EAAa,OAAEnkB,GAE5B,OADAoB,KAAK2yB,KAAO5P,EAAK4P,KACVluB,GCAM,MAJf,SAAkB7F,GAChB,OAAOoB,KAAKwrR,SAAS7rR,IAAIf,ICGZ,MAJf,SAAkBA,GAChB,OAAOoB,KAAKwrR,SAAS9rR,IAAId,I,QCNZ,EADF,IAAKwC,OCAd08R,EAAclgS,OAAOsC,UAGrB,EAAiB49R,EAAYl9R,eAO7BkqV,EAAuBhtD,EAAYx+R,SAGnComQ,EAAiB,EAAS,EAAOhkQ,iBAAcvC,EA+BpC,MAtBf,SAAmBiB,GACjB,IAAIg5R,EAAQ,EAAe75R,KAAKa,EAAOslQ,GACnC/0E,EAAMvwL,EAAMslQ,GAEhB,IACEtlQ,EAAMslQ,QAAkBvmQ,EACxB,IAAIqwV,GAAW,EACf,MAAOz1U,IAET,IAAItV,EAASqmV,EAAqBvrV,KAAKa,GAUvC,OARIovV,IACEp2D,EACFh5R,EAAMslQ,GAAkB/0E,SAEjBvwL,EAAMslQ,IAIVjhQ,GCpCL,EAPc7G,OAAOsC,UAOcZ,SAaxB,MAJf,SAAwBc,GACtB,OAAO,EAAqBb,KAAKa,ICT/B,EAAiB,EAAS,EAAOsB,iBAAcvC,EAiBpC,MARf,SAAoBiB,GAClB,OAAa,MAATA,OACejB,IAAViB,EAdQ,qBADL,gBAkBL,GAAkB,KAAkBxC,OAAOwC,GAAS,EAAUA,GAAS,EAAeA,ICOhF,OALf,SAAkBA,GAChB,IAAIoD,SAAcpD,EAClB,OAAgB,MAATA,IAA0B,UAARoD,GAA4B,YAARA,ICUhC,OAXf,SAAoBpD,GAClB,IAAK,GAASA,GACZ,OAAO,EAKT,IAAIuwL,EAAM,EAAWvwL,GACrB,MA7BY,qBA6BLuwL,GA5BI,8BA4BcA,GA9BZ,0BA8B6BA,GA3B7B,kBA2BgDA,GC9BhD,GADE,IAAK,sBCAlBurJ,GAAa,WACf,IAAIx6I,EAAM,SAASrxJ,KAAK,IAAc,GAAW1yC,MAAQ,GAAWA,KAAKm+P,UAAY,IACrF,OAAOp6D,EAAM,iBAAmBA,EAAM,GAFvB,GAiBF,OAJf,SAAkBkX,GAChB,QAASsjI,IAAcA,MAActjI,GCbnC46G,GAHYn0T,SAASa,UAGIZ,SAuBd,OAdf,SAAkBs5M,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAO46G,GAAaj0T,KAAKq5M,GACzB,MAAO7+L,IAET,IACE,OAAO6+L,EAAO,GACd,MAAO7+L,KAGX,MAAO,ICZLohU,GAAe,8BAGf,GAAY97U,SAASa,UACrB,GAActC,OAAOsC,UAGrB,GAAe,GAAUZ,SAGzB,GAAiB,GAAYsB,eAG7Bu7U,GAAal1K,OAAO,IAAM,GAAa1nK,KAAK,IAAgBu8E,QAhB7C,sBAgBmE,QAAQA,QAAQ,yDAA0D,SAAW,KAmB5J,OATf,SAAsB17E,GACpB,SAAK,GAASA,IAAU,GAASA,MAInB,GAAWA,GAAS+7U,GAAahB,IAChCn5T,KAAK,GAAS5hB,KC7BhB,OAJf,SAAkB3C,EAAQmB,GACxB,OAAiB,MAAVnB,OAAiB0B,EAAY1B,EAAOmB,ICO9B,OALf,SAAmBnB,EAAQmB,GACzB,IAAIwB,EAAQ,GAAS3C,EAAQmB,GAC7B,OAAO,GAAawB,GAASA,OAAQjB,GCRxB,GADL,GAAU,IAAM,OCAX,GADI,GAAUvB,OAAQ,UCWtB,OALf,WACEoC,KAAKwrR,SAAW,GAAe,GAAa,MAAQ,GACpDxrR,KAAK2yB,KAAO,GCKC,OANf,SAAoB/zB,GAClB,IAAI6F,EAASzE,KAAKN,IAAId,WAAeoB,KAAKwrR,SAAS5sR,GAEnD,OADAoB,KAAK2yB,MAAQluB,EAAS,EAAI,EACnBA,GCJL,GAHc7G,OAAOsC,UAGQU,eAsBlB,OAXf,SAAiBhC,GACf,IAAImkB,EAAO/iB,KAAKwrR,SAEhB,GAAI,GAAc,CAChB,IAAI/mR,EAASse,EAAKnkB,GAClB,MAtBiB,8BAsBV6F,OAA4BtF,EAAYsF,EAGjD,OAAO,GAAelF,KAAKwjB,EAAMnkB,GAAOmkB,EAAKnkB,QAAOO,GCtBlD,GAHcvB,OAAOsC,UAGQU,eAgBlB,OALf,SAAiBhC,GACf,IAAImkB,EAAO/iB,KAAKwrR,SAChB,OAAO,QAA6BrsR,IAAd4jB,EAAKnkB,GAAqB,GAAeW,KAAKwjB,EAAMnkB,ICG7D,OAPf,SAAiBA,EAAKwB,GACpB,IAAI2iB,EAAO/iB,KAAKwrR,SAGhB,OAFAxrR,KAAK2yB,MAAQ3yB,KAAKN,IAAId,GAAO,EAAI,EACjCmkB,EAAKnkB,GAAO,SAA0BO,IAAViB,EAfT,4BAegDA,EAC5DJ,MCNT,SAASw8U,GAAKxnG,GACZ,IAAIjhO,GAAS,EACTtV,EAAoB,MAAXu2O,EAAkB,EAAIA,EAAQv2O,OAG3C,IAFAuB,KAAK4nD,UAEI7zC,EAAQtV,GAAQ,CACvB,IAAI4G,EAAQ2vO,EAAQjhO,GACpB/T,KAAKJ,IAAIyF,EAAM,GAAIA,EAAM,KAK7Bm3U,GAAKt8U,UAAU0nD,MAAQ,GACvB40R,GAAKt8U,UAAkB,OAAI,GAC3Bs8U,GAAKt8U,UAAUP,IAAM,GACrB68U,GAAKt8U,UAAUR,IAAM,GACrB88U,GAAKt8U,UAAUN,IAAM,GACN,UCVA,OATf,WACEI,KAAK2yB,KAAO,EACZ3yB,KAAKwrR,SAAW,CACd,KAAQ,IAAI,GACZ,IAAO,IAAK,IAAO,GACnB,OAAU,IAAI,KCJH,OALf,SAAmBprR,GACjB,IAAIoD,SAAcpD,EAClB,MAAe,UAARoD,GAA4B,UAARA,GAA4B,UAARA,GAA4B,WAARA,EAA8B,cAAVpD,EAAkC,OAAVA,GCMlG,OALf,SAAoBqsC,EAAK7tC,GACvB,IAAImkB,EAAO0pB,EAAI++O,SACf,OAAO,GAAU5sR,GAAOmkB,EAAmB,iBAAPnkB,EAAkB,SAAW,QAAUmkB,EAAK0pB,KCKnE,OANf,SAAwB7tC,GACtB,IAAI6F,EAAS,GAAWzE,KAAMpB,GAAa,OAAEA,GAE7C,OADAoB,KAAK2yB,MAAQluB,EAAS,EAAI,EACnBA,GCCM,OAJf,SAAqB7F,GACnB,OAAO,GAAWoB,KAAMpB,GAAKe,IAAIf,ICGpB,OAJf,SAAqBA,GACnB,OAAO,GAAWoB,KAAMpB,GAAKc,IAAId,ICQpB,OARf,SAAqBA,EAAKwB,GACxB,IAAI2iB,EAAO,GAAW/iB,KAAMpB,GACxB+zB,EAAO5P,EAAK4P,KAGhB,OAFA5P,EAAKnjB,IAAIhB,EAAKwB,GACdJ,KAAK2yB,MAAQ5P,EAAK4P,MAAQA,EAAO,EAAI,EAC9B3yB,MCJT,SAAS4+R,GAAS5pD,GAChB,IAAIjhO,GAAS,EACTtV,EAAoB,MAAXu2O,EAAkB,EAAIA,EAAQv2O,OAG3C,IAFAuB,KAAK4nD,UAEI7zC,EAAQtV,GAAQ,CACvB,IAAI4G,EAAQ2vO,EAAQjhO,GACpB/T,KAAKJ,IAAIyF,EAAM,GAAIA,EAAM,KAK7Bu5R,GAAS1+R,UAAU0nD,MAAQ,GAC3Bg3O,GAAS1+R,UAAkB,OAAI,GAC/B0+R,GAAS1+R,UAAUP,IAAM,GACzBi/R,GAAS1+R,UAAUR,IAAM,GACzBk/R,GAAS1+R,UAAUN,IAAM,GACV,UCOA,OApBf,SAAkBhB,EAAKwB,GACrB,IAAI2iB,EAAO/iB,KAAKwrR,SAEhB,GAAIzoQ,aAAgB,EAAW,CAC7B,IAAIm7T,EAAQn7T,EAAKyoQ,SAEjB,IAAK,IAAO0yD,EAAMz/U,OAAS0/U,IAGzB,OAFAD,EAAM//U,KAAK,CAACS,EAAKwB,IACjBJ,KAAK2yB,OAAS5P,EAAK4P,KACZ3yB,KAGT+iB,EAAO/iB,KAAKwrR,SAAW,IAAI,GAAS0yD,GAKtC,OAFAn7T,EAAKnjB,IAAIhB,EAAKwB,GACdJ,KAAK2yB,KAAO5P,EAAK4P,KACV3yB,MCpBT,SAASs+R,GAAMtpD,GACb,IAAIjyN,EAAO/iB,KAAKwrR,SAAW,IAAI,EAAUx2C,GACzCh1O,KAAK2yB,KAAO5P,EAAK4P,KAInB2rQ,GAAMp+R,UAAU0nD,MAAQ,EACxB02O,GAAMp+R,UAAkB,OAAI,EAC5Bo+R,GAAMp+R,UAAUP,IAAM,EACtB2+R,GAAMp+R,UAAUR,IAAM,EACtB4+R,GAAMp+R,UAAUN,IAAM,GACP,UCfA,GARM,WACnB,IACE,IAAIg5M,EAAO,GAAUh7M,OAAQ,kBAE7B,OADAg7M,EAAK,GAAI,GAAI,IACNA,EACP,MAAO7+L,KALU,GCsBN,OAbf,SAAyBtc,EAAQmB,EAAKwB,GACzB,aAAPxB,GAAsB,GACxB,GAAenB,EAAQmB,EAAK,CAC1B,cAAgB,EAChB,YAAc,EACd,MAASwB,EACT,UAAY,IAGd3C,EAAOmB,GAAOwB,GCFH,OANf,SAA0B3C,EAAQmB,EAAKwB,SACvBjB,IAAViB,IAAwB,EAAG3C,EAAOmB,GAAMwB,SAAoBjB,IAAViB,KAAyBxB,KAAOnB,KACpF,GAAgBA,EAAQmB,EAAKwB,ICYlB,ICZA,GDPf,SAAuB2oV,GACrB,OAAO,SAAUtrV,EAAQggS,EAAUo3B,GAMjC,IALA,IAAI9gT,GAAS,EACTjO,EAAWlI,OAAOH,GAClBkoL,EAAQkvI,EAASp3T,GACjBgB,EAASknL,EAAMlnL,OAEZA,KAAU,CACf,IAAIG,EAAM+mL,EAAMojK,EAAYtqV,IAAWsV,GAEvC,IAA+C,IAA3C0pR,EAAS33R,EAASlH,GAAMA,EAAKkH,GAC/B,MAIJ,OAAOrI,GCTG,G,UCTC,GADE,IAAK6Y,WCYP,OANf,SAA0B45I,GACxB,IAAIzrJ,EAAS,IAAIyrJ,EAAYjwJ,YAAYiwJ,EAAYL,YAErD,OADA,IAAI,GAAWprJ,GAAQ7E,IAAI,IAAI,GAAWswJ,IACnCzrJ,GCGM,OALf,SAAyB0zJ,EAAYu1K,GACnC,IAAIxtT,EAASwtT,EAAS,GAAiBv1K,EAAWj4I,QAAUi4I,EAAWj4I,OACvE,OAAO,IAAIi4I,EAAWl4J,YAAYigB,EAAQi4I,EAAWsnG,WAAYtnG,EAAW15J,SCQ/D,OAZf,SAAmBC,EAAQwV,GACzB,IAAIH,GAAS,EACTtV,EAASC,EAAOD,OAGpB,IAFAyV,IAAUA,EAAQyP,MAAMllB,MAEfsV,EAAQtV,GACfyV,EAAMH,GAASrV,EAAOqV,GAGxB,OAAOG,GCdLkoU,GAAex+U,OAAOuC,OA6BX,GAnBE,WACf,SAAS1C,KAET,OAAO,SAAU6lQ,GACf,IAAK,GAASA,GACZ,MAAO,GAGT,GAAI84E,GACF,OAAOA,GAAa94E,GAGtB7lQ,EAAOyC,UAAYojQ,EACnB,IAAI7+P,EAAS,IAAIhH,EAEjB,OADAA,EAAOyC,eAAYf,EACZsF,GAfM,GCCF,OANf,SAAiBm0M,EAAM5mG,GACrB,OAAO,SAAUrvG,GACf,OAAOi2M,EAAK5mG,EAAUrvG,MCNX,GADI,GAAQ/E,OAAOmC,eAAgBnC,QCF9C,GAAcA,OAAOsC,UAeV,OANf,SAAqBE,GACnB,IAAI6rR,EAAO7rR,GAASA,EAAMH,YAE1B,OAAOG,KADoB,mBAAR6rR,GAAsBA,EAAK/rR,WAAa,KCG9C,OAJf,SAAyBzC,GACvB,MAAoC,mBAAtBA,EAAOwC,aAA8B,GAAYxC,GAA6C,GAAnC,GAAW,GAAaA,KCgBpF,OAJf,SAAsB2C,GACpB,OAAgB,MAATA,GAAiC,iBAATA,GCRlB,OAJf,SAAyBA,GACvB,OAAO,GAAaA,IAVR,sBAUkB,EAAWA,ICVvC,GAAcxC,OAAOsC,UAGrB,GAAiB,GAAYU,eAG7BylL,GAAuB,GAAYA,qBAyBxB,GALG,GAAgB,WAChC,OAAO7nL,UADyB,IAE3B,GAAkB,SAAU4B,GACjC,OAAO,GAAaA,IAAU,GAAeb,KAAKa,EAAO,YAAcimL,GAAqB9mL,KAAKa,EAAO,WCT3F,GADDujB,MAAMC,QCUL,OAJf,SAAkBxjB,GAChB,MAAuB,iBAATA,GAAqBA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA7B9C,kBC+BR,OAJf,SAAqBA,GACnB,OAAgB,MAATA,GAAiB,GAASA,EAAM3B,UAAY,GAAW2B,ICGjD,OAJf,SAA2BA,GACzB,OAAO,GAAaA,IAAU,GAAYA,I,UCrBxC,GAAYf,SAASa,UACrB,GAActC,OAAOsC,UAGrB,GAAe,GAAUZ,SAGzB,GAAiB,GAAYsB,eAG7BmqV,GAAmB,GAAaxrV,KAAK3B,QA6C1B,OAff,SAAuBwC,GACrB,IAAK,GAAaA,IA5CJ,mBA4Cc,EAAWA,GACrC,OAAO,EAGT,IAAIkjQ,EAAQ,GAAaljQ,GAEzB,GAAc,OAAVkjQ,EACF,OAAO,EAGT,IAAI2oB,EAAO,GAAe1sR,KAAK+jQ,EAAO,gBAAkBA,EAAMrjQ,YAC9D,MAAsB,mBAARgsR,GAAsBA,aAAgBA,GAAQ,GAAa1sR,KAAK0sR,IAAS8+D,IC7BrFzD,GAAiB,GACrBA,GAZiB,yBAYYA,GAXZ,yBAWyCA,GAV5C,sBAUsEA,GATrE,uBASgGA,GARhG,uBAQ2HA,GAP3H,uBAOsJA,GAN/I,8BAMiLA,GALvL,wBAKmNA,GAJnN,yBAI+O,EAC/PA,GA5Bc,sBA4BYA,GA3BX,kBA2BsCA,GAfhC,wBAeiEA,GA1BxE,oBA0BkGA,GAd9F,qBAc4HA,GAzBhI,iBAyB0JA,GAxBzJ,kBAwBoLA,GAvBrL,qBAuB+MA,GAtBhN,gBAsByOA,GArBtO,mBAqBkQA,GApBlQ,mBAoB8RA,GAnB9R,mBAmB0TA,GAlB7T,gBAkBsVA,GAjBnV,mBAiB+WA,GAhB9W,qBAgB2Y,EAa7Y,OAJf,SAA0BlnV,GACxB,OAAO,GAAaA,IAAU,GAASA,EAAM3B,WAAa6oV,GAAe,EAAWlnV,KC9BvE,OANf,SAAmBw4M,GACjB,OAAO,SAAUx4M,GACf,OAAOw4M,EAAKx4M,K,UCJZmzT,GAAmB,MAAY,KAASz0K,aAoB7B,GADIy0K,GAAmB,GAAUA,IAAoB,GCJrD,OAZf,SAAiB91T,EAAQmB,GACvB,IAAY,gBAARA,GAAgD,oBAAhBnB,EAAOmB,KAIhC,aAAPA,EAIJ,OAAOnB,EAAOmB,ICVZ,GAHchB,OAAOsC,UAGQU,eAoBlB,OARf,SAAqBnD,EAAQmB,EAAKwB,GAChC,IAAI+0T,EAAW13T,EAAOmB,GAEhB,GAAeW,KAAK9B,EAAQmB,IAAQ,EAAGu2T,EAAU/0T,UAAqBjB,IAAViB,GAAyBxB,KAAOnB,IAChG,GAAgBA,EAAQmB,EAAKwB,ICclB,OAxBf,SAAoB1B,EAAQinL,EAAOloL,EAAQ2uR,GACzC,IAAIC,GAAS5uR,EACbA,IAAWA,EAAS,IAIpB,IAHA,IAAIsW,GAAS,EACTtV,EAASknL,EAAMlnL,SAEVsV,EAAQtV,GAAQ,CACvB,IAAIG,EAAM+mL,EAAM5xK,GACZg3B,EAAWqhP,EAAaA,EAAW3uR,EAAOmB,GAAMF,EAAOE,GAAMA,EAAKnB,EAAQiB,QAAUS,OAEvEA,IAAb4rC,IACFA,EAAWrsC,EAAOE,IAGhBytR,EACF,GAAgB5uR,EAAQmB,EAAKmsC,GAE7B,GAAYttC,EAAQmB,EAAKmsC,GAI7B,OAAOttC,GCdM,OAXf,SAAmB4X,EAAGooR,GAIpB,IAHA,IAAI1pR,GAAS,EACTtP,EAASkf,MAAMtO,KAEVtB,EAAQsB,GACf5Q,EAAOsP,GAAS0pR,EAAS1pR,GAG3B,OAAOtP,GCbL2uT,GAAW,mBAgBA,OANf,SAAiBhzT,EAAO3B,GACtB,IAAI+E,SAAcpD,EAElB,SADA3B,EAAmB,MAAVA,EAfY,iBAewBA,KACjB,UAAR+E,GAA4B,UAARA,GAAoB4vT,GAASpxS,KAAK5hB,KAAWA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQ3B,GCN3H,GAHcb,OAAOsC,UAGQU,eAgClB,OAtBf,SAAuBR,EAAOyyT,GAC5B,IAAIC,EAAQ,GAAQ1yT,GAChB2yT,GAASD,GAAS,GAAY1yT,GAC9B4yT,GAAUF,IAAUC,GAAS,OAAA5sF,GAAA,GAAS/lO,GACtC6yT,GAAUH,IAAUC,IAAUC,GAAU,GAAa5yT,GACrD8yT,EAAcJ,GAASC,GAASC,GAAUC,EAC1CxuT,EAASyuT,EAAc,GAAU9yT,EAAM3B,OAAQw/C,QAAU,GACzDx/C,EAASgG,EAAOhG,OAEpB,IAAK,IAAIG,KAAOwB,GACTyyT,IAAa,GAAetzT,KAAKa,EAAOxB,IAAWs0T,IACjD,UAAPt0T,GACAo0T,IAAkB,UAAPp0T,GAA0B,UAAPA,IAC9Bq0T,IAAkB,UAAPr0T,GAA0B,cAAPA,GAA8B,cAAPA,IACrD,GAAQA,EAAKH,KACXgG,EAAOtG,KAAKS,GAIhB,OAAO6F,GCnBM,OAZf,SAAsBhH,GACpB,IAAIgH,EAAS,GAEb,GAAc,MAAVhH,EACF,IAAK,IAAImB,KAAOhB,OAAOH,GACrBgH,EAAOtG,KAAKS,GAIhB,OAAO6F,GCVL,GAHc7G,OAAOsC,UAGQU,eA0BlB,OAjBf,SAAoBnD,GAClB,IAAK,GAASA,GACZ,OAAO,GAAaA,GAGtB,IAAIm0V,EAAU,GAAYn0V,GACtBgH,EAAS,GAEb,IAAK,IAAI7F,KAAOnB,GACD,eAAPmB,IAAyBgzV,GAAY,GAAeryV,KAAK9B,EAAQmB,KACrE6F,EAAOtG,KAAKS,GAIhB,OAAO6F,GCAM,OAJf,SAAgBhH,GACd,OAAO,GAAYA,GAAU,GAAcA,GAAQ,GAAQ,GAAWA,ICGzD,OAJf,SAAuB2C,GACrB,OAAO,GAAWA,EAAO,GAAOA,KC2DnB,OAxDf,SAAuB3C,EAAQiB,EAAQE,EAAKwzV,EAAUC,EAAWjmE,EAAYwnC,GAC3E,IAAIuB,EAAW,GAAQ13T,EAAQmB,GAC3Bm2T,EAAW,GAAQr2T,EAAQE,GAC3Bi/U,EAAUjqB,EAAMj0T,IAAIo1T,GAExB,GAAI8oB,EACF,GAAiBpgV,EAAQmB,EAAKi/U,OADhC,CAKA,IAAI9yS,EAAWqhP,EAAaA,EAAW+oC,EAAUJ,EAAUn2T,EAAM,GAAInB,EAAQiB,EAAQk1T,QAASz0T,EAC1FkvV,OAAwBlvV,IAAb4rC,EAEf,GAAIsjT,EAAU,CACZ,IAAIv7B,EAAQ,GAAQiC,GAChB/B,GAAUF,GAAS,OAAA3sF,GAAA,GAAS4uF,GAC5Bw9B,GAAWz/B,IAAUE,GAAU,GAAa+B,GAChDhqR,EAAWgqR,EAEPjC,GAASE,GAAUu/B,EACjB,GAAQp9B,GACVpqR,EAAWoqR,EACF,GAAkBA,GAC3BpqR,EAAW,GAAUoqR,GACZnC,GACTq7B,GAAW,EACXtjT,EAAW,aAAYgqR,GAAU,IACxBw9B,GACTlE,GAAW,EACXtjT,EAAW,GAAgBgqR,GAAU,IAErChqR,EAAW,GAEJ,GAAcgqR,IAAa,GAAYA,IAChDhqR,EAAWoqR,EAEP,GAAYA,GACdpqR,EAAW,GAAcoqR,GACf,GAASA,KAAa,GAAWA,KAC3CpqR,EAAW,GAAgBgqR,KAG7Bs5B,GAAW,EAIXA,IAEFz6B,EAAMh0T,IAAIm1T,EAAUhqR,GACpBsnT,EAAUtnT,EAAUgqR,EAAUq9B,EAAUhmE,EAAYwnC,GACpDA,EAAc,OAAEmB,IAGlB,GAAiBt3T,EAAQmB,EAAKmsC,KC3CjB,OAtBf,SAASonT,EAAU10V,EAAQiB,EAAQ0zV,EAAUhmE,EAAYwnC,GACnDn2T,IAAWiB,GAIf,GAAQA,GAAQ,SAAUq2T,EAAUn2T,GAGlC,GAFAg1T,IAAUA,EAAQ,IAAI,IAElB,GAASmB,GACX,GAAct3T,EAAQiB,EAAQE,EAAKwzV,EAAUD,EAAW/lE,EAAYwnC,OAC/D,CACL,IAAI7oR,EAAWqhP,EAAaA,EAAW,GAAQ3uR,EAAQmB,GAAMm2T,EAAUn2T,EAAM,GAAInB,EAAQiB,EAAQk1T,QAASz0T,OAEzFA,IAAb4rC,IACFA,EAAWgqR,GAGb,GAAiBt3T,EAAQmB,EAAKmsC,MAE/B,KClBU,OAJf,SAAkB3qC,GAChB,OAAOA,GCWM,OAlBf,SAAew4M,EAAMyuB,EAAS3+C,GAC5B,OAAQA,EAAKjqL,QACX,KAAK,EACH,OAAOm6M,EAAKr5M,KAAK8nO,GAEnB,KAAK,EACH,OAAOzuB,EAAKr5M,KAAK8nO,EAAS3+C,EAAK,IAEjC,KAAK,EACH,OAAOkwB,EAAKr5M,KAAK8nO,EAAS3+C,EAAK,GAAIA,EAAK,IAE1C,KAAK,EACH,OAAOkwB,EAAKr5M,KAAK8nO,EAAS3+C,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAGrD,OAAOkwB,EAAKx6M,MAAMipO,EAAS3+C,ICtBzB0pJ,GAAY79T,KAAKY,IAmCN,OAxBf,SAAkByjM,EAAM3hK,EAAO+6D,GAE7B,OADA/6D,EAAQm7R,QAAoBjzU,IAAV83C,EAAsB2hK,EAAKn6M,OAAS,EAAIw4C,EAAO,GAC1D,WAML,IALA,IAAIyxI,EAAOlqL,UACPuV,GAAS,EACTtV,EAAS2zU,GAAU1pJ,EAAKjqL,OAASw4C,EAAO,GACxC/iC,EAAQyP,MAAMllB,KAETsV,EAAQtV,GACfyV,EAAMH,GAAS20K,EAAKzxI,EAAQljC,GAG9BA,GAAS,EAGT,IAFA,IAAImoV,EAAYv4U,MAAMszB,EAAQ,KAErBljC,EAAQkjC,GACfilT,EAAUnoV,GAAS20K,EAAK30K,GAI1B,OADAmoV,EAAUjlT,GAAS+6D,EAAU99F,GACtB,GAAM0kM,EAAM54M,KAAMk8V,KCTd,OANf,SAAkB97V,GAChB,OAAO,WACL,OAAOA,ICDI,GARQ,GAA4B,SAAUw4M,EAAMzoK,GACjE,OAAO,GAAeyoK,EAAM,WAAY,CACtC,cAAgB,EAChB,YAAc,EACd,MAAS,GAASzoK,GAClB,UAAY,KALwB,GCPpCu7S,GAAYnsL,KAAKL,IA+BN,ICxBA,GDIf,SAAkB05C,GAChB,IAAIhuL,EAAQ,EACR4xU,EAAa,EACjB,OAAO,WACL,IAAIC,EAAQ/Q,KACRgR,EAnBO,IAmBiBD,EAAQD,GAGpC,GAFAA,EAAaC,EAETC,EAAY,GACd,KAAM9xU,GAxBI,IAyBR,OAAOpsB,UAAU,QAGnBosB,EAAQ,EAGV,OAAOguL,EAAKx6M,WAAMe,EAAWX,YCrBf,CAAS,ICKZ,OAJf,SAAkBo6M,EAAM3hK,GACtB,OAAO,GAAY,GAAS2hK,EAAM3hK,EAAO,IAAW2hK,EAAO,KCgB9C,OAdf,SAAwBx4M,EAAO2T,EAAOtW,GACpC,IAAK,GAASA,GACZ,OAAO,EAGT,IAAI+F,SAAcuQ,EAElB,SAAY,UAARvQ,EAAmB,GAAY/F,IAAW,GAAQsW,EAAOtW,EAAOgB,QAAkB,UAAR+E,GAAoBuQ,KAAStW,IAClG,EAAGA,EAAOsW,GAAQ3T,ICcd,ICAA,GD3Bf,SAAwBw3V,GACtB,OAAO,IAAS,SAAUn6V,EAAQimQ,GAChC,IAAI3vP,GAAS,EACTtV,EAASilQ,EAAQjlQ,OACjB2tR,EAAa3tR,EAAS,EAAIilQ,EAAQjlQ,EAAS,QAAKU,EAChD04V,EAAQp5V,EAAS,EAAIilQ,EAAQ,QAAKvkQ,EAUtC,IATAitR,EAAawrE,EAASn5V,OAAS,GAA0B,mBAAd2tR,GAA4B3tR,IAAU2tR,QAAcjtR,EAE3F04V,GAAS,GAAen0F,EAAQ,GAAIA,EAAQ,GAAIm0F,KAClDzrE,EAAa3tR,EAAS,OAAIU,EAAYitR,EACtC3tR,EAAS,GAGXhB,EAASG,OAAOH,KAEPsW,EAAQtV,GAAQ,CACvB,IAAIC,EAASglQ,EAAQ3vP,GAEjBrV,GACFk5V,EAASn6V,EAAQiB,EAAQqV,EAAOq4Q,GAIpC,OAAO3uR,KCCC,EAAe,SAAUA,EAAQiB,EAAQ0zV,GACnD,GAAU30V,EAAQiB,EAAQ0zV,MC/BjB,GAAS,SAAgBh8O,GAClC,IAAIo4P,EAASp4P,EAAKo4P,OACd78U,EAASykF,EAAKzkF,OACduS,EAAakyE,EAAKlyE,WAClBnQ,EAAWqiF,EAAKriF,SAChB06U,EAAcr4P,EAAKiiF,OACnBq2K,OAA+BvvW,IAAhBsvW,EAA4B,GAAKA,EAChDp2K,EAAS,IAAS,GAAM,CAC1B,QAAW,CACTv2L,KAAM,CACJgyB,SAAU,WACVorF,QAAS,gBAEXiqG,QAAS,CACPr1L,SAAU,YAEZ66U,GAAI,CACF/B,SAAU,kBACVD,UAAW,KAAO6B,EAAS,MAAiB,EAATA,EAAa,qBAChD9B,aAAc/6U,EACduS,WAAYA,IAGhB,WAAY,CACVyqU,GAAI,CACFhC,UAAW,SAGf,WAAY,CACVgC,GAAI,CACFhC,UAAW,0DAGf,WAAY,CACVgC,GAAI,CACFhC,UAAW,0DAGf,WAAY,CACVgC,GAAI,CACFhC,UAAW,6DAGf,WAAY,CACVgC,GAAI,CACFhC,UAAW,6DAGf,WAAY,CACVgC,GAAI,CACFhC,UAAW,4DAGf,OAAU,CACRgC,GAAI,CACFjC,aAAc,MAGlB,OAAU,CACRiC,GAAI,CACFjC,aAAc,SAGjBgC,GAAe,CAChB,WAAuB,IAAXF,IAEd,OAAO,IAAMx8K,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOv2L,MACb,IAAMkwL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOs2K,KACZ,IAAM38K,cAAc,MAAO,CAC7B/hJ,MAAOooJ,EAAO8wB,SACbp1L,KAEL,GAAOimK,UAAY,CACjB91J,WAAY,IAAUiM,OACtBq+T,OAAQ,IAAUI,MAAM,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IACxCj9U,OAAQ,IAAU6pO,OAClBnjE,OAAQ,IAAU56L,QAEpB,GAAO87L,aAAe,CACpBr1J,WAAY,OACZsqU,OAAQ,EACR78U,OAAQ,EACR0mK,OAAQ,IAEK,UCpEA,GAJL,WACR,OAAO,IAAK94B,KAAKL,OClBf4lL,GAAe,KAkBJ,OARf,SAAyB30S,GAGvB,IAFA,IAAIp8B,EAAQo8B,EAAO1xC,OAEZsV,KAAW+wU,GAAa9iU,KAAKmuB,EAAOnpC,OAAO+M,MAElD,OAAOA,GCbL8wU,GAAc,OAaH,OAJf,SAAkB10S,GAChB,OAAOA,EAASA,EAAOlpC,MAAM,EAAG,GAAgBkpC,GAAU,GAAG2rC,QAAQ+oQ,GAAa,IAAM10S,GCc3E,OAJf,SAAkB/vC,GAChB,MAAuB,iBAATA,GAAqB,GAAaA,IApBlC,mBAoB4C,EAAWA,IChBnE4xU,GAAa,qBAGbC,GAAa,aAGbC,GAAY,cAGZC,GAAe5hS,SAgDJ,OAvBf,SAAkBnwC,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAGT,GAAI,GAASA,GACX,OA3CM,IA8CR,GAAI,GAASA,GAAQ,CACnB,IAAI+2K,EAAgC,mBAAjB/2K,EAAM4vS,QAAwB5vS,EAAM4vS,UAAY5vS,EACnEA,EAAQ,GAAS+2K,GAASA,EAAQ,GAAKA,EAGzC,GAAoB,iBAAT/2K,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAGhCA,EAAQ,GAASA,GACjB,IAAImyU,EAAWN,GAAWjwT,KAAK5hB,GAC/B,OAAOmyU,GAAYL,GAAUlwT,KAAK5hB,GAAS+xU,GAAa/xU,EAAM6G,MAAM,GAAIsrU,EAAW,EAAI,GAAKP,GAAWhwT,KAAK5hB,GAzDpG,KAyDoHA,GCtD1H,GAAYmU,KAAKY,IACjBk9T,GAAY99T,KAAKW,IAuLN,OA/Hf,SAAkB0jM,EAAM45H,EAAMnqT,GAC5B,IAAIonR,EACAF,EACA6qB,EACA31T,EACAguU,EACAC,EACAC,EAAiB,EACjBnY,GAAU,EACVoY,GAAS,EACTnY,GAAW,EAEf,GAAmB,mBAAR7hH,EACT,MAAM,IAAIn5M,UAzEQ,uBAqFpB,SAASozU,EAAWloR,GAClB,IAAI+9H,EAAO+mH,EACPpoE,EAAUkoE,EAId,OAHAE,EAAWF,OAAWpwS,EACtBwzU,EAAiBhoR,EACjBlmD,EAASm0M,EAAKx6M,MAAMipO,EAAS3+C,GAI/B,SAASoqJ,EAAYnoR,GAMnB,OAJAgoR,EAAiBhoR,EAEjB8nR,EAAUnkL,WAAWykL,EAAcP,GAE5BhY,EAAUqY,EAAWloR,GAAQlmD,EAUtC,SAASuuU,EAAaroR,GACpB,IAAIsoR,EAAoBtoR,EAAO+nR,EAK/B,YAAwBvzU,IAAjBuzU,GAA8BO,GAAqBT,GAAQS,EAAoB,GAAKL,GAJjEjoR,EAAOgoR,GAI2FvY,EAG9H,SAAS2Y,IACP,IAAIpoR,EAAO,KAEX,GAAIqoR,EAAaroR,GACf,OAAOuoR,EAAavoR,GAItB8nR,EAAUnkL,WAAWykL,EAxBvB,SAAuBpoR,GACrB,IAEIq0S,EAAcxsB,GAFM7nR,EAAO+nR,GAG/B,OAAOE,EAASP,GAAU2sB,EAAa5kC,GAFbzvQ,EAAOgoR,IAEuCqsB,EAoBrC7rB,CAAcxoR,IAGnD,SAASuoR,EAAavoR,GAIpB,OAHA8nR,OAAUtzU,EAGNs7T,GAAYhrB,EACPojC,EAAWloR,IAGpB8kP,EAAWF,OAAWpwS,EACfsF,GAgBT,SAAS2uU,IACP,IAAIzoR,EAAO,KACP0oR,EAAaL,EAAaroR,GAK9B,GAJA8kP,EAAWjxS,UACX+wS,EAAWvvS,KACX0yU,EAAe/nR,EAEX0oR,EAAY,CACd,QAAgBl0U,IAAZszU,EACF,OAAOK,EAAYJ,GAGrB,GAAIE,EAIF,OAFAn1H,aAAag1H,GACbA,EAAUnkL,WAAWykL,EAAcP,GAC5BK,EAAWH,GAQtB,YAJgBvzU,IAAZszU,IACFA,EAAUnkL,WAAWykL,EAAcP,IAG9B/tU,EAKT,OA5GA+tU,EAAO,GAASA,IAAS,EAErB,GAASnqT,KACXmyS,IAAYnyS,EAAQmyS,QAEpBJ,GADAwY,EAAS,YAAavqT,GACH,GAAU,GAASA,EAAQ+xS,UAAY,EAAGoY,GAAQpY,EACrEK,EAAW,aAAcpyS,IAAYA,EAAQoyS,SAAWA,GAoG1D2Y,EAAUryB,OAxCV,gBACkB5hT,IAAZszU,GACFh1H,aAAag1H,GAGfE,EAAiB,EACjBljC,EAAWijC,EAAenjC,EAAWkjC,OAAUtzU,GAmCjDi0U,EAAUj6B,MAhCV,WACE,YAAmBh6S,IAAZszU,EAAwBhuU,EAASyuU,EAAa,OAgChDE,GCvHM,OApBf,SAAkBx6H,EAAM45H,EAAMnqT,GAC5B,IAAImyS,GAAU,EACVC,GAAW,EAEf,GAAmB,mBAAR7hH,EACT,MAAM,IAAIn5M,UAnDQ,uBA2DpB,OALI,GAAS4oB,KACXmyS,EAAU,YAAanyS,IAAYA,EAAQmyS,QAAUA,EACrDC,EAAW,aAAcpyS,IAAYA,EAAQoyS,SAAWA,GAGnD,GAAS7hH,EAAM45H,EAAM,CAC1B,QAAWhY,EACX,QAAWgY,EACX,SAAY/X,KClEZ,GAAe,WACjB,SAAS37T,EAAiBR,EAAQqnL,GAChC,IAAK,IAAIpnL,EAAI,EAAGA,EAAIonL,EAAMlnL,OAAQF,IAAK,CACrC,IAAIqnL,EAAaD,EAAMpnL,GACvBqnL,EAAW1nL,WAAa0nL,EAAW1nL,aAAc,EACjD0nL,EAAWtlL,cAAe,EACtB,UAAWslL,IAAYA,EAAWvlL,UAAW,GACjDzC,OAAOmB,eAAeT,EAAQsnL,EAAWhnL,IAAKgnL,IAIlD,OAAO,SAAUH,EAAaK,EAAYC,GAGxC,OAFID,GAAYhnL,EAAiB2mL,EAAYvlL,UAAW4lL,GACpDC,GAAajnL,EAAiB2mL,EAAaM,GACxCN,GAdQ,GAoDZ,IAqIQ,GArIS,SAAUrvE,GAGhC,SAASy4P,EAAWlpL,IArCtB,SAAyBH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIhmL,UAAU,qCAoCpB,CAAgBO,KAAM6uW,GAEtB,IAAInuP,EAlCR,SAAoCz+G,EAAM1C,GACxC,IAAK0C,EACH,MAAM,IAAIsqL,eAAe,6DAG3B,OAAOhtL,GAAyB,kBAATA,GAAqC,oBAATA,EAA8B0C,EAAP1C,EA6B5D,CAA2BS,MAAO6uW,EAAWtoW,WAAa3I,OAAOmC,eAAe8uW,IAAatvW,KAAKS,KAAM2lL,IAsBpH,OApBAjlE,EAAMqpI,aAAe,SAAUhwO,GACG,oBAAzB2mG,EAAMilE,MAAMwgE,UAA2BzlI,EAAMqmM,SAASrmM,EAAMilE,MAAMwgE,SC7DlD,SAAyBpsO,EAAG64P,EAAK95L,GAC5D,IAAIg2R,EAAwBh2R,EAAU84K,wBAClCo6G,EAAiB8C,EAAsB1sV,MACvC6pV,EAAkB6C,EAAsBzsV,OAExC7M,EAAuB,kBAAZuE,EAAEmyV,MAAqBnyV,EAAEmyV,MAAQnyV,EAAE4zP,QAAQ,GAAGu+F,MACzDz2V,EAAuB,kBAAZsE,EAAEoyV,MAAqBpyV,EAAEoyV,MAAQpyV,EAAE4zP,QAAQ,GAAGw+F,MACzD3tU,EAAOhpB,GAAKsjE,EAAU84K,wBAAwBpzN,KAAOs+H,OAAOsvM,aAC5D1tU,EAAMjpB,GAAKqjE,EAAU84K,wBAAwBlzN,IAAMo+H,OAAOuvM,aAE1D7tU,EAAO,EACTA,EAAO,EACEA,EAAOwtU,IAChBxtU,EAAOwtU,GAGLttU,EAAM,EACRA,EAAM,EACGA,EAAMutU,IACfvtU,EAAMutU,GAGR,IAAIn7T,EAAatS,EAAOwtU,EACpB+C,EAAS,EAAIrwU,EAAMutU,EACvB,MAAO,CACLhuV,EAAG20P,EAAI30P,EACPhG,EAAG64B,EACHj3B,EAAGk1V,EACHt2V,EAAGm6P,EAAIn6P,EACP/Z,OAAQ,ODgC6E,CAA2Bqb,EAAG2mG,EAAMilE,MAAMitF,IAAKlyJ,EAAM5nC,WAAY/+D,IAGtJ2mG,EAAMosP,gBAAkB,SAAU/yV,GAChC2mG,EAAMqpI,aAAahwO,GAEnB,IAAIi1V,EAAetuP,EAAMuuP,2BAEzBD,EAAa3nS,iBAAiB,YAAaq5C,EAAMqpI,cACjDilH,EAAa3nS,iBAAiB,UAAWq5C,EAAMqsP,gBAGjDrsP,EAAMqsP,cAAgB,WACpBrsP,EAAMssP,wBAGRtsP,EAAMqmM,SAAW,IAAS,SAAU3nT,EAAI2jB,EAAMhJ,GAC5C3a,EAAG2jB,EAAMhJ,KACR,IACI2mG,EAuGT,OAvJF,SAAmBmmE,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIrnL,UAAU,kEAAoEqnL,GAG1FD,EAAS3mL,UAAYtC,OAAOuC,OAAO2mL,GAAcA,EAAW5mL,UAAW,CACrED,YAAa,CACXG,MAAOymL,EACP3oL,YAAY,EACZmC,UAAU,EACVC,cAAc,KAGdwmL,IAAYlpL,OAAO2C,eAAiB3C,OAAO2C,eAAesmL,EAAUC,GAAcD,EAAStgL,UAAYugL,GAQ3G,CAAU+nL,EAAYz4P,GA8BtB,GAAay4P,EAAY,CAAC,CACxBjwW,IAAK,uBACLwB,MAAO,WACLJ,KAAK+mT,SAAShG,SACd/gT,KAAKgtW,yBAEN,CACDpuW,IAAK,2BACLwB,MAAO,WAIL,IAHA,IAAI04E,EAAY94E,KAAK84E,UACjBk2R,EAAelyM,QAEXkyM,EAAa5uV,SAAS6sN,SAASn0J,IAAck2R,EAAajuU,SAAWiuU,GAC3EA,EAAeA,EAAajuU,OAG9B,OAAOiuU,IAER,CACDpwW,IAAK,uBACLwB,MAAO,WACL,IAAI4uW,EAAehvW,KAAKivW,2BACxBD,EAAa9nS,oBAAoB,YAAalnE,KAAK+pP,cACnDilH,EAAa9nS,oBAAoB,UAAWlnE,KAAK+sW,iBAElD,CACDnuW,IAAK,SACLwB,MAAO,WACL,IAAIikB,EAASrkB,KAET2vJ,EAAQ3vJ,KAAK2lL,MAAM11I,OAAS,GAC5BrvB,EAAQ+uI,EAAM/uI,MACdmkN,EAAQp1E,EAAMo1E,MACdw1C,EAAQ5qH,EAAM4qH,MACd2yF,EAAUv9M,EAAMu9M,QAChBgC,EAASv/M,EAAMu/M,OAEf72K,EAAS,IAAS,CACpB,QAAW,CACTz3K,MAAO,CACLgsV,SAAU,kBACV1oU,WAAY,OAASlkC,KAAK2lL,MAAMitF,IAAI30P,EAAI,cACxCyuV,aAAc1sW,KAAK2lL,MAAMh0J,QAE3BozM,MAAO,CACL6nI,SAAU,kBACVF,aAAc1sW,KAAK2lL,MAAMh0J,QAE3B4oP,MAAO,CACLqyF,SAAU,kBACVD,UAAW3sW,KAAK2lL,MAAMzqH,OACtBwxS,aAAc1sW,KAAK2lL,MAAMh0J,QAE3Bu7U,QAAS,CACPp5U,SAAU,WACV4K,KAA0B,IAAnB1+B,KAAK2lL,MAAMmtF,IAAIj5P,EAAW,IAAM,IACvC2kB,KAAyB,IAAnBx+B,KAAK2lL,MAAMmtF,IAAI76P,EAAU,IAC/BivM,OAAQ,WAEVgoJ,OAAQ,CACN9sV,MAAO,MACPC,OAAQ,MACRsqV,UAAW,8FACXD,aAAc,MACdxlJ,OAAQ,OACRl1G,UAAW,0BAGf,OAAU,CACRpxF,MAAOA,EACPmkN,MAAOA,EACPw1C,MAAOA,EACP2yF,QAASA,EACTgC,OAAQA,IAET,CACD,SAAYlvW,KAAK2lL,MAAM11I,QAEzB,OAAO,IAAM+hJ,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOz3K,MACdw8K,IAAK,SAAatkH,GAChB,OAAOz0D,EAAOy0D,UAAYA,GAE5Bo1J,YAAaluO,KAAK8sW,gBAClBO,YAAartW,KAAK+pP,aAClBmH,aAAclxP,KAAK+pP,cAClB,IAAM/3D,cAAc,QAAS,KAAM,kaAAma,IAAMA,cAAc,MAAO,CACle/hJ,MAAOooJ,EAAO0sC,MACd1nC,UAAW,oBACV,IAAMrL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOkiF,MACdl9E,UAAW,qBACT,IAAMrL,cAAc,MAAO,CAC7B/hJ,MAAOooJ,EAAO60K,SACbltW,KAAK2lL,MAAMunL,QAAU,IAAMl7K,cAAchyL,KAAK2lL,MAAMunL,QAASltW,KAAK2lL,OAAS,IAAMqM,cAAc,MAAO,CACvG/hJ,MAAOooJ,EAAO62K,gBAKbL,EAnIe,CAoItB,iBAAiB,aElKJ,OAbf,SAAmB36V,EAAOupR,GAIxB,IAHA,IAAI1pR,GAAS,EACTtV,EAAkB,MAATyV,EAAgB,EAAIA,EAAMzV,SAE9BsV,EAAQtV,IAC8B,IAAzCg/R,EAASvpR,EAAMH,GAAQA,EAAOG,KAKpC,OAAOA,GCfM,GADE,GAAQtW,OAAOD,KAAMC,QCIlC,GAHcA,OAAOsC,UAGQU,eAyBlB,OAhBf,SAAkBnD,GAChB,IAAK,GAAYA,GACf,OAAO,GAAWA,GAGpB,IAAIgH,EAAS,GAEb,IAAK,IAAI7F,KAAOhB,OAAOH,GACjB,GAAe8B,KAAK9B,EAAQmB,IAAe,eAAPA,GACtC6F,EAAOtG,KAAKS,GAIhB,OAAO6F,GCOM,OAJf,SAAchH,GACZ,OAAO,GAAYA,GAAU,GAAcA,GAAU,GAASA,ICCjD,ICtBA,GDFf,SAAwBorV,EAAUE,GAChC,OAAO,SAAUj4C,EAAYrT,GAC3B,GAAkB,MAAdqT,EACF,OAAOA,EAGT,IAAK,GAAYA,GACf,OAAO+3C,EAAS/3C,EAAYrT,GAO9B,IAJA,IAAIh/R,EAASqyS,EAAWryS,OACpBsV,EAAQg1U,EAAYtqV,GAAU,EAC9BqH,EAAWlI,OAAOkzS,IAEfi4C,EAAYh1U,MAAYA,EAAQtV,KACc,IAA/Cg/R,EAAS33R,EAASiO,GAAQA,EAAOjO,KAKvC,OAAOgrS,GCnBI,ECAf,SAAoBrzS,EAAQggS,GAC1B,OAAOhgS,GAAU,GAAQA,EAAQggS,EAAU,OCC9B,OAJf,SAAsBr9R,GACpB,MAAuB,mBAATA,EAAsBA,EAAQ,IC8B/B,OALf,SAAiB0wS,EAAYrT,GAE3B,OADW,GAAQqT,GAAc,GAAY,IACjCA,EAAY,GAAarT,K,qBCnC5B,GAA2B,SAAkC16Q,GACtE,IACIypO,EAAU,EACV66B,EAAS,EAkBb,OAjBA,GAHkB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAGpC,SAAU8N,GAC1B,GAAIpyQ,EAAKoyQ,KACP3oC,GAAW,EAENxmP,MAAM+c,EAAKoyQ,MACd9N,GAAU,GAGG,MAAX8N,GAA6B,MAAXA,GAAgB,CAClB,SAEFnzQ,KAAKe,EAAKoyQ,MACxB9N,GAAU,OAKX76B,IAAY66B,GAAStkQ,GAEnB,GAAU,SAAiBA,EAAMosV,GAC1C,IAAIvuV,EAAQmC,EAAKitB,IAAM,KAAUjtB,EAAKitB,KAAO,KAAUjtB,GACnD6vP,EAAMhyP,EAAMm0P,QACZjC,EAAMlyP,EAAMq1P,QACZjyC,EAAMpjN,EAAM00P,QACZtlO,EAAMpvB,EAAMo2P,QAQhB,OANc,IAAVpE,EAAI36P,IACN26P,EAAI30P,EAAIkxV,GAAU,EAClBr8F,EAAI70P,EAAIkxV,GAAU,GAIb,CACLv8F,IAAKA,EACL5iO,IAHwB,WAARA,GAA8B,IAAVg0L,EAAIvrN,EAGrB,cAAgB,IAAMu3B,EACzCg0L,IAAKA,EACL8uC,IAAKA,EACLq8F,OAAQpsV,EAAK9E,GAAKkxV,GAAUv8F,EAAI30P,EAChCvf,OAAQqkB,EAAKrkB,SAGN,GAAa,SAAoBsxC,GAC1C,GAAY,gBAARA,EACF,OAAO,EAIT,IAAIo/T,EAA+B,MAA1BnxT,OAAOjO,GAAKhpC,OAAO,GAAa,EAAI,EAC7C,OAAOgpC,EAAIvxC,SAAW,EAAI2wW,GAAMp/T,EAAIvxC,OAAS,EAAI2wW,GAAM,KAAUp/T,GAAKqmO,WAE7Dg5F,GAAsB,SAA6BtsV,GAC5D,IAAKA,EACH,MAAO,OAGT,IAAIipD,EAAM,GAAQjpD,GAElB,MAAgB,gBAAZipD,EAAIh8B,IACC,mBAGc,IAAZg8B,EAAIg4J,IAAIplN,EAAsB,IAAZotD,EAAIg4J,IAAIhmN,EAAsB,IAAZguD,EAAIg4J,IAAItrN,GAAW,KACpD,IAAM,OAAS,QAuBpB,GAAqB,SAA4By3B,EAAQ3sC,GAClE,IAAI8rW,EAAsBn/T,EAAO2rC,QAAQ,OAAK,IAC9C,OAAO,KAAUt4E,EAAO,KAAO8rW,EAAsB,KAAKl7F,KC7FxD,GAAWx2Q,OAAOsrB,QAAU,SAAU5qB,GACxC,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GAEvB,IAAK,IAAIK,KAAOF,EACVd,OAAOsC,UAAUU,eAAerB,KAAKb,EAAQE,KAC/CN,EAAOM,GAAOF,EAAOE,IAK3B,OAAON,GAGL,GAAe,WACjB,SAASQ,EAAiBR,EAAQqnL,GAChC,IAAK,IAAIpnL,EAAI,EAAGA,EAAIonL,EAAMlnL,OAAQF,IAAK,CACrC,IAAIqnL,EAAaD,EAAMpnL,GACvBqnL,EAAW1nL,WAAa0nL,EAAW1nL,aAAc,EACjD0nL,EAAWtlL,cAAe,EACtB,UAAWslL,IAAYA,EAAWvlL,UAAW,GACjDzC,OAAOmB,eAAeT,EAAQsnL,EAAWhnL,IAAKgnL,IAIlD,OAAO,SAAUH,EAAaK,EAAYC,GAGxC,OAFID,GAAYhnL,EAAiB2mL,EAAYvlL,UAAW4lL,GACpDC,GAAajnL,EAAiB2mL,EAAaM,GACxCN,GAdQ,GAmDZ,IAwEQ,GAxEQ,SAAmB8pL,GACxC,IAAIC,EAAc,SAAUp5P,GAG1B,SAASo5P,EAAY7pL,IArCzB,SAAyBH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIhmL,UAAU,qCAoClB,CAAgBO,KAAMwvW,GAEtB,IAAI9uP,EAlCV,SAAoCz+G,EAAM1C,GACxC,IAAK0C,EACH,MAAM,IAAIsqL,eAAe,6DAG3B,OAAOhtL,GAAyB,kBAATA,GAAqC,oBAATA,EAA8B0C,EAAP1C,EA6B1D,CAA2BS,MAAOwvW,EAAYjpW,WAAa3I,OAAOmC,eAAeyvW,IAAcjwW,KAAKS,OA4BhH,OA1BA0gH,EAAMqpI,aAAe,SAAUhnO,EAAM9O,GAGnC,GAFmB,GAA+B8O,GAEhC,CAChB,IAAIi2J,EAAS,GAAcj2J,EAAMA,EAAK9E,GAAKyiG,EAAMj+G,MAAM0sW,QAEvDzuP,EAAMl6C,SAASwyG,GAEft4D,EAAMilE,MAAM8pL,kBAAoB/uP,EAAMmgL,SAASngL,EAAMilE,MAAM8pL,iBAAkBz2L,EAAQ/kK,GACrFysG,EAAMilE,MAAMwgE,UAAYzlI,EAAMilE,MAAMwgE,SAASntE,EAAQ/kK,KAIzDysG,EAAMgvP,kBAAoB,SAAU3sV,EAAM9O,GAGxC,GAFmB,GAA+B8O,GAEhC,CAChB,IAAIi2J,EAAS,GAAcj2J,EAAMA,EAAK9E,GAAKyiG,EAAMj+G,MAAM0sW,QACvDzuP,EAAMilE,MAAMgqL,eAAiBjvP,EAAMilE,MAAMgqL,cAAc32L,EAAQ/kK,KAInEysG,EAAMj+G,MAAQ,GAAS,GAAI,GAAckjL,EAAM/kK,MAAO,IACtD8/F,EAAMmgL,SAAW,IAAS,SAAUzhS,EAAI2jB,EAAM9O,GAC5C7U,EAAG2jB,EAAM9O,KACR,KACIysG,EAuBT,OA7EJ,SAAmBmmE,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIrnL,UAAU,kEAAoEqnL,GAG1FD,EAAS3mL,UAAYtC,OAAOuC,OAAO2mL,GAAcA,EAAW5mL,UAAW,CACrED,YAAa,CACXG,MAAOymL,EACP3oL,YAAY,EACZmC,UAAU,EACVC,cAAc,KAGdwmL,IAAYlpL,OAAO2C,eAAiB3C,OAAO2C,eAAesmL,EAAUC,GAAcD,EAAStgL,UAAYugL,GAQzG,CAAU0oL,EAAap5P,GAoCvB,GAAao5P,EAAa,CAAC,CACzB5wW,IAAK,SACLwB,MAAO,WACL,IAAIwvW,EAAiB,GAMrB,OAJI5vW,KAAK2lL,MAAMgqL,gBACbC,EAAeD,cAAgB3vW,KAAK0vW,mBAG/B,IAAM19K,cAAcu9K,EAAQ,GAAS,GAAIvvW,KAAK2lL,MAAO3lL,KAAKyC,MAAO,CACtE0jP,SAAUnmP,KAAK+pP,cACd6lH,OAEH,CAAC,CACHhxW,IAAK,2BACLwB,MAAO,SAAkCsqL,EAAWjoL,GAClD,OAAO,GAAS,GAAI,GAAcioL,EAAU9pK,MAAOne,EAAM0sW,aAItDK,EAzDS,CA0DhB,iBAAiB,aAWnB,OATAA,EAAYx1K,UAAY,GAAS,GAAIu1K,EAAOv1K,WAC5Cw1K,EAAYj2K,aAAe,GAAS,GAAIg2K,EAAOh2K,aAAc,CAC3D34K,MAAO,CACL3C,EAAG,IACHhG,EAAG,GACH9D,EAAG,GACHsE,EAAG,KAGA+2V,GCvIL,GAAW5xW,OAAOsrB,QAAU,SAAU5qB,GACxC,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GAEvB,IAAK,IAAIK,KAAOF,EACVd,OAAOsC,UAAUU,eAAerB,KAAKb,EAAQE,KAC/CN,EAAOM,GAAOF,EAAOE,IAK3B,OAAON,GAGL,GAAe,WACjB,SAASQ,EAAiBR,EAAQqnL,GAChC,IAAK,IAAIpnL,EAAI,EAAGA,EAAIonL,EAAMlnL,OAAQF,IAAK,CACrC,IAAIqnL,EAAaD,EAAMpnL,GACvBqnL,EAAW1nL,WAAa0nL,EAAW1nL,aAAc,EACjD0nL,EAAWtlL,cAAe,EACtB,UAAWslL,IAAYA,EAAWvlL,UAAW,GACjDzC,OAAOmB,eAAeT,EAAQsnL,EAAWhnL,IAAKgnL,IAIlD,OAAO,SAAUH,EAAaK,EAAYC,GAGxC,OAFID,GAAYhnL,EAAiB2mL,EAAYvlL,UAAW4lL,GACpDC,GAAajnL,EAAiB2mL,EAAaM,GACxCN,GAdQ,GAkBnB,SAAS,GAAgBD,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIhmL,UAAU,qCAIxB,SAAS,GAA2BwC,EAAM1C,GACxC,IAAK0C,EACH,MAAM,IAAIsqL,eAAe,6DAG3B,OAAOhtL,GAAyB,kBAATA,GAAqC,oBAATA,EAA8B0C,EAAP1C,EAG5E,SAAS,GAAUsnL,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIrnL,UAAU,kEAAoEqnL,GAG1FD,EAAS3mL,UAAYtC,OAAOuC,OAAO2mL,GAAcA,EAAW5mL,UAAW,CACrED,YAAa,CACXG,MAAOymL,EACP3oL,YAAY,EACZmC,UAAU,EACVC,cAAc,KAGdwmL,IAAYlpL,OAAO2C,eAAiB3C,OAAO2C,eAAesmL,EAAUC,GAAcD,EAAStgL,UAAYugL,GAMtG,ICjEH,GAAWlpL,OAAOsrB,QAAU,SAAU5qB,GACxC,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GAEvB,IAAK,IAAIK,KAAOF,EACVd,OAAOsC,UAAUU,eAAerB,KAAKb,EAAQE,KAC/CN,EAAOM,GAAOF,EAAOE,IAK3B,OAAON,GA+DM,GDTU,SAAqB6sL,GAC5C,IAAI0kL,EAAOrxW,UAAUC,OAAS,QAAsBU,IAAjBX,UAAU,GAAmBA,UAAU,GAAK,OAC/E,OAAO,SAAUgpO,GAGf,SAASsoI,IACP,IAAI15P,EAEA6pO,EAAOv/N,EAEX,GAAgB1gH,KAAM8vW,GAEtB,IAAK,IAAIpmL,EAAOlrL,UAAUC,OAAQiqL,EAAO/kK,MAAM+lK,GAAO3tI,EAAO,EAAGA,EAAO2tI,EAAM3tI,IAC3E2sI,EAAK3sI,GAAQv9C,UAAUu9C,GAGzB,OAAekkS,EAASv/N,EAAQ,GAA2B1gH,MAAOo2G,EAAO05P,EAAMvpW,WAAa3I,OAAOmC,eAAe+vW,IAAQvwW,KAAKnB,MAAMg4G,EAAM,CAACp2G,MAAM0hB,OAAOgnK,KAAiBhoE,EAAMj+G,MAAQ,CACtL+hD,OAAO,GACNk8D,EAAM6lI,YAAc,WACrB,OAAO7lI,EAAMl6C,SAAS,CACpBhiB,OAAO,KAERk8D,EAAMyhI,WAAa,WACpB,OAAOzhI,EAAMl6C,SAAS,CACpBhiB,OAAO,KAEA,GAA2Bk8D,EAAnCu/N,GAaL,OApCA,GAAU6vB,EAAOtoI,GA0BjB,GAAasoI,EAAO,CAAC,CACnBlxW,IAAK,SACLwB,MAAO,WACL,OAAO,IAAM4xL,cAAc69K,EAAM,CAC/BrgI,QAASxvO,KAAKumP,YACdjK,OAAQt8O,KAAKmiP,YACZ,IAAMnwD,cAAc7G,EAAW,GAAS,GAAInrL,KAAK2lL,MAAO3lL,KAAKyC,aAI7DqtW,EArCF,CAsCL,IAAM3kL,WC/BK,EAvDK,SAAgB/0E,GAClC,IAAIx1F,EAAQw1F,EAAKx1F,MACbqvB,EAAQmmE,EAAKnmE,MACb8/T,EAAe35P,EAAKwhG,QACpBA,OAA2Bz4M,IAAjB4wW,EAA6B,aAAiBA,EACxDC,EAAU55P,EAAK45P,QACfC,EAAa75P,EAAK6iG,MAClBA,OAAuB95M,IAAf8wW,EAA2BrvV,EAAQqvV,EAC3Cl8U,EAAWqiF,EAAKriF,SAChBywB,EAAQ4xD,EAAK5xD,MACb0rT,EAAkB95P,EAAK+5P,WACvBA,OAAiChxW,IAApB+wW,EAAgC,GAAKA,EAClDrnU,EAAwB,gBAAVjoB,EACdy3K,EAAS,IAAS,CACpB/S,QAAS,CACP8qL,OAAQ,GAAS,CACflsU,WAAYtjB,EACZyB,OAAQ,OACRD,MAAO,OACP8kM,OAAQ,UACRpzL,SAAU,WACVu8U,QAAS,QACRpgU,EAAOuU,EAAQ2rT,EAAa,OAgB/BP,EAAiB,GAMrB,OAJII,IACFJ,EAAeU,YAPC,SAAqBv2V,GACrC,OAAOi2V,EAAQpvV,EAAO7G,KASjB,IAAMi4K,cAAc,MAAO,GAAS,CACzC/hJ,MAAOooJ,EAAO+3K,OACdx4J,QApBgB,SAAqB79L,GACrC,OAAO69L,EAAQh3L,EAAO7G,IAoBtBk/L,MAAOA,EACPq3B,SAAU,EACVb,UAnBkB,SAAuB11N,GACzC,OAhCQ,KAgCDA,EAAEgzQ,SAAqBn1E,EAAQh3L,EAAO7G,KAmB5C61V,GAAiB77U,EAAU8U,GAAe,IAAMmpJ,cAAc,EAAY,CAC3E06K,aAAcr0K,EAAO+3K,OAAO1D,aAC5BC,UAAW,wCC5CA,GAzBW,SAAsBv2P,GAC9C,IAAI7+E,EAAY6+E,EAAK7+E,UACjB8gK,EAAS,IAAS,CACpB,QAAW,CACTk4K,OAAQ,CACNnuV,MAAO,OACPC,OAAQ,OACRqqV,aAAc,MACd16P,UAAW,wBACXw+P,gBAAiB,qBACjB7D,UAAW,oCAGf,SAAY,CACV4D,OAAQ,CACNv+P,UAAW,2BAGd,CACDoxI,SAAwB,aAAd7rN,IAEZ,OAAO,IAAMy6J,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOk4K,UCxBd,GAAW3yW,OAAOsrB,QAAU,SAAU5qB,GACxC,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GAEvB,IAAK,IAAIK,KAAOF,EACVd,OAAOsC,UAAUU,eAAerB,KAAKb,EAAQE,KAC/CN,EAAOM,GAAOF,EAAOE,IAK3B,OAAON,GAOE,GAAc,SAAqB83G,GAC5C,IAAI4tH,EAAM5tH,EAAK4tH,IACX4uC,EAAMx8J,EAAKw8J,IACXxwP,EAAQg0F,EAAKh0F,MACbC,EAAS+zF,EAAK/zF,OACd8jO,EAAW/vI,EAAK+vI,SAChB5uN,EAAY6+E,EAAK7+E,UACjB0Y,EAAQmmE,EAAKnmE,MACbw8T,EAAYr2P,EAAKq2P,UACjBS,EAAU92P,EAAK82P,QACfuD,EAAiBr6P,EAAKinF,UACtBA,OAA+Bl+L,IAAnBsxW,EAA+B,GAAKA,EAChDp4K,EAAS,IAAS,CACpB,QAAW,CACTk4K,OAAQ,CACNz8U,SAAU,WACV1R,MAAOA,EACPC,OAAQA,GAEVtH,MAAO,CACL4W,OAAQ,MACRse,MAAOA,MAIb,OAAO,IAAM+hJ,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOk4K,OACdlzK,UAAW,gBAAkBA,GAC5B,IAAMrL,cAAc,EAAO,GAAS,GAAIqG,EAAOt9K,MAAO,CACvDipN,IAAKA,EACL4uC,IAAKA,EACLs6F,QAASA,EACTT,UAAWA,EACXtmH,SAAUA,EACV5uN,UAAWA,OAGf,GAAYgiK,aAAe,CACzBn3K,MAAO,QACPC,OAAQ,OACRkV,UAAW,aACX21U,QAAS,IAEI,GAAU,ICxCV,OAZf,SAAkBh5V,EAAOupR,GAKvB,IAJA,IAAI1pR,GAAS,EACTtV,EAAkB,MAATyV,EAAgB,EAAIA,EAAMzV,OACnCgG,EAASkf,MAAMllB,KAEVsV,EAAQtV,GACfgG,EAAOsP,GAAS0pR,EAASvpR,EAAMH,GAAQA,EAAOG,GAGhD,OAAOzP,GCCM,OANf,SAAqBrE,GAGnB,OAFAJ,KAAKwrR,SAAS5rR,IAAIQ,EAbC,6BAeZJ,MCHM,OAJf,SAAqBI,GACnB,OAAOJ,KAAKwrR,SAAS9rR,IAAIU,ICE3B,SAASyzT,GAAS9vT,GAChB,IAAIgQ,GAAS,EACTtV,EAAmB,MAAVsF,EAAiB,EAAIA,EAAOtF,OAGzC,IAFAuB,KAAKwrR,SAAW,IAAI,KAEXz3Q,EAAQtV,GACfuB,KAAK6yB,IAAI9uB,EAAOgQ,IAKpB8/S,GAAS3zT,UAAU2yB,IAAMghS,GAAS3zT,UAAU/B,KAAO,GACnD01T,GAAS3zT,UAAUR,IAAM,GACV,UCFA,OAbf,SAAmBwU,EAAO6hP,GAIxB,IAHA,IAAIhiP,GAAS,EACTtV,EAAkB,MAATyV,EAAgB,EAAIA,EAAMzV,SAE9BsV,EAAQtV,GACf,GAAIs3P,EAAU7hP,EAAMH,GAAQA,EAAOG,GACjC,OAAO,EAIX,OAAO,GCRM,OAJf,SAAkBqxB,EAAO3mC,GACvB,OAAO2mC,EAAM7lC,IAAId,ICyEJ,OA7Df,SAAqBsV,EAAOijK,EAAOw8I,EAASvnC,EAAY4nC,EAAWJ,GACjE,IAAIK,EAjBqB,EAiBTN,EACZO,EAAYhgT,EAAMzV,OAClB01T,EAAYh9I,EAAM14K,OAEtB,GAAIy1T,GAAaC,KAAeF,GAAaE,EAAYD,GACvD,OAAO,EAIT,IAAIE,EAAaR,EAAMj0T,IAAIuU,GACvBmgT,EAAaT,EAAMj0T,IAAIw3K,GAE3B,GAAIi9I,GAAcC,EAChB,OAAOD,GAAcj9I,GAASk9I,GAAcngT,EAG9C,IAAIH,GAAS,EACTtP,GAAS,EACT6vT,EAlCuB,EAkChBX,EAAmC,IAAI,QAAax0T,EAI/D,IAHAy0T,EAAMh0T,IAAIsU,EAAOijK,GACjBy8I,EAAMh0T,IAAIu3K,EAAOjjK,KAERH,EAAQmgT,GAAW,CAC1B,IAAIK,EAAWrgT,EAAMH,GACjBygT,EAAWr9I,EAAMpjK,GAErB,GAAIq4Q,EACF,IAAIqoC,EAAWR,EAAY7nC,EAAWooC,EAAUD,EAAUxgT,EAAOojK,EAAOjjK,EAAO0/S,GAASxnC,EAAWmoC,EAAUC,EAAUzgT,EAAOG,EAAOijK,EAAOy8I,GAG9I,QAAiBz0T,IAAbs1T,EAAwB,CAC1B,GAAIA,EACF,SAGFhwT,GAAS,EACT,MAIF,GAAI6vT,GACF,IAAK,GAAUn9I,GAAO,SAAUq9I,EAAUE,GACxC,IAAK,GAASJ,EAAMI,KAAcH,IAAaC,GAAYR,EAAUO,EAAUC,EAAUb,EAASvnC,EAAYwnC,IAC5G,OAAOU,EAAKn2T,KAAKu2T,MAEjB,CACFjwT,GAAS,EACT,YAEG,GAAM8vT,IAAaC,IAAYR,EAAUO,EAAUC,EAAUb,EAASvnC,EAAYwnC,GAAS,CAChGnvT,GAAS,EACT,OAMJ,OAFAmvT,EAAc,OAAE1/S,GAChB0/S,EAAc,OAAEz8I,GACT1yK,GC/DM,OATf,SAAoBgoC,GAClB,IAAI14B,GAAS,EACTtP,EAASkf,MAAM8oB,EAAI9Z,MAIvB,OAHA8Z,EAAI9tC,SAAQ,SAAUyB,EAAOxB,GAC3B6F,IAASsP,GAAS,CAACnV,EAAKwB,MAEnBqE,GCGM,OATf,SAAoB7E,GAClB,IAAImU,GAAS,EACTtP,EAASkf,MAAM/jB,EAAI+yB,MAIvB,OAHA/yB,EAAIjB,SAAQ,SAAUyB,GACpBqE,IAASsP,GAAS3T,KAEbqE,GCYL83U,GAAc,EAAS,EAAOr8U,eAAYf,EAC1Cs0S,GAAgB8oC,GAAcA,GAAYvsC,aAAU7wS,EAwFzC,OArEf,SAAoB1B,EAAQ05K,EAAOwZ,EAAKgjI,EAASvnC,EAAY4nC,EAAWJ,GACtE,OAAQjjI,GACN,IAzBc,oBA0BZ,GAAIlzL,EAAOoyJ,YAAcsnB,EAAMtnB,YAAcpyJ,EAAOgiQ,YAActoF,EAAMsoF,WACtE,OAAO,EAGThiQ,EAASA,EAAOyiB,OAChBi3J,EAAQA,EAAMj3J,OAEhB,IAlCiB,uBAmCf,QAAIziB,EAAOoyJ,YAAcsnB,EAAMtnB,aAAemkK,EAAU,IAAI,GAAWv2T,GAAS,IAAI,GAAW05K,KAMjG,IAlDU,mBAmDV,IAlDU,gBAmDV,IAhDY,kBAmDV,OAAO,GAAI15K,GAAS05K,GAEtB,IAvDW,iBAwDT,OAAO15K,EAAO4I,MAAQ8wK,EAAM9wK,MAAQ5I,EAAO6iB,SAAW62J,EAAM72J,QAE9D,IAvDY,kBAwDZ,IAtDY,kBA0DV,OAAO7iB,GAAU05K,EAAQ,GAE3B,IAhES,eAiEP,IAAI91J,EAAU,GAEhB,IAhES,eAiEP,IAAI4yS,EA3EiB,EA2ELN,EAGhB,GAFAtyS,IAAYA,EAAU,IAElB5jB,EAAOk1B,MAAQwkJ,EAAMxkJ,OAASshS,EAChC,OAAO,EAIT,IAAI4pB,EAAUjqB,EAAMj0T,IAAIlC,GAExB,GAAIogV,EACF,OAAOA,GAAW1mK,EAGpBw8I,GAxFuB,EA0FvBC,EAAMh0T,IAAInC,EAAQ05K,GAClB,IAAI1yK,EAAS,GAAY4c,EAAQ5jB,GAAS4jB,EAAQ81J,GAAQw8I,EAASvnC,EAAY4nC,EAAWJ,GAE1F,OADAA,EAAc,OAAEn2T,GACTgH,EAET,IApFY,kBAqFV,GAAIgvS,GACF,OAAOA,GAAcl0S,KAAK9B,IAAWg2S,GAAcl0S,KAAK43K,GAK9D,OAAO,GC3FM,OAZf,SAAmBjjK,EAAOnQ,GAKxB,IAJA,IAAIgQ,GAAS,EACTtV,EAASsF,EAAOtF,OAChByc,EAAShH,EAAMzV,SAEVsV,EAAQtV,GACfyV,EAAMgH,EAASnH,GAAShQ,EAAOgQ,GAGjC,OAAOG,GCEM,OALf,SAAwBzW,EAAQo3T,EAAUC,GACxC,IAAIrwT,EAASowT,EAASp3T,GACtB,OAAO,GAAQA,GAAUgH,EAAS,GAAUA,EAAQqwT,EAAYr3T,KCUnD,OAjBf,SAAqByW,EAAO6hP,GAM1B,IALA,IAAIhiP,GAAS,EACTtV,EAAkB,MAATyV,EAAgB,EAAIA,EAAMzV,OACnC0pV,EAAW,EACX1jV,EAAS,KAEJsP,EAAQtV,GAAQ,CACvB,IAAI2B,EAAQ8T,EAAMH,GAEdgiP,EAAU31P,EAAO2T,EAAOG,KAC1BzP,EAAO0jV,KAAc/nV,GAIzB,OAAOqE,GCDM,OAJf,WACE,MAAO,ICZL,GAHc7G,OAAOsC,UAGcmmL,qBAGnC04G,GAAmBnhS,OAAOC,sBAmBf,GAVGkhS,GAA+B,SAAUthS,GACzD,OAAc,MAAVA,EACK,IAGTA,EAASG,OAAOH,GACT,GAAYshS,GAAiBthS,IAAS,SAAU6oQ,GACrD,OAAO,GAAqB/mQ,KAAK9B,EAAQ6oQ,QAPR,GCJtB,OAJf,SAAoB7oQ,GAClB,OAAO,GAAeA,EAAQ,GAAM,KCHlC,GAHcG,OAAOsC,UAGQU,eAiFlB,OAlEf,SAAsBnD,EAAQ05K,EAAOw8I,EAASvnC,EAAY4nC,EAAWJ,GACnE,IAAIK,EAtBqB,EAsBTN,EACZk9B,EAAW,GAAWpzV,GACtBqzV,EAAYD,EAASpyV,OAIzB,GAAIqyV,GAHW,GAAW35K,GACD14K,SAEMw1T,EAC7B,OAAO,EAKT,IAFA,IAAIlgT,EAAQ+8U,EAEL/8U,KAAS,CACd,IAAInV,EAAMiyV,EAAS98U,GAEnB,KAAMkgT,EAAYr1T,KAAOu4K,EAAQ,GAAe53K,KAAK43K,EAAOv4K,IAC1D,OAAO,EAKX,IAAImyV,EAAan9B,EAAMj0T,IAAIlC,GACvB42T,EAAaT,EAAMj0T,IAAIw3K,GAE3B,GAAI45K,GAAc18B,EAChB,OAAO08B,GAAc55K,GAASk9I,GAAc52T,EAG9C,IAAIgH,GAAS,EACbmvT,EAAMh0T,IAAInC,EAAQ05K,GAClBy8I,EAAMh0T,IAAIu3K,EAAO15K,GAGjB,IAFA,IAAIuzV,EAAW/8B,IAENlgT,EAAQ+8U,GAAW,CAE1B,IAAI37B,EAAW13T,EADfmB,EAAMiyV,EAAS98U,IAEXygT,EAAWr9I,EAAMv4K,GAErB,GAAIwtR,EACF,IAAIqoC,EAAWR,EAAY7nC,EAAWooC,EAAUW,EAAUv2T,EAAKu4K,EAAO15K,EAAQm2T,GAASxnC,EAAW+oC,EAAUX,EAAU51T,EAAKnB,EAAQ05K,EAAOy8I,GAI5I,UAAmBz0T,IAAbs1T,EAAyBU,IAAaX,GAAYR,EAAUmB,EAAUX,EAAUb,EAASvnC,EAAYwnC,GAASa,GAAW,CAC7HhwT,GAAS,EACT,MAGFusV,IAAaA,EAAkB,eAAPpyV,GAG1B,GAAI6F,IAAWusV,EAAU,CACvB,IAAIC,EAAUxzV,EAAOwC,YACjBixV,EAAU/5K,EAAMl3K,YAEhBgxV,GAAWC,KAAW,gBAAiBzzV,MAAU,gBAAiB05K,IAA6B,mBAAX85K,GAAyBA,aAAmBA,GAA6B,mBAAXC,GAAyBA,aAAmBA,IAChMzsV,GAAS,GAMb,OAFAmvT,EAAc,OAAEn2T,GAChBm2T,EAAc,OAAEz8I,GACT1yK,GClFM,GADA,GAAU,IAAM,YCChB,GADD,GAAU,IAAM,WCCf,GADL,GAAU,IAAM,OCCX,GADD,GAAU,IAAM,WCa1BknR,GAAqB,GAAS,IAC9BC,GAAgB,GAAS,IACzBC,GAAoB,GAAS,IAC7BC,GAAgB,GAAS,IACzBC,GAAoB,GAAS,IAS7B,GAAS,GAET,IAlBc,qBAkBF,GAAO,IAAI,GAAS,IAAIj6O,YAAY,MAAuB,IAvB9D,gBAuBqE,GAAO,IAAI,KAAoB,IArBhG,oBAqB2G,GAAO,GAAQxtC,YAA4B,IApB1J,gBAoBiK,GAAO,IAAI,KAAoB,IAnB5L,oBAmBuM,GAAO,IAAI,OACjO,GAAS,SAAgBlE,GACvB,IAAIqE,EAAS,EAAWrE,GACpB6rR,EAzBQ,mBAyBDxnR,EAAsBrE,EAAMH,iBAAcd,EACjD+sR,EAAaD,EAAO,GAASA,GAAQ,GAEzC,GAAIC,EACF,OAAQA,GACN,KAAKP,GACH,MA3BQ,oBA6BV,KAAKC,GACH,MAnCG,eAqCL,KAAKC,GACH,MApCO,mBAsCT,KAAKC,GACH,MAtCG,eAwCL,KAAKC,GACH,MAxCO,mBA4Cb,OAAOtnR,IAII,UCxCX,GAHc7G,OAAOsC,UAGQU,eA6DlB,OA7Cf,SAAyBnD,EAAQ05K,EAAOw8I,EAASvnC,EAAY4nC,EAAWJ,GACtE,IAAIo8B,EAAW,GAAQvyV,GACnBwyV,EAAW,GAAQ94K,GACnB+4K,EAASF,EA1BA,iBA0BsB,GAAOvyV,GACtC0yV,EAASF,EA3BA,iBA2BsB,GAAO94K,GAGtCi5K,EA7BU,oBA2BdF,EA7BY,sBA6BHA,EA3BK,kBA2B2BA,GAGrCG,EA9BU,oBA4BdF,EA9BY,sBA8BHA,EA5BK,kBA4B2BA,GAGrCG,EAAYJ,GAAUC,EAE1B,GAAIG,GAAa,OAAAnqH,GAAA,GAAS1oO,GAAS,CACjC,IAAK,OAAA0oO,GAAA,GAAShvD,GACZ,OAAO,EAGT64K,GAAW,EACXI,GAAW,EAGb,GAAIE,IAAcF,EAEhB,OADAx8B,IAAUA,EAAQ,IAAI,IACfo8B,GAAY,GAAavyV,GAAU,GAAYA,EAAQ05K,EAAOw8I,EAASvnC,EAAY4nC,EAAWJ,GAAS,GAAWn2T,EAAQ05K,EAAO+4K,EAAQv8B,EAASvnC,EAAY4nC,EAAWJ,GAGlL,KApDyB,EAoDnBD,GAAiC,CACrC,IAAI88B,EAAeL,GAAY,GAAe7wV,KAAK9B,EAAQ,eACvDizV,EAAeL,GAAY,GAAe9wV,KAAK43K,EAAO,eAE1D,GAAIs5K,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAehzV,EAAO2C,QAAU3C,EAC/CmzV,EAAeF,EAAev5K,EAAM/2K,QAAU+2K,EAElD,OADAy8I,IAAUA,EAAQ,IAAI,IACfI,EAAU28B,EAAcC,EAAcj9B,EAASvnC,EAAYwnC,IAItE,QAAK08B,IAIL18B,IAAUA,EAAQ,IAAI,IACf,GAAan2T,EAAQ05K,EAAOw8I,EAASvnC,EAAY4nC,EAAWJ,KClDtD,OAZf,SAASF,EAAYtzT,EAAO+2K,EAAOw8I,EAASvnC,EAAYwnC,GACtD,OAAIxzT,IAAU+2K,IAID,MAAT/2K,GAA0B,MAAT+2K,IAAkB,GAAa/2K,KAAW,GAAa+2K,GACnE/2K,IAAUA,GAAS+2K,IAAUA,EAG/B,GAAgB/2K,EAAO+2K,EAAOw8I,EAASvnC,EAAYsnC,EAAaE,KCoC1D,OA7Cf,SAAqBn2T,EAAQiB,EAAQ2yV,EAAWjlE,GAC9C,IAAIr4Q,EAAQs9U,EAAU5yV,OAClBA,EAASsV,EACTu9U,GAAgBllE,EAEpB,GAAc,MAAV3uR,EACF,OAAQgB,EAKV,IAFAhB,EAASG,OAAOH,GAETsW,KAAS,CACd,IAAIgP,EAAOsuU,EAAUt9U,GAErB,GAAIu9U,GAAgBvuU,EAAK,GAAKA,EAAK,KAAOtlB,EAAOslB,EAAK,MAAQA,EAAK,KAAMtlB,GACvE,OAAO,EAIX,OAASsW,EAAQtV,GAAQ,CAEvB,IAAIG,GADJmkB,EAAOsuU,EAAUt9U,IACF,GACXohT,EAAW13T,EAAOmB,GAClBm2T,EAAWhyS,EAAK,GAEpB,GAAIuuU,GAAgBvuU,EAAK,IACvB,QAAiB5jB,IAAbg2T,KAA4Bv2T,KAAOnB,GACrC,OAAO,MAEJ,CACL,IAAIm2T,EAAQ,IAAI,GAEhB,GAAIxnC,EACF,IAAI3nR,EAAS2nR,EAAW+oC,EAAUJ,EAAUn2T,EAAKnB,EAAQiB,EAAQk1T,GAGnE,UAAiBz0T,IAAXsF,EAAuB,GAAYswT,EAAUI,EAAU,EAA+C/oC,EAAYwnC,GAASnvT,GAC/H,OAAO,GAKb,OAAO,GC7CM,OAJf,SAA4BrE,GAC1B,OAAOA,IAAUA,IAAU,GAASA,ICYvB,OAbf,SAAsB3C,GAIpB,IAHA,IAAIgH,EAAS,GAAKhH,GACdgB,EAASgG,EAAOhG,OAEbA,KAAU,CACf,IAAIG,EAAM6F,EAAOhG,GACb2B,EAAQ3C,EAAOmB,GACnB6F,EAAOhG,GAAU,CAACG,EAAKwB,EAAO,GAAmBA,IAGnD,OAAOqE,GCDM,OAVf,SAAiC7F,EAAKm2T,GACpC,OAAO,SAAUt3T,GACf,OAAc,MAAVA,IAIGA,EAAOmB,KAASm2T,SAA0B51T,IAAb41T,GAA0Bn2T,KAAOhB,OAAOH,OCQjE,OAZf,SAAqBiB,GACnB,IAAI2yV,EAAY,GAAa3yV,GAE7B,OAAwB,GAApB2yV,EAAU5yV,QAAe4yV,EAAU,GAAG,GACjC,GAAwBA,EAAU,GAAG,GAAIA,EAAU,GAAG,IAGxD,SAAU5zV,GACf,OAAOA,IAAWiB,GAAU,GAAYjB,EAAQiB,EAAQ2yV,KCfxDpyD,GAAe,mDACfC,GAAgB,QAwBL,OAdf,SAAe9+R,EAAO3C,GACpB,GAAI,GAAQ2C,GACV,OAAO,EAGT,IAAIoD,SAAcpD,EAElB,QAAY,UAARoD,GAA4B,UAARA,GAA4B,WAARA,GAA8B,MAATpD,IAAiB,GAASA,MAIpF8+R,GAAcl9Q,KAAK5hB,KAAW6+R,GAAaj9Q,KAAK5hB,IAAoB,MAAV3C,GAAkB2C,KAASxC,OAAOH,KCuBrG,SAASm/V,GAAQhkJ,EAAMqmJ,GACrB,GAAmB,mBAARrmJ,GAAkC,MAAZqmJ,GAAuC,mBAAZA,EAC1D,MAAM,IAAIx/V,UAhDQ,uBAmDpB,IAAIy/V,EAAW,SAASA,IACtB,IAAIx2K,EAAOlqL,UACPI,EAAMqgW,EAAWA,EAAS7gW,MAAM4B,KAAM0oL,GAAQA,EAAK,GACnDnjJ,EAAQ25T,EAAS35T,MAErB,GAAIA,EAAM7lC,IAAId,GACZ,OAAO2mC,EAAM5lC,IAAIf,GAGnB,IAAI6F,EAASm0M,EAAKx6M,MAAM4B,KAAM0oL,GAE9B,OADAw2K,EAAS35T,MAAQA,EAAM3lC,IAAIhB,EAAK6F,IAAW8gC,EACpC9gC,GAIT,OADAy6V,EAAS35T,MAAQ,IAAKq3T,GAAQhxM,OAAS,IAChCszM,EAITtC,GAAQhxM,MAAQ,GACD,UCjDA,ICtBX2sI,GAAa,mGAGbC,GAAe,WAuBJ,GDhBf,SAAuB5/E,GACrB,IAAIn0M,EAAS,GAAQm0M,GAAM,SAAUh6M,GAKnC,OAhBmB,MAYf2mC,EAAM5S,MACR4S,EAAMqiB,QAGDhpD,KAEL2mC,EAAQ9gC,EAAO8gC,MACnB,OAAO9gC,ECPU,EAAc,SAAU0rC,GACzC,IAAI1rC,EAAS,GAWb,OAT6B,KAAzB0rC,EAAOooJ,WAAW,IAGpB9zL,EAAOtG,KAAK,IAGdgyC,EAAO2rC,QAAQy8M,IAAY,SAAUn/M,EAAOoiL,EAAQk9B,EAAOC,GACzDl0R,EAAOtG,KAAKu6R,EAAQC,EAAU78M,QAAQ08M,GAAc,MAAQh9B,GAAUpiL,MAEjE30E,KClBL,GAAc,EAAS,EAAOvE,eAAYf,EAC1Cq0S,GAAiB,GAAc,GAAYl0S,cAAWH,EA6B3C,OAnBf,SAASq2V,EAAap1V,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAGT,GAAI,GAAQA,GAEV,OAAO,GAASA,EAAOo1V,GAAgB,GAGzC,GAAI,GAASp1V,GACX,OAAOozS,GAAiBA,GAAej0S,KAAKa,GAAS,GAGvD,IAAIqE,EAASrE,EAAQ,GACrB,MAAiB,KAAVqE,GAAiB,EAAIrE,IA9Bf,IA8BoC,KAAOqE,GCT3C,OAJf,SAAkBrE,GAChB,OAAgB,MAATA,EAAgB,GAAK,GAAaA,ICH5B,OARf,SAAkBA,EAAO3C,GACvB,OAAI,GAAQ2C,GACHA,EAGF,GAAMA,EAAO3C,GAAU,CAAC2C,GAAS,GAAa,GAASA,KCGjD,OATf,SAAeA,GACb,GAAoB,iBAATA,GAAqB,GAASA,GACvC,OAAOA,EAGT,IAAIqE,EAASrE,EAAQ,GACrB,MAAiB,KAAVqE,GAAiB,EAAIrE,IAff,IAeoC,KAAOqE,GCK3C,OAZf,SAAiBhH,EAAQw7E,GAKvB,IAHA,IAAIllE,EAAQ,EACRtV,GAFJw6E,EAAO,GAASA,EAAMx7E,IAEJgB,OAED,MAAVhB,GAAkBsW,EAAQtV,GAC/BhB,EAASA,EAAO,GAAMw7E,EAAKllE,OAG7B,OAAOA,GAASA,GAAStV,EAAShB,OAAS0B,GCY9B,OALf,SAAa1B,EAAQw7E,EAAMouK,GACzB,IAAI5iP,EAAmB,MAAVhH,OAAiB0B,EAAY,GAAQ1B,EAAQw7E,GAC1D,YAAkB95E,IAAXsF,EAAuB4iP,EAAe5iP,GCjBhC,OAJf,SAAmBhH,EAAQmB,GACzB,OAAiB,MAAVnB,GAAkBmB,KAAOhB,OAAOH,IC+B1B,OAxBf,SAAiBA,EAAQw7E,EAAM+iR,GAM7B,IAJA,IAAIjoV,GAAS,EACTtV,GAFJw6E,EAAO,GAASA,EAAMx7E,IAEJgB,OACdgG,GAAS,IAEJsP,EAAQtV,GAAQ,CACvB,IAAIG,EAAM,GAAMq6E,EAAKllE,IAErB,KAAMtP,EAAmB,MAAVhH,GAAkBu+V,EAAQv+V,EAAQmB,IAC/C,MAGFnB,EAASA,EAAOmB,GAGlB,OAAI6F,KAAYsP,GAAStV,EAChBgG,KAGThG,EAAmB,MAAVhB,EAAiB,EAAIA,EAAOgB,SAClB,GAASA,IAAW,GAAQG,EAAKH,KAAY,GAAQhB,IAAW,GAAYA,KCJlF,OAJf,SAAeA,EAAQw7E,GACrB,OAAiB,MAAVx7E,GAAkB,GAAQA,EAAQw7E,EAAM,KCClC,OAXf,SAA6BA,EAAM87O,GACjC,OAAI,GAAM97O,IAAS,GAAmB87O,GAC7B,GAAwB,GAAM97O,GAAO87O,GAGvC,SAAUt3T,GACf,IAAI03T,EAAW,GAAI13T,EAAQw7E,GAC3B,YAAoB95E,IAAbg2T,GAA0BA,IAAaJ,EAAW,GAAMt3T,EAAQw7E,GAAQ,GAAY87O,EAAUI,EAAU,KCdpG,OANf,SAAsBv2T,GACpB,OAAO,SAAUnB,GACf,OAAiB,MAAVA,OAAiB0B,EAAY1B,EAAOmB,KCMhC,OANf,SAA0Bq6E,GACxB,OAAO,SAAUx7E,GACf,OAAO,GAAQA,EAAQw7E,KCoBZ,OAJf,SAAkBA,GAChB,OAAO,GAAMA,GAAQ,GAAa,GAAMA,IAAS,GAAiBA,ICGrD,OAlBf,SAAsB74E,GAGpB,MAAoB,mBAATA,EACFA,EAGI,MAATA,EACK,GAGW,iBAATA,EACF,GAAQA,GAAS,GAAoBA,EAAM,GAAIA,EAAM,IAAM,GAAYA,GAGzE,GAASA,ICRH,OATf,SAAiB0wS,EAAYrT,GAC3B,IAAI1pR,GAAS,EACTtP,EAAS,GAAYqsS,GAAcntR,MAAMmtR,EAAWryS,QAAU,GAIlE,OAHA,GAASqyS,GAAY,SAAU1wS,EAAOxB,EAAKkyS,GACzCrsS,IAASsP,GAAS0pR,EAASr9R,EAAOxB,EAAKkyS,MAElCrsS,GCmCM,OALf,SAAaqsS,EAAYrT,GAEvB,OADW,GAAQqT,GAAc,GAAW,IAChCA,EAAY,GAAarT,EAAU,KCNlC,GAvCY,SAAuBrnL,GAChD,IAAI4iE,EAAS5iE,EAAK4iE,OACd4+B,EAAUxhG,EAAKwhG,QACf+3J,EAAgBv5P,EAAKu5P,cACrBt3K,EAAS,IAAS,CACpB,QAAW,CACTq4K,SAAU,CACRhrE,YAAa,SAEf0qE,OAAQ,CACNhuV,MAAO,OACPC,OAAQ,OACRsuV,MAAO,OACPjrE,YAAa,OACbD,aAAc,OACdinE,aAAc,OAEhB9kT,MAAO,CACLA,MAAO,WAIb,OAAO,IAAMoqI,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOq4K,UACb,GAAI13L,GAAQ,SAAUrgK,GACvB,OAAO,IAAMq5K,cAAc,GAAQ,CACjCpzL,IAAK+Z,EACLiI,MAAOjI,EACPs3B,MAAOooJ,EAAO+3K,OACdx4J,QAASA,EACTo4J,QAASL,EACTQ,WAAY,CACVxD,UAAW,WAAah0V,QAG1B,IAAMq5K,cAAc,MAAO,CAC7B/hJ,MAAOooJ,EAAOzwI,UCjCP,GAAQ,SAAewuD,GAChC,IAAI+vI,EAAW/vI,EAAK+vI,SAChBwpH,EAAgBv5P,EAAKu5P,cACrB3/T,EAAMomE,EAAKpmE,IACXgpI,EAAS5iE,EAAK4iE,OACd52J,EAAQg0F,EAAKh0F,MACbkS,EAAW8hF,EAAK9hF,SAChBm6U,EAAcr4P,EAAKiiF,OACnBq2K,OAA+BvvW,IAAhBsvW,EAA4B,GAAKA,EAChDgC,EAAiBr6P,EAAKinF,UACtBA,OAA+Bl+L,IAAnBsxW,EAA+B,GAAKA,EAChD5nU,EAAsB,gBAARmH,EAEd+5M,EAAe,SAAsB6mH,EAAS72V,GAChD,GAAiB62V,IAAYzqH,EAAS,CACpCn2M,IAAK4gU,EACLlyW,OAAQ,OACPqb,IAGDs+K,EAAS,IAAS,GAAM,CAC1B,QAAW,CACTw4K,KAAM,CACJzuV,MAAOA,EACP8hB,WAAY,OACZyoU,UAAW,uBACXD,aAAc,MACd54U,SAAU,YAEZ4hK,KAAM,CACJrzK,OAAQ,QACR6hB,WAAY8L,EACZ08T,aAAc,cACdxtP,QAAS,OACT4xP,WAAY,SACZC,eAAgB,SAChBj9U,SAAU,YAEZk7H,KAAM,CACJs/F,QAAS,QAEX/9F,MAAO,CACLm4F,SAAU,OACV9nO,MAAO,GAA0BovB,GACjClc,SAAU,YAEZQ,SAAU,CACRlS,MAAO,MACPC,OAAQ,MACR2uV,YAAa,QACbC,YAAa,mBACbC,YAAa,2BAA6BlhU,EAAM,eAChDlc,SAAU,WACV4K,IAAK,QACLF,KAAM,MACN2lQ,WAAY,SAEd5+C,MAAO,CACLnjO,MAAO,OACPsmO,SAAU,OACV9nO,MAAO,OACPuwV,OAAQ,MACRd,QAAS,OACThuV,OAAQ,OACRsqV,UAAW,uBACXD,aAAc,MACdp+G,QAAS,QACT7b,UAAW,eAGf,gBAAiB,CACfn+M,SAAU,CACR4qF,QAAS,UAGZwvP,GAAe,CAChB,gBAA8B,SAAbp6U,IAEnB,OAAO,IAAM09J,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOw4K,KACdxzK,UAAW,gBAAkBA,GAC5B,IAAMrL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAO/jK,WACZ,IAAM09J,cAAc,MAAO,CAC7B/hJ,MAAOooJ,EAAO3C,MACb7sJ,GAAe,IAAMmpJ,cAAc,EAAY,CAChD06K,aAAc,gBACZ,IAAM16K,cAAc,MAAO,CAC7B/hJ,MAAOooJ,EAAO9nC,OACbvgH,IAAO,IAAMgiJ,cAAc,MAAO,CACnC/hJ,MAAOooJ,EAAOrpC,MACb,IAAMgjC,cAAc,GAAe,CACpChZ,OAAQA,EACR4+B,QAASmyC,EACT4lH,cAAeA,IACb,IAAM39K,cAAc,EAAe,CACrC/hJ,MAAO,CACLs1M,MAAOltD,EAAOktD,OAEhBnlP,MAAO4vC,EACPm2M,SAAU4D,OAGd,GAAM/vD,UAAY,CAChB53K,MAAO,IAAUgvV,UAAU,CAAC,IAAUjhU,OAAQ,IAAUqrN,SACxDxiF,OAAQ,IAAU6/B,QAAQ,IAAU1oK,QACpC7b,SAAU,IAAUs6U,MAAM,CAAC,MAAO,SAClCv2K,OAAQ,IAAU56L,QAEpB,GAAM87L,aAAe,CACnBn3K,MAAO,IACP42J,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACjG1kJ,SAAU,MACV+jK,OAAQ,IAEK,GAAU,IAAV,IC1HJ,GAAM,CACf,GAAM,UACN,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,KAAQ,UACR,KAAQ,UACR,KAAQ,UACR,KAAQ,WAEC+oF,GAAO,CAChB,GAAM,UACN,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,KAAQ,UACR,KAAQ,UACR,KAAQ,UACR,KAAQ,WAECG,GAAS,CAClB,GAAM,UACN,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,KAAQ,UACR,KAAQ,UACR,KAAQ,UACR,KAAQ,WAEC8vF,GAAa,CACtB,GAAM,UACN,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,KAAQ,UACR,KAAQ,UACR,KAAQ,UACR,KAAQ,WAECxzF,GAAS,CAClB,GAAM,UACN,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,KAAQ,UACR,KAAQ,UACR,KAAQ,UACR,KAAQ,WAECpD,GAAO,CAChB,GAAM,UACN,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,KAAQ,UACR,KAAQ,UACR,KAAQ,UACR,KAAQ,WAEC62F,GAAY,CACrB,GAAM,UACN,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,KAAQ,UACR,KAAQ,UACR,KAAQ,UACR,KAAQ,WAECj2F,GAAO,CAChB,GAAM,UACN,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,KAAQ,UACR,KAAQ,UACR,KAAQ,UACR,KAAQ,WAECqH,GAAO,CAChB,GAAM,UACN,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,KAAQ,UACR,KAAQ,UACR,KAAQ,UACR,KAAQ,WAECnF,GAAQ,CACjB,GAAM,UACN,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,KAAQ,UACR,KAAQ,UACR,KAAQ,UACR,KAAQ,WAECg0F,GAAa,CACtB,GAAM,UACN,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,KAAQ,UACR,KAAQ,UACR,KAAQ,UACR,KAAQ,WAECpyF,GAAO,CAChB,GAAM,UACN,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,KAAQ,UACR,KAAQ,UACR,KAAQ,UACR,KAAQ,WAEC8D,GAAS,CAClB,GAAM,UACN,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,KAAQ,UACR,KAAQ,UACR,KAAQ,UACR,KAAQ,WAECuuF,GAAQ,CACjB,GAAM,UACN,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,KAAQ,UACR,KAAQ,UACR,KAAQ,UACR,KAAQ,WAEC9wF,GAAS,CAClB,GAAM,UACN,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,KAAQ,UACR,KAAQ,UACR,KAAQ,UACR,KAAQ,WAEC+wF,GAAa,CACtB,GAAM,UACN,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,KAAQ,UACR,KAAQ,UACR,KAAQ,UACR,KAAQ,WAEC92F,GAAQ,CACjB,GAAM,UACN,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,WAcE+2F,GAAW,CACpB,GAAM,UACN,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,WC/RE,GAAe,SAAsBt7P,GAC9C,IAAIx1F,EAAQw1F,EAAKx1F,MACbg3L,EAAUxhG,EAAKwhG,QACf+3J,EAAgBv5P,EAAKu5P,cACrB1mL,EAAQ7yE,EAAK6yE,MACbo5D,EAASjsI,EAAKisI,OACdsvH,EAAav7P,EAAKu7P,WAClBC,EAAgBx7P,EAAKw7P,cACrBv5K,EAAS,IAAS,CACpB,QAAW,CACT+3K,OAAQ,CACNhuV,MAAOuvV,EACPtvV,OAAQsvV,EACRjsE,YAAaksE,EACbnsE,aAAcmsE,EACd5/P,UAAW,WACX0yI,WAAY,wBAEdmtH,OAAQ,CACNnF,aAAc,MACdxoU,WAAY,cACZyoU,UAAW,gBAAkBgF,EAAa,EAAI,GAAK,MAAQ/wV,EAC3D8jO,WAAY,0BAGhB,MAAS,CACP0rH,OAAQ,CACNp+P,UAAW,eAGf,OAAU,CACR6/P,OAAQ,CACNlF,UAAW,mBAAqB/rV,KAGnC,CACDqoK,MAAOA,EACPo5D,OAAQA,IAEV,OAAO,IAAMrwD,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAO+3K,QACb,IAAMp+K,cAAc,GAAQ,CAC7B/hJ,MAAOooJ,EAAOw5K,OACdjxV,MAAOA,EACPg3L,QAASA,EACTo4J,QAASL,EACTQ,WAAY,CACVxD,UAAWt0K,EAAOw5K,OAAOlF,UAAY,aAAe/rV,OAI1D,GAAa24K,aAAe,CAC1Bo4K,WAAY,GACZC,cAAe,IAEF,6BAAY,IClDhB,GAAS,SAAgBx7P,GAClC,IAAIh0F,EAAQg0F,EAAKh0F,MACb+jO,EAAW/vI,EAAK+vI,SAChBwpH,EAAgBv5P,EAAKu5P,cACrB32L,EAAS5iE,EAAK4iE,OACdhpI,EAAMomE,EAAKpmE,IACX2hU,EAAav7P,EAAKu7P,WAClBlD,EAAcr4P,EAAKiiF,OACnBq2K,OAA+BvvW,IAAhBsvW,EAA4B,GAAKA,EAChDmD,EAAgBx7P,EAAKw7P,cACrBnB,EAAiBr6P,EAAKinF,UACtBA,OAA+Bl+L,IAAnBsxW,EAA+B,GAAKA,EAChDp4K,EAAS,IAAS,GAAM,CAC1B,QAAW,CACTw4K,KAAM,CACJzuV,MAAOA,EACP88F,QAAS,OACT4yP,SAAU,OACVpsE,aAAcksE,EACdnsE,cAAemsE,KAGlBlD,IAEC3kH,EAAe,SAAsB6mH,EAAS72V,GAChD,OAAOosO,EAAS,CACdn2M,IAAK4gU,EACLlyW,OAAQ,OACPqb,IAGL,OAAO,IAAMi4K,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOw4K,KACdxzK,UAAW,iBAAmBA,GAC7B,GAAIrkB,GAAQ,SAAUrgK,GACvB,OAAO,IAAMq5K,cAAc,GAAc,CACvCpzL,IAAK+Z,EACLiI,MAAOjI,EACPi/L,QAASmyC,EACT4lH,cAAeA,EACfttH,OAAQryM,IAAQr3B,EAAE3D,cAClB28V,WAAYA,EACZC,cAAeA,SAIrB,GAAO53K,UAAY,CACjB53K,MAAO,IAAUgvV,UAAU,CAAC,IAAUjhU,OAAQ,IAAUqrN,SACxDm2G,WAAY,IAAUn2G,OACtBo2G,cAAe,IAAUp2G,OACzBnjE,OAAQ,IAAU56L,QAEpB,GAAO87L,aAAe,CACpBn3K,MAAO,IACPuvV,WAAY,GACZC,cAAe,GACf54L,OAAQ,CAAC,GAAa,KAAQ,GAAc,KAAQ,GAAgB,KAAQ,GAAoB,KAAQ,GAAgB,KAAQ,GAAc,KAAQ,GAAmB,KAAQ,GAAc,KAAQ,GAAc,KAAQ,GAAe,KAAQ,GAAoB,KAAQ,GAAc,KAAQ,GAAgB,KAAQ,GAAe,KAAQ,GAAgB,KAAQ,GAAoB,KAAQ,GAAe,KAAQ,GAAkB,MAClbqf,OAAQ,IAEK,GAAU,IC9CV,OAJf,SAAqBj4L,GACnB,YAAiBjB,IAAViB,G,qBClBL,GAAe,WACjB,SAAStB,EAAiBR,EAAQqnL,GAChC,IAAK,IAAIpnL,EAAI,EAAGA,EAAIonL,EAAMlnL,OAAQF,IAAK,CACrC,IAAIqnL,EAAaD,EAAMpnL,GACvBqnL,EAAW1nL,WAAa0nL,EAAW1nL,aAAc,EACjD0nL,EAAWtlL,cAAe,EACtB,UAAWslL,IAAYA,EAAWvlL,UAAW,GACjDzC,OAAOmB,eAAeT,EAAQsnL,EAAWhnL,IAAKgnL,IAIlD,OAAO,SAAUH,EAAaK,EAAYC,GAGxC,OAFID,GAAYhnL,EAAiB2mL,EAAYvlL,UAAW4lL,GACpDC,GAAajnL,EAAiB2mL,EAAaM,GACxCN,GAdQ,GAwDZ,IAAI,GAAe,SAAU+hD,GAGlC,SAASuqI,EAAapsL,IAzCxB,SAAyBH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIhmL,UAAU,qCAwCpB,CAAgBO,KAAM+xW,GAEtB,IAAIrxP,EAtCR,SAAoCz+G,EAAM1C,GACxC,IAAK0C,EACH,MAAM,IAAIsqL,eAAe,6DAG3B,OAAOhtL,GAAyB,kBAATA,GAAqC,oBAATA,EAA8B0C,EAAP1C,EAiC5D,CAA2BS,MAAO+xW,EAAaxrW,WAAa3I,OAAOmC,eAAegyW,IAAexyW,KAAKS,OA+FlH,OA7FA0gH,EAAMsxP,YAAc,WACO,QAArBtxP,EAAMj+G,MAAMgiD,KACdi8D,EAAMl6C,SAAS,CACb/hB,KAAM,QAEsB,QAArBi8D,EAAMj+G,MAAMgiD,KACrBi8D,EAAMl6C,SAAS,CACb/hB,KAAM,QAEsB,QAArBi8D,EAAMj+G,MAAMgiD,OACK,IAAtBi8D,EAAMilE,MAAMitF,IAAIn6P,EAClBioG,EAAMl6C,SAAS,CACb/hB,KAAM,QAGRi8D,EAAMl6C,SAAS,CACb/hB,KAAM,UAMdi8D,EAAMqpI,aAAe,SAAUhnO,EAAMhJ,GAC/BgJ,EAAKitB,IACP,GAAiBjtB,EAAKitB,MAAQ0wE,EAAMilE,MAAMwgE,SAAS,CACjDn2M,IAAKjtB,EAAKitB,IACVtxC,OAAQ,OACPqb,GACMgJ,EAAKnE,GAAKmE,EAAK/E,GAAK+E,EAAKrK,EAClCgoG,EAAMilE,MAAMwgE,SAAS,CACnBvnO,EAAGmE,EAAKnE,GAAK8hG,EAAMilE,MAAMq+C,IAAIplN,EAC7BZ,EAAG+E,EAAK/E,GAAK0iG,EAAMilE,MAAMq+C,IAAIhmN,EAC7BtF,EAAGqK,EAAKrK,GAAKgoG,EAAMilE,MAAMq+C,IAAItrN,EAC7Bha,OAAQ,OACPqb,GACMgJ,EAAKtK,GACVsK,EAAKtK,EAAI,EACXsK,EAAKtK,EAAI,EACAsK,EAAKtK,EAAI,IAClBsK,EAAKtK,EAAI,GAGXioG,EAAMilE,MAAMwgE,SAAS,CACnBloO,EAAGyiG,EAAMilE,MAAMitF,IAAI30P,EACnBhG,EAAGyoG,EAAMilE,MAAMitF,IAAI36P,EACnB9D,EAAGusG,EAAMilE,MAAMitF,IAAIz+P,EACnBsE,EAAGlE,KAAKmC,MAAe,IAATqM,EAAKtK,GAAW,IAC9B/Z,OAAQ,OACPqb,KACMgJ,EAAK9E,GAAK8E,EAAK9K,GAAK8K,EAAK5O,KAEZ,kBAAX4O,EAAK9K,GAAkB8K,EAAK9K,EAAE4vP,SAAS,OAChD9kP,EAAK9K,EAAI8K,EAAK9K,EAAE6jE,QAAQ,IAAK,KAGT,kBAAX/4D,EAAK5O,GAAkB4O,EAAK5O,EAAE0zP,SAAS,OAChD9kP,EAAK5O,EAAI4O,EAAK5O,EAAE2nE,QAAQ,IAAK,KAIjB,GAAV/4D,EAAK9K,EACP8K,EAAK9K,EAAI,IACU,GAAV8K,EAAK5O,IACd4O,EAAK5O,EAAI,KAGXusG,EAAMilE,MAAMwgE,SAAS,CACnBloO,EAAG8E,EAAK9E,GAAKyiG,EAAMilE,MAAMitF,IAAI30P,EAC7BhG,EAAGsU,OAAQ,GAAYxJ,EAAK9K,GAAcyoG,EAAMilE,MAAMitF,IAAI36P,EAAzB8K,EAAK9K,GACtC9D,EAAGoY,OAAQ,GAAYxJ,EAAK5O,GAAcusG,EAAMilE,MAAMitF,IAAIz+P,EAAzB4O,EAAK5O,GACtCzV,OAAQ,OACPqb,KAIP2mG,EAAMuxP,cAAgB,SAAUl4V,GAC9BA,EAAEm4V,cAAcjiU,MAAM/L,WAAa,QAGrCw8E,EAAMyxP,cAAgB,SAAUp4V,GAC9BA,EAAEm4V,cAAcjiU,MAAM/L,WAAa,eAGjB,IAAhByhJ,EAAMitF,IAAIn6P,GAA0B,QAAfktK,EAAMlhI,KAC7Bi8D,EAAMj+G,MAAQ,CACZgiD,KAAM,OAGRi8D,EAAMj+G,MAAQ,CACZgiD,KAAMkhI,EAAMlhI,MAITi8D,EA+NT,OA5VF,SAAmBmmE,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIrnL,UAAU,kEAAoEqnL,GAG1FD,EAAS3mL,UAAYtC,OAAOuC,OAAO2mL,GAAcA,EAAW5mL,UAAW,CACrED,YAAa,CACXG,MAAOymL,EACP3oL,YAAY,EACZmC,UAAU,EACVC,cAAc,KAGdwmL,IAAYlpL,OAAO2C,eAAiB3C,OAAO2C,eAAesmL,EAAUC,GAAcD,EAAStgL,UAAYugL,GAY3G,CAAUirL,EAAcvqI,GAuGxB,GAAauqI,EAAc,CAAC,CAC1BnzW,IAAK,SACLwB,MAAO,WACL,IAAIikB,EAASrkB,KAETq4L,EAAS,IAAS,CACpB,QAAW,CACTv2L,KAAM,CACJixO,WAAY,OACZ7zH,QAAS,QAEXkzP,OAAQ,CACN/hC,KAAM,IACNnxN,QAAS,OACTilL,WAAY,QAEdkuE,MAAO,CACLn/H,YAAa,MACb9wN,MAAO,QAETrH,MAAO,CACLm4N,YAAa,MACb9wN,MAAO,QAETggP,OAAQ,CACNhgP,MAAO,OACPo4T,UAAW,QACX1mT,SAAU,YAEZusN,KAAM,CACJqlD,YAAa,OACbxB,UAAW,OACXh9E,OAAQ,UACRpzL,SAAU,YAEZw+U,cAAe,CACbx+U,SAAU,WACV1R,MAAO,OACPC,OAAQ,OACR6hB,WAAY,OACZwoU,aAAc,MACdhuU,IAAK,OACLF,KAAM,OACN0gF,QAAS,QAEXqmI,MAAO,CACLmD,SAAU,OACV9nO,MAAO,OACPwB,MAAO,OACPsqV,aAAc,MACdyE,OAAQ,OACRxE,UAAW,0BACXtqV,OAAQ,OACRm4T,UAAW,UAEbjqL,MAAO,CACLgiN,cAAe,YACf7pH,SAAU,OACVf,WAAY,OACZ/mO,MAAO,UACP45T,UAAW,SACXt7N,QAAS,QACTglL,UAAW,QAEb5xD,IAAK,CACHpnK,KAAM,OACN9oD,MAAO,OACPC,OAAQ,OACR8uV,OAAQ,wBACRzE,aAAc,QAGlB,aAAgB,CACd3xV,MAAO,CACLmkG,QAAS,UAGZl/G,KAAK2lL,MAAO3lL,KAAKyC,OAChB2vW,OAAS,EA+Gb,MA7GwB,QAApBpyW,KAAKyC,MAAMgiD,KACb2tT,EAAS,IAAMpgL,cAAc,MAAO,CAClC/hJ,MAAOooJ,EAAO+5K,OACd/0K,UAAW,eACV,IAAMrL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOg6K,OACb,IAAMrgL,cAAc,EAAe,CACpC/hJ,MAAO,CACLs1M,MAAOltD,EAAOktD,MACdh1F,MAAO8nC,EAAO9nC,OAEhBA,MAAO,MACPnwJ,MAAOJ,KAAK2lL,MAAM31I,IAClBm2M,SAAUnmP,KAAK+pP,iBAEY,QAApB/pP,KAAKyC,MAAMgiD,KACpB2tT,EAAS,IAAMpgL,cAAc,MAAO,CAClC/hJ,MAAOooJ,EAAO+5K,OACd/0K,UAAW,eACV,IAAMrL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOg6K,OACb,IAAMrgL,cAAc,EAAe,CACpC/hJ,MAAO,CACLs1M,MAAOltD,EAAOktD,MACdh1F,MAAO8nC,EAAO9nC,OAEhBA,MAAO,IACPnwJ,MAAOJ,KAAK2lL,MAAMq+C,IAAIplN,EACtBunO,SAAUnmP,KAAK+pP,gBACZ,IAAM/3D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOg6K,OACb,IAAMrgL,cAAc,EAAe,CACpC/hJ,MAAO,CACLs1M,MAAOltD,EAAOktD,MACdh1F,MAAO8nC,EAAO9nC,OAEhBA,MAAO,IACPnwJ,MAAOJ,KAAK2lL,MAAMq+C,IAAIhmN,EACtBmoO,SAAUnmP,KAAK+pP,gBACZ,IAAM/3D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOg6K,OACb,IAAMrgL,cAAc,EAAe,CACpC/hJ,MAAO,CACLs1M,MAAOltD,EAAOktD,MACdh1F,MAAO8nC,EAAO9nC,OAEhBA,MAAO,IACPnwJ,MAAOJ,KAAK2lL,MAAMq+C,IAAItrN,EACtBytO,SAAUnmP,KAAK+pP,gBACZ,IAAM/3D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOt9K,OACb,IAAMi3K,cAAc,EAAe,CACpC/hJ,MAAO,CACLs1M,MAAOltD,EAAOktD,MACdh1F,MAAO8nC,EAAO9nC,OAEhBA,MAAO,IACPnwJ,MAAOJ,KAAK2lL,MAAMq+C,IAAIvrN,EACtBomO,YAAa,IACbsH,SAAUnmP,KAAK+pP,iBAEY,QAApB/pP,KAAKyC,MAAMgiD,OACpB2tT,EAAS,IAAMpgL,cAAc,MAAO,CAClC/hJ,MAAOooJ,EAAO+5K,OACd/0K,UAAW,eACV,IAAMrL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOg6K,OACb,IAAMrgL,cAAc,EAAe,CACpC/hJ,MAAO,CACLs1M,MAAOltD,EAAOktD,MACdh1F,MAAO8nC,EAAO9nC,OAEhBA,MAAO,IACPnwJ,MAAOmU,KAAKmC,MAAM1W,KAAK2lL,MAAMitF,IAAI30P,GACjCkoO,SAAUnmP,KAAK+pP,gBACZ,IAAM/3D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOg6K,OACb,IAAMrgL,cAAc,EAAe,CACpC/hJ,MAAO,CACLs1M,MAAOltD,EAAOktD,MACdh1F,MAAO8nC,EAAO9nC,OAEhBA,MAAO,IACPnwJ,MAAOmU,KAAKmC,MAAyB,IAAnB1W,KAAK2lL,MAAMitF,IAAI36P,GAAW,IAC5CkuO,SAAUnmP,KAAK+pP,gBACZ,IAAM/3D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOg6K,OACb,IAAMrgL,cAAc,EAAe,CACpC/hJ,MAAO,CACLs1M,MAAOltD,EAAOktD,MACdh1F,MAAO8nC,EAAO9nC,OAEhBA,MAAO,IACPnwJ,MAAOmU,KAAKmC,MAAyB,IAAnB1W,KAAK2lL,MAAMitF,IAAIz+P,GAAW,IAC5CgyO,SAAUnmP,KAAK+pP,gBACZ,IAAM/3D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOt9K,OACb,IAAMi3K,cAAc,EAAe,CACpC/hJ,MAAO,CACLs1M,MAAOltD,EAAOktD,MACdh1F,MAAO8nC,EAAO9nC,OAEhBA,MAAO,IACPnwJ,MAAOJ,KAAK2lL,MAAMitF,IAAIn6P,EACtBomO,YAAa,IACbsH,SAAUnmP,KAAK+pP,kBAIZ,IAAM/3D,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOv2L,KACdu7L,UAAW,eACV+0K,EAAQ,IAAMpgL,cAAc,MAAO,CACpC/hJ,MAAOooJ,EAAO+pE,QACb,IAAMpwE,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOgoD,KACdzoC,QAAS53M,KAAKgyW,YACd50K,IAAK,SAAaijD,GAChB,OAAOh8N,EAAOg8N,KAAOA,IAEtB,IAAMruD,cAAc,KAA0B,CAC/C/hJ,MAAOooJ,EAAOi6C,IACdg+H,YAAatwW,KAAKiyW,cAClB52H,aAAcr7O,KAAKiyW,cACnBO,WAAYxyW,KAAKmyW,sBAGnB,CAAC,CACHvzW,IAAK,2BACLwB,MAAO,SAAkCsqL,EAAWjoL,GAClD,OAAwB,IAApBioL,EAAUkoF,IAAIn6P,GAA0B,QAAfhW,EAAMgiD,KAC1B,CACLA,KAAM,OAIH,SAIJstT,EApUiB,CAqUxB,IAAM5mL,WACR,GAAaoO,aAAe,CAC1B90I,KAAM,OAEO,UC9WA,GAjBY,WACzB,IAAI4zI,EAAS,IAAS,CACpB,QAAW,CACTk4K,OAAQ,CACNnuV,MAAO,OACPC,OAAQ,OACRqqV,aAAc,MACd16P,UAAW,wBACXw+P,gBAAiB,qBACjB7D,UAAW,sCAIjB,OAAO,IAAM36K,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOk4K,UCEH,GAhBkB,WAC/B,IAAIl4K,EAAS,IAAS,CACpB,QAAW,CACTk4K,OAAQ,CACNnuV,MAAO,OACPC,OAAQ,OACRqqV,aAAc,MACdC,UAAW,uBACX36P,UAAW,4BAIjB,OAAO,IAAMggF,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOk4K,UCPP,GAAS,SAAgBn6P,GAClC,IAAIh0F,EAAQg0F,EAAKh0F,MACb+jO,EAAW/vI,EAAK+vI,SAChBssH,EAAer8P,EAAKq8P,aACpBzuI,EAAM5tH,EAAK4tH,IACX4uC,EAAMx8J,EAAKw8J,IACXE,EAAM18J,EAAK08J,IACX9iO,EAAMomE,EAAKpmE,IACXy8T,EAAYr2P,EAAKq2P,UACjBgC,EAAcr4P,EAAKiiF,OACnBq2K,OAA+BvvW,IAAhBsvW,EAA4B,GAAKA,EAChDgC,EAAiBr6P,EAAKinF,UACtBA,OAA+Bl+L,IAAnBsxW,EAA+B,GAAKA,EAChDj/H,EAAcp7H,EAAKo7H,YACnBn5C,EAAS,IAAS,GAAM,CAC1B,QAAW,CACTk4K,OAAQ,CACNnuV,MAAOA,EACP8hB,WAAY,OACZwoU,aAAc,MACdC,UAAW,mDACXl6H,UAAW,UACXigI,WAAY,SAEd5hU,WAAY,CACV1uB,MAAO,OACP6wN,cAAe,MACfn/M,SAAU,WACV44U,aAAc,cACdvrE,SAAU,UAEZ0tE,WAAY,CACVl9U,OAAQ,eAEVq9H,KAAM,CACJs/F,QAAS,kBAEXqkH,SAAU,CACRzzP,QAAS,QAEXt+F,MAAO,CACLwB,MAAO,QAETguV,OAAQ,CACNlsE,UAAW,MACX9hR,MAAO,OACPC,OAAQ,OACRqqV,aAAc,MACd54U,SAAU,WACVqtQ,SAAU,UAEZ9+C,OAAQ,CACNuqH,SAAU,kBACVF,aAAc,MACdC,UAAW,iCACXzoU,WAAY,QAAU8/L,EAAIplN,EAAI,KAAOolN,EAAIhmN,EAAI,KAAOgmN,EAAItrN,EAAI,KAAOsrN,EAAIvrN,EAAI,IAC3EqjN,OAAQ,KAEV82I,QAAS,CACPviC,KAAM,KAERx/R,IAAK,CACHxuB,OAAQ,OACRyR,SAAU,WACV2xQ,aAAc,OAEhB6oE,IAAK,CACH38U,OAAQ,OAEV5W,MAAO,CACLsH,OAAQ,OACRyR,SAAU,YAEZ+4U,MAAO,CACLl7U,OAAQ,QAGZ,aAAgB,CACd/Q,MAAO,CACLwB,MAAO,QAETrH,MAAO,CACLmkG,QAAS,QAEXruE,IAAK,CACH40P,aAAc,OAEhB2qE,OAAQ,CACNhuV,MAAO,OACPC,OAAQ,OACR6hR,UAAW,SAGdwqE,GAAe,CAChB+D,aAAcA,IAEhB,OAAO,IAAMzgL,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOk4K,OACdlzK,UAAW,iBAAmBA,GAC7B,IAAMrL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOvnJ,YACb,IAAMkhJ,cAAc,GAAY,CACjC/hJ,MAAOooJ,EAAOw2K,WACdj8F,IAAKA,EACLE,IAAKA,EACLo6F,QAAS,GACT/mH,SAAUA,KACP,IAAMn0D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOrpC,MACb,IAAMgjC,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOs6K,SACdt1K,UAAW,eACV,IAAMrL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOz3K,OACb,IAAMoxK,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAO+3K,QACb,IAAMp+K,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOgqD,SACZ,IAAMrwD,cAAc,EAAY,CAClCy6K,UAAWA,MACP,IAAMz6K,cAAc,MAAO,CAC/B/hJ,MAAOooJ,EAAOu6K,SACb,IAAM5gL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOxnJ,KACb,IAAMmhJ,cAAc,EAAK,CAC1B/hJ,MAAOooJ,EAAOi2K,IACd17F,IAAKA,EACLs6F,QAAS,GACT/mH,SAAUA,KACP,IAAMn0D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOt9K,OACb,IAAMi3K,cAAc,EAAO,CAC5B/hJ,MAAOooJ,EAAOw0K,MACd7oI,IAAKA,EACL4uC,IAAKA,EACLs6F,QAAS,GACTT,UAAWA,EACXtmH,SAAUA,OACL,IAAMn0D,cAAc,GAAc,CACvCgyC,IAAKA,EACL4uC,IAAKA,EACL5iO,IAAKA,EACLyU,KAAM+sL,EACN2U,SAAUA,EACVssH,aAAcA,OAGlB,GAAOz4K,UAAY,CACjB53K,MAAO,IAAUgvV,UAAU,CAAC,IAAUjhU,OAAQ,IAAUqrN,SACxDi3G,aAAc,IAAUI,KACxBx6K,OAAQ,IAAU56L,OAClB+zO,YAAa,IAAUo9H,MAAM,CAAC,MAAO,MAAO,SAE9C,GAAOr1K,aAAe,CACpBn3K,MAAO,IACPqwV,cAAc,EACdp6K,OAAQ,IAEK,GAAU,IAAV,ICtGA,GA5DW,SAAsBjiF,GAC9C,IAAIx1F,EAAQw1F,EAAKx1F,MACbmvV,EAAe35P,EAAKwhG,QACpBA,OAA2Bz4M,IAAjB4wW,EAA6B,aAAiBA,EACxDJ,EAAgBv5P,EAAKu5P,cACrBttH,EAASjsI,EAAKisI,OACdhqD,EAAS,IAAS,CACpB,QAAW,CACTz3K,MAAO,CACLsjB,WAAYtjB,EACZwB,MAAO,OACPC,OAAQ,OACRsuV,MAAO,OACPjrE,YAAa,MACbD,aAAc,MACd3xQ,SAAU,WACVozL,OAAQ,WAEVxsM,IAAK,CACHkyV,SAAU,kBACV1oU,WAAY,GAA+BtjB,GAC3C8rV,aAAc,MACd9jU,QAAS,MAGb,OAAU,CACRluB,IAAK,CACHkuB,QAAS,MAGb,gBAAiB,CACfhoB,MAAO,CACL+rV,UAAW,wBAEbjyV,IAAK,CACHwpB,WAAY,SAGhB,YAAe,CACbxpB,IAAK,CACHwpB,WAAY,UAGf,CACDm+M,OAAQA,EACR,gBAA2B,YAAVzhO,EACjB,YAAyB,gBAAVA,IAEjB,OAAO,IAAMoxK,cAAc,GAAQ,CACjC/hJ,MAAOooJ,EAAOz3K,MACdA,MAAOA,EACPg3L,QAASA,EACTo4J,QAASL,EACTQ,WAAY,CACVxD,UAAW,WAAa/rV,IAEzB,IAAMoxK,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAO39K,QCkEH,GA5HY,SAAuB07F,GAChD,IAAIpmE,EAAMomE,EAAKpmE,IACXg0L,EAAM5tH,EAAK4tH,IACXmiB,EAAW/vI,EAAK+vI,SAChB9tD,EAAS,IAAS,CACpB,QAAW,CACT+5K,OAAQ,CACNlzP,QAAS,OACT+zH,cAAe,MACfD,aAAc,MACdl/M,SAAU,YAEZuuN,OAAQ,CACNvuN,SAAU,WACV4K,IAAK,MACLF,KAAM,MACNnc,OAAQ,MACRD,MAAO,MACP8hB,WAAY8L,GAEd8iU,QAAS,CACPziC,KAAM,IACNv8S,SAAU,YAEZi/U,SAAU,CACR3wV,MAAO,MACPksO,QAAS,MACTpb,YAAa,MACbi+H,OAAQ,OACRd,QAAS,OACTnsU,WAAY,OACZwkN,SAAU,OACV9nO,MAAO,OACPyB,OAAQ,QAEV2wV,SAAU,CACR9zP,QAAS,QAEX+zP,QAAS,CACP5iC,KAAM,IACNv8S,SAAU,YAEZo/U,SAAU,CACR9wV,MAAO,MACPksO,QAAS,MACTpb,YAAa,MACbi+H,OAAQ,OACRd,QAAS,OACTnsU,WAAY,OACZwkN,SAAU,OACV9nO,MAAO,OACPyB,OAAQ,QAEV8wV,SAAU,CACRr/U,SAAU,WACV4K,IAAK,MACLF,KAAM,MACNmpN,WAAY,OACZ4qH,cAAe,YACf7pH,SAAU,OACV9nO,MAAO,WAKTmpO,EAAe,SAAsBhnO,EAAMhJ,GACzCgJ,EAAKnE,GAAKmE,EAAK/E,GAAK+E,EAAKrK,EAC3BytO,EAAS,CACPvnO,EAAGmE,EAAKnE,GAAKolN,EAAIplN,EACjBZ,EAAG+E,EAAK/E,GAAKgmN,EAAIhmN,EACjBtF,EAAGqK,EAAKrK,GAAKsrN,EAAItrN,EACjBha,OAAQ,OACPqb,GAEHosO,EAAS,CACPn2M,IAAKjtB,EAAKitB,IACVtxC,OAAQ,OACPqb,IAIP,OAAO,IAAMi4K,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAO+5K,OACd/0K,UAAW,eACV,IAAMrL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOgqD,SACZ,IAAMrwD,cAAc,EAAe,CACrC/hJ,MAAO,CACLnuC,KAAMu2L,EAAOy6K,QACbvtH,MAAOltD,EAAO06K,SACdxiN,MAAO8nC,EAAO26K,UAEhBziN,MAAO,MACPnwJ,MAAO4vC,EACPm2M,SAAU4D,IACR,IAAM/3D,cAAc,EAAe,CACrC/hJ,MAAO,CACLnuC,KAAMu2L,EAAO46K,QACb1tH,MAAOltD,EAAO66K,SACd3iN,MAAO8nC,EAAO86K,UAEhB5iN,MAAO,IACPnwJ,MAAO4jO,EAAIplN,EACXunO,SAAU4D,IACR,IAAM/3D,cAAc,EAAe,CACrC/hJ,MAAO,CACLnuC,KAAMu2L,EAAO46K,QACb1tH,MAAOltD,EAAO66K,SACd3iN,MAAO8nC,EAAO86K,UAEhB5iN,MAAO,IACPnwJ,MAAO4jO,EAAIhmN,EACXmoO,SAAU4D,IACR,IAAM/3D,cAAc,EAAe,CACrC/hJ,MAAO,CACLnuC,KAAMu2L,EAAO46K,QACb1tH,MAAOltD,EAAO66K,SACd3iN,MAAO8nC,EAAO86K,UAEhB5iN,MAAO,IACPnwJ,MAAO4jO,EAAItrN,EACXytO,SAAU4D,MCnHH,GAAU,SAAiB3zI,GACpC,IAAI+vI,EAAW/vI,EAAK+vI,SAChBwpH,EAAgBv5P,EAAKu5P,cACrB32L,EAAS5iE,EAAK4iE,OACdhpI,EAAMomE,EAAKpmE,IACXg0L,EAAM5tH,EAAK4tH,IACXyqI,EAAcr4P,EAAKiiF,OACnBq2K,OAA+BvvW,IAAhBsvW,EAA4B,GAAKA,EAChDgC,EAAiBr6P,EAAKinF,UACtBA,OAA+Bl+L,IAAnBsxW,EAA+B,GAAKA,EAChDp4K,EAAS,IAAS,GAAM,CAC1B,QAAW,CACT+6K,QAAS,CACPlvU,WAAY,UACZvS,OAAQ,OAEVqxU,QAAS,CACPjwH,WAAY,MACZG,YAAa,MACbT,UAAW,UACXrwN,MAAO,SAETwlC,MAAO,CACLA,MAAO,UAGV8mT,IAEC3kH,EAAe,SAAsBhnO,EAAMhJ,GACzCgJ,EAAKitB,IACP,GAAiBjtB,EAAKitB,MAAQm2M,EAAS,CACrCn2M,IAAKjtB,EAAKitB,IACVtxC,OAAQ,OACPqb,GAEHosO,EAASpjO,EAAMhJ,IAInB,OAAO,IAAMi4K,cAAc,GAAQ,CACjC/hJ,MAAOooJ,EAAO+6K,QACd/6K,OAAQq2K,GACP,IAAM18K,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAO2qK,QACd3lK,UAAW,kBAAoBA,GAC9B,IAAMrL,cAAc,MAAO,KAAM,GAAIhZ,GAAQ,SAAUrgK,GACxD,OAAO,IAAMq5K,cAAc,GAAc,CACvCpzL,IAAK+Z,EACLiI,MAAOjI,EACP0pO,OAAQ1pO,EAAE3D,gBAAkBg7B,EAC5B4nK,QAASmyC,EACT4lH,cAAeA,OAEf,IAAM39K,cAAc,MAAO,CAC7B/hJ,MAAOooJ,EAAOzwI,SACX,IAAMoqI,cAAc,GAAe,CACtChiJ,IAAKA,EACLg0L,IAAKA,EACLmiB,SAAU4D,OAGd,GAAQ/vD,UAAY,CAClBhhB,OAAQ,IAAU6/B,QAAQ,IAAU1oK,QACpCkoJ,OAAQ,IAAU56L,QAEpB,GAAQ87L,aAAe,CACrBvgB,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC1Yqf,OAAQ,IAEK,GAAU,IAAV,ICzCA,0BAlCW,SAAsBjiF,GAC9C,IAAI6yE,EAAQ7yE,EAAK6yE,MACbroK,EAAQw1F,EAAKx1F,MACbg3L,EAAUxhG,EAAKwhG,QACf+3J,EAAgBv5P,EAAKu5P,cACrB0D,EAAc,CAChBv/U,SAAU,WACVgoM,OAAQ,IACRu0I,QAAS,iBACT1D,UAAW,gCAETt0K,EAAS,IAAS,CACpB,QAAW,CACT+3K,OAAQ,CACNhuV,MAAO,OACPC,OAAQ,OACRqmO,SAAU,MAGd,MAAS,CACP0nH,OAAQiD,IAET,CACDpqL,MAAOA,IAET,OAAO,IAAM+I,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAO+3K,QACb,IAAMp+K,cAAc,GAAQ,CAC7BpxK,MAAOA,EACPg3L,QAASA,EACTo4J,QAASL,EACTQ,WAAYkD,QC3BL,GAAS,SAAgBj9P,GAClC,IAAIh0F,EAAQg0F,EAAKh0F,MACb42J,EAAS5iE,EAAK4iE,OACdmtE,EAAW/vI,EAAK+vI,SAChBwpH,EAAgBv5P,EAAKu5P,cACrBr7U,EAAW8hF,EAAK9hF,SAChBm6U,EAAcr4P,EAAKiiF,OACnBq2K,OAA+BvvW,IAAhBsvW,EAA4B,GAAKA,EAChDgC,EAAiBr6P,EAAKinF,UACtBA,OAA+Bl+L,IAAnBsxW,EAA+B,GAAKA,EAChDp4K,EAAS,IAAS,GAAM,CAC1B,QAAW,CACTw4K,KAAM,CACJzuV,MAAOA,EACP8hB,WAAY,OACZitU,OAAQ,4BACRxE,UAAW,8BACXD,aAAc,MACd54U,SAAU,WACVw6N,QAAS,MACTpvI,QAAS,OACT4yP,SAAU,QAEZx9U,SAAU,CACRR,SAAU,WACVq9U,OAAQ,wBACRmC,kBAAmB,QAErBC,eAAgB,CACdz/U,SAAU,WACVq9U,OAAQ,wBACRmC,kBAAmB,qBAGvB,gBAAiB,CACfh/U,SAAU,CACR4qF,QAAS,QAEXq0P,eAAgB,CACdr0P,QAAS,SAGb,oBAAqB,CACnB5qF,SAAU,CACRoK,IAAK,QACLF,KAAM,QAER+0U,eAAgB,CACd70U,IAAK,QACLF,KAAM,QAGV,qBAAsB,CACpBlK,SAAU,CACRoK,IAAK,QACLD,MAAO,QAET80U,eAAgB,CACd70U,IAAK,QACLD,MAAO,QAGX,uBAAwB,CACtBnK,SAAU,CACRoK,IAAK,OACLF,KAAM,OACNwzE,UAAW,kBAEbuhQ,eAAgB,CACd70U,IAAK,OACLF,KAAM,MACNwzE,UAAW,mBAGf,wBAAyB,CACvB19E,SAAU,CACRoK,IAAK,OACLD,MAAO,OACPuzE,UAAW,kBAEbuhQ,eAAgB,CACd70U,IAAK,OACLD,MAAO,MACPuzE,UAAW,oBAGd08P,GAAe,CAChB,gBAA8B,SAAbp6U,EACjB,oBAAkC,aAAbA,EACrB,qBAAmC,cAAbA,EACtB,uBAAqC,gBAAbA,EACxB,wBAAsC,iBAAbA,IAGvBy1N,EAAe,SAAsB/5M,EAAKj2B,GAC5C,OAAOosO,EAAS,CACdn2M,IAAKA,EACLtxC,OAAQ,OACPqb,IAGL,OAAO,IAAMi4K,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOw4K,KACdxzK,UAAW,iBAAmBA,GAC7B,IAAMrL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOk7K,iBACZ,IAAMvhL,cAAc,MAAO,CAC7B/hJ,MAAOooJ,EAAO/jK,WACZ,GAAI0kJ,GAAQ,SAAUrgK,GACxB,OAAO,IAAMq5K,cAAc,GAAc,CACvCpxK,MAAOjI,EACP/Z,IAAK+Z,EACLi/L,QAASmyC,EACT4lH,cAAeA,SAIrB,GAAO31K,UAAY,CACjB53K,MAAO,IAAUgvV,UAAU,CAAC,IAAUjhU,OAAQ,IAAUqrN,SACxDxiF,OAAQ,IAAU6/B,QAAQ,IAAU1oK,QACpC7b,SAAU,IAAUs6U,MAAM,CAAC,OAAQ,WAAY,YAAa,cAAe,iBAC3Ev2K,OAAQ,IAAU56L,QAEpB,GAAO87L,aAAe,CACpBn3K,MAAO,IACP42J,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC9K1kJ,SAAU,WACV+jK,OAAQ,IAEK,GAAU,IAAV,IC7GA,GAzBY,SAAuBjiF,GAChD,IAAI7+E,EAAY6+E,EAAK7+E,UACjB8gK,EAAS,IAAS,CACpB,QAAW,CACTk4K,OAAQ,CACNnuV,MAAO,OACPC,OAAQ,OACRqqV,aAAc,MACd16P,UAAW,wBACXw+P,gBAAiB,qBACjB7D,UAAW,oCAGf,SAAY,CACV4D,OAAQ,CACNv+P,UAAW,2BAGd,CACDoxI,SAAwB,aAAd7rN,IAEZ,OAAO,IAAMy6J,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOk4K,UCxBd,GAAW3yW,OAAOsrB,QAAU,SAAU5qB,GACxC,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GAEvB,IAAK,IAAIK,KAAOF,EACVd,OAAOsC,UAAUU,eAAerB,KAAKb,EAAQE,KAC/CN,EAAOM,GAAOF,EAAOE,IAK3B,OAAON,GASE,GAAY,SAAmB83G,GACxC,IAAIh0F,EAAQg0F,EAAKh0F,MACbC,EAAS+zF,EAAK/zF,OACd8jO,EAAW/vI,EAAK+vI,SAChBysB,EAAMx8J,EAAKw8J,IACXr7O,EAAY6+E,EAAK7+E,UACjB21U,EAAU92P,EAAK82P,QACfuB,EAAcr4P,EAAKiiF,OACnBq2K,OAA+BvvW,IAAhBsvW,EAA4B,GAAKA,EAChDgC,EAAiBr6P,EAAKinF,UACtBA,OAA+Bl+L,IAAnBsxW,EAA+B,GAAKA,EAChDp4K,EAAS,IAAS,GAAM,CAC1B,QAAW,CACTk4K,OAAQ,CACNz8U,SAAU,WACV1R,MAAOA,EACPC,OAAQA,GAEVwuB,IAAK,CACHlf,OAAQ,SAGX+8U,IAWH,OAAO,IAAM18K,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOk4K,OACdlzK,UAAW,cAAgBA,GAC1B,IAAMrL,cAAc,EAAK,GAAS,GAAIqG,EAAOxnJ,IAAK,CACnD+hO,IAAKA,EACLs6F,QAASA,EACT/mH,SAfiB,SAAsBpjO,GACvC,OAAOojO,EAAS,CACd1tO,EAAG,EACHwF,EAAG8E,EAAK9E,EACR9J,EAAG,GACH8D,EAAG,KAWLsf,UAAWA,OAGf,GAAUyiK,UAAY,CACpB3B,OAAQ,IAAU56L,QAEpB,GAAU87L,aAAe,CACvBn3K,MAAO,QACPC,OAAQ,OACRkV,UAAW,aACX21U,QAASsG,GACTn7K,OAAQ,IAEK,GAAU,IC2EV,IA/IO,SAAkBjiF,GACtC,IAAI+vI,EAAW/vI,EAAK+vI,SAChBn2M,EAAMomE,EAAKpmE,IACXg0L,EAAM5tH,EAAK4tH,IACXyqI,EAAcr4P,EAAKiiF,OACnBq2K,OAA+BvvW,IAAhBsvW,EAA4B,GAAKA,EAChDgC,EAAiBr6P,EAAKinF,UACtBA,OAA+Bl+L,IAAnBsxW,EAA+B,GAAKA,EAChDp4K,EAAS,IAAS,GAAM,CAC1B,QAAW,CACTvzJ,SAAU,CACR1iB,MAAO,OACPC,OAAQ,OACRisO,QAAS,OACTokH,WAAY,UAEdI,QAAS,CACPh/U,SAAU,YAEZi/U,SAAU,CACR3wV,MAAO,OACP8hR,UAAW,OACXx7C,SAAU,OACV9nO,MAAO,OACP0tO,QAAS,MACT6iH,OAAQ,MACR59H,aAAc,aAAevjM,EAC7BqgU,QAAS,OACThuV,OAAQ,QAEV2wV,SAAU,CACRl/U,SAAU,WACV4K,IAAK,MACLF,KAAM,MACNkqN,SAAU,OACV9nO,MAAO,UACP2xV,cAAe,cAEjBkB,IAAK,CACHxjU,MAAO,IAETgjU,QAAS,CACPn/U,SAAU,YAEZo/U,SAAU,CACR9wV,MAAO,OACP8hR,UAAW,OACXx7C,SAAU,OACV9nO,MAAO,OACP0tO,QAAS,MACT6iH,OAAQ,MACR59H,aAAc,iBACd88H,QAAS,OACThuV,OAAQ,QAEV8wV,SAAU,CACRr/U,SAAU,WACV4K,IAAK,MACLF,KAAM,MACNkqN,SAAU,OACV9nO,MAAO,UACP2xV,cAAe,cAEjB13R,MAAO,CACLqkC,QAAS,OACTwmL,YAAa,QACb3yD,WAAY,QAEd2gI,MAAO,CACLrjC,KAAM,IACNr9F,aAAc,UAGjB07H,IAEC3kH,EAAe,SAAsBhnO,EAAMhJ,GACzCgJ,EAAKitB,IACP,GAAiBjtB,EAAKitB,MAAQm2M,EAAS,CACrCn2M,IAAKjtB,EAAKitB,IACVtxC,OAAQ,OACPqb,IACMgJ,EAAKnE,GAAKmE,EAAK/E,GAAK+E,EAAKrK,IAClCytO,EAAS,CACPvnO,EAAGmE,EAAKnE,GAAKolN,EAAIplN,EACjBZ,EAAG+E,EAAK/E,GAAKgmN,EAAIhmN,EACjBtF,EAAGqK,EAAKrK,GAAKsrN,EAAItrN,EACjBha,OAAQ,OACPqb,IAIP,OAAO,IAAMi4K,cAAc,GAAQ,CACjCqG,OAAQq2K,GACP,IAAM18K,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOvzJ,SACdu4J,UAAW,mBAAqBA,GAC/B,IAAMrL,cAAc,EAAe,CACpC/hJ,MAAO,CACLnuC,KAAMu2L,EAAOy6K,QACbvtH,MAAOltD,EAAO06K,SACdxiN,MAAO8nC,EAAO26K,UAEhBziN,MAAO,MACPnwJ,MAAO4vC,EACPm2M,SAAU4D,IACR,IAAM/3D,cAAc,MAAO,CAC7B/hJ,MAAOooJ,EAAOx9G,MACdwiH,UAAW,eACV,IAAMrL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOq7K,OACb,IAAM1hL,cAAc,EAAe,CACpC/hJ,MAAO,CACLnuC,KAAMu2L,EAAO46K,QACb1tH,MAAOltD,EAAO66K,SACd3iN,MAAO8nC,EAAO86K,UAEhB5iN,MAAO,IACPnwJ,MAAO4jO,EAAIplN,EACXunO,SAAU4D,KACP,IAAM/3D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOq7K,OACb,IAAM1hL,cAAc,EAAe,CACpC/hJ,MAAO,CACLnuC,KAAMu2L,EAAO46K,QACb1tH,MAAOltD,EAAO66K,SACd3iN,MAAO8nC,EAAO86K,UAEhB5iN,MAAO,IACPnwJ,MAAO4jO,EAAIhmN,EACXmoO,SAAU4D,KACP,IAAM/3D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOq7K,OACb,IAAM1hL,cAAc,EAAe,CACpC/hJ,MAAO,CACLnuC,KAAMu2L,EAAO46K,QACb1tH,MAAOltD,EAAO66K,SACd3iN,MAAO8nC,EAAO86K,UAEhB5iN,MAAO,IACPnwJ,MAAO4jO,EAAItrN,EACXytO,SAAU4D,WDxEC,IE8GA,GAnLc,SAAyB3zI,GACpD,IAAI+vI,EAAW/vI,EAAK+vI,SAChBniB,EAAM5tH,EAAK4tH,IACX8uC,EAAM18J,EAAK08J,IACX9iO,EAAMomE,EAAKpmE,IACXqoJ,EAAS,IAAS,CACpB,QAAW,CACT+5K,OAAQ,CACNr/H,WAAY,MACZE,cAAe,MACf7wN,MAAO,OACP0R,SAAU,YAEZ+0Q,QAAS,CACPxmR,OAAQ,OAEV4wV,QAAS,CACPn/U,SAAU,YAEZo/U,SAAU,CACR/uE,WAAY,MACZ/hR,MAAO,MACPC,OAAQ,OACR8uV,OAAQ,oBACRxE,UAAW,oDACXlnE,aAAc,MACd/8C,SAAU,OACVxV,YAAa,MACbwyD,YAAa,QAEfytE,SAAU,CACR30U,KAAM,MACNE,IAAK,MACLtc,MAAO,OACPmwV,cAAe,YACf7pH,SAAU,OACVrmO,OAAQ,OACRslO,WAAY,OACZ7zN,SAAU,YAEZg/U,QAAS,CACPh/U,SAAU,YAEZi/U,SAAU,CACR5uE,WAAY,MACZ/hR,MAAO,MACPC,OAAQ,OACR8uV,OAAQ,oBACRxE,UAAW,oDACXlnE,aAAc,MACd/8C,SAAU,OACVxV,YAAa,OAEf8/H,SAAU,CACRl/U,SAAU,WACV4K,IAAK,MACLF,KAAM,MACNpc,MAAO,OACPmwV,cAAe,YACf7pH,SAAU,OACVrmO,OAAQ,OACRslO,WAAY,QAEdgsH,aAAc,CACZ7/U,SAAU,WACV4K,IAAK,MACLD,MAAO,OACPiqN,SAAU,QAEZ4d,OAAQ,CACNjkP,OAAQ,OACRslO,WAAY,OACZ1U,cAAe,UAKjB8W,EAAe,SAAsBhnO,EAAMhJ,GACzCgJ,EAAK,KACP,GAAiBA,EAAK,OAASojO,EAAS,CACtCn2M,IAAKjtB,EAAK,KACVrkB,OAAQ,OACPqb,GACMgJ,EAAKnE,GAAKmE,EAAK/E,GAAK+E,EAAKrK,EAClCytO,EAAS,CACPvnO,EAAGmE,EAAKnE,GAAKolN,EAAIplN,EACjBZ,EAAG+E,EAAK/E,GAAKgmN,EAAIhmN,EACjBtF,EAAGqK,EAAKrK,GAAKsrN,EAAItrN,EACjBha,OAAQ,OACPqb,IACMgJ,EAAK9E,GAAK8E,EAAK9K,GAAK8K,EAAKlJ,IAClCssO,EAAS,CACPloO,EAAG8E,EAAK9E,GAAK60P,EAAI70P,EACjBhG,EAAG8K,EAAK9K,GAAK66P,EAAI76P,EACjB4B,EAAGkJ,EAAKlJ,GAAKi5P,EAAIj5P,EACjBnb,OAAQ,OACPqb,IAIP,OAAO,IAAMi4K,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAO+5K,QACb,IAAMpgL,cAAc,EAAe,CACpC/hJ,MAAO,CACLnuC,KAAMu2L,EAAO46K,QACb1tH,MAAOltD,EAAO66K,SACd3iN,MAAO8nC,EAAO86K,UAEhB5iN,MAAO,IACPnwJ,MAAOmU,KAAKmC,MAAMo8P,EAAI70P,GACtBkoO,SAAU4D,IACR,IAAM/3D,cAAc,EAAe,CACrC/hJ,MAAO,CACLnuC,KAAMu2L,EAAO46K,QACb1tH,MAAOltD,EAAO66K,SACd3iN,MAAO8nC,EAAO86K,UAEhB5iN,MAAO,IACPnwJ,MAAOmU,KAAKmC,MAAc,IAARo8P,EAAI76P,GACtBkuO,SAAU4D,IACR,IAAM/3D,cAAc,EAAe,CACrC/hJ,MAAO,CACLnuC,KAAMu2L,EAAO46K,QACb1tH,MAAOltD,EAAO66K,SACd3iN,MAAO8nC,EAAO86K,UAEhB5iN,MAAO,IACPnwJ,MAAOmU,KAAKmC,MAAc,IAARo8P,EAAIj5P,GACtBssO,SAAU4D,IACR,IAAM/3D,cAAc,MAAO,CAC7B/hJ,MAAOooJ,EAAOwwG,UACZ,IAAM72G,cAAc,EAAe,CACrC/hJ,MAAO,CACLnuC,KAAMu2L,EAAO46K,QACb1tH,MAAOltD,EAAO66K,SACd3iN,MAAO8nC,EAAO86K,UAEhB5iN,MAAO,IACPnwJ,MAAO4jO,EAAIplN,EACXunO,SAAU4D,IACR,IAAM/3D,cAAc,EAAe,CACrC/hJ,MAAO,CACLnuC,KAAMu2L,EAAO46K,QACb1tH,MAAOltD,EAAO66K,SACd3iN,MAAO8nC,EAAO86K,UAEhB5iN,MAAO,IACPnwJ,MAAO4jO,EAAIhmN,EACXmoO,SAAU4D,IACR,IAAM/3D,cAAc,EAAe,CACrC/hJ,MAAO,CACLnuC,KAAMu2L,EAAO46K,QACb1tH,MAAOltD,EAAO66K,SACd3iN,MAAO8nC,EAAO86K,UAEhB5iN,MAAO,IACPnwJ,MAAO4jO,EAAItrN,EACXytO,SAAU4D,IACR,IAAM/3D,cAAc,MAAO,CAC7B/hJ,MAAOooJ,EAAOwwG,UACZ,IAAM72G,cAAc,EAAe,CACrC/hJ,MAAO,CACLnuC,KAAMu2L,EAAOy6K,QACbvtH,MAAOltD,EAAO06K,SACdxiN,MAAO8nC,EAAO26K,UAEhBziN,MAAO,IACPnwJ,MAAO4vC,EAAI8rC,QAAQ,IAAK,IACxBqqK,SAAU4D,IACR,IAAM/3D,cAAc,MAAO,CAC7B/hJ,MAAOooJ,EAAOs7K,cACb,IAAM3hL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOiuE,QACb,QAAS,IAAMt0E,cAAc,MAAO,CACrC/hJ,MAAOooJ,EAAOiuE,QACb,KAAM,IAAMt0E,cAAc,MAAO,CAClC/hJ,MAAOooJ,EAAOiuE,QACb,QC3JU,GAxBqB,SAAgClwJ,GAClE,IAAIw8J,EAAMx8J,EAAKw8J,IACXv6E,EAAS,IAAS,CACpB,QAAW,CACTk4K,OAAQ,CACNnuV,MAAO,OACPC,OAAQ,OACRqqV,aAAc,MACdC,UAAW,uBACX36P,UAAW,0BAGf,gBAAiB,CACfu+P,OAAQ,CACN5D,UAAW,0BAGd,CACD,gBAAiB/5F,EAAIz+P,EAAI,KAE3B,OAAO,IAAM69K,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOk4K,UC6BHqD,GAlDqB,WAClC,IAAIv7K,EAAS,IAAS,CACpB,QAAW,CACT/jK,SAAU,CACRlS,MAAO,EACPC,OAAQ,EACR2uV,YAAa,QACbC,YAAa,gBACbC,YAAa,2CACbp9U,SAAU,WACV4K,IAAK,MACLF,KAAM,OAERq1U,eAAgB,CACdzxV,MAAO,EACPC,OAAQ,EACR2uV,YAAa,QACbC,YAAa,gBACbC,YAAa,4CAEf1yU,KAAM,CACJs1U,OAAQ,iBACR9hQ,UAAW,0BAEb+hQ,WAAY,CACVD,OAAQ,WACR9hQ,UAAW,yBAEbvzE,MAAO,CACLq1U,OAAQ,iBACR9hQ,UAAW,yCAEbgiQ,YAAa,CACXF,OAAQ,WACR9hQ,UAAW,4BAIjB,OAAO,IAAMggF,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAO60K,SACb,IAAMl7K,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAO75J,MACb,IAAMwzJ,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAO07K,cACX,IAAM/hL,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAO55J,OACb,IAAMuzJ,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAO27K,iBCbH,GAlCc,SAAyB59P,GACpD,IAAIwhG,EAAUxhG,EAAKwhG,QACfrnD,EAAQn6C,EAAKm6C,MACbx8H,EAAWqiF,EAAKriF,SAChBsuN,EAASjsI,EAAKisI,OACdhqD,EAAS,IAAS,CACpB,QAAW,CACT+f,OAAQ,CACN67J,gBAAiB,qDACjB9C,OAAQ,oBACRzE,aAAc,MACdrqV,OAAQ,OACRsqV,UAAW,oBACXjkH,SAAU,OACV9nO,MAAO,OACP+mO,WAAY,OACZ6yF,UAAW,SACX/0C,aAAc,OACdv+E,OAAQ,YAGZ,OAAU,CACR9O,OAAQ,CACNu0J,UAAW,uBAGd,CACDtqH,OAAQA,IAEV,OAAO,IAAMrwD,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAO+f,OACdR,QAASA,GACRrnD,GAASx8H,ICQC,GAxCgB,SAA2BqiF,GACxD,IAAI4tH,EAAM5tH,EAAK4tH,IACXkwI,EAAe99P,EAAK89P,aACpB77K,EAAS,IAAS,CACpB,QAAW,CACTq4K,SAAU,CACRS,OAAQ,oBACR59H,aAAc,oBACdkyD,aAAc,MACdvB,UAAW,OAEbiwE,IAAK,CACH9xV,OAAQ,OACR6hB,WAAY,OAAS8/L,EAAIplN,EAAI,IAAMolN,EAAIhmN,EAAI,KAAOgmN,EAAItrN,EAAI,IAC1Di0V,UAAW,+DAEbl1O,QAAS,CACPp1G,OAAQ,OACR6hB,WAAYgwU,EACZvH,UAAW,gEAEbp8M,MAAO,CACLm4F,SAAU,OACV9nO,MAAO,OACP45T,UAAW,aAIjB,OAAO,IAAMxoJ,cAAc,MAAO,KAAM,IAAMA,cAAc,MAAO,CACjE/hJ,MAAOooJ,EAAO9nC,OACb,OAAQ,IAAMyhC,cAAc,MAAO,CACpC/hJ,MAAOooJ,EAAOq4K,UACb,IAAM1+K,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAO87K,MACZ,IAAMniL,cAAc,MAAO,CAC7B/hJ,MAAOooJ,EAAO5gE,WACX,IAAMu6D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAO9nC,OACb,aCxCD,GAAe,WACjB,SAASzxJ,EAAiBR,EAAQqnL,GAChC,IAAK,IAAIpnL,EAAI,EAAGA,EAAIonL,EAAMlnL,OAAQF,IAAK,CACrC,IAAIqnL,EAAaD,EAAMpnL,GACvBqnL,EAAW1nL,WAAa0nL,EAAW1nL,aAAc,EACjD0nL,EAAWtlL,cAAe,EACtB,UAAWslL,IAAYA,EAAWvlL,UAAW,GACjDzC,OAAOmB,eAAeT,EAAQsnL,EAAWhnL,IAAKgnL,IAIlD,OAAO,SAAUH,EAAaK,EAAYC,GAGxC,OAFID,GAAYhnL,EAAiB2mL,EAAYvlL,UAAW4lL,GACpDC,GAAajnL,EAAiB2mL,EAAaM,GACxCN,GAdQ,GA0DZ,IAAI,GAAY,SAAU+hD,GAG/B,SAAS4sI,EAAUzuL,IA3CrB,SAAyBH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIhmL,UAAU,qCA0CpB,CAAgBO,KAAMo0W,GAEtB,IAAI1zP,EAxCR,SAAoCz+G,EAAM1C,GACxC,IAAK0C,EACH,MAAM,IAAIsqL,eAAe,6DAG3B,OAAOhtL,GAAyB,kBAATA,GAAqC,oBAATA,EAA8B0C,EAAP1C,EAmC5D,CAA2BS,MAAOo0W,EAAU7tW,WAAa3I,OAAOmC,eAAeq0W,IAAY70W,KAAKS,OAK5G,OAHA0gH,EAAMj+G,MAAQ,CACZyxW,aAAcvuL,EAAM31I,KAEf0wE,EAqHT,OA1JF,SAAmBmmE,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIrnL,UAAU,kEAAoEqnL,GAG1FD,EAAS3mL,UAAYtC,OAAOuC,OAAO2mL,GAAcA,EAAW5mL,UAAW,CACrED,YAAa,CACXG,MAAOymL,EACP3oL,YAAY,EACZmC,UAAU,EACVC,cAAc,KAGdwmL,IAAYlpL,OAAO2C,eAAiB3C,OAAO2C,eAAesmL,EAAUC,GAAcD,EAAStgL,UAAYugL,GAc3G,CAAUstL,EAAW5sI,GAarB,GAAa4sI,EAAW,CAAC,CACvBx1W,IAAK,SACLwB,MAAO,WACL,IAAI2xL,EAAS/xL,KAAK2lL,MACd0uL,EAAgBtiL,EAAOsG,OACvBq2K,OAAiCvvW,IAAlBk1W,EAA8B,GAAKA,EAClDC,EAAmBviL,EAAOsL,UAC1BA,OAAiCl+L,IAArBm1W,EAAiC,GAAKA,EAClDj8K,EAAS,IAAS,GAAM,CAC1B,QAAW,CACTk4K,OAAQ,CACNrsU,WAAY,UACZwoU,aAAc,MACdC,UAAW,wDACXl6H,UAAW,UACXrwN,MAAO,SAETszK,KAAM,CACJu+K,gBAAiB,qDACjB1gI,aAAc,oBACdo5H,UAAW,yEACXtqV,OAAQ,OACRslO,WAAY,OACZ+kH,aAAc,cACdhkH,SAAU,OACV9nO,MAAO,UACP45T,UAAW,UAEbxrL,KAAM,CACJs/F,QAAS,cACTpvI,QAAS,QAEXpuE,WAAY,CACV1uB,MAAO,QACPC,OAAQ,QACRyR,SAAU,WACVq9U,OAAQ,oBACR59H,aAAc,oBACd4tD,SAAU,UAEZtwP,IAAK,CACH/c,SAAU,WACVzR,OAAQ,QACRD,MAAO,OACP+hR,WAAY,OACZgtE,OAAQ,oBACR59H,aAAc,qBAEhBo/H,SAAU,CACRvwV,MAAO,QACP+hR,WAAY,QAEdzlQ,IAAK,CACHwgF,QAAS,QAEXq1P,SAAU,CACRnyV,MAAO,QAET2xJ,QAAS,CACPs8J,KAAM,IACNlsC,WAAY,UAGfuqE,IACH,OAAO,IAAM18K,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOk4K,OACdlzK,UAAW,oBAAsBA,GAChC,IAAMrL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAO3C,MACb11L,KAAK2lL,MAAM6uL,QAAS,IAAMxiL,cAAc,MAAO,CAChD/hJ,MAAOooJ,EAAOrpC,KACdquC,UAAW,eACV,IAAMrL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOvnJ,YACb,IAAMkhJ,cAAc,GAAY,CACjC4gF,IAAK5yQ,KAAK2lL,MAAMitF,IAChBE,IAAK9yQ,KAAK2lL,MAAMmtF,IAChBo6F,QAAS,GACT/mH,SAAUnmP,KAAK2lL,MAAMwgE,YAClB,IAAMn0D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOxnJ,KACb,IAAMmhJ,cAAc,EAAK,CAC1Bz6J,UAAW,WACXq7O,IAAK5yQ,KAAK2lL,MAAMitF,IAChBs6F,QAAS0G,GACTztH,SAAUnmP,KAAK2lL,MAAMwgE,YAClB,IAAMn0D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOs6K,UACb,IAAM3gL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAO35J,IACd2+J,UAAW,eACV,IAAMrL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOk8K,UACb,IAAMviL,cAAc,GAAmB,CACxCgyC,IAAKhkO,KAAK2lL,MAAMq+C,IAChBkwI,aAAcl0W,KAAKyC,MAAMyxW,gBACtB,IAAMliL,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOtkB,SACb,IAAMie,cAAc,GAAiB,CACtCzhC,MAAO,KACPqnD,QAAS53M,KAAK2lL,MAAM8uL,SACpBpyH,QAAQ,IACN,IAAMrwD,cAAc,GAAiB,CACvCzhC,MAAO,SACPqnD,QAAS53M,KAAK2lL,MAAMygE,WAClB,IAAMp0D,cAAc0iL,GAAiB,CACvCvuH,SAAUnmP,KAAK2lL,MAAMwgE,SACrBniB,IAAKhkO,KAAK2lL,MAAMq+C,IAChB8uC,IAAK9yQ,KAAK2lL,MAAMmtF,IAChB9iO,IAAKhwC,KAAK2lL,MAAM31I,eAKfokU,EAhIc,CAiIrB,IAAMjpL,WACR,GAAU6O,UAAY,CACpBw6K,OAAQ,IAAUrkU,OAClBkoJ,OAAQ,IAAU56L,QAEpB,GAAU87L,aAAe,CACvBi7K,OAAQ,eACRn8K,OAAQ,IAEK,GAAU,IAAV,IC/CA,GAhJW,SAAsBjiF,GAC9C,IAAI+vI,EAAW/vI,EAAK+vI,SAChBniB,EAAM5tH,EAAK4tH,IACX4uC,EAAMx8J,EAAKw8J,IACX5iO,EAAMomE,EAAKpmE,IACXyiU,EAAer8P,EAAKq8P,aACpBp6K,EAAS,IAAS,CACpB,QAAW,CACT+5K,OAAQ,CACNlzP,QAAS,OACT6zH,WAAY,OAEd4hI,OAAQ,CACNtkC,KAAM,IACNn9F,YAAa,OAEfn4N,MAAO,CACLs1T,KAAM,IACNn9F,YAAa,OAEf0hI,OAAQ,CACNvkC,KAAM,KAER9qF,MAAO,CACLnjO,MAAO,MACPksO,QAAS,cACT6iH,OAAQ,OACRxE,UAAW,uBACXjkH,SAAU,QAEZn4F,MAAO,CACLrxC,QAAS,QACTs7N,UAAW,SACX9xF,SAAU,OACV9nO,MAAO,OACPmyN,WAAY,MACZE,cAAe,MACfs/H,cAAe,eAGnB,aAAgB,CACdx3V,MAAO,CACLmkG,QAAS,UAGZ,CACDuzP,aAAcA,IAGZ1oH,EAAe,SAAsBhnO,EAAMhJ,GACzCgJ,EAAKitB,IACP,GAAiBjtB,EAAKitB,MAAQm2M,EAAS,CACrCn2M,IAAKjtB,EAAKitB,IACVtxC,OAAQ,OACPqb,GACMgJ,EAAKnE,GAAKmE,EAAK/E,GAAK+E,EAAKrK,EAClCytO,EAAS,CACPvnO,EAAGmE,EAAKnE,GAAKolN,EAAIplN,EACjBZ,EAAG+E,EAAK/E,GAAKgmN,EAAIhmN,EACjBtF,EAAGqK,EAAKrK,GAAKsrN,EAAItrN,EACjBD,EAAGurN,EAAIvrN,EACP/Z,OAAQ,OACPqb,GACMgJ,EAAKtK,IACVsK,EAAKtK,EAAI,EACXsK,EAAKtK,EAAI,EACAsK,EAAKtK,EAAI,MAClBsK,EAAKtK,EAAI,KAGXsK,EAAKtK,GAAK,IACV0tO,EAAS,CACPloO,EAAG20P,EAAI30P,EACPhG,EAAG26P,EAAI36P,EACP9D,EAAGy+P,EAAIz+P,EACPsE,EAAGsK,EAAKtK,EACR/Z,OAAQ,OACPqb,KAIP,OAAO,IAAMi4K,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAO+5K,OACd/0K,UAAW,eACV,IAAMrL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOu8K,QACb,IAAM5iL,cAAc,EAAe,CACpC/hJ,MAAO,CACLs1M,MAAOltD,EAAOktD,MACdh1F,MAAO8nC,EAAO9nC,OAEhBA,MAAO,MACPnwJ,MAAO4vC,EAAI8rC,QAAQ,IAAK,IACxBqqK,SAAU4D,KACP,IAAM/3D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOs8K,QACb,IAAM3iL,cAAc,EAAe,CACpC/hJ,MAAO,CACLs1M,MAAOltD,EAAOktD,MACdh1F,MAAO8nC,EAAO9nC,OAEhBA,MAAO,IACPnwJ,MAAO4jO,EAAIplN,EACXunO,SAAU4D,EACV+jH,UAAW,OACXE,QAAS,SACN,IAAMh8K,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOs8K,QACb,IAAM3iL,cAAc,EAAe,CACpC/hJ,MAAO,CACLs1M,MAAOltD,EAAOktD,MACdh1F,MAAO8nC,EAAO9nC,OAEhBA,MAAO,IACPnwJ,MAAO4jO,EAAIhmN,EACXmoO,SAAU4D,EACV+jH,UAAW,OACXE,QAAS,SACN,IAAMh8K,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOs8K,QACb,IAAM3iL,cAAc,EAAe,CACpC/hJ,MAAO,CACLs1M,MAAOltD,EAAOktD,MACdh1F,MAAO8nC,EAAO9nC,OAEhBA,MAAO,IACPnwJ,MAAO4jO,EAAItrN,EACXytO,SAAU4D,EACV+jH,UAAW,OACXE,QAAS,SACN,IAAMh8K,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOt9K,OACb,IAAMi3K,cAAc,EAAe,CACpC/hJ,MAAO,CACLs1M,MAAOltD,EAAOktD,MACdh1F,MAAO8nC,EAAO9nC,OAEhBA,MAAO,IACPnwJ,MAAOmU,KAAKmC,MAAc,IAARstN,EAAIvrN,GACtB0tO,SAAU4D,EACV+jH,UAAW,OACXE,QAAS,WClJT,GAAWpwW,OAAOsrB,QAAU,SAAU5qB,GACxC,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GAEvB,IAAK,IAAIK,KAAOF,EACVd,OAAOsC,UAAUU,eAAerB,KAAKb,EAAQE,KAC/CN,EAAOM,GAAOF,EAAOE,IAK3B,OAAON,GAOE,GAAqB,SAA4B83G,GAC1D,IAAI4iE,EAAS5iE,EAAK4iE,OACd+2L,EAAe35P,EAAKwhG,QACpBA,OAA2Bz4M,IAAjB4wW,EAA6B,aAAiBA,EACxDJ,EAAgBv5P,EAAKu5P,cACrBt3K,EAAS,IAAS,CACpB,QAAW,CACTrf,OAAQ,CACNwhH,OAAQ,UACRlsC,QAAS,gBACTnb,UAAW,iBACXj0H,QAAS,OACT4yP,SAAU,OACVh+U,SAAU,YAEZ+gV,WAAY,CACVzyV,MAAO,OACPC,OAAQ,OACRm4Q,OAAQ,iBAEV41E,OAAQ,CACN1D,aAAc,MACdC,UAAW,oCAGf,aAAc,CACZ3zL,OAAQ,CACN95D,QAAS,UAGZ,CACD,cAAe85D,IAAWA,EAAOv6K,SAG/Bg6M,EAAc,SAAqBzoK,EAAKj2B,GAC1C69L,EAAQ,CACN5nK,IAAKA,EACLtxC,OAAQ,OACPqb,IAGL,OAAO,IAAMi4K,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOrf,OACdqkB,UAAW,eACVrkB,EAAOvsI,KAAI,SAAUqoU,GACtB,IAAIn8V,EAAgC,kBAArBm8V,EAAgC,CAC7Cl0V,MAAOk0V,GACLA,EACAl2W,EAAM,GAAK+Z,EAAEiI,OAASjI,EAAEsgM,OAAS,IACrC,OAAO,IAAMjnB,cAAc,MAAO,CAChCpzL,IAAKA,EACLqxC,MAAOooJ,EAAOw8K,YACb,IAAM7iL,cAAc,GAAQ,GAAS,GAAIr5K,EAAG,CAC7Cs3B,MAAOooJ,EAAO+3K,OACdx4J,QAASa,EACTu3J,QAASL,EACTQ,WAAY,CACVxD,UAAW,4CAA8Ch0V,EAAEiI,gBAKnE,GAAmBo5K,UAAY,CAC7BhhB,OAAQ,IAAU6/B,QAAQ,IAAUu4J,UAAU,CAAC,IAAUjhU,OAAQ,IAAU1L,MAAM,CAC/E7jB,MAAO,IAAUuvB,OACjB8oK,MAAO,IAAU9oK,YACbwoK,YAEO,UCtFX,GAAW/6M,OAAOsrB,QAAU,SAAU5qB,GACxC,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GAEvB,IAAK,IAAIK,KAAOF,EACVd,OAAOsC,UAAUU,eAAerB,KAAKb,EAAQE,KAC/CN,EAAOM,GAAOF,EAAOE,IAK3B,OAAON,GAUE,GAAS,SAAgB83G,GAClC,IAAIh0F,EAAQg0F,EAAKh0F,MACb4hN,EAAM5tH,EAAK4tH,IACXh0L,EAAMomE,EAAKpmE,IACX8iO,EAAM18J,EAAK08J,IACXF,EAAMx8J,EAAKw8J,IACXzsB,EAAW/vI,EAAK+vI,SAChBwpH,EAAgBv5P,EAAKu5P,cACrB8C,EAAer8P,EAAKq8P,aACpBsC,EAAe3+P,EAAK2+P,aACpBtI,EAAYr2P,EAAKq2P,UACjBgC,EAAcr4P,EAAKiiF,OACnBq2K,OAA+BvvW,IAAhBsvW,EAA4B,GAAKA,EAChDgC,EAAiBr6P,EAAKinF,UACtBA,OAA+Bl+L,IAAnBsxW,EAA+B,GAAKA,EAChDp4K,EAAS,IAAS,GAAM,CAC1B,QAAW,GAAS,CAClBk4K,OAAQ,CACNnuV,MAAOA,EACPksO,QAAS,cACT7b,UAAW,UACXvuM,WAAY,OACZwoU,aAAc,MACdC,UAAW,yDAEb77T,WAAY,CACV1uB,MAAO,OACP6wN,cAAe,MACfn/M,SAAU,WACVqtQ,SAAU,UAEZ0tE,WAAY,CACVl9U,OAAQ,MACRupC,OAAQ,kEAEVy3S,SAAU,CACRzzP,QAAS,QAEX81P,QAAS,CACP1mH,QAAS,QACT+hF,KAAM,KAERzvT,MAAO,CACLwB,MAAO,OACPC,OAAQ,OACRyR,SAAU,WACVowQ,UAAW,MACXC,WAAY,MACZuoE,aAAc,OAEhBuI,YAAa,CACXrI,SAAU,kBACVF,aAAc,MACdxoU,WAAY,QAAU8/L,EAAIplN,EAAI,IAAMolN,EAAIhmN,EAAI,IAAMgmN,EAAItrN,EAAI,IAAMsrN,EAAIvrN,EAAI,IACxEk0V,UAAW,kEAEb97T,IAAK,CACH/c,SAAU,WACVzR,OAAQ,OACR8+Q,SAAU,UAEZmtE,IAAK,CACH38U,OAAQ,MACRupC,OAAQ,kEAEVngD,MAAO,CACL+Y,SAAU,WACVzR,OAAQ,OACR6hR,UAAW,MACX/C,SAAU,UAEZ0rE,MAAO,CACLl7U,OAAQ,MACRupC,OAAQ,mEAETwzS,GACH,aAAgB,CACd9tV,MAAO,CACLyB,OAAQ,QAEVwuB,IAAK,CACHxuB,OAAQ,QAEVtH,MAAO,CACLmkG,QAAS,UAGZwvP,GAAe,CAChB+D,aAAcA,IAEhB,OAAO,IAAMzgL,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOk4K,OACdlzK,UAAW,iBAAmBA,GAC7B,IAAMrL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOvnJ,YACb,IAAMkhJ,cAAc,GAAY,CACjC/hJ,MAAOooJ,EAAOw2K,WACdj8F,IAAKA,EACLE,IAAKA,EACL3sB,SAAUA,KACP,IAAMn0D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOs6K,SACdt1K,UAAW,eACV,IAAMrL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAO28K,SACb,IAAMhjL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOxnJ,KACb,IAAMmhJ,cAAc,EAAK,CAC1B/hJ,MAAOooJ,EAAOi2K,IACd17F,IAAKA,EACLzsB,SAAUA,KACP,IAAMn0D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOt9K,OACb,IAAMi3K,cAAc,EAAO,CAC5B/hJ,MAAOooJ,EAAOw0K,MACd7oI,IAAKA,EACL4uC,IAAKA,EACL65F,UAAWA,EACXtmH,SAAUA,MACN,IAAMn0D,cAAc,MAAO,CAC/B/hJ,MAAOooJ,EAAOz3K,OACb,IAAMoxK,cAAc,EAAY,MAAO,IAAMA,cAAc,MAAO,CACnE/hJ,MAAOooJ,EAAO48K,gBACV,IAAMjjL,cAAc,GAAc,CACtCgyC,IAAKA,EACL4uC,IAAKA,EACL5iO,IAAKA,EACLm2M,SAAUA,EACVssH,aAAcA,IACZ,IAAMzgL,cAAc,GAAoB,CAC1ChZ,OAAQ+7L,EACRn9J,QAASuuC,EACTwpH,cAAeA,MAGnB,GAAO31K,UAAY,CACjBy4K,aAAc,IAAUI,KACxBzwV,MAAO,IAAUgvV,UAAU,CAAC,IAAUjhU,OAAQ,IAAUqrN,SACxDnjE,OAAQ,IAAU56L,QAEpB,GAAO87L,aAAe,CACpBk5K,cAAc,EACdrwV,MAAO,IACPi2K,OAAQ,GACR08K,aAAc,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,YAE5J,UAAU,ICjHV,GApDW,SAAsB3+P,GAC9C,IAAIw8J,EAAMx8J,EAAKw8J,IACX13P,EAASk7F,EAAKl7F,OACd60V,EAAe35P,EAAKwhG,QACpBA,OAA2Bz4M,IAAjB4wW,EAA6B,aAAiBA,EACxD1tH,EAASjsI,EAAKisI,OACdyqB,EAAQ12J,EAAK02J,MACbp1I,EAAOthB,EAAKshB,KACZ2gE,EAAS,IAAS,CACpB,QAAW,CACT+3K,OAAQ,CACN/tV,OAAQ,OACR6hB,WAAY,OAAS0uO,EAAI30P,EAAI,UAAqB,IAAT/C,EAAe,KACxDgsM,OAAQ,YAGZ,MAAS,CACPkpJ,OAAQ,CACN1D,aAAc,gBAGlB,KAAQ,CACN0D,OAAQ,CACN1D,aAAc,gBAGlB,OAAU,CACR0D,OAAQ,CACNp+P,UAAW,cACX06P,aAAc,eAGjB,CACDrqH,OAAQA,EACRyqB,MAAOA,EACPp1I,KAAMA,IAYR,OAAO,IAAMs6D,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAO+3K,OACdx4J,QAXgB,SAAqB79L,GACrC,OAAO69L,EAAQ,CACb35L,EAAG20P,EAAI30P,EACPhG,EAAG,GACH9D,EAAG+G,EACHxc,OAAQ,OACPqb,OCqBQ,GAhEa,SAAwBq8F,GAClD,IAAIwhG,EAAUxhG,EAAKwhG,QACfg7D,EAAMx8J,EAAKw8J,IACXv6E,EAAS,IAAS,CACpB,QAAW,CACTq4K,SAAU,CACRxsE,UAAW,QAEbksE,OAAQ,CACN39H,UAAW,aACXrwN,MAAO,MACP4wN,aAAc,MACd29H,MAAO,QAET/oT,MAAO,CACLA,MAAO,WAMb,OAAO,IAAMoqI,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOq4K,UACb,IAAM1+K,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAO+3K,QACb,IAAMp+K,cAAc,GAAc,CACnC4gF,IAAKA,EACL13P,OAAQ,MACRmnO,OAAQ9tO,KAAKgD,IAAIq7P,EAAIz+P,EAAI,IARb,IAQgCI,KAAKgD,IAAIq7P,EAAI36P,EAAI,IARjD,GASZ2/L,QAASA,EACTk1D,OAAO,KACJ,IAAM96E,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAO+3K,QACb,IAAMp+K,cAAc,GAAc,CACnC4gF,IAAKA,EACL13P,OAAQ,MACRmnO,OAAQ9tO,KAAKgD,IAAIq7P,EAAIz+P,EAAI,KAhBb,IAgBgCI,KAAKgD,IAAIq7P,EAAI36P,EAAI,IAhBjD,GAiBZ2/L,QAASA,KACN,IAAM5lB,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAO+3K,QACb,IAAMp+K,cAAc,GAAc,CACnC4gF,IAAKA,EACL13P,OAAQ,MACRmnO,OAAQ9tO,KAAKgD,IAAIq7P,EAAIz+P,EAAI,IAvBb,IAuBgCI,KAAKgD,IAAIq7P,EAAI36P,EAAI,IAvBjD,GAwBZ2/L,QAASA,KACN,IAAM5lB,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAO+3K,QACb,IAAMp+K,cAAc,GAAc,CACnC4gF,IAAKA,EACL13P,OAAQ,MACRmnO,OAAQ9tO,KAAKgD,IAAIq7P,EAAIz+P,EAAI,KA9Bb,IA8BgCI,KAAKgD,IAAIq7P,EAAI36P,EAAI,IA9BjD,GA+BZ2/L,QAASA,KACN,IAAM5lB,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAO+3K,QACb,IAAMp+K,cAAc,GAAc,CACnC4gF,IAAKA,EACL13P,OAAQ,MACRmnO,OAAQ9tO,KAAKgD,IAAIq7P,EAAIz+P,EAAI,IArCb,IAqCgCI,KAAKgD,IAAIq7P,EAAI36P,EAAI,IArCjD,GAsCZ2/L,QAASA,EACTlgF,MAAM,KACH,IAAMs6D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOzwI,UC7CH,GAjBY,WACzB,IAAIywI,EAAS,IAAS,CACpB,QAAW,CACTk4K,OAAQ,CACNnuV,MAAO,OACPC,OAAQ,OACRqqV,aAAc,MACd16P,UAAW,wBACXw+P,gBAAiB,qBACjB7D,UAAW,sCAIjB,OAAO,IAAM36K,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOk4K,UCTP,GAAS,SAAgBn6P,GAClC,IAAIw8J,EAAMx8J,EAAKw8J,IACXzsB,EAAW/vI,EAAK+vI,SAChB+mH,EAAU92P,EAAK82P,QACfuB,EAAcr4P,EAAKiiF,OACnBq2K,OAA+BvvW,IAAhBsvW,EAA4B,GAAKA,EAChDgC,EAAiBr6P,EAAKinF,UACtBA,OAA+Bl+L,IAAnBsxW,EAA+B,GAAKA,EAChDp4K,EAAS,IAAS,GAAM,CAC1B,QAAW,CACTxnJ,IAAK,CACHxuB,OAAQ,OACRyR,SAAU,YAEZw6U,IAAK,CACH38U,OAAQ,SAGX+8U,IACH,OAAO,IAAM18K,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOv2L,MAAQ,GACtBu7L,UAAW,iBAAmBA,GAC7B,IAAMrL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOxnJ,KACb,IAAMmhJ,cAAc,EAAK,CAC1B/hJ,MAAOooJ,EAAOi2K,IACd17F,IAAKA,EACLs6F,QAASA,EACT/mH,SAAUA,KACP,IAAMn0D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOq4K,UACb,IAAM1+K,cAAc,GAAgB,CACrC4gF,IAAKA,EACLh7D,QAASuuC,OAGb,GAAOnsD,UAAY,CACjB3B,OAAQ,IAAU56L,QAEpB,GAAO87L,aAAe,CACpB2zK,QAAS,GACT70K,OAAQ,IAEK,GAAU,IAAV,I,qBC2BA,GAxEY,SAAuBjiF,GAChD,IAAIx1F,EAAQw1F,EAAKx1F,MACbmvV,EAAe35P,EAAKwhG,QACpBA,OAA2Bz4M,IAAjB4wW,EAA6B,aAAiBA,EACxDJ,EAAgBv5P,EAAKu5P,cACrB7iG,EAAQ12J,EAAK02J,MACbp1I,EAAOthB,EAAKshB,KACZ2qH,EAASjsI,EAAKisI,OACdhqD,EAAS,IAAS,CACpB,QAAW,CACTz3K,MAAO,CACLwB,MAAO,OACPC,OAAQ,OACR6kM,OAAQ,UACRhjL,WAAYtjB,EACZ6kR,aAAc,OAEhB37G,MAAO,CACLlpK,MAAO,GAA+BA,GACtCujR,WAAY,MACZjlL,QAAS,SAGb,MAAS,CACPt+F,MAAO,CACLugR,SAAU,SACVurE,aAAc,gBAGlB,KAAQ,CACN9rV,MAAO,CACLugR,SAAU,SACVurE,aAAc,gBAGlB,OAAU,CACR5iL,MAAO,CACL5qE,QAAS,UAGb,gBAAiB,CACft+F,MAAO,CACL+rV,UAAW,wBAEb7iL,MAAO,CACLlpK,MAAO,SAGX,YAAe,CACbkpK,MAAO,CACLlpK,MAAO,UAGV,CACDksP,MAAOA,EACPp1I,KAAMA,EACN2qH,OAAQA,EACR,gBAA2B,YAAVzhO,EACjB,YAAyB,gBAAVA,IAEjB,OAAO,IAAMoxK,cAAc,GAAQ,CACjCpxK,MAAOA,EACPqvB,MAAOooJ,EAAOz3K,MACdg3L,QAASA,EACTo4J,QAASL,EACTQ,WAAY,CACVxD,UAAW,WAAa/rV,IAEzB,IAAMoxK,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOvO,OACb,IAAMkI,cAAc,KAAW,SC1CrB,GA7BY,SAAuB57E,GAChD,IAAIwhG,EAAUxhG,EAAKwhG,QACf+3J,EAAgBv5P,EAAKu5P,cACrBl2T,EAAQ28D,EAAK38D,MACb4oM,EAASjsI,EAAKisI,OACdhqD,EAAS,IAAS,CACpB,QAAW,CACT5+I,MAAO,CACLw5L,cAAe,OACf7wN,MAAO,OACPuuV,MAAO,OACPjrE,YAAa,WAInB,OAAO,IAAM1zG,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAO5+I,OACb,GAAIA,GAAO,SAAU74B,EAAOriB,GAC7B,OAAO,IAAMyzL,cAAc,GAAe,CACxCpzL,IAAKgiB,EACLA,MAAOA,EACPyhO,OAAQzhO,EAAM5L,gBAAkBqtO,EAChCyqB,MAAa,IAANvuQ,EACPm5H,KAAMn5H,IAAMk7C,EAAMh7C,OAAS,EAC3Bm5M,QAASA,EACT+3J,cAAeA,SCrBV,GAAW,SAAkBv5P,GACtC,IAAIh0F,EAAQg0F,EAAKh0F,MACbC,EAAS+zF,EAAK/zF,OACd8jO,EAAW/vI,EAAK+vI,SAChBwpH,EAAgBv5P,EAAKu5P,cACrB32L,EAAS5iE,EAAK4iE,OACdhpI,EAAMomE,EAAKpmE,IACXy+T,EAAcr4P,EAAKiiF,OACnBq2K,OAA+BvvW,IAAhBsvW,EAA4B,GAAKA,EAChDgC,EAAiBr6P,EAAKinF,UACtBA,OAA+Bl+L,IAAnBsxW,EAA+B,GAAKA,EAChDp4K,EAAS,IAAS,GAAM,CAC1B,QAAW,CACTk4K,OAAQ,CACNnuV,MAAOA,EACPC,OAAQA,GAEV8+Q,SAAU,CACR9+Q,OAAQA,EACRuwN,UAAW,UAEb5jF,KAAM,CACJs/F,QAAS,mBAEX1mM,MAAO,CACLA,MAAO,UAGV8mT,IAEC3kH,EAAe,SAAsBhnO,EAAMhJ,GAC7C,OAAOosO,EAAS,CACdn2M,IAAKjtB,EACLrkB,OAAQ,OACPqb,IAGL,OAAO,IAAMi4K,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOk4K,OACdlzK,UAAW,mBAAqBA,GAC/B,IAAMrL,cAAc,GAAQ,KAAM,IAAMA,cAAc,MAAO,CAC9D/hJ,MAAOooJ,EAAO8oG,UACb,IAAMnvG,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOrpC,MACb,GAAIgqB,GAAQ,SAAUv/H,GACvB,OAAO,IAAMu4I,cAAc,GAAe,CACxCpzL,IAAK66C,EAAMn6C,WACXm6C,MAAOA,EACP4oM,OAAQryM,EACR4nK,QAASmyC,EACT4lH,cAAeA,OAEf,IAAM39K,cAAc,MAAO,CAC7B/hJ,MAAOooJ,EAAOzwI,aAGlB,GAASoyI,UAAY,CACnB53K,MAAO,IAAUgvV,UAAU,CAAC,IAAUjhU,OAAQ,IAAUqrN,SACxDn5O,OAAQ,IAAU+uV,UAAU,CAAC,IAAUjhU,OAAQ,IAAUqrN,SACzDxiF,OAAQ,IAAU6/B,QAAQ,IAAUA,QAAQ,IAAU1oK,SACtDkoJ,OAAQ,IAAU56L,QAIpB,GAAS87L,aAAe,CACtBn3K,MAAO,IACPC,OAAQ,IACR22J,OAAQ,CAAC,CAAC,GAAa,KAAQ,GAAa,KAAQ,GAAa,KAAQ,GAAa,KAAQ,GAAa,MAAS,CAAC,GAAc,KAAQ,GAAc,KAAQ,GAAc,KAAQ,GAAc,KAAQ,GAAc,MAAS,CAAC,GAAgB,KAAQ,GAAgB,KAAQ,GAAgB,KAAQ,GAAgB,KAAQ,GAAgB,MAAS,CAAC,GAAoB,KAAQ,GAAoB,KAAQ,GAAoB,KAAQ,GAAoB,KAAQ,GAAoB,MAAS,CAAC,GAAgB,KAAQ,GAAgB,KAAQ,GAAgB,KAAQ,GAAgB,KAAQ,GAAgB,MAAS,CAAC,GAAc,KAAQ,GAAc,KAAQ,GAAc,KAAQ,GAAc,KAAQ,GAAc,MAAS,CAAC,GAAmB,KAAQ,GAAmB,KAAQ,GAAmB,KAAQ,GAAmB,KAAQ,GAAmB,MAAS,CAAC,GAAc,KAAQ,GAAc,KAAQ,GAAc,KAAQ,GAAc,KAAQ,GAAc,MAAS,CAAC,GAAc,KAAQ,GAAc,KAAQ,GAAc,KAAQ,GAAc,KAAQ,GAAc,MAAS,CAAC,UAAW,GAAe,KAAQ,GAAe,KAAQ,GAAe,KAAQ,GAAe,MAAS,CAAC,GAAoB,KAAQ,GAAoB,KAAQ,GAAoB,KAAQ,GAAoB,KAAQ,GAAoB,MAAS,CAAC,GAAc,KAAQ,GAAc,KAAQ,GAAc,KAAQ,GAAc,KAAQ,GAAc,MAAS,CAAC,GAAgB,KAAQ,GAAgB,KAAQ,GAAgB,KAAQ,GAAgB,KAAQ,GAAgB,MAAS,CAAC,GAAe,KAAQ,GAAe,KAAQ,GAAe,KAAQ,GAAe,KAAQ,GAAe,MAAS,CAAC,GAAgB,KAAQ,GAAgB,KAAQ,GAAgB,KAAQ,GAAgB,KAAQ,GAAgB,MAAS,CAAC,GAAoB,KAAQ,GAAoB,KAAQ,GAAoB,KAAQ,GAAoB,KAAQ,GAAoB,MAAS,CAAC,GAAe,KAAQ,GAAe,KAAQ,GAAe,KAAQ,GAAe,KAAQ,GAAe,MAAS,CAAC,GAAkB,KAAQ,GAAkB,KAAQ,GAAkB,KAAQ,GAAkB,KAAQ,GAAkB,MAAS,CAAC,UAAW,UAAW,UAAW,UAAW,YACnsEqf,OAAQ,IAEK,GAAU,IAAV,ICvEJ,GAAU,SAAiBjiF,GACpC,IAAI+vI,EAAW/vI,EAAK+vI,SAChBwpH,EAAgBv5P,EAAKu5P,cACrB3/T,EAAMomE,EAAKpmE,IACXgpI,EAAS5iE,EAAK4iE,OACd52J,EAAQg0F,EAAKh0F,MACbkS,EAAW8hF,EAAK9hF,SAChBm6U,EAAcr4P,EAAKiiF,OACnBq2K,OAA+BvvW,IAAhBsvW,EAA4B,GAAKA,EAChDgC,EAAiBr6P,EAAKinF,UACtBA,OAA+Bl+L,IAAnBsxW,EAA+B,GAAKA,EAChDp4K,EAAS,IAAS,GAAM,CAC1B,QAAW,CACTw4K,KAAM,CACJzuV,MAAOA,EACP8hB,WAAY,OACZitU,OAAQ,2BACRxE,UAAW,6BACXD,aAAc,MACd54U,SAAU,YAEZk7H,KAAM,CACJs/F,QAAS,qBAEX/9F,MAAO,CACLm4F,SAAU,OACV9nO,MAAO,QAET0T,SAAU,CACRlS,MAAO,MACPC,OAAQ,MACR2uV,YAAa,QACbC,YAAa,iBACbC,YAAa,2CACbp9U,SAAU,YAEZy/U,eAAgB,CACdnxV,MAAO,MACPC,OAAQ,MACR2uV,YAAa,QACbC,YAAa,iBACbC,YAAa,qDACbp9U,SAAU,YAEZy4D,KAAM,CACJroD,WAAY,UACZ7hB,OAAQ,OACRD,MAAO,OACPsqV,aAAc,cACdiE,MAAO,OACP/vV,MAAO,UACPs+F,QAAS,OACT4xP,WAAY,SACZC,eAAgB,UAElBxrH,MAAO,CACLnjO,MAAO,QACPsmO,SAAU,OACV9nO,MAAO,OACPuwV,OAAQ,MACRd,QAAS,OACThuV,OAAQ,OACRsqV,UAAW,0BACXl6H,UAAW,cACXi6H,aAAc,cACdiE,MAAO,OACPz9H,YAAa,OAEfk9H,OAAQ,CACNhuV,MAAO,OACPC,OAAQ,OACRsuV,MAAO,OACPjE,aAAc,MACdlyE,OAAQ,eAEV5yO,MAAO,CACLA,MAAO,SAGX,gBAAiB,CACftzB,SAAU,CACR4qF,QAAS,QAEXq0P,eAAgB,CACdr0P,QAAS,SAGb,oBAAqB,CACnB5qF,SAAU,CACRoK,IAAK,QACLF,KAAM,QAER+0U,eAAgB,CACd70U,IAAK,QACLF,KAAM,SAGV,qBAAsB,CACpBlK,SAAU,CACRoK,IAAK,QACLD,MAAO,QAET80U,eAAgB,CACd70U,IAAK,QACLD,MAAO,UAGViwU,GAAe,CAChB,gBAA8B,SAAbp6U,EACjB,oBAAkC,aAAbA,EACrB,qBAAmC,cAAbA,IAGpBy1N,EAAe,SAAsBmrH,EAASn7V,GAChD,GAAiBm7V,IAAY/uH,EAAS,CACpCn2M,IAAKklU,EACLx2W,OAAQ,OACPqb,IAGL,OAAO,IAAMi4K,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOw4K,KACdxzK,UAAW,kBAAoBA,GAC9B,IAAMrL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOk7K,iBACZ,IAAMvhL,cAAc,MAAO,CAC7B/hJ,MAAOooJ,EAAO/jK,WACZ,IAAM09J,cAAc,MAAO,CAC7B/hJ,MAAOooJ,EAAOrpC,MACb,GAAIgqB,GAAQ,SAAUrgK,EAAGpa,GAC1B,OAAO,IAAMyzL,cAAc,GAAQ,CACjCpzL,IAAKL,EACLqiB,MAAOjI,EACPq3B,IAAKr3B,EACLs3B,MAAOooJ,EAAO+3K,OACdx4J,QAASmyC,EACTimH,QAASL,EACTQ,WAAY,CACVxD,UAAW,WAAah0V,QAG1B,IAAMq5K,cAAc,MAAO,CAC7B/hJ,MAAOooJ,EAAO9rG,MACb,KAAM,IAAMylG,cAAc,EAAe,CAC1CzhC,MAAO,KACPtgH,MAAO,CACLs1M,MAAOltD,EAAOktD,OAEhBnlP,MAAO4vC,EAAI8rC,QAAQ,IAAK,IACxBqqK,SAAU4D,IACR,IAAM/3D,cAAc,MAAO,CAC7B/hJ,MAAOooJ,EAAOzwI,WAGlB,GAAQoyI,UAAY,CAClB53K,MAAO,IAAUgvV,UAAU,CAAC,IAAUjhU,OAAQ,IAAUqrN,SACxDlnO,SAAU,IAAUs6U,MAAM,CAAC,OAAQ,WAAY,cAC/C51L,OAAQ,IAAU6/B,QAAQ,IAAU1oK,QACpCkoJ,OAAQ,IAAU56L,QAEpB,GAAQ87L,aAAe,CACrBn3K,MAAO,IACP42J,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC5G1kJ,SAAU,WACV+jK,OAAQ,IAEK,GAAU,IAAV,IC1KJ,GAAsB,SAA6B1S,GAC5D,IAAI0S,EAAS,IAAS,CACpB,QAAW,CACTk4K,OAAQ,CACNnuV,MAAO,OACPC,OAAQ,OACRqqV,aAAc,OACdyE,OAAQ,iBACRn/P,UAAW,0BACX9tE,WAAY,OAAS3vB,KAAKmC,MAAMivK,EAAMitF,IAAI30P,GAAK,KAAO1J,KAAKmC,MAAoB,IAAdivK,EAAMitF,IAAI36P,GAAW,MAAQ1D,KAAKmC,MAAoB,IAAdivK,EAAMitF,IAAIz+P,GAAW,SAIpI,OAAO,IAAM69K,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOk4K,UAGlB,GAAoBv2K,UAAY,CAC9B44E,IAAK,IAAUnuO,MAAM,CACnBxmB,EAAG,IAAUu9O,OACbvjP,EAAG,IAAUujP,OACbrnP,EAAG,IAAUqnP,OACb/iP,EAAG,IAAU+iP,UAGjB,GAAoBjiE,aAAe,CACjCq5E,IAAK,CACHn6P,EAAG,EACHwF,EAAG,OACH9J,EAAG,GACH8D,EAAG,KAGQ,UCjCJ,GAAgB,SAAuB0tK,GAChD,IAAI0S,EAAS,IAAS,CACpB,QAAW,CACTk4K,OAAQ,CACNnuV,MAAO,OACPC,OAAQ,OACRqqV,aAAc,OACd16P,UAAW,yBACX9tE,WAAY,OAAS3vB,KAAKmC,MAAMivK,EAAMitF,IAAI30P,GAAK,eAC/CkzV,OAAQ,sBAId,OAAO,IAAMn/K,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOk4K,UAGlB,GAAcv2K,UAAY,CACxB44E,IAAK,IAAUnuO,MAAM,CACnBxmB,EAAG,IAAUu9O,OACbvjP,EAAG,IAAUujP,OACbrnP,EAAG,IAAUqnP,OACb/iP,EAAG,IAAU+iP,UAGjB,GAAcjiE,aAAe,CAC3Bq5E,IAAK,CACHn6P,EAAG,EACHwF,EAAG,OACH9J,EAAG,GACH8D,EAAG,KAGQ,UCoKA,GApMW,SAAsBm+F,GAC9C,IAAI+vI,EAAW/vI,EAAK+vI,SAChBniB,EAAM5tH,EAAK4tH,IACX4uC,EAAMx8J,EAAKw8J,IACX5iO,EAAMomE,EAAKpmE,IACX8iO,EAAM18J,EAAK08J,IAEX/oB,EAAe,SAAsBhnO,EAAMhJ,GAC7C,GAAIgJ,EAAKitB,IACP,GAAiBjtB,EAAKitB,MAAQm2M,EAAS,CACrCn2M,IAAKjtB,EAAKitB,IACVtxC,OAAQ,OACPqb,QACE,GAAIgJ,EAAKihN,IAAK,CACnB,IAAIjgO,EAASgf,EAAKihN,IAAInpJ,MAAM,KAC5B,GAAyB93D,EAAKihN,IAAK,QAAUmiB,EAAS,CACpDvnO,EAAG7a,EAAO,GACVia,EAAGja,EAAO,GACV2U,EAAG3U,EAAO,GACV0U,EAAG,EACH/Z,OAAQ,OACPqb,QACE,GAAIgJ,EAAK+vP,IAAK,CACnB,IAAIz1J,EAAUt6F,EAAK+vP,IAAIj4L,MAAM,KAEzB,GAAyB93D,EAAK+vP,IAAK,SACrCz1J,EAAQ,GAAKA,EAAQ,GAAGvhC,QAAQ,IAAK,IACrCuhC,EAAQ,GAAKA,EAAQ,GAAGvhC,QAAQ,IAAK,IACrCuhC,EAAQ,GAAKA,EAAQ,GAAGvhC,QAAQ,OAAK,IAEnB,GAAduhC,EAAQ,GACVA,EAAQ,GAAK,IACU,GAAdA,EAAQ,KACjBA,EAAQ,GAAK,KAGf8oI,EAAS,CACPloO,EAAGsO,OAAO8wF,EAAQ,IAClBplG,EAAGsU,OAAO8wF,EAAQ,IAClBxjG,EAAG0S,OAAO8wF,EAAQ,IAClB3+G,OAAQ,OACPqb,SAEA,GAAIgJ,EAAK6vP,IAAK,CACnB,IAAIuiG,EAAWpyV,EAAK6vP,IAAI/3L,MAAM,KAE1B,GAAyB93D,EAAK6vP,IAAK,SACrCuiG,EAAS,GAAKA,EAAS,GAAGr5R,QAAQ,IAAK,IACvCq5R,EAAS,GAAKA,EAAS,GAAGr5R,QAAQ,IAAK,IACvCq5R,EAAS,GAAKA,EAAS,GAAGr5R,QAAQ,OAAK,IAEpB,GAAfs5R,EAAS,GACXA,EAAS,GAAK,IACU,GAAfA,EAAS,KAClBA,EAAS,GAAK,KAGhBjvH,EAAS,CACPloO,EAAGsO,OAAO4oV,EAAS,IACnBl9V,EAAGsU,OAAO4oV,EAAS,IACnBt7V,EAAG0S,OAAO4oV,EAAS,IACnBz2W,OAAQ,OACPqb,MAKLs+K,EAAS,IAAS,CACpB,QAAW,CACTv2L,KAAM,CACJo9G,QAAS,OACT78F,OAAQ,QACR6hR,UAAW,OAEbkuE,OAAQ,CACNhwV,MAAO,QAETstT,OAAQ,CACN38F,WAAY,OACZ7zH,QAAS,OACT6xP,eAAgB,iBAElB6D,OAAQ,CACNtmH,QAAS,YACT7b,UAAW,cAEb8S,MAAO,CACLnjO,MAAO,OACPC,OAAQ,OACRowN,UAAW,aACX6b,QAAS,cACTksF,UAAW,SACX22B,OAAQ,oBACRzoH,SAAU,OACV6pH,cAAe,YACf7F,aAAc,MACd2D,QAAS,OACTqC,WAAY,2BAEd2C,OAAQ,CACNhzV,OAAQ,OACRD,MAAO,OACP+uV,OAAQ,oBACR1+H,UAAW,aACXiW,SAAU,OACV6pH,cAAe,YACf7F,aAAc,MACd2D,QAAS,OACTn9H,YAAa,OACbw/H,WAAY,2BAEdniN,MAAO,CACLiqL,UAAW,SACX9xF,SAAU,OACVxkN,WAAY,OACZpQ,SAAU,WACVy+U,cAAe,YACf3xV,MAAO,UACPwB,MAAO,OACPsc,IAAK,OACLF,KAAM,IACNC,MAAO,IACP0lQ,WAAY,OACZuB,YAAa,OACbgtE,WAAY,2BAEd4C,OAAQ,CACN92U,KAAM,OACNg8S,UAAW,SACX9xF,SAAU,OACVxkN,WAAY,OACZpQ,SAAU,WACVy+U,cAAe,YACf3xV,MAAO,UACPwB,MAAO,OACPsc,IAAK,OACLg0U,WAAY,2BAEdiC,OAAQ,CACNrkC,SAAU,IACV91C,OAAQ,gBAIV+6E,EAAWvxI,EAAIplN,EAAI,KAAOolN,EAAIhmN,EAAI,KAAOgmN,EAAItrN,EAC7C88V,EAAWjhW,KAAKmC,MAAMk8P,EAAI30P,GAAK,SAAW1J,KAAKmC,MAAc,IAARk8P,EAAI36P,GAAW,MAAQ1D,KAAKmC,MAAc,IAARk8P,EAAIz+P,GAAW,IACtGihW,EAAW7gW,KAAKmC,MAAMo8P,EAAI70P,GAAK,SAAW1J,KAAKmC,MAAc,IAARo8P,EAAI76P,GAAW,MAAQ1D,KAAKmC,MAAc,IAARo8P,EAAIj5P,GAAW,IAC1G,OAAO,IAAMm4K,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOv2L,KACdu7L,UAAW,eACV,IAAMrL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAO+5K,QACb,IAAMpgL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOu8K,QACb,IAAM5iL,cAAc,EAAe,CACpC/hJ,MAAO,CACLs1M,MAAOltD,EAAOktD,MACdh1F,MAAO8nC,EAAO9nC,OAEhBA,MAAO,MACPnwJ,MAAO4vC,EACPm2M,SAAU4D,KACP,IAAM/3D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOq3I,QACb,IAAM19I,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOs8K,QACb,IAAM3iL,cAAc,EAAe,CACpC/hJ,MAAO,CACLs1M,MAAOltD,EAAOg9K,OACd9kN,MAAO8nC,EAAOi9K,QAEhB/kN,MAAO,MACPnwJ,MAAOm1W,EACPpvH,SAAU4D,KACP,IAAM/3D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOs8K,QACb,IAAM3iL,cAAc,EAAe,CACpC/hJ,MAAO,CACLs1M,MAAOltD,EAAOg9K,OACd9kN,MAAO8nC,EAAOi9K,QAEhB/kN,MAAO,MACPnwJ,MAAOg1W,EACPjvH,SAAU4D,KACP,IAAM/3D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOs8K,QACb,IAAM3iL,cAAc,EAAe,CACpC/hJ,MAAO,CACLs1M,MAAOltD,EAAOg9K,OACd9kN,MAAO8nC,EAAOi9K,QAEhB/kN,MAAO,MACPnwJ,MAAOo1W,EACPrvH,SAAU4D,SC7LH,GAAS,SAAgB3zI,GAClC,IAAIh0F,EAAQg0F,EAAKh0F,MACb+jO,EAAW/vI,EAAK+vI,SAChBniB,EAAM5tH,EAAK4tH,IACX4uC,EAAMx8J,EAAKw8J,IACXE,EAAM18J,EAAK08J,IACX9iO,EAAMomE,EAAKpmE,IACXwkU,EAASp+P,EAAKo+P,OACd/F,EAAcr4P,EAAKiiF,OACnBq2K,OAA+BvvW,IAAhBsvW,EAA4B,GAAKA,EAChDgC,EAAiBr6P,EAAKinF,UACtBA,OAA+Bl+L,IAAnBsxW,EAA+B,GAAKA,EAChDp4K,EAAS,IAAS,GAAM,CAC1B,QAAW,CACTk4K,OAAQ,CACNnuV,MAAOA,EACP8hB,WAAY,OACZitU,OAAQ,oBACR1+H,UAAW,UACXvzH,QAAS,OACT4yP,SAAU,OACVpF,aAAc,mBAEhBh3K,KAAM,CACJrzK,OAAQ,OACRD,MAAO,OACP2wN,WAAY,OACZE,cAAe,OACfC,YAAa,OACbwV,SAAU,OACVjW,UAAW,aACXigI,WAAY,iDAEd5hU,WAAY,CACV1uB,MAAO,MACPksO,QAAS,MACTx6N,SAAU,WACVqtQ,SAAU,UAEZivE,OAAQ,CACNhuV,MAAO,MACPC,OAAQ,QACRisO,QAAS,MACTpqN,WAAY,QAAU8/L,EAAIplN,EAAI,KAAOolN,EAAIhmN,EAAI,KAAOgmN,EAAItrN,EAAI,OAC5Dob,SAAU,WACVqtQ,SAAU,UAEZnyI,KAAM,CACJwrI,OAAQ,OACRp4Q,MAAO,OAETuwV,SAAU,CACRzzP,QAAS,OACTuzH,UAAW,aACXpwN,OAAQ,OACR0wN,WAAY,QAEdnyN,MAAO,CACLwB,MAAO,QAETyuB,IAAK,CACHxuB,OAAQ,MACRyR,SAAU,WACV0mQ,OAAQ,oBACRp4Q,MAAO,QAETksV,IAAK,CACH38U,OAAQ,SAGX+8U,IACH,OAAO,IAAM18K,cAAc,MAAO,CAChC/hJ,MAAOooJ,EAAOk4K,OACdlzK,UAAW,iBAAmBA,GAC7B,IAAMrL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAO3C,MACb8+K,GAAS,IAAMxiL,cAAc,MAAO,CACrC/hJ,MAAOooJ,EAAO+3K,SACZ,IAAMp+K,cAAc,MAAO,CAC7B/hJ,MAAOooJ,EAAOvnJ,YACb,IAAMkhJ,cAAc,GAAY,CACjC4gF,IAAKA,EACLE,IAAKA,EACLo6F,QAAS,GACT/mH,SAAUA,KACP,IAAMn0D,cAAc,MAAO,CAC9B/hJ,MAAOooJ,EAAOrpC,MACb,IAAMgjC,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOs6K,SACdt1K,UAAW,eACV,IAAMrL,cAAc,MAAO,CAC5B/hJ,MAAOooJ,EAAOxnJ,KACb,IAAMmhJ,cAAc,EAAK,CAC1B/hJ,MAAOooJ,EAAOi2K,IACd17F,IAAKA,EACLjhP,OAAQ,MACRu7U,QAAS,GACT/mH,SAAUA,MACN,IAAMn0D,cAAc,GAAc,CACtCgyC,IAAKA,EACL4uC,IAAKA,EACL5iO,IAAKA,EACL8iO,IAAKA,EACL3sB,SAAUA,OAGd,GAAOnsD,UAAY,CACjB53K,MAAO,IAAUgvV,UAAU,CAAC,IAAUjhU,OAAQ,IAAUqrN,SACxDnjE,OAAQ,IAAU56L,OAClB+2W,OAAQ,IAAUrkU,QAEpB,GAAOopJ,aAAe,CACpBn3K,MAAO,IACPi2K,OAAQ,GACRm8K,OAAQ,gBAEK,GAAU,IC5HzB,oC,mECAIiB,EAAe,GACR,EAAQ,KAEK,qBAAbr1V,WAGH,iBAFQA,SAAS0hP,kBAGrB2zG,EAAe,CACbC,WAAY,YACZC,WAAY,cAKlB,SAASC,EAAsBjiW,EAAUI,EAAO0lC,GAE9C,OADA9lC,EAAWkiW,EAAgBliW,EAAUI,EAAO0lC,GACrC,SAAUxlC,GACf,IAAI6hW,EAAU7hW,EAAM+4N,cAEf8oI,IAAWA,IAAY91W,MAAkD,EAAxC81W,EAAQ3zE,wBAAwBniS,QACpE2T,EAASpU,KAAKS,KAAMiU,IAK1B,SAAS4hW,EAAgBliW,EAAUI,EAAO0lC,GACxC,OAAO,SAAUs8T,GACf,IAAIC,EAAS,EAEb,EAAQD,EAER,IACEpiW,EAASpU,KAAKS,KAAMA,KAAKwrR,SAAUz3Q,EAAO0lC,GAC1C,QACA,EAAQu8T,IAKd,SAAS36C,EAAeC,GACtB,OAAOA,EAAU7gP,OAAOI,MAAM,SAASpuC,KAAI,SAAU/2B,GACnD,IAAIrP,EAAO,GACP9H,EAAImX,EAAElW,QAAQ,KAElB,OADIjB,GAAK,IAAG8H,EAAOqP,EAAEzO,MAAM1I,EAAI,GAAImX,EAAIA,EAAEzO,MAAM,EAAG1I,IAC3C,CACLiF,KAAMkS,EACNrP,KAAMA,MAKZ,SAASizP,EAASiiE,GAChB,OAAO,WACL,IAAIr9G,EAAKl+M,KAAKi2W,KACd,GAAK/3J,EAAL,CAEA,IAAK,IAAkCpiE,EAA9BnmH,EAAI,EAAGp3B,GAAK,EAAG+W,EAAI4oM,EAAGz/M,OAAWk3B,EAAIrgB,IAAKqgB,EAC7CmmH,EAAIoiE,EAAGvoL,GAAM4lS,EAAS/3T,MAAQs4I,EAAEt4I,OAAS+3T,EAAS/3T,MAASs4I,EAAEz1I,OAASk1T,EAASl1T,KAGjF63M,IAAK3/M,GAAKu9I,EAFV97I,KAAKknE,oBAAoB40E,EAAEt4I,KAAMs4I,EAAEnoI,SAAUmoI,EAAEo6N,WAM7C33W,EAAG2/M,EAAGz/M,OAASF,SAAcyB,KAAKi2W,OAI5C,SAASE,EAAM56C,EAAUn7T,EAAO81W,GAC9B,IAAIp0W,EAAO2zW,EAAa70W,eAAe26T,EAAS/3T,MAAQoyW,EAAwBC,EAChF,OAAO,SAAU/3V,EAAGvf,EAAGk7C,GACrB,IACIqiG,EADAoiE,EAAKl+M,KAAKi2W,KAEVtiW,EAAW7R,EAAK1B,EAAO7B,EAAGk7C,GAC9B,GAAIykK,EAAI,IAAK,IAAIvoL,EAAI,EAAGrgB,EAAI4oM,EAAGz/M,OAAQk3B,EAAIrgB,IAAKqgB,EAC9C,IAAKmmH,EAAIoiE,EAAGvoL,IAAInyB,OAAS+3T,EAAS/3T,MAAQs4I,EAAEz1I,OAASk1T,EAASl1T,KAI5D,OAHArG,KAAKknE,oBAAoB40E,EAAEt4I,KAAMs4I,EAAEnoI,SAAUmoI,EAAEo6N,SAC/Cl2W,KAAKqnE,iBAAiBy0E,EAAEt4I,KAAMs4I,EAAEnoI,SAAWA,EAAUmoI,EAAEo6N,QAAUA,QACjEp6N,EAAE17I,MAAQA,GAIdJ,KAAKqnE,iBAAiBk0P,EAAS/3T,KAAMmQ,EAAUuiW,GAC/Cp6N,EAAI,CACFt4I,KAAM+3T,EAAS/3T,KACf6C,KAAMk1T,EAASl1T,KACfjG,MAAOA,EACPuT,SAAUA,EACVuiW,QAASA,GAENh4J,EAAyBA,EAAG//M,KAAK29I,GAA7B97I,KAAKi2W,KAAO,CAACn6N,IC1F1B,SAASs6N,KAEM,kBACb,OAAmB,MAAZpmL,EAAmBomL,EAAO,WAC/B,OAAOp2W,KAAK+4P,cAAc/oE,KCJ9B,SAAS,IACP,MAAO,GAGM,kBACb,OAAmB,MAAZA,EAAmB,EAAQ,WAChC,OAAOhwL,KAAKw2L,iBAAiBxG,KCNlB,cACb,OAAO,WACL,OAAOhwL,KAAKkqK,QAAQ8lB,KCFT,cACb,OAAO,IAAIrsK,MAAM8H,EAAOhtB,SCInB,SAAS43W,EAAUt1U,EAAQu1U,GAChCt2W,KAAK6wL,cAAgB9vJ,EAAO8vJ,cAC5B7wL,KAAKu2W,aAAex1U,EAAOw1U,aAC3Bv2W,KAAKuoL,MAAQ,KACbvoL,KAAKw2W,QAAUz1U,EACf/gC,KAAKwrR,SAAW8qF,EAElBD,EAAUn2W,UAAY,CACpBD,YAAao2W,EACbviL,YAAa,SAAqB5wJ,GAChC,OAAOljC,KAAKw2W,QAAQ7iL,aAAazwJ,EAAOljC,KAAKuoL,QAE/CoL,aAAc,SAAsBzwJ,EAAOj+B,GACzC,OAAOjF,KAAKw2W,QAAQ7iL,aAAazwJ,EAAOj+B,IAE1C8zP,cAAe,SAAuB/oE,GACpC,OAAOhwL,KAAKw2W,QAAQz9G,cAAc/oE,IAEpCwG,iBAAkB,SAA0BxG,GAC1C,OAAOhwL,KAAKw2W,QAAQhgL,iBAAiBxG,KCnBzC,SAASymL,EAAU11U,EAAQ0Y,EAAOkgQ,EAAOluR,EAAQu2O,EAAMj/O,GAQrD,IAPA,IACIolJ,EADA5pK,EAAI,EAEJm4W,EAAcj9T,EAAMh7C,OACpBk4W,EAAa5zV,EAAKtkB,OAIfF,EAAIo4W,IAAcp4W,GACnB4pK,EAAO1uH,EAAMl7C,KACf4pK,EAAKqjH,SAAWzoQ,EAAKxkB,GACrBktB,EAAOltB,GAAK4pK,GAEZwxI,EAAMp7S,GAAK,IAAI83W,EAAUt1U,EAAQhe,EAAKxkB,IAK1C,KAAOA,EAAIm4W,IAAen4W,GACpB4pK,EAAO1uH,EAAMl7C,MACfyjQ,EAAKzjQ,GAAK4pK,GAKhB,SAAS22L,EAAQ/9T,EAAQ0Y,EAAOkgQ,EAAOluR,EAAQu2O,EAAMj/O,EAAMnkB,GACzD,IAAIL,EACA4pK,EAKAyuM,EAJAC,EAAiB,GACjBH,EAAcj9T,EAAMh7C,OACpBk4W,EAAa5zV,EAAKtkB,OAClBq4W,EAAY,IAAInzV,MAAM+yV,GAI1B,IAAKn4W,EAAI,EAAGA,EAAIm4W,IAAen4W,GACzB4pK,EAAO1uH,EAAMl7C,MACfu4W,EAAUv4W,GAAKq4W,EAvCL,IAuC4Bh4W,EAAIW,KAAK4oK,EAAMA,EAAKqjH,SAAUjtR,EAAGk7C,GAEnEm9T,KAAYC,EACd70G,EAAKzjQ,GAAK4pK,EAEV0uM,EAAeD,GAAYzuM,GAQjC,IAAK5pK,EAAI,EAAGA,EAAIo4W,IAAcp4W,GAGxB4pK,EAAO0uM,EAFXD,EArDY,IAqDWh4W,EAAIW,KAAKwhC,EAAQhe,EAAKxkB,GAAIA,EAAGwkB,MAGlD0I,EAAOltB,GAAK4pK,EACZA,EAAKqjH,SAAWzoQ,EAAKxkB,GACrBs4W,EAAeD,GAAY,MAE3Bj9D,EAAMp7S,GAAK,IAAI83W,EAAUt1U,EAAQhe,EAAKxkB,IAK1C,IAAKA,EAAI,EAAGA,EAAIm4W,IAAen4W,GACxB4pK,EAAO1uH,EAAMl7C,KAAOs4W,EAAeC,EAAUv4W,MAAQ4pK,IACxD65F,EAAKzjQ,GAAK4pK,GCjDhB,SAAS4uM,EAAUt+V,EAAGC,GACpB,OAAOD,EAAIC,GAAK,EAAID,EAAIC,EAAI,EAAID,GAAKC,EAAI,EAAIm/R,ICtBhC,ICAJm/D,EAAQ,+BACJ,GACb1kI,IAAK,6BACL0kI,MAAOA,EACPC,MAAO,+BACPx1C,IAAK,uCACLy1C,MAAO,iCCLM,cACb,IAAItzR,EAASv9E,GAAQ,GACjB9H,EAAIqlF,EAAOpkF,QAAQ,KAEvB,OADIjB,GAAK,GAAqC,WAA/BqlF,EAASv9E,EAAKY,MAAM,EAAG1I,MAAiB8H,EAAOA,EAAKY,MAAM1I,EAAI,IACtE44W,EAAWv2W,eAAegjF,GAAU,CACzCkyB,MAAOqhQ,EAAWvzR,GAClBwzR,MAAO/wW,GACLA,GCNN,SAASgxW,EAAWhxW,GAClB,OAAO,WACLrG,KAAKmnS,gBAAgB9gS,IAIzB,SAASixW,EAAaC,GACpB,OAAO,WACLv3W,KAAKw3W,kBAAkBD,EAASzhQ,MAAOyhQ,EAASH,QAIpD,SAASK,EAAapxW,EAAMjG,GAC1B,OAAO,WACLJ,KAAK23C,aAAatxC,EAAMjG,IAI5B,SAASs3W,EAAeH,EAAUn3W,GAChC,OAAO,WACLJ,KAAK23W,eAAeJ,EAASzhQ,MAAOyhQ,EAASH,MAAOh3W,IAIxD,SAASw3W,EAAavxW,EAAMjG,GAC1B,OAAO,WACL,IAAIyZ,EAAIzZ,EAAMhC,MAAM4B,KAAMxB,WACjB,MAALqb,EAAW7Z,KAAKmnS,gBAAgB9gS,GAAWrG,KAAK23C,aAAatxC,EAAMwT,IAI3E,SAASg+V,EAAeN,EAAUn3W,GAChC,OAAO,WACL,IAAIyZ,EAAIzZ,EAAMhC,MAAM4B,KAAMxB,WACjB,MAALqb,EAAW7Z,KAAKw3W,kBAAkBD,EAASzhQ,MAAOyhQ,EAASH,OAAYp3W,KAAK23W,eAAeJ,EAASzhQ,MAAOyhQ,EAASH,MAAOv9V,IAIpH,ICxCA,cACb,OAAOsuJ,EAAK0oB,eAAiB1oB,EAAK0oB,cAAc2gD,aAC7CrpE,EAAK/nJ,UAAY+nJ,GACjBA,EAAKqpE,aCDV,SAASsmI,EAAYzxW,GACnB,OAAO,WACLrG,KAAKiwC,MAAM8nU,eAAe1xW,IAI9B,SAAS2xW,EAAc3xW,EAAMjG,EAAOopS,GAClC,OAAO,WACLxpS,KAAKiwC,MAAMgoU,YAAY5xW,EAAMjG,EAAOopS,IAIxC,SAAS0uE,EAAc7xW,EAAMjG,EAAOopS,GAClC,OAAO,WACL,IAAI3vR,EAAIzZ,EAAMhC,MAAM4B,KAAMxB,WACjB,MAALqb,EAAW7Z,KAAKiwC,MAAM8nU,eAAe1xW,GAAWrG,KAAKiwC,MAAMgoU,YAAY5xW,EAAMwT,EAAG2vR,IAOjF,SAAS2uE,EAAWhwM,EAAM9hK,GAC/B,OAAO8hK,EAAKl4H,MAAMmoU,iBAAiB/xW,IAAS,EAAY8hK,GAAMkqE,iBAAiBlqE,EAAM,MAAMiwM,iBAAiB/xW,GCzB9G,SAASgyW,EAAehyW,GACtB,OAAO,kBACErG,KAAKqG,IAIhB,SAASiyW,EAAiBjyW,EAAMjG,GAC9B,OAAO,WACLJ,KAAKqG,GAAQjG,GAIjB,SAASm4W,EAAiBlyW,EAAMjG,GAC9B,OAAO,WACL,IAAIyZ,EAAIzZ,EAAMhC,MAAM4B,KAAMxB,WACjB,MAALqb,SAAkB7Z,KAAKqG,GAAWrG,KAAKqG,GAAQwT,GCfvD,SAAS2+V,EAAWroU,GAClB,OAAOA,EAAOsqC,OAAOI,MAAM,SAG7B,SAASowJ,EAAU9iE,GACjB,OAAOA,EAAK8iE,WAAa,IAAIwtI,EAAUtwM,GAGzC,SAASswM,EAAUtwM,GACjBnoK,KAAKo6N,MAAQjyD,EACbnoK,KAAK04W,OAASF,EAAWrwM,EAAKtvH,aAAa,UAAY,IA2BzD,SAAS8/T,EAAWxwM,EAAMkoB,GAKxB,IAJA,IAAI3kG,EAAOu/I,EAAU9iE,GACjB5pK,GAAK,EACL8W,EAAIg7K,EAAM5xL,SAELF,EAAI8W,GACXq2E,EAAK74D,IAAIw9J,EAAM9xL,IAInB,SAASq6W,EAAczwM,EAAMkoB,GAK3B,IAJA,IAAI3kG,EAAOu/I,EAAU9iE,GACjB5pK,GAAK,EACL8W,EAAIg7K,EAAM5xL,SAELF,EAAI8W,GACXq2E,EAAKjpD,OAAO4tJ,EAAM9xL,IAItB,SAASs6W,EAAYxoL,GACnB,OAAO,WACLsoL,EAAW34W,KAAMqwL,IAIrB,SAASyoL,EAAazoL,GACpB,OAAO,WACLuoL,EAAc54W,KAAMqwL,IAIxB,SAAS0oL,EAAgB1oL,EAAOjwL,GAC9B,OAAO,YACJA,EAAMhC,MAAM4B,KAAMxB,WAAam6W,EAAaC,GAAe54W,KAAMqwL,IA1DtEooL,EAAUv4W,UAAY,CACpB2yB,IAAK,SAAaxsB,GACRrG,KAAK04W,OAAOl5W,QAAQ6G,GAEpB,IACNrG,KAAK04W,OAAOv6W,KAAKkI,GAEjBrG,KAAKo6N,MAAMziL,aAAa,QAAS33C,KAAK04W,OAAO19R,KAAK,QAGtDv4C,OAAQ,SAAgBp8B,GACtB,IAAI9H,EAAIyB,KAAK04W,OAAOl5W,QAAQ6G,GAExB9H,GAAK,IACPyB,KAAK04W,OAAO1kW,OAAOzV,EAAG,GAEtByB,KAAKo6N,MAAMziL,aAAa,QAAS33C,KAAK04W,OAAO19R,KAAK,QAGtDiyJ,SAAU,SAAkB5mO,GAC1B,OAAOrG,KAAK04W,OAAOl5W,QAAQ6G,IAAS,ICjCxC,SAAS2yW,IACPh5W,KAAK42L,YAAc,GAGrB,SAASqiL,EAAa74W,GACpB,OAAO,WACLJ,KAAK42L,YAAcx2L,GAIvB,SAAS84W,EAAa94W,GACpB,OAAO,WACL,IAAIyZ,EAAIzZ,EAAMhC,MAAM4B,KAAMxB,WAC1BwB,KAAK42L,YAAmB,MAAL/8K,EAAY,GAAKA,GCbxC,SAASs/V,IACPn5W,KAAK4oP,UAAY,GAGnB,SAASwwH,EAAah5W,GACpB,OAAO,WACLJ,KAAK4oP,UAAYxoP,GAIrB,SAASi5W,GAAaj5W,GACpB,OAAO,WACL,IAAIyZ,EAAIzZ,EAAMhC,MAAM4B,KAAMxB,WAC1BwB,KAAK4oP,UAAiB,MAAL/uO,EAAY,GAAKA,GCbtC,SAASy/V,KACHt5W,KAAKg0L,aAAah0L,KAAK+zL,WAAWD,YAAY9zL,MCDpD,SAAS2tV,KACH3tV,KAAKu5W,iBAAiBv5W,KAAK+zL,WAAWJ,aAAa3zL,KAAMA,KAAK+zL,WAAWylL,YCE/E,SAASC,GAAepzW,GACtB,OAAO,WACL,IAAI+Z,EAAWpgB,KAAK6wL,cAChB6oL,EAAM15W,KAAKu2W,aACf,OAAOmD,IAAQ1C,GAAS52V,EAAS0hP,gBAAgBy0G,eAAiBS,EAAQ52V,EAAS4xK,cAAc3rL,GAAQ+Z,EAASD,gBAAgBu5V,EAAKrzW,IAI3I,SAASszW,GAAapC,GACpB,OAAO,WACL,OAAOv3W,KAAK6wL,cAAc1wK,gBAAgBo3V,EAASzhQ,MAAOyhQ,EAASH,QAIxD,mBACb,IAAIG,EAAW9hK,EAAUpvM,GACzB,OAAQkxW,EAASH,MAAQuC,GAAeF,IAAgBlC,IChB1D,SAASqC,KACP,OAAO,KCJT,SAAS,KACP,IAAI74U,EAAS/gC,KAAK+zL,WACdhzJ,GAAQA,EAAOg2J,YAAY/2L,MCFjC,SAAS65W,KACP,IAAI5wV,EAAQjpB,KAAK85W,WAAU,GACvB/4U,EAAS/gC,KAAK+zL,WAClB,OAAOhzJ,EAASA,EAAO4yJ,aAAa1qK,EAAOjpB,KAAKg0L,aAAe/qK,EAGjE,SAAS8wV,KACP,IAAI9wV,EAAQjpB,KAAK85W,WAAU,GACvB/4U,EAAS/gC,KAAK+zL,WAClB,OAAOhzJ,EAASA,EAAO4yJ,aAAa1qK,EAAOjpB,KAAKg0L,aAAe/qK,ECPjE,SAAS1C,GAAc4hJ,EAAM3kK,EAAM2mE,GACjC,IAAI2yF,EAAS,EAAYqL,GACrBl0J,EAAQ6oJ,EAAOpyC,YAEE,oBAAVz2G,EACTA,EAAQ,IAAIA,EAAMzQ,EAAM2mE,IAExBl2D,EAAQ6oJ,EAAO18I,SAASs1N,YAAY,SAChCvrK,GAAQl2D,EAAM0hO,UAAUnyO,EAAM2mE,EAAO6vS,QAAS7vS,EAAO2kM,YAAa76P,EAAM02G,OAASxgD,EAAOwgD,QAAY12G,EAAM0hO,UAAUnyO,GAAM,GAAO,IAGvI2kK,EAAK5hJ,cAActS,GAGrB,SAASgmW,GAAiBz2W,EAAM2mE,GAC9B,OAAO,WACL,OAAO5jD,GAAcvmB,KAAMwD,EAAM2mE,IAIrC,SAAS+vS,GAAiB12W,EAAM2mE,GAC9B,OAAO,WACL,OAAO5jD,GAAcvmB,KAAMwD,EAAM2mE,EAAO/rE,MAAM4B,KAAMxB,aAIzC,ICGJwrK,GAAO,CAAC,MACZ,SAASmwM,GAAUrjU,EAAQoxK,GAChCloN,KAAKo6W,QAAUtjU,EACf92C,KAAKq6W,SAAWnyJ,EAGlB,SAAS,KACP,OAAO,IAAIiyJ,GAAU,CAAC,CAAC/5V,SAAS0hP,kBAAmB93F,IAGrDmwM,GAAUj6W,UAAY,GAAUA,UAAY,CAC1CD,YAAak6W,GACbG,OCzCa,YACS,oBAAXA,IAAuBA,EAAS,EAASA,IAEpD,IAAK,IAAIxjU,EAAS92C,KAAKo6W,QAAS9kW,EAAIwhC,EAAOr4C,OAAQ87W,EAAY,IAAI52V,MAAMrO,GAAIqgB,EAAI,EAAGA,EAAIrgB,IAAKqgB,EAC3F,IAAK,IAAiFwyI,EAAMqyM,EAAnF/gU,EAAQ3C,EAAOnhB,GAAItgB,EAAIokC,EAAMh7C,OAAQg8W,EAAWF,EAAU5kV,GAAK,IAAIhS,MAAMtO,GAAmB9W,EAAI,EAAGA,EAAI8W,IAAK9W,GAC9G4pK,EAAO1uH,EAAMl7C,MAAQi8W,EAAUF,EAAO/6W,KAAK4oK,EAAMA,EAAKqjH,SAAUjtR,EAAGk7C,MAClE,aAAc0uH,IAAMqyM,EAAQhvF,SAAWrjH,EAAKqjH,UAChDivF,EAASl8W,GAAKi8W,GAKpB,OAAO,IAAIL,GAAUI,EAAWv6W,KAAKq6W,WD8BrCK,UE1Ca,YACS,oBAAXJ,IAAuBA,EAASK,EAAYL,IAEvD,IAAK,IAAIxjU,EAAS92C,KAAKo6W,QAAS9kW,EAAIwhC,EAAOr4C,OAAQ87W,EAAY,GAAIryJ,EAAU,GAAIvyL,EAAI,EAAGA,EAAIrgB,IAAKqgB,EAC/F,IAAK,IAAyCwyI,EAArC1uH,EAAQ3C,EAAOnhB,GAAItgB,EAAIokC,EAAMh7C,OAAcF,EAAI,EAAGA,EAAI8W,IAAK9W,GAC9D4pK,EAAO1uH,EAAMl7C,MACfg8W,EAAUp8W,KAAKm8W,EAAO/6W,KAAK4oK,EAAMA,EAAKqjH,SAAUjtR,EAAGk7C,IACnDyuK,EAAQ/pN,KAAKgqK,IAKnB,OAAO,IAAIgyM,GAAUI,EAAWryJ,IF+BhCnqN,OG3Ca,YACQ,oBAAVq7E,IAAsBA,EAAQwhS,EAAQxhS,IAEjD,IAAK,IAAItiC,EAAS92C,KAAKo6W,QAAS9kW,EAAIwhC,EAAOr4C,OAAQ87W,EAAY,IAAI52V,MAAMrO,GAAIqgB,EAAI,EAAGA,EAAIrgB,IAAKqgB,EAC3F,IAAK,IAAuEwyI,EAAnE1uH,EAAQ3C,EAAOnhB,GAAItgB,EAAIokC,EAAMh7C,OAAQg8W,EAAWF,EAAU5kV,GAAK,GAAUp3B,EAAI,EAAGA,EAAI8W,IAAK9W,GAC3F4pK,EAAO1uH,EAAMl7C,KAAO66E,EAAM75E,KAAK4oK,EAAMA,EAAKqjH,SAAUjtR,EAAGk7C,IAC1DghU,EAASt8W,KAAKgqK,GAKpB,OAAO,IAAIgyM,GAAUI,EAAWv6W,KAAKq6W,WHiCrCt3V,KnB6Ba,cACb,IAAK3iB,EAKH,OAJA2iB,EAAO,IAAIY,MAAM3jB,KAAK2yB,QAASgD,GAAK,EACpC31B,KAAKwqW,MAAK,SAAU1sV,GAClBiF,IAAO4S,GAAK7X,KAEPiF,EAGT,IuBpFa,EvBoFT66F,EAAOh/G,EAAMkgW,EAAU2X,EACvBvuJ,EAAUloN,KAAKq6W,SACfvjU,EAAS92C,KAAKo6W,QACG,oBAAVh6W,IuBvFE,EvBuFqCA,EAAjBA,EuBtF1B,WACL,OAAOoV,IvBuFT,IAAK,IAAIF,EAAIwhC,EAAOr4C,OAAQgtB,EAAS,IAAI9H,MAAMrO,GAAIqkS,EAAQ,IAAIh2R,MAAMrO,GAAI0sP,EAAO,IAAIr+O,MAAMrO,GAAIqgB,EAAI,EAAGA,EAAIrgB,IAAKqgB,EAAG,CAC/G,IAAIoL,EAASmnL,EAAQvyL,GACjB8jB,EAAQ3C,EAAOnhB,GACf+gV,EAAcj9T,EAAMh7C,OACpBskB,EAAO3iB,EAAMb,KAAKwhC,EAAQA,GAAUA,EAAOyqP,SAAU71P,EAAGuyL,GACxDyuJ,EAAa5zV,EAAKtkB,OAClBo8W,EAAalhE,EAAMhkR,GAAK,IAAIhS,MAAMgzV,GAClCmE,EAAcrvV,EAAOkK,GAAK,IAAIhS,MAAMgzV,GAExC/4P,EAAK78E,EAAQ0Y,EAAOohU,EAAYC,EADhB94G,EAAKrsO,GAAK,IAAIhS,MAAM+yV,GACoB3zV,EAAMnkB,GAI9D,IAAK,IAAoBu1P,EAAUlvP,EAA1BohC,EAAK,EAAGC,EAAK,EAAmBD,EAAKswU,IAActwU,EAC1D,GAAI8tN,EAAW0mH,EAAWx0U,GAAK,CAG7B,IAFIA,GAAMC,IAAIA,EAAKD,EAAK,KAEfphC,EAAO61W,EAAYx0U,OAAUA,EAAKqwU,IAI3CxiH,EAAS5rE,MAAQtjL,GAAQ,MAQ/B,OAHAwmB,EAAS,IAAI0uV,GAAU1uV,EAAQy8L,IACxB6yJ,OAASphE,EAChBluR,EAAOuvV,MAAQh5G,EACRv2O,GmBvEPkuR,MpB7Ca,WACb,OAAO,IAAIwgE,GAAUn6W,KAAK+6W,QAAU/6W,KAAKo6W,QAAQ3tU,IAAIwuU,GAASj7W,KAAKq6W,WoB6CnEr4G,KK9Ca,WACb,OAAO,IAAIm4G,GAAUn6W,KAAKg7W,OAASh7W,KAAKo6W,QAAQ3tU,IAAIwuU,GAASj7W,KAAKq6W,WL8ClEr/R,KMjDa,gBACb,IAAI2+N,EAAQ35S,KAAK25S,QACbluR,EAASzrB,KACTgiQ,EAAOhiQ,KAAKgiQ,OAIhB,OAHA23C,EAA2B,oBAAZuhE,EAAyBA,EAAQvhE,GAASA,EAAMx7E,OAAO+8I,EAAU,IAChE,MAAZC,IAAkB1vV,EAAS0vV,EAAS1vV,IAC1B,MAAV2vV,EAAgBp5G,EAAKv/N,SAAc24U,EAAOp5G,GACvC23C,GAASluR,EAASkuR,EAAMt3P,MAAM52B,GAAQ7S,QAAU6S,GN2CvD42B,MOjDa,YACb,IAAK,IAAIg5T,EAAUr7W,KAAKo6W,QAASkB,EAAUC,EAAUnB,QAASoB,EAAKH,EAAQ58W,OAAQ04T,EAAKmkD,EAAQ78W,OAAQ6W,EAAIf,KAAKW,IAAIsmW,EAAIrkD,GAAKskD,EAAS,IAAI93V,MAAM63V,GAAK7lV,EAAI,EAAGA,EAAIrgB,IAAKqgB,EACpK,IAAK,IAAmGwyI,EAA/FuzM,EAASL,EAAQ1lV,GAAIgmV,EAASL,EAAQ3lV,GAAItgB,EAAIqmW,EAAOj9W,OAAQ4jD,EAAQo5T,EAAO9lV,GAAK,IAAIhS,MAAMtO,GAAU9W,EAAI,EAAGA,EAAI8W,IAAK9W,GACxH4pK,EAAOuzM,EAAOn9W,IAAMo9W,EAAOp9W,MAC7B8jD,EAAM9jD,GAAK4pK,GAKjB,KAAOxyI,EAAI6lV,IAAM7lV,EACf8lV,EAAO9lV,GAAK0lV,EAAQ1lV,GAGtB,OAAO,IAAIwkV,GAAUsB,EAAQz7W,KAAKq6W,WPqClCzhW,MQnDa,WACb,IAAK,IAAIk+B,EAAS92C,KAAKo6W,QAASzkV,GAAK,EAAGrgB,EAAIwhC,EAAOr4C,SAAUk3B,EAAIrgB,GAC/D,IAAK,IAA8D6yJ,EAA1D1uH,EAAQ3C,EAAOnhB,GAAIp3B,EAAIk7C,EAAMh7C,OAAS,EAAGwG,EAAOw0C,EAAMl7C,KAAYA,GAAK,IAC1E4pK,EAAO1uH,EAAMl7C,MACX0G,GAA6C,EAArCkjK,EAAKg6H,wBAAwBl9R,IAAWA,EAAK8uL,WAAWJ,aAAaxrB,EAAMljK,GACvFA,EAAOkjK,GAKb,OAAOnoK,MR0CP4xE,KlBnDa,YAGb,SAASgqS,EAAYnjW,EAAGC,GACtB,OAAOD,GAAKC,EAAIssS,EAAQvsS,EAAE+yQ,SAAU9yQ,EAAE8yQ,WAAa/yQ,GAAKC,EAHrDssS,IAASA,EAAU+xD,GAMxB,IAAK,IAAIjgU,EAAS92C,KAAKo6W,QAAS9kW,EAAIwhC,EAAOr4C,OAAQo9W,EAAa,IAAIl4V,MAAMrO,GAAIqgB,EAAI,EAAGA,EAAIrgB,IAAKqgB,EAAG,CAC/F,IAAK,IAAmFwyI,EAA/E1uH,EAAQ3C,EAAOnhB,GAAItgB,EAAIokC,EAAMh7C,OAAQq9W,EAAYD,EAAWlmV,GAAK,IAAIhS,MAAMtO,GAAU9W,EAAI,EAAGA,EAAI8W,IAAK9W,GACxG4pK,EAAO1uH,EAAMl7C,MACfu9W,EAAUv9W,GAAK4pK,GAInB2zM,EAAUlqS,KAAKgqS,GAGjB,OAAO,IAAIzB,GAAU0B,EAAY77W,KAAKq6W,UAAUzhW,SkBmChDrZ,KjBrDa,WACb,IAAI6uB,EAAW5vB,UAAU,GAGzB,OAFAA,UAAU,GAAKwB,KACfouB,EAAShwB,MAAM,KAAMI,WACdwB,MiBkDP0jC,MStDa,WACb,IAAIA,EAAQ,IAAI/f,MAAM3jB,KAAK2yB,QACvBp0B,GAAK,EAIT,OAHAyB,KAAKwqW,MAAK,WACR9mU,IAAQnlC,GAAKyB,QAER0jC,GTiDPykI,KUvDa,WACb,IAAK,IAAIrxH,EAAS92C,KAAKo6W,QAASzkV,EAAI,EAAGrgB,EAAIwhC,EAAOr4C,OAAQk3B,EAAIrgB,IAAKqgB,EACjE,IAAK,IAAI8jB,EAAQ3C,EAAOnhB,GAAIp3B,EAAI,EAAG8W,EAAIokC,EAAMh7C,OAAQF,EAAI8W,IAAK9W,EAAG,CAC/D,IAAI4pK,EAAO1uH,EAAMl7C,GACjB,GAAI4pK,EAAM,OAAOA,EAIrB,OAAO,MVgDPx1I,KWxDa,WACb,IAAIA,EAAO,EAIX,OAHA3yB,KAAKwqW,MAAK,aACN73U,KAEGA,GXoDP+1O,MYzDa,WACb,OAAQ1oQ,KAAKmoK,QZyDbqiM,Ka1Da,YACb,IAAK,IAAI1zT,EAAS92C,KAAKo6W,QAASzkV,EAAI,EAAGrgB,EAAIwhC,EAAOr4C,OAAQk3B,EAAIrgB,IAAKqgB,EACjE,IAAK,IAAgDwyI,EAA5C1uH,EAAQ3C,EAAOnhB,GAAIp3B,EAAI,EAAG8W,EAAIokC,EAAMh7C,OAAcF,EAAI8W,IAAK9W,GAC9D4pK,EAAO1uH,EAAMl7C,KAAI6vB,EAAS7uB,KAAK4oK,EAAMA,EAAKqjH,SAAUjtR,EAAGk7C,GAI/D,OAAOz5C,MboDP09L,KdnBa,cACb,IAAI65K,EAAW9hK,EAAUpvM,GAEzB,GAAI7H,UAAUC,OAAS,EAAG,CACxB,IAAI0pK,EAAOnoK,KAAKmoK,OAChB,OAAOovM,EAASH,MAAQjvM,EAAKw8J,eAAe4yC,EAASzhQ,MAAOyhQ,EAASH,OAASjvM,EAAKtvH,aAAa0+T,GAGlG,OAAOv3W,KAAKwqW,MAAe,MAATpqW,EAAgBm3W,EAASH,MAAQE,EAAeD,EAA8B,oBAAVj3W,EAAuBm3W,EAASH,MAAQS,EAAiBD,EAAeL,EAASH,MAAQM,EAAiBD,GAAcF,EAAUn3W,KcYxN6vC,MZvCa,gBACb,OAAOzxC,UAAUC,OAAS,EAAIuB,KAAKwqW,MAAe,MAATpqW,EAAgB03W,EAA+B,oBAAV13W,EAAuB83W,EAAgBF,GAAe3xW,EAAMjG,EAAmB,MAAZopS,EAAmB,GAAKA,IAAa2uE,EAAWn4W,KAAKmoK,OAAQ9hK,IYuC9M7F,SX1Ca,cACb,OAAOhC,UAAUC,OAAS,EAAIuB,KAAKwqW,MAAe,MAATpqW,EAAgBi4W,EAAkC,oBAAVj4W,EAAuBm4W,EAAmBD,GAAkBjyW,EAAMjG,IAAUJ,KAAKmoK,OAAO9hK,IW0CzK01W,QVaa,cACb,IAAI1rL,EAAQmoL,EAAWnyW,EAAO,IAE9B,GAAI7H,UAAUC,OAAS,EAAG,CAKxB,IAJA,IAAIitF,EAAOu/I,EAAUjrO,KAAKmoK,QACtB5pK,GAAK,EACL8W,EAAIg7K,EAAM5xL,SAELF,EAAI8W,GACX,IAAKq2E,EAAKuhJ,SAAS58C,EAAM9xL,IAAK,OAAO,EAGvC,OAAO,EAGT,OAAOyB,KAAKwqW,MAAuB,oBAAVpqW,EAAuB24W,EAAkB34W,EAAQy4W,EAAcC,GAAczoL,EAAOjwL,KU3B7GgwJ,KT9Ca,YACb,OAAO5xJ,UAAUC,OAASuB,KAAKwqW,KAAc,MAATpqW,EAAgB44W,GAA+B,oBAAV54W,EAAuB84W,EAAeD,GAAc74W,IAAUJ,KAAKmoK,OAAOyuB,aS8CnJ0lE,KR/Ca,YACb,OAAO99P,UAAUC,OAASuB,KAAKwqW,KAAc,MAATpqW,EAAgB+4W,GAA+B,oBAAV/4W,EAAuBi5W,GAAeD,GAAch5W,IAAUJ,KAAKmoK,OAAOygF,WQ+CnJ0wH,MP7Da,WACb,OAAOt5W,KAAKwqW,KAAK8O,KO6DjB3rB,MN9Da,WACb,OAAO3tV,KAAKwqW,KAAK7c,KM8DjBxvH,OclEa,YACb,IAAIh+N,EAAyB,oBAATkG,EAAsBA,EAAO21W,GAAQ31W,GACzD,OAAOrG,KAAKs6W,QAAO,WACjB,OAAOt6W,KAAK8zL,YAAY3zL,EAAO/B,MAAM4B,KAAMxB,gBdgE7Cy9W,OJ7Da,cACb,IAAI97W,EAAyB,oBAATkG,EAAsBA,EAAO21W,GAAQ31W,GACrDi0W,EAAmB,MAAVzb,EAAiB+a,GAAiC,oBAAX/a,EAAwBA,EAAS,EAASA,GAC9F,OAAO7+V,KAAKs6W,QAAO,WACjB,OAAOt6W,KAAK2zL,aAAaxzL,EAAO/B,MAAM4B,KAAMxB,WAAY87W,EAAOl8W,MAAM4B,KAAMxB,YAAc,UI0D3FikC,OHhEa,WACb,OAAOziC,KAAKwqW,KAAK,KGgEjBvhV,MF1Da,YACb,OAAOjpB,KAAKs6W,OAAO4B,EAAOnC,GAAsBF,KE0DhDvD,MevEa,YACb,OAAO93W,UAAUC,OAASuB,KAAKQ,SAAS,WAAYJ,GAASJ,KAAKmoK,OAAOqjH,UfuEzEttE,GzBsBa,gBACb,IACI3/M,EAEAmX,EAHA4lT,EAAYD,EAAeE,EAAW,IAEtClmT,EAAIimT,EAAU78T,OAGlB,KAAID,UAAUC,OAAS,GAAvB,CAgBA,IAHAy/M,EAAK99M,EAAQ+1W,EAAQ78G,EACN,MAAX48G,IAAiBA,GAAU,GAE1B33W,EAAI,EAAGA,EAAI8W,IAAK9W,EACnByB,KAAKwqW,KAAKtsJ,EAAGo9G,EAAU/8T,GAAI6B,EAAO81W,IAGpC,OAAOl2W,KAnBL,IAAIk+M,EAAKl+M,KAAKmoK,OAAO8tM,KAErB,GAAI/3J,EAAI,IAAK,IAA0BpiE,EAAtBnmH,EAAI,EAAGrgB,EAAI4oM,EAAGz/M,OAAWk3B,EAAIrgB,IAAKqgB,EACjD,IAAKp3B,EAAI,EAAGu9I,EAAIoiE,EAAGvoL,GAAIp3B,EAAI8W,IAAK9W,EAC9B,IAAKmX,EAAI4lT,EAAU/8T,IAAIiF,OAASs4I,EAAEt4I,MAAQkS,EAAErP,OAASy1I,EAAEz1I,KACrD,OAAOy1I,EAAE17I,OyBjCjBg7T,SD7Ca,cACb,OAAOp7T,KAAKwqW,MAAwB,oBAAXrgS,EAAwB+vS,GAAmBD,IAAkBz2W,EAAM2mE,MC8C/E,IgBnEfgyS,GACIC,GhBkEW,MiB1EA,eACb,MAA2B,kBAAbpsL,EAAwB,IAAImqL,GAAU,CAAC,CAAC/5V,SAAS24O,cAAc/oE,KAAa,CAAC5vK,SAAS0hP,kBAAoB,IAAIq4G,GAAU,CAAC,CAACnqL,IAAYhmB,K,oBDFlJ,GAAQ,EAEZ2iE,GAAU,EAEVpQ,GAAW,EAMP8/I,GAAY,EACZC,GAAW,EACXC,GAAY,EACZC,GAA+B,kBAAhBl9M,aAA4BA,YAAYJ,IAAMI,YAAcC,KAC3Ek9M,GAA6B,kBAAX3/M,QAAuBA,OAAOjyG,sBAAwBiyG,OAAOjyG,sBAAsB+yD,KAAKk/C,QAAU,SAAU/+I,GAChIuwI,WAAWvwI,EAAG,KAET,SAASmhJ,KACd,OAAOo9M,KAAaG,GAASC,IAAWJ,GAAWE,GAAMt9M,MAAQq9M,IAGnE,SAASG,KACPJ,GAAW,EAGN,SAASK,KACd38W,KAAK48W,MAAQ58W,KAAK68W,MAAQ78W,KAAKuoL,MAAQ,KAyBlC,SAASyxJ,GAAM5rT,EAAUu0I,EAAOh4G,GACrC,IAAIj1C,EAAI,IAAIinW,GAEZ,OADAjnW,EAAEonW,QAAQ1uV,EAAUu0I,EAAOh4G,GACpBj1C,EAkBT,SAASqnW,KACPT,IAAYD,GAAYG,GAAMt9M,OAASq9M,GACvC,GAAQ5vI,GAAU,EAElB,KApBK,WACLztE,OAEE,GAKF,IAHA,IACInlJ,EADArE,EAAIymW,GAGDzmW,IACAqE,EAAIuiW,GAAW5mW,EAAEmnW,QAAU,GAAGnnW,EAAEknW,MAAMr9W,KAAK,KAAMwa,GACtDrE,EAAIA,EAAE6yK,QAGN,GAQAy0L,GACA,QACA,GAAQ,EAYZ,WACE,IAAIxkV,EAEAu/F,EADAt/F,EAAK0jV,GAELxxT,EAAOv4B,IAEX,KAAOqG,GACDA,EAAGmkV,OACDjyT,EAAOlyB,EAAGokV,QAAOlyT,EAAOlyB,EAAGokV,OAC/BrkV,EAAKC,EAAIA,EAAKA,EAAG8vJ,QAEjBxwD,EAAKt/F,EAAG8vJ,MAAO9vJ,EAAG8vJ,MAAQ,KAC1B9vJ,EAAKD,EAAKA,EAAG+vJ,MAAQxwD,EAAKokP,GAAWpkP,GAIzCqkP,GAAW5jV,EACXykV,GAAMtyT,GA5BJuyT,GACAZ,GAAW,GAIf,SAASa,KACP,IAAIj+M,EAAMs9M,GAAMt9M,MACZyD,EAAQzD,EAAMm9M,GACd15M,EAlFM,MAkFa45M,IAAa55M,EAAO05M,GAAYn9M,GAuBzD,SAAS+9M,GAAMtyT,GACT,KAEAgiL,KAASA,GAAUlvB,aAAakvB,KACxBhiL,EAAO2xT,GAEP,IACN3xT,EAAOv4B,MAAUu6M,GAAUr+E,WAAWyuN,GAAMpyT,EAAO6xT,GAAMt9M,MAAQq9M,KACjEhgJ,KAAUA,GAAW8jE,cAAc9jE,OAElCA,KAAU8/I,GAAYG,GAAMt9M,MAAOq9D,GAAW6jE,YAAY+8E,GAnHvD,MAoHR,GAAQ,EAAGV,GAASM,MA9FxBJ,GAAMz8W,UAAY85U,GAAM95U,UAAY,CAClCD,YAAa08W,GACbG,QAAS,SAAiB1uV,EAAUu0I,EAAOh4G,GACzC,GAAwB,oBAAbv8B,EAAyB,MAAM,IAAI3uB,UAAU,8BACxDkrD,GAAgB,MAARA,EAAeu0G,MAASv0G,IAAkB,MAATg4G,EAAgB,GAAKA,GAEzD3iK,KAAKuoL,OAAS6zL,KAAap8W,OAC1Bo8W,GAAUA,GAAS7zL,MAAQvoL,KAAUm8W,GAAWn8W,KACpDo8W,GAAWp8W,MAGbA,KAAK48W,MAAQxuV,EACbpuB,KAAK68W,MAAQlyT,EACbsyT,MAEF/1W,KAAM,WACAlH,KAAK48W,QACP58W,KAAK48W,MAAQ,KACb58W,KAAK68W,MAAQzqV,IACb6qV,QE9CS,uBACb,IAAIvnW,EAAI,IAAIinW,GAMZ,OALAh6M,EAAiB,MAATA,EAAgB,GAAKA,EAC7BjtJ,EAAEonW,SAAQ,SAAUt6B,GAClB9sU,EAAExO,OACFknB,EAASo0T,EAAU7/K,KAClBA,EAAOh4G,GACHj1C,GCNL0nW,GAAU,aAAS,QAAS,MAAO,SAAU,aAC7CC,GAAa,GAQF,yBACb,IAAIC,EAAYn1M,EAAKo1M,aACrB,GAAKD,GAAuC,GAAI56U,KAAM46U,EAAW,YAAjDn1M,EAAKo1M,aAAe,IAiCtC,SAAgBp1M,EAAMzlI,EAAIzgC,GACxB,IACIu7W,EADAF,EAAYn1M,EAAKo1M,aAcrB,SAAStmU,EAAMurS,GACb,IAAIjkV,EAAGo3B,EAAGtgB,EAAGymI,EAEb,GA3DmB,IA2Df75I,EAAKQ,MAAqB,OAAOyE,IAErC,IAAK3I,KAAK++W,EAER,IADAxhO,EAAIwhO,EAAU/+W,IACR8H,OAASpE,EAAKoE,KAApB,CAIA,GAjEe,IAiEXy1I,EAAEr5I,MAAmB,OAAO,GAAQw0C,GAhEzB,IAkEX6kG,EAAEr5I,OACJq5I,EAAEr5I,MAjES,EAkEXq5I,EAAEk+L,MAAM9yU,OACR40I,EAAEoiE,GAAG3+M,KAAK,YAAa4oK,EAAMA,EAAKqjH,SAAU1vI,EAAE/nI,MAAO+nI,EAAEriG,cAChD6jU,EAAU/+W,KAETA,EAAImkC,IACZo5G,EAAEr5I,MAvES,EAwEXq5I,EAAEk+L,MAAM9yU,OACR40I,EAAEoiE,GAAG3+M,KAAK,SAAU4oK,EAAMA,EAAKqjH,SAAU1vI,EAAE/nI,MAAO+nI,EAAEriG,cAC7C6jU,EAAU/+W,IAmBrB,GAXA,IAAQ,WArFS,IAsFX0D,EAAKQ,QACPR,EAAKQ,MAtFQ,EAuFbR,EAAK+3U,MAAM8iC,QAAQW,EAAMx7W,EAAK0gK,MAAO1gK,EAAK0oD,MAC1C8yT,EAAKj7B,OAKTvgV,EAAKQ,MA/Fa,EAgGlBR,EAAKi8M,GAAG3+M,KAAK,QAAS4oK,EAAMA,EAAKqjH,SAAUvpR,EAAK8R,MAAO9R,EAAKw3C,OAhG1C,IAiGdx3C,EAAKQ,MAAT,CAMA,IAJAR,EAAKQ,MAlGY,EAoGjB+6W,EAAQ,IAAI75V,MAAMtO,EAAIpT,EAAKu7W,MAAM/+W,QAE5BF,EAAI,EAAGo3B,GAAK,EAAGp3B,EAAI8W,IAAK9W,GACvBu9I,EAAI75I,EAAKu7W,MAAMj/W,GAAG6B,MAAMb,KAAK4oK,EAAMA,EAAKqjH,SAAUvpR,EAAK8R,MAAO9R,EAAKw3C,UACrE+jU,IAAQ7nV,GAAKmmH,GAIjB0hO,EAAM/+W,OAASk3B,EAAI,GAGrB,SAAS8nV,EAAKj7B,GAKZ,IAJA,IAAI9sU,EAAI8sU,EAAUvgV,EAAKwnJ,SAAWxnJ,EAAKy7W,KAAKn+W,KAAK,KAAMijV,EAAUvgV,EAAKwnJ,WAAaxnJ,EAAK+3U,MAAM8iC,QAAQ51W,GAAOjF,EAAKQ,MA9GlG,EA8GkH,GAC9HlE,GAAK,EACL8W,EAAImoW,EAAM/+W,SAELF,EAAI8W,GACXmoW,EAAMj/W,GAAGgB,KAAK4oK,EAAMzyJ,GAnHN,IAuHZzT,EAAKQ,QACPR,EAAKi8M,GAAG3+M,KAAK,MAAO4oK,EAAMA,EAAKqjH,SAAUvpR,EAAK8R,MAAO9R,EAAKw3C,OAC1DvyC,KAIJ,SAASA,IAKP,IAAK,IAAI3I,KAJT0D,EAAKQ,MA7HU,EA8HfR,EAAK+3U,MAAM9yU,cACJo2W,EAAU56U,GAEH46U,EACZ,cAIKn1M,EAAKo1M,aA7FdD,EAAU56U,GAAMzgC,EAChBA,EAAK+3U,MAAQA,IAEb,SAAkBwI,GAChBvgV,EAAKQ,MAlDc,EAmDnBR,EAAK+3U,MAAM8iC,QAAQ7lU,EAAOh1C,EAAK0gK,MAAO1gK,EAAK0oD,MAEvC1oD,EAAK0gK,OAAS6/K,GAASvrS,EAAMurS,EAAUvgV,EAAK0gK,SANrB,EAAG1gK,EAAK0oD,MAtCrC,CAAOw9G,EAAMzlI,EAAI,CACfr8B,KAAMA,EACN0N,MAAOA,EAEP0lC,MAAOA,EAEPykK,GAAIk/J,GACJI,MAAOH,GACP1yT,KAAMmxJ,EAAOnxJ,KACbg4G,MAAOm5C,EAAOn5C,MACdlZ,SAAUqyD,EAAOryD,SACjBi0N,KAAM5hK,EAAO4hK,KACb1jC,MAAO,KACPv3U,MAvBiB,KA0Bd,SAAS0jE,GAAKgiG,EAAMzlI,GACzB,IAAIi0M,EAAWh3O,GAAIwoK,EAAMzlI,GACzB,GAAIi0M,EAASl0O,MA5BM,EA4BW,MAAM,IAAIG,MAAM,+BAC9C,OAAO+zO,EAEF,SAAS/2O,GAAIuoK,EAAMzlI,GACxB,IAAIi0M,EAAWh3O,GAAIwoK,EAAMzlI,GACzB,GAAIi0M,EAASl0O,MA9BM,EA8BW,MAAM,IAAIG,MAAM,6BAC9C,OAAO+zO,EAEF,SAASh3O,GAAIwoK,EAAMzlI,GACxB,IAAIi0M,EAAWxuE,EAAKo1M,aACpB,IAAK5mI,KAAcA,EAAWA,EAASj0M,IAAM,MAAM,IAAI9/B,MAAM,wBAC7D,OAAO+zO,EC1CM,ICAXgnI,GAASC,GAASC,GAASC,GCDhB,iBACb,OAAOrlW,GAAKA,EAAGC,GAAKA,EAAG,SAAUhD,GAC/B,OAAO+C,GAAK,EAAI/C,GAAKgD,EAAIhD,ICFzB0C,GAAU,IAAM7D,KAAKC,GACds7E,GAAW,CACpB6oB,WAAY,EACZolQ,WAAY,EACZ1lC,OAAQ,EACR2lC,MAAO,EACPzjV,OAAQ,EACRE,OAAQ,GAEK,sBAAA1c,GACb,IAAIwc,EAAQE,EAAQujV,EAKpB,OAJIzjV,EAAShmB,KAAK6F,KAAK3B,EAAIA,EAAIC,EAAIA,MAAID,GAAK8hB,EAAQ7hB,GAAK6hB,IACrDyjV,EAAQvlW,EAAIE,EAAID,EAAIoF,KAAGnF,GAAKF,EAAIulW,EAAOlgW,GAAKpF,EAAIslW,IAChDvjV,EAASlmB,KAAK6F,KAAKzB,EAAIA,EAAImF,EAAIA,MAAInF,GAAK8hB,EAAQ3c,GAAK2c,EAAQujV,GAASvjV,GACtEhiB,EAAIqF,EAAIpF,EAAIC,IAAGF,GAAKA,EAAGC,GAAKA,EAAGslW,GAASA,EAAOzjV,GAAUA,GACtD,CACLo+E,WAAY5+F,EACZgkW,WAAYhgW,EACZs6T,OAAQ9jU,KAAK+F,MAAM5B,EAAGD,GAAKL,GAC3B4lW,MAAOzpW,KAAKywC,KAAKg5T,GAAS5lW,GAC1BmiB,OAAQA,EACRE,OAAQA,IClBZ,SAASwjV,GAAqBh4V,EAAOi4V,EAASC,EAASC,GACrD,SAASv3W,EAAIoR,GACX,OAAOA,EAAExZ,OAASwZ,EAAEpR,MAAQ,IAAM,GAyDpC,OAAO,SAAU4R,EAAGC,GAClB,IAAIT,EAAI,GAERO,EAAI,GASJ,OAPAC,EAAIwN,EAAMxN,GAAIC,EAAIuN,EAAMvN,GA3D1B,SAAmB2lW,EAAIC,EAAIC,EAAIC,EAAIvmW,EAAGO,GACpC,GAAI6lW,IAAOE,GAAMD,IAAOE,EAAI,CAC1B,IAAIjgX,EAAI0Z,EAAE9Z,KAAK,aAAc,KAAM+/W,EAAS,KAAMC,GAClD3lW,EAAEra,KAAK,CACLI,EAAGA,EAAI,EACPiX,EAAGgmP,GAAO6iH,EAAIE,IACb,CACDhgX,EAAGA,EAAI,EACPiX,EAAGgmP,GAAO8iH,EAAIE,UAEPD,GAAMC,IACfvmW,EAAE9Z,KAAK,aAAeogX,EAAKL,EAAUM,EAAKL,GAiD5CzmU,CAAUj/B,EAAEkgG,WAAYlgG,EAAEslW,WAAYrlW,EAAEigG,WAAYjgG,EAAEqlW,WAAY9lW,EAAGO,GA7CvE,SAAgBC,EAAGC,EAAGT,EAAGO,GACnBC,IAAMC,GACJD,EAAIC,EAAI,IAAKA,GAAK,IAAaA,EAAID,EAAI,MAAKA,GAAK,KAErDD,EAAEra,KAAK,CACLI,EAAG0Z,EAAE9Z,KAAK0I,EAAIoR,GAAK,UAAW,KAAMmmW,GAAY,EAChD5oW,EAAGgmP,GAAO/iP,EAAGC,MAENA,GACTT,EAAE9Z,KAAK0I,EAAIoR,GAAK,UAAYS,EAAI0lW,GAqClC/lC,CAAO5/T,EAAE4/T,OAAQ3/T,EAAE2/T,OAAQpgU,EAAGO,GAjChC,SAAeC,EAAGC,EAAGT,EAAGO,GAClBC,IAAMC,EACRF,EAAEra,KAAK,CACLI,EAAG0Z,EAAE9Z,KAAK0I,EAAIoR,GAAK,SAAU,KAAMmmW,GAAY,EAC/C5oW,EAAGgmP,GAAO/iP,EAAGC,KAENA,GACTT,EAAE9Z,KAAK0I,EAAIoR,GAAK,SAAWS,EAAI0lW,GA2BjCJ,CAAMvlW,EAAEulW,MAAOtlW,EAAEslW,MAAO/lW,EAAGO,GAvB7B,SAAe6lW,EAAIC,EAAIC,EAAIC,EAAIvmW,EAAGO,GAChC,GAAI6lW,IAAOE,GAAMD,IAAOE,EAAI,CAC1B,IAAIjgX,EAAI0Z,EAAE9Z,KAAK0I,EAAIoR,GAAK,SAAU,KAAM,IAAK,KAAM,KACnDO,EAAEra,KAAK,CACLI,EAAGA,EAAI,EACPiX,EAAGgmP,GAAO6iH,EAAIE,IACb,CACDhgX,EAAGA,EAAI,EACPiX,EAAGgmP,GAAO8iH,EAAIE,UAEA,IAAPD,GAAmB,IAAPC,GACrBvmW,EAAE9Z,KAAK0I,EAAIoR,GAAK,SAAWsmW,EAAK,IAAMC,EAAK,KAa7C7gV,CAAMllB,EAAE8hB,OAAQ9hB,EAAEgiB,OAAQ/hB,EAAE6hB,OAAQ7hB,EAAE+hB,OAAQxiB,EAAGO,GACjDC,EAAIC,EAAI,KAED,SAAUhD,GAKf,IAJA,IAEIomI,EAFAv9I,GAAK,EACL8W,EAAImD,EAAE/Z,SAGDF,EAAI8W,GACX4C,GAAG6jI,EAAItjI,EAAEja,IAAIA,GAAKu9I,EAAEtmI,EAAEE,GAGxB,OAAOuC,EAAE+iE,KAAK,MAKb,IAAIyjS,GAA0BR,IHtF9B,SAAkB79W,GACvB,MAAc,SAAVA,EAAyB0vF,IACxB6tR,KAASA,GAAUv9V,SAAS4xK,cAAc,OAAQ4rL,GAAUx9V,SAAS0hP,gBAAiB+7G,GAAUz9V,SAASoxN,aAC9GmsI,GAAQ1tU,MAAM+hE,UAAY5xG,EAC1BA,EAAQy9W,GAAQxrI,iBAAiBurI,GAAQ9pL,YAAY6pL,IAAU,MAAMvF,iBAAiB,aACtFwF,GAAQ7mL,YAAY4mL,IACpBv9W,EAAQA,EAAM6G,MAAM,GAAI,GAAG4zE,MAAM,KAC1B94C,IAAW3hC,EAAM,IAAKA,EAAM,IAAKA,EAAM,IAAKA,EAAM,IAAKA,EAAM,IAAKA,EAAM,OG+Eb,OAAQ,MAAO,QACxEs+W,GAA0BT,IH9E9B,SAAkB79W,GACvB,OAAa,MAATA,EAAsB0vF,IACrBguR,KAASA,GAAU19V,SAASD,gBAAgB,6BAA8B,MAC/E29V,GAAQnmU,aAAa,YAAav3C,IAC5BA,EAAQ09W,GAAQ9rQ,UAAU2sQ,QAAQC,gBACxCx+W,EAAQA,EAAMqf,OACPsiB,GAAU3hC,EAAMqY,EAAGrY,EAAMsY,EAAGtY,EAAMuY,EAAGvY,EAAM0d,EAAG1d,EAAM2Z,EAAG3Z,EAAM2d,IAFL+xE,MG0EG,KAAM,IAAK,KCvF/E,SAAS+uR,GAAYn8U,EAAIr8B,GACvB,IAAIy4W,EAAQC,EACZ,OAAO,WACL,IAAIpoI,EAAW/2O,GAAII,KAAM0iC,GACrB86U,EAAQ7mI,EAAS6mI,MAIrB,GAAIA,IAAUsB,EAGZ,IAAK,IAAIvgX,EAAI,EAAG8W,GAFhB0pW,EAASD,EAAStB,GAES/+W,OAAQF,EAAI8W,IAAK9W,EAC1C,GAAIwgX,EAAOxgX,GAAG8H,OAASA,EAAM,EAC3B04W,EAASA,EAAO93W,SACT+M,OAAOzV,EAAG,GACjB,MAKNo4O,EAAS6mI,MAAQuB,GAIrB,SAASC,GAAct8U,EAAIr8B,EAAMjG,GAC/B,IAAI0+W,EAAQC,EACZ,GAAqB,oBAAV3+W,EAAsB,MAAM,IAAIwC,MAC3C,OAAO,WACL,IAAI+zO,EAAW/2O,GAAII,KAAM0iC,GACrB86U,EAAQ7mI,EAAS6mI,MAIrB,GAAIA,IAAUsB,EAAQ,CACpBC,GAAUD,EAAStB,GAAOv2W,QAE1B,IAAK,IAAIyO,EAAI,CACXrP,KAAMA,EACNjG,MAAOA,GACN7B,EAAI,EAAG8W,EAAI0pW,EAAOtgX,OAAQF,EAAI8W,IAAK9W,EACpC,GAAIwgX,EAAOxgX,GAAG8H,OAASA,EAAM,CAC3B04W,EAAOxgX,GAAKmX,EACZ,MAIAnX,IAAM8W,GAAG0pW,EAAO5gX,KAAKuX,GAG3BihO,EAAS6mI,MAAQuB,GAsBd,SAASE,GAAWv6H,EAAYr+O,EAAMjG,GAC3C,IAAIsiC,EAAKgiN,EAAWlgK,IAKpB,OAJAkgK,EAAW8lH,MAAK,WACd,IAAI7zH,EAAW/2O,GAAII,KAAM0iC,IACxBi0M,EAASv2O,QAAUu2O,EAASv2O,MAAQ,KAAKiG,GAAQjG,EAAMhC,MAAM4B,KAAMxB,cAE/D,SAAU2pK,GACf,OAAOxoK,GAAIwoK,EAAMzlI,GAAItiC,MAAMiG,IChFhB,uBACbpG,EAAYC,UAAYupR,EAAQvpR,UAAYA,EAC5CA,EAAUD,YAAcA,GAEnB,SAASmnO,GAAOrmM,EAAQm+U,GAC7B,IAAIh/W,EAAYtC,OAAOuC,OAAO4gC,EAAO7gC,WAErC,IAAK,IAAItB,KAAOsgX,EACdh/W,EAAUtB,GAAOsgX,EAAWtgX,GAG9B,OAAOsB,ECVF,SAAS0vC,MAChB,IAMIuvU,GAAM,sBACNC,GAAM,gDACNC,GAAM,iDACNC,GAAQ,qBACRC,GAAe,IAAIt4M,OAAO,UAAY,CAACk4M,GAAKA,GAAKA,IAAO,QACxDK,GAAe,IAAIv4M,OAAO,UAAY,CAACo4M,GAAKA,GAAKA,IAAO,QACxDI,GAAgB,IAAIx4M,OAAO,WAAa,CAACk4M,GAAKA,GAAKA,GAAKC,IAAO,QAC/DM,GAAgB,IAAIz4M,OAAO,WAAa,CAACo4M,GAAKA,GAAKA,GAAKD,IAAO,QAC/DO,GAAe,IAAI14M,OAAO,UAAY,CAACm4M,GAAKC,GAAKA,IAAO,QACxDO,GAAgB,IAAI34M,OAAO,WAAa,CAACm4M,GAAKC,GAAKA,GAAKD,IAAO,QAC/D3sG,GAAQ,CACVuH,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,QACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,EACPC,eAAgB,SAChBC,KAAM,IACNC,WAAY,QACZC,MAAO,SACPC,UAAW,SACXE,UAAW,QACXC,WAAY,QACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,QAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,IACVC,SAAU,MACVC,cAAe,SACfC,SAAU,SACVC,UAAW,MACXC,SAAU,SACVC,UAAW,SACXC,YAAa,QACbC,eAAgB,QAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,QACTC,WAAY,SACZC,aAAc,QACdC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,cAAe,MACfC,WAAY,QACZC,SAAU,SACVC,YAAa,MACbC,QAAS,QACTC,QAAS,QACTC,WAAY,QACZC,UAAW,SACXC,YAAa,SACbC,YAAa,QACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,QACNC,MAAO,MACPC,YAAa,SACbC,KAAM,QACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,QACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,QACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,QACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,QACfC,aAAc,QACdC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,QACXC,MAAO,SACPC,QAAS,SACTC,OAAQ,QACRC,iBAAkB,QAClBC,WAAY,IACZC,aAAc,SACdC,aAAc,QACdC,eAAgB,QAChBC,gBAAiB,QACjBC,kBAAmB,MACnBC,gBAAiB,QACjBC,gBAAiB,SACjBC,aAAc,QACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,IACNC,QAAS,SACTC,MAAO,QACPC,UAAW,QACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,QACRC,cAAe,QACfC,IAAK,SACLC,UAAW,SACXC,UAAW,QACXC,YAAa,QACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,QACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,QACTC,UAAW,QACXC,UAAW,QACXC,UAAW,QACXC,KAAM,SACNC,YAAa,MACbC,UAAW,QACXx9N,IAAK,SACLy9N,KAAM,MACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,QACXC,OAAQ,SACRC,MAAO,SACPh+C,MAAO,SACPi+C,WAAY,SACZC,OAAQ,SACRC,YAAa,UAiBf,SAAS28F,KACP,OAAO7/W,KAAKgkO,MAAM87I,YAOpB,SAASC,KACP,OAAO//W,KAAKgkO,MAAMg8I,YAGL,SAAS,GAAMn7V,GAC5B,IAAIvP,EAAGnB,EAEP,OADA0Q,GAAUA,EAAS,IAAI41D,OAAOzlE,eACtBM,EAAIgqW,GAAMjvU,KAAKxrB,KAAY1Q,EAAImB,EAAE,GAAG7W,OAAQ6W,EAAIi7B,SAASj7B,EAAE,GAAI,IAAW,IAANnB,EAAU8rW,GAAK3qW,GACnF,IAANnB,EAAU,IAAI+rW,GAAI5qW,GAAK,EAAI,GAAMA,GAAK,EAAI,IAAMA,GAAK,EAAI,GAAU,IAAJA,GAAe,GAAJA,IAAY,EAAQ,GAAJA,EAAS,GAC7F,IAANnB,EAAUw+P,GAAKr9P,GAAK,GAAK,IAAMA,GAAK,GAAK,IAAMA,GAAK,EAAI,KAAW,IAAJA,GAAY,KACrE,IAANnB,EAAUw+P,GAAKr9P,GAAK,GAAK,GAAMA,GAAK,EAAI,IAAMA,GAAK,EAAI,GAAMA,GAAK,EAAI,IAAMA,GAAK,EAAI,GAAU,IAAJA,IAAgB,GAAJA,IAAY,EAAQ,GAAJA,GAAW,KAClI,OACGA,EAAIiqW,GAAalvU,KAAKxrB,IAAW,IAAIq7V,GAAI5qW,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,IAC7DA,EAAIkqW,GAAanvU,KAAKxrB,IAAW,IAAIq7V,GAAW,IAAP5qW,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAK,IAC/FA,EAAImqW,GAAcpvU,KAAKxrB,IAAW8tP,GAAKr9P,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAC3DA,EAAIoqW,GAAcrvU,KAAKxrB,IAAW8tP,GAAY,IAAPr9P,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAKA,EAAE,KAC/FA,EAAIqqW,GAAatvU,KAAKxrB,IAAWguP,GAAKv9P,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAK,IACpEA,EAAIsqW,GAAcvvU,KAAKxrB,IAAWguP,GAAKv9P,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAKA,EAAE,IACxEm9P,GAAM7xQ,eAAeikB,GAAUo7V,GAAKxtG,GAAM5tP,IAC/B,gBAAXA,EAA2B,IAAIq7V,GAAIroE,IAAKA,IAAKA,IAAK,GAAK,KAG3D,SAASooE,GAAK5qW,GACZ,OAAO,IAAI6qW,GAAI7qW,GAAK,GAAK,IAAMA,GAAK,EAAI,IAAU,IAAJA,EAAU,GAG1D,SAASs9P,GAAK/zP,EAAGZ,EAAGtF,EAAGD,GAErB,OADIA,GAAK,IAAGmG,EAAIZ,EAAItF,EAAIm/R,KACjB,IAAIqoE,GAAIthW,EAAGZ,EAAGtF,EAAGD,GAGnB,SAAS0nW,GAAWrkO,GAEzB,OADMA,aAAalsG,KAAQksG,EAAI,GAAMA,IAChCA,EAEE,IAAIokO,IADXpkO,EAAIA,EAAEkoF,OACWplN,EAAGk9H,EAAE99H,EAAG89H,EAAEpjI,EAAGojI,EAAElzG,SAFjB,IAAIs3U,GAId,SAAS,GAAIthW,EAAGZ,EAAGtF,EAAGkwB,GAC3B,OAA4B,IAArBpqC,UAAUC,OAAe0hX,GAAWvhW,GAAK,IAAIshW,GAAIthW,EAAGZ,EAAGtF,EAAc,MAAXkwB,EAAkB,EAAIA,GAElF,SAASs3U,GAAIthW,EAAGZ,EAAGtF,EAAGkwB,GAC3B5oC,KAAK4e,GAAKA,EACV5e,KAAKge,GAAKA,EACVhe,KAAK0Y,GAAKA,EACV1Y,KAAK4oC,SAAWA,EAwBlB,SAASw3U,KACP,MAAO,IAAMpwU,GAAIhwC,KAAK4e,GAAKoxB,GAAIhwC,KAAKge,GAAKgyB,GAAIhwC,KAAK0Y,GAGpD,SAAS2nW,KACP,IAAI5nW,EAAIzY,KAAK4oC,QAEb,OAAc,KADdnwB,EAAIzS,MAAMyS,GAAK,EAAIlE,KAAKY,IAAI,EAAGZ,KAAKW,IAAI,EAAGuD,KACzB,OAAS,SAAWlE,KAAKY,IAAI,EAAGZ,KAAKW,IAAI,IAAKX,KAAKmC,MAAM1W,KAAK4e,IAAM,IAAM,KAAOrK,KAAKY,IAAI,EAAGZ,KAAKW,IAAI,IAAKX,KAAKmC,MAAM1W,KAAKge,IAAM,IAAM,KAAOzJ,KAAKY,IAAI,EAAGZ,KAAKW,IAAI,IAAKX,KAAKmC,MAAM1W,KAAK0Y,IAAM,KAAa,IAAND,EAAU,IAAM,KAAOA,EAAI,KAGpP,SAASu3B,GAAI5vC,GAEX,QADAA,EAAQmU,KAAKY,IAAI,EAAGZ,KAAKW,IAAI,IAAKX,KAAKmC,MAAMtW,IAAU,KACvC,GAAK,IAAM,IAAMA,EAAMd,SAAS,IAGlD,SAASuzQ,GAAK50P,EAAGhG,EAAG9D,EAAGsE,GAErB,OADIA,GAAK,EAAGwF,EAAIhG,EAAI9D,EAAI0jS,IAAa1jS,GAAK,GAAKA,GAAK,EAAG8J,EAAIhG,EAAI4/R,IAAa5/R,GAAK,IAAGgG,EAAI45R,KACjF,IAAIyoE,GAAIriW,EAAGhG,EAAG9D,EAAGsE,GAGnB,SAAS8nW,GAAWzkO,GACzB,GAAIA,aAAawkO,GAAK,OAAO,IAAIA,GAAIxkO,EAAE79H,EAAG69H,EAAE7jI,EAAG6jI,EAAE3nI,EAAG2nI,EAAElzG,SAEtD,GADMkzG,aAAalsG,KAAQksG,EAAI,GAAMA,KAChCA,EAAG,OAAO,IAAIwkO,GACnB,GAAIxkO,aAAawkO,GAAK,OAAOxkO,EAE7B,IAAIl9H,GADJk9H,EAAIA,EAAEkoF,OACIplN,EAAI,IACVZ,EAAI89H,EAAE99H,EAAI,IACVtF,EAAIojI,EAAEpjI,EAAI,IACVxD,EAAMX,KAAKW,IAAI0J,EAAGZ,EAAGtF,GACrBvD,EAAMZ,KAAKY,IAAIyJ,EAAGZ,EAAGtF,GACrBuF,EAAI45R,IACJ5/R,EAAI9C,EAAMD,EACVf,GAAKgB,EAAMD,GAAO,EAUtB,OARI+C,GACagG,EAAXW,IAAMzJ,GAAU6I,EAAItF,GAAKT,EAAc,GAAT+F,EAAItF,GAAgBsF,IAAM7I,GAAUuD,EAAIkG,GAAK3G,EAAI,GAAY2G,EAAIZ,GAAK/F,EAAI,EAC5GA,GAAK9D,EAAI,GAAMgB,EAAMD,EAAM,EAAIC,EAAMD,EACrC+I,GAAK,IAELhG,EAAI9D,EAAI,GAAKA,EAAI,EAAI,EAAI8J,EAGpB,IAAIqiW,GAAIriW,EAAGhG,EAAG9D,EAAG2nI,EAAElzG,SAM5B,SAAS03U,GAAIriW,EAAGhG,EAAG9D,EAAGy0B,GACpB5oC,KAAKie,GAAKA,EACVje,KAAKiY,GAAKA,EACVjY,KAAKmU,GAAKA,EACVnU,KAAK4oC,SAAWA,EA+BlB,SAAS43U,GAAQviW,EAAGk5S,EAAIC,GACtB,OAA4G,KAApGn5S,EAAI,GAAKk5S,GAAMC,EAAKD,GAAMl5S,EAAI,GAAKA,EAAI,IAAMm5S,EAAKn5S,EAAI,IAAMk5S,GAAMC,EAAKD,IAAO,IAAMl5S,GAAK,GAAKk5S,GCxVjG,SAASspD,GAAMhoV,EAAIhD,EAAIza,EAAIC,EAAI8rB,GACpC,IAAIgxF,EAAKt/F,EAAKA,EACV6zP,EAAKv0J,EAAKt/F,EACd,QAAS,EAAI,EAAIA,EAAK,EAAIs/F,EAAKu0J,GAAM72P,GAAM,EAAI,EAAIsiG,EAAK,EAAIu0J,GAAMtxQ,GAAM,EAAI,EAAIyd,EAAK,EAAIs/F,EAAK,EAAIu0J,GAAMrxQ,EAAKqxQ,EAAKvlP,GAAM,EDqK1HplC,GAAOiuC,GAAO,GAAO,CACnB7pB,KAAM,SAAc26V,GAClB,OAAO9iX,OAAOsrB,OAAO,IAAIlpB,KAAKC,YAAeD,KAAM0gX,IAErDC,YAAa,WACX,OAAO3gX,KAAKgkO,MAAM28I,eAEpB3wU,IAAK6vU,GAELC,UAAWD,GACXe,UASF,WACE,OAAOL,GAAWvgX,MAAM4gX,aATxBZ,UAAWD,GACXzgX,SAAUygX,KAyDZp+W,GAAOu+W,GAAK,GAAK94I,GAAOx3L,GAAO,CAC7BixU,SAAU,SAAkBntR,GAE1B,OADAA,EAAS,MAALA,EA1OQ,EAHF,GA6OkBn/E,KAAKsB,IA1OrB,EAHF,GA6OsC69E,GACzC,IAAIwsR,GAAIlgX,KAAK4e,EAAI80E,EAAG1zF,KAAKge,EAAI01E,EAAG1zF,KAAK0Y,EAAIg7E,EAAG1zF,KAAK4oC,UAE1Dk4U,OAAQ,SAAgBptR,GAEtB,OADAA,EAAS,MAALA,EAjPM,GAiPgBn/E,KAAKsB,IAjPrB,GAiPkC69E,GACrC,IAAIwsR,GAAIlgX,KAAK4e,EAAI80E,EAAG1zF,KAAKge,EAAI01E,EAAG1zF,KAAK0Y,EAAIg7E,EAAG1zF,KAAK4oC,UAE1Do7L,IAAK,WACH,OAAOhkO,MAET2gX,YAAa,WACX,OAAQ,IAAO3gX,KAAK4e,GAAK5e,KAAK4e,EAAI,QAAU,IAAO5e,KAAKge,GAAKhe,KAAKge,EAAI,QAAU,IAAOhe,KAAK0Y,GAAK1Y,KAAK0Y,EAAI,OAAS,GAAK1Y,KAAK4oC,SAAW5oC,KAAK4oC,SAAW,GAE1JoH,IAAKowU,GAELN,UAAWM,GACXJ,UAAWK,GACX/gX,SAAU+gX,MA2DZ1+W,GAAO2+W,IAXA,SAAariW,EAAGhG,EAAG9D,EAAGy0B,GAC3B,OAA4B,IAArBpqC,UAAUC,OAAe8hX,GAAWtiW,GAAK,IAAIqiW,GAAIriW,EAAGhG,EAAG9D,EAAc,MAAXy0B,EAAkB,EAAIA,KAUxEw+L,GAAOx3L,GAAO,CAC7BixU,SAAU,SAAkBntR,GAE1B,OADAA,EAAS,MAALA,EAxTQ,EAHF,GA2TkBn/E,KAAKsB,IAxTrB,EAHF,GA2TsC69E,GACzC,IAAI4sR,GAAItgX,KAAKie,EAAGje,KAAKiY,EAAGjY,KAAKmU,EAAIu/E,EAAG1zF,KAAK4oC,UAElDk4U,OAAQ,SAAgBptR,GAEtB,OADAA,EAAS,MAALA,EA/TM,GA+TgBn/E,KAAKsB,IA/TrB,GA+TkC69E,GACrC,IAAI4sR,GAAItgX,KAAKie,EAAGje,KAAKiY,EAAGjY,KAAKmU,EAAIu/E,EAAG1zF,KAAK4oC,UAElDo7L,IAAK,WACH,IAAI/lN,EAAIje,KAAKie,EAAI,IAAqB,KAAdje,KAAKie,EAAI,GAC7BhG,EAAIjS,MAAMiY,IAAMjY,MAAMhG,KAAKiY,GAAK,EAAIjY,KAAKiY,EACzC9D,EAAInU,KAAKmU,EACTijT,EAAKjjT,GAAKA,EAAI,GAAMA,EAAI,EAAIA,GAAK8D,EACjCk/S,EAAK,EAAIhjT,EAAIijT,EACjB,OAAO,IAAI8oD,GAAIM,GAAQviW,GAAK,IAAMA,EAAI,IAAMA,EAAI,IAAKk5S,EAAIC,GAAKopD,GAAQviW,EAAGk5S,EAAIC,GAAKopD,GAAQviW,EAAI,IAAMA,EAAI,IAAMA,EAAI,IAAKk5S,EAAIC,GAAKp3T,KAAK4oC,UAEvI+3U,YAAa,WACX,OAAQ,GAAK3gX,KAAKiY,GAAKjY,KAAKiY,GAAK,GAAKjS,MAAMhG,KAAKiY,KAAO,GAAKjY,KAAKmU,GAAKnU,KAAKmU,GAAK,GAAK,GAAKnU,KAAK4oC,SAAW5oC,KAAK4oC,SAAW,GAE7Hg4U,UAAW,WACT,IAAInoW,EAAIzY,KAAK4oC,QAEb,OAAc,KADdnwB,EAAIzS,MAAMyS,GAAK,EAAIlE,KAAKY,IAAI,EAAGZ,KAAKW,IAAI,EAAGuD,KACzB,OAAS,UAAYzY,KAAKie,GAAK,GAAK,KAAuB,KAAfje,KAAKiY,GAAK,GAAW,MAAwB,KAAfjY,KAAKmU,GAAK,GAAW,KAAa,IAANsE,EAAU,IAAM,KAAOA,EAAI,SC7UxI,ICLA,eACb,OAAO,WACL,OAAOjD,ICAX,SAASurW,GAAOtoW,EAAGqF,GACjB,OAAO,SAAUpI,GACf,OAAO+C,EAAI/C,EAAIoI,GAcZ,SAASkjW,GAAMvrW,GACpB,OAAoB,KAAZA,GAAKA,GAAWwrW,GAAU,SAAUxoW,EAAGC,GAC7C,OAAOA,EAAID,EAZf,SAAqBA,EAAGC,EAAGjD,GACzB,OAAOgD,EAAIlE,KAAKsB,IAAI4C,EAAGhD,GAAIiD,EAAInE,KAAKsB,IAAI6C,EAAGjD,GAAKgD,EAAGhD,EAAI,EAAIA,EAAG,SAAUC,GACtE,OAAOnB,KAAKsB,IAAI4C,EAAI/C,EAAIgD,EAAGjD,IAUZyrW,CAAYzoW,EAAGC,EAAGjD,GAAK,GAASzP,MAAMyS,GAAKC,EAAID,IAGnD,SAASwoW,GAAQxoW,EAAGC,GACjC,IAAIoF,EAAIpF,EAAID,EACZ,OAAOqF,EAAIijW,GAAOtoW,EAAGqF,GAAK,GAAS9X,MAAMyS,GAAKC,EAAID,GCrBrC,qBACb,IAAImI,EAAQogW,GAAMvrW,GAElB,SAASuuN,EAAI/sL,EAAOsR,GAClB,IAAI3pC,EAAIgC,GAAOq2B,EAAQ,GAASA,IAAQr4B,GAAI2pC,EAAM,GAASA,IAAM3pC,GAC7DZ,EAAI4C,EAAMq2B,EAAMj5B,EAAGuqC,EAAIvqC,GACvBtF,EAAIkI,EAAMq2B,EAAMv+B,EAAG6vC,EAAI7vC,GACvBkwB,EAAUq4U,GAAQhqU,EAAMrO,QAAS2f,EAAI3f,SACzC,OAAO,SAAUlzB,GAKf,OAJAuhC,EAAMr4B,EAAIA,EAAElJ,GACZuhC,EAAMj5B,EAAIA,EAAEtI,GACZuhC,EAAMv+B,EAAIA,EAAEhD,GACZuhC,EAAMrO,QAAUA,EAAQlzB,GACjBuhC,EAAQ,IAKnB,OADA+sL,EAAIg9I,MAAQG,EACLn9I,EAlBM,CAmBZ,GAEH,SAASo9I,GAAUC,GACjB,OAAO,SAAUroM,GACf,IAIIz6K,EACAqiB,EALAvL,EAAI2jK,EAAOv6K,OACXmgB,EAAI,IAAI+E,MAAMtO,GACd2I,EAAI,IAAI2F,MAAMtO,GACdqD,EAAI,IAAIiL,MAAMtO,GAIlB,IAAK9W,EAAI,EAAGA,EAAI8W,IAAK9W,EACnBqiB,EAAQ,GAASo4J,EAAOz6K,IACxBqgB,EAAErgB,GAAKqiB,EAAMhC,GAAK,EAClBZ,EAAEzf,GAAKqiB,EAAM5C,GAAK,EAClBtF,EAAEna,GAAKqiB,EAAMlI,GAAK,EAOpB,OAJAkG,EAAIyiW,EAAOziW,GACXZ,EAAIqjW,EAAOrjW,GACXtF,EAAI2oW,EAAO3oW,GACXkI,EAAMgoB,QAAU,EACT,SAAUlzB,GAIf,OAHAkL,EAAMhC,EAAIA,EAAElJ,GACZkL,EAAM5C,EAAIA,EAAEtI,GACZkL,EAAMlI,EAAIA,EAAEhD,GACLkL,EAAQ,KAKCwgW,IHjDP,YACb,IAAI/rW,EAAItR,EAAOtF,OAAS,EACxB,OAAO,SAAUiX,GACf,IAAInX,EAAImX,GAAK,EAAIA,EAAI,EAAIA,GAAK,GAAKA,EAAI,EAAGL,EAAI,GAAKd,KAAK2B,MAAMR,EAAIL,GAC9D2F,EAAKjX,EAAOxF,GACZ0c,EAAKlX,EAAOxF,EAAI,GAChBk3B,EAAKl3B,EAAI,EAAIwF,EAAOxF,EAAI,GAAK,EAAIyc,EAAKC,EACtC8rB,EAAKxoC,EAAI8W,EAAI,EAAItR,EAAOxF,EAAI,GAAK,EAAI0c,EAAKD,EAC9C,OAAOylW,IAAO/qW,EAAInX,EAAI8W,GAAKA,EAAGogB,EAAIza,EAAIC,EAAI8rB,OG0ClBq6U,ICtDb,YACb,IAAI/rW,EAAItR,EAAOtF,OACf,OAAO,SAAUiX,GACf,IAAInX,EAAIgW,KAAK2B,QAAQR,GAAK,GAAK,IAAMA,EAAIA,GAAKL,GAC1CogB,EAAK1xB,GAAQxF,EAAI8W,EAAI,GAAKA,GAC1B2F,EAAKjX,EAAOxF,EAAI8W,GAChB4F,EAAKlX,GAAQxF,EAAI,GAAK8W,GACtB0xB,EAAKhjC,GAAQxF,EAAI,GAAK8W,GAC1B,OAAOorW,IAAO/qW,EAAInX,EAAI8W,GAAKA,EAAGogB,EAAIza,EAAIC,EAAI8rB,OD6CvC,IErDHu6U,GAAM,8CACNC,GAAM,IAAIt6M,OAAOq6M,GAAI5iX,OAAQ,KAclB,qBACb,IAEA8iX,EAEAC,EAEAvvO,EANIwvO,EAAKJ,GAAInoS,UAAYooS,GAAIpoS,UAAY,EAQzC56E,GAAK,EAEL0Z,EAAI,GAEJO,EAAI,GAKJ,IAFAC,GAAQ,GAAIC,GAAQ,IAEZ8oW,EAAKF,GAAIjxU,KAAK53B,MAAQgpW,EAAKF,GAAIlxU,KAAK33B,MACrCw5H,EAAKuvO,EAAG1tW,OAAS2tW,IAEpBxvO,EAAKx5H,EAAEzR,MAAMy6W,EAAIxvO,GACbj6H,EAAE1Z,GAAI0Z,EAAE1Z,IAAM2zI,EACbj6H,IAAI1Z,GAAK2zI,IAGXsvO,EAAKA,EAAG,OAASC,EAAKA,EAAG,IAExBxpW,EAAE1Z,GAAI0Z,EAAE1Z,IAAMkjX,EACbxpW,IAAI1Z,GAAKkjX,GAGdxpW,IAAI1Z,GAAK,KACTia,EAAEra,KAAK,CACLI,EAAGA,EACHiX,EAAGgmP,GAAOgmH,EAAIC,MAIlBC,EAAKH,GAAIpoS,UAYX,OARIuoS,EAAKhpW,EAAEja,SACTyzI,EAAKx5H,EAAEzR,MAAMy6W,GACTzpW,EAAE1Z,GAAI0Z,EAAE1Z,IAAM2zI,EACbj6H,IAAI1Z,GAAK2zI,GAKTj6H,EAAExZ,OAAS,EAAI+Z,EAAE,GAzD1B,SAAaE,GACX,OAAO,SAAUhD,GACf,OAAOgD,EAAEhD,GAAK,IAuDaisW,CAAInpW,EAAE,GAAGhD,GA/DxC,SAAckD,GACZ,OAAO,WACL,OAAOA,GA6DkC,CAAKA,IAAMA,EAAIF,EAAE/Z,OAAQ,SAAUiX,GAC5E,IAAK,IAAWomI,EAAPv9I,EAAI,EAAMA,EAAIma,IAAKna,EAC1B0Z,GAAG6jI,EAAItjI,EAAEja,IAAIA,GAAKu9I,EAAEtmI,EAAEE,GAGxB,OAAOuC,EAAE+iE,KAAK,OCtEH,iBACb,IAAIriE,EACJ,OAAqB,kBAAND,EAAiB,GAAoBA,aAAa,GAAQ,IAAkBC,EAAI,GAAMD,KAAOA,EAAIC,EAAG,IAAkB,IAAmBF,EAAGC,ICC7J,SAAS,GAAWrS,GAClB,OAAO,WACLrG,KAAKmnS,gBAAgB9gS,IAIzB,SAAS,GAAakxW,GACpB,OAAO,WACLv3W,KAAKw3W,kBAAkBD,EAASzhQ,MAAOyhQ,EAASH,QAIpD,SAAS,GAAa/wW,EAAMqjW,EAAakY,GACvC,IAAIC,EAEAC,EADAC,EAAUH,EAAS,GAEvB,OAAO,WACL,IAAII,EAAUhiX,KAAK64C,aAAaxyC,GAChC,OAAO27W,IAAYD,EAAU,KAAOC,IAAYH,EAAWC,EAAeA,EAAepY,EAAYmY,EAAWG,EAASJ,IAI7H,SAAS,GAAerK,EAAU7N,EAAakY,GAC7C,IAAIC,EAEAC,EADAC,EAAUH,EAAS,GAEvB,OAAO,WACL,IAAII,EAAUhiX,KAAK2kU,eAAe4yC,EAASzhQ,MAAOyhQ,EAASH,OAC3D,OAAO4K,IAAYD,EAAU,KAAOC,IAAYH,EAAWC,EAAeA,EAAepY,EAAYmY,EAAWG,EAASJ,IAI7H,SAAS,GAAav7W,EAAMqjW,EAAatpW,GACvC,IAAIyhX,EAAUI,EAAUH,EACxB,OAAO,WACL,IAAIE,EAEAD,EADAH,EAASxhX,EAAMJ,MAEnB,GAAc,MAAV4hX,EAGJ,OAFAI,EAAUhiX,KAAK64C,aAAaxyC,OAC5B07W,EAAUH,EAAS,IACU,KAAOI,IAAYH,GAAYE,IAAYE,EAAWH,GAAgBG,EAAWF,EAASD,EAAepY,EAAYmY,EAAWG,EAASJ,IAHtI5hX,KAAKmnS,gBAAgB9gS,IAOzD,SAAS,GAAekxW,EAAU7N,EAAatpW,GAC7C,IAAIyhX,EAAUI,EAAUH,EACxB,OAAO,WACL,IAAIE,EAEAD,EADAH,EAASxhX,EAAMJ,MAEnB,GAAc,MAAV4hX,EAGJ,OAFAI,EAAUhiX,KAAK2kU,eAAe4yC,EAASzhQ,MAAOyhQ,EAASH,WACvD2K,EAAUH,EAAS,IACU,KAAOI,IAAYH,GAAYE,IAAYE,EAAWH,GAAgBG,EAAWF,EAASD,EAAepY,EAAYmY,EAAWG,EAASJ,IAHtI5hX,KAAKw3W,kBAAkBD,EAASzhQ,MAAOyhQ,EAASH,QCtDpF,SAAS8K,GAAgB77W,EAAM9H,GAC7B,OAAO,SAAUmX,GACf1V,KAAK23C,aAAatxC,EAAM9H,EAAEgB,KAAKS,KAAM0V,KAIzC,SAASysW,GAAkB5K,EAAUh5W,GACnC,OAAO,SAAUmX,GACf1V,KAAK23W,eAAeJ,EAASzhQ,MAAOyhQ,EAASH,MAAO74W,EAAEgB,KAAKS,KAAM0V,KAIrE,SAAS0sW,GAAY7K,EAAUn3W,GAC7B,IAAIo4B,EAAI6N,EAER,SAASm3U,IACP,IAAIj/W,EAAI6B,EAAMhC,MAAM4B,KAAMxB,WAE1B,OADID,IAAM8nC,IAAI7N,GAAM6N,EAAK9nC,IAAM4jX,GAAkB5K,EAAUh5W,IACpDi6B,EAIT,OADAglV,EAAM75T,OAASvjD,EACRo9W,EAGT,SAAS6E,GAAUh8W,EAAMjG,GACvB,IAAIo4B,EAAI6N,EAER,SAASm3U,IACP,IAAIj/W,EAAI6B,EAAMhC,MAAM4B,KAAMxB,WAE1B,OADID,IAAM8nC,IAAI7N,GAAM6N,EAAK9nC,IAAM2jX,GAAgB77W,EAAM9H,IAC9Ci6B,EAIT,OADAglV,EAAM75T,OAASvjD,EACRo9W,ECnCT,SAAS8E,GAAc5/U,EAAItiC,GACzB,OAAO,WACL+lE,GAAKnmE,KAAM0iC,GAAIigI,OAASviK,EAAMhC,MAAM4B,KAAMxB,YAI9C,SAAS+jX,GAAc7/U,EAAItiC,GACzB,OAAOA,GAASA,EAAO,WACrB+lE,GAAKnmE,KAAM0iC,GAAIigI,MAAQviK,GCR3B,SAASoiX,GAAiB9/U,EAAItiC,GAC5B,OAAO,WACLR,GAAII,KAAM0iC,GAAI+mH,UAAYrpJ,EAAMhC,MAAM4B,KAAMxB,YAIhD,SAASikX,GAAiB//U,EAAItiC,GAC5B,OAAOA,GAASA,EAAO,WACrBR,GAAII,KAAM0iC,GAAI+mH,SAAWrpJ,GCR7B,SAASsiX,GAAahgV,EAAItiC,GACxB,GAAqB,oBAAVA,EAAsB,MAAM,IAAIwC,MAC3C,OAAO,WACLhD,GAAII,KAAM0iC,GAAIg7U,KAAOt9W,GCKzB,SAASuiX,GAAWjgV,EAAIr8B,EAAMsN,GAC5B,IAAIivW,EACAC,EACAC,EAXN,SAAez8W,GACb,OAAQA,EAAO,IAAIo0E,OAAOI,MAAM,SAASskI,OAAM,SAAUzpM,GACvD,IAAInX,EAAImX,EAAElW,QAAQ,KAElB,OADIjB,GAAK,IAAGmX,EAAIA,EAAEzO,MAAM,EAAG1I,KACnBmX,GAAW,UAANA,KAOL,CAAMrP,GAAQ8/D,GAAOvmE,GAC/B,OAAO,WACL,IAAI+2O,EAAWmsI,EAAI9iX,KAAM0iC,GACrBw7K,EAAKy4B,EAASz4B,GAIdA,IAAO0kK,IAAMC,GAAOD,EAAM1kK,GAAIn4L,QAAQm4L,GAAG73M,EAAMsN,GACnDgjO,EAASz4B,GAAK2kK,GCTH,ICXX,GAAY,GAAU3iX,UAAUD,YCcpC,SAAS,GAAYoG,GACnB,OAAO,WACLrG,KAAKiwC,MAAM8nU,eAAe1xW,ICjB9B,SAAS08W,GAAiB18W,EAAM9H,EAAGirS,GACjC,OAAO,SAAU9zR,GACf1V,KAAKiwC,MAAMgoU,YAAY5xW,EAAM9H,EAAEgB,KAAKS,KAAM0V,GAAI8zR,IAIlD,SAASw5E,GAAW38W,EAAMjG,EAAOopS,GAC/B,IAAI9zR,EAAG2wB,EAEP,SAASm3U,IACP,IAAIj/W,EAAI6B,EAAMhC,MAAM4B,KAAMxB,WAE1B,OADID,IAAM8nC,IAAI3wB,GAAK2wB,EAAK9nC,IAAMwkX,GAAiB18W,EAAM9H,EAAGirS,IACjD9zR,EAIT,OADA8nW,EAAM75T,OAASvjD,EACRo9W,EChBT,SAASyF,GAAgB1kX,GACvB,OAAO,SAAUmX,GACf1V,KAAK42L,YAAcr4L,EAAEgB,KAAKS,KAAM0V,IAIpC,SAASwtW,GAAU9iX,GACjB,IAAIo4B,EAAI6N,EAER,SAASm3U,IACP,IAAIj/W,EAAI6B,EAAMhC,MAAM4B,KAAMxB,WAE1B,OADID,IAAM8nC,IAAI7N,GAAM6N,EAAK9nC,IAAM0kX,GAAgB1kX,IACxCi6B,EAIT,OADAglV,EAAM75T,OAASvjD,EACRo9W,EAGM,ICCX,GAAK,EACF,SAAS7rG,GAAW76N,EAAQoxK,EAAS7hN,EAAMq8B,GAChD1iC,KAAKo6W,QAAUtjU,EACf92C,KAAKq6W,SAAWnyJ,EAChBloN,KAAK07C,MAAQr1C,EACbrG,KAAKwkF,IAAM9hD,EAKN,SAASygV,KACd,QAAS,GAEX,IAAIC,GAAsB,GAAUljX,UACpCyxQ,GAAWzxQ,UAPI,SAAoBmG,GACjC,OAAO,KAAYq+O,WAAWr+O,IAMEnG,UAAY,CAC5CD,YAAa0xQ,GACb2oG,OCjCa,YACb,IAAIj0W,EAAOrG,KAAK07C,MACZhZ,EAAK1iC,KAAKwkF,IACQ,oBAAX81R,IAAuBA,EAAS,EAASA,IAEpD,IAAK,IAAIxjU,EAAS92C,KAAKo6W,QAAS9kW,EAAIwhC,EAAOr4C,OAAQ87W,EAAY,IAAI52V,MAAMrO,GAAIqgB,EAAI,EAAGA,EAAIrgB,IAAKqgB,EAC3F,IAAK,IAAiFwyI,EAAMqyM,EAAnF/gU,EAAQ3C,EAAOnhB,GAAItgB,EAAIokC,EAAMh7C,OAAQg8W,EAAWF,EAAU5kV,GAAK,IAAIhS,MAAMtO,GAAmB9W,EAAI,EAAGA,EAAI8W,IAAK9W,GAC9G4pK,EAAO1uH,EAAMl7C,MAAQi8W,EAAUF,EAAO/6W,KAAK4oK,EAAMA,EAAKqjH,SAAUjtR,EAAGk7C,MAClE,aAAc0uH,IAAMqyM,EAAQhvF,SAAWrjH,EAAKqjH,UAChDivF,EAASl8W,GAAKi8W,EACd,GAASC,EAASl8W,GAAI8H,EAAMq8B,EAAInkC,EAAGk8W,EAAU96W,GAAIwoK,EAAMzlI,KAK7D,OAAO,IAAIivO,GAAW4oG,EAAWv6W,KAAKq6W,SAAUh0W,EAAMq8B,IDmBtDg4U,UElCa,YACb,IAAIr0W,EAAOrG,KAAK07C,MACZhZ,EAAK1iC,KAAKwkF,IACQ,oBAAX81R,IAAuBA,EAASK,EAAYL,IAEvD,IAAK,IAAIxjU,EAAS92C,KAAKo6W,QAAS9kW,EAAIwhC,EAAOr4C,OAAQ87W,EAAY,GAAIryJ,EAAU,GAAIvyL,EAAI,EAAGA,EAAIrgB,IAAKqgB,EAC/F,IAAK,IAAyCwyI,EAArC1uH,EAAQ3C,EAAOnhB,GAAItgB,EAAIokC,EAAMh7C,OAAcF,EAAI,EAAGA,EAAI8W,IAAK9W,EAClE,GAAI4pK,EAAO1uH,EAAMl7C,GAAI,CACnB,IAAK,IAA2D2kC,EAAvDnP,EAAWumV,EAAO/6W,KAAK4oK,EAAMA,EAAKqjH,SAAUjtR,EAAGk7C,GAAe4pU,EAAU1jX,GAAIwoK,EAAMzlI,GAAKgxD,EAAI,EAAGv/E,EAAI4f,EAASt1B,OAAQi1F,EAAIv/E,IAAKu/E,GAC/HxwD,EAAQnP,EAAS2/D,KACnB,GAASxwD,EAAO78B,EAAMq8B,EAAIgxD,EAAG3/D,EAAUsvV,GAI3C9I,EAAUp8W,KAAK41B,GACfm0L,EAAQ/pN,KAAKgqK,GAKnB,OAAO,IAAIwpG,GAAW4oG,EAAWryJ,EAAS7hN,EAAMq8B,IFehD3kC,OGpCa,YACQ,oBAAVq7E,IAAsBA,EAAQwhS,EAAQxhS,IAEjD,IAAK,IAAItiC,EAAS92C,KAAKo6W,QAAS9kW,EAAIwhC,EAAOr4C,OAAQ87W,EAAY,IAAI52V,MAAMrO,GAAIqgB,EAAI,EAAGA,EAAIrgB,IAAKqgB,EAC3F,IAAK,IAAuEwyI,EAAnE1uH,EAAQ3C,EAAOnhB,GAAItgB,EAAIokC,EAAMh7C,OAAQg8W,EAAWF,EAAU5kV,GAAK,GAAUp3B,EAAI,EAAGA,EAAI8W,IAAK9W,GAC3F4pK,EAAO1uH,EAAMl7C,KAAO66E,EAAM75E,KAAK4oK,EAAMA,EAAKqjH,SAAUjtR,EAAGk7C,IAC1DghU,EAASt8W,KAAKgqK,GAKpB,OAAO,IAAIwpG,GAAW4oG,EAAWv6W,KAAKq6W,SAAUr6W,KAAK07C,MAAO17C,KAAKwkF,MH0BjEniC,MItCa,YACb,GAAIqiM,EAAWlgK,MAAQxkF,KAAKwkF,IAAK,MAAM,IAAI5hF,MAE3C,IAAK,IAAIy4W,EAAUr7W,KAAKo6W,QAASkB,EAAU52H,EAAW01H,QAASoB,EAAKH,EAAQ58W,OAAQ04T,EAAKmkD,EAAQ78W,OAAQ6W,EAAIf,KAAKW,IAAIsmW,EAAIrkD,GAAKskD,EAAS,IAAI93V,MAAM63V,GAAK7lV,EAAI,EAAGA,EAAIrgB,IAAKqgB,EACrK,IAAK,IAAmGwyI,EAA/FuzM,EAASL,EAAQ1lV,GAAIgmV,EAASL,EAAQ3lV,GAAItgB,EAAIqmW,EAAOj9W,OAAQ4jD,EAAQo5T,EAAO9lV,GAAK,IAAIhS,MAAMtO,GAAU9W,EAAI,EAAGA,EAAI8W,IAAK9W,GACxH4pK,EAAOuzM,EAAOn9W,IAAMo9W,EAAOp9W,MAC7B8jD,EAAM9jD,GAAK4pK,GAKjB,KAAOxyI,EAAI6lV,IAAM7lV,EACf8lV,EAAO9lV,GAAK0lV,EAAQ1lV,GAGtB,OAAO,IAAIg8O,GAAW8pG,EAAQz7W,KAAKq6W,SAAUr6W,KAAK07C,MAAO17C,KAAKwkF,MJwB9D+2R,UJtCa,WACb,OAAO,IAAI,GAAUv7W,KAAKo6W,QAASp6W,KAAKq6W,WIsCxC31H,WKvCa,WAKb,IAJA,IAAIr+O,EAAOrG,KAAK07C,MACZ4nU,EAAMtjX,KAAKwkF,IACX++R,EAAMJ,KAEDrsU,EAAS92C,KAAKo6W,QAAS9kW,EAAIwhC,EAAOr4C,OAAQk3B,EAAI,EAAGA,EAAIrgB,IAAKqgB,EACjE,IAAK,IAAyCwyI,EAArC1uH,EAAQ3C,EAAOnhB,GAAItgB,EAAIokC,EAAMh7C,OAAcF,EAAI,EAAGA,EAAI8W,IAAK9W,EAClE,GAAI4pK,EAAO1uH,EAAMl7C,GAAI,CACnB,IAAI8kX,EAAU1jX,GAAIwoK,EAAMm7M,GACxB,GAASn7M,EAAM9hK,EAAMk9W,EAAKhlX,EAAGk7C,EAAO,CAClCkR,KAAM04T,EAAQ14T,KAAO04T,EAAQ1gN,MAAQ0gN,EAAQ55N,SAC7CkZ,MAAO,EACPlZ,SAAU45N,EAAQ55N,SAClBi0N,KAAM2F,EAAQ3F,OAMtB,OAAO,IAAI/rG,GAAW76N,EAAQ92C,KAAKq6W,SAAUh0W,EAAMk9W,ILqBnDhkX,KAAM6jX,GAAoB7jX,KAC1BmkC,MAAO0/U,GAAoB1/U,MAC3BykI,KAAMi7M,GAAoBj7M,KAC1Bx1I,KAAMywV,GAAoBzwV,KAC1B+1O,MAAO06G,GAAoB16G,MAC3B8hG,KAAM4Y,GAAoB5Y,KAC1BtsJ,GNvBa,cACb,IAAIx7K,EAAK1iC,KAAKwkF,IACd,OAAOhmF,UAAUC,OAAS,EAAIkB,GAAIK,KAAKmoK,OAAQzlI,GAAIw7K,GAAGA,GAAG73M,GAAQrG,KAAKwqW,KAAKmY,GAAWjgV,EAAIr8B,EAAMsN,KMsBhG+pL,KXca,cACb,IAAI65K,EAAW9hK,EAAUpvM,GACrB9H,EAAiB,cAAbg5W,EAA2B,GAAuB,GAC1D,OAAOv3W,KAAKqiX,UAAUh8W,EAAuB,oBAAVjG,GAAwBm3W,EAASH,MAAQ,GAAiB,IAAcG,EAAUh5W,EAAG0gX,GAAWj/W,KAAM,QAAUqG,EAAMjG,IAAmB,MAATA,GAAiBm3W,EAASH,MAAQ,GAAe,IAAYG,IAAaA,EAASH,MAAQ,GAAiB,IAAcG,EAAUh5W,EAAG6B,KWhB1SiiX,UVVa,cACb,IAAIzjX,EAAM,QAAUyH,EACpB,GAAI7H,UAAUC,OAAS,EAAG,OAAQG,EAAMoB,KAAKw9W,MAAM5+W,KAASA,EAAI+kD,OAChE,GAAa,MAATvjD,EAAe,OAAOJ,KAAKw9W,MAAM5+W,EAAK,MAC1C,GAAqB,oBAAVwB,EAAsB,MAAM,IAAIwC,MAC3C,IAAI20W,EAAW9hK,EAAUpvM,GACzB,OAAOrG,KAAKw9W,MAAM5+W,GAAM24W,EAASH,MAAQgL,GAAcC,IAAW9K,EAAUn3W,KUK5E6vC,MHUa,gBACb,IAAI1xC,EAAqB,eAAhB8H,GAAQ,IAAsB,GAAuB,GAC9D,OAAgB,MAATjG,EAAgBJ,KAAKgjX,WAAW38W,EAzDzC,SAAmBA,EAAMqjW,GACvB,IAAImY,EAAUI,EAAUH,EACxB,OAAO,WACL,IAAIE,EAAU,EAAMhiX,KAAMqG,GACtB07W,GAAW/hX,KAAKiwC,MAAM8nU,eAAe1xW,GAAO,EAAMrG,KAAMqG,IAC5D,OAAO27W,IAAYD,EAAU,KAAOC,IAAYH,GAAYE,IAAYE,EAAWH,EAAeA,EAAepY,EAAYmY,EAAWG,EAASC,EAAWF,IAoDjHyB,CAAUn9W,EAAM9H,IAAI2/M,GAAG,aAAe73M,EAAM,GAAYA,IAA0B,oBAAVjG,EAAuBJ,KAAKgjX,WAAW38W,EAhC9J,SAAuBA,EAAMqjW,EAAatpW,GACxC,IAAIyhX,EAAUI,EAAUH,EACxB,OAAO,WACL,IAAIE,EAAU,EAAMhiX,KAAMqG,GACtBu7W,EAASxhX,EAAMJ,MACf+hX,EAAUH,EAAS,GAEvB,OADc,MAAVA,IAAoC5hX,KAAKiwC,MAAM8nU,eAAe1xW,GAA9C07W,EAAUH,EAA2C,EAAM5hX,KAAMqG,IAC9E27W,IAAYD,EAAU,KAAOC,IAAYH,GAAYE,IAAYE,EAAWH,GAAgBG,EAAWF,EAASD,EAAepY,EAAYmY,EAAWG,EAASJ,KAyBN,CAAcv7W,EAAM9H,EAAG0gX,GAAWj/W,KAAM,SAAWqG,EAAMjG,KAASoqW,KArBtO,SAA0B9nU,EAAIr8B,GAC5B,IAAIu8W,EACAC,EACAY,EAGAhhV,EAFA7jC,EAAM,SAAWyH,EACjB4N,EAAQ,OAASrV,EAErB,OAAO,WACL,IAAI+3O,EAAW/2O,GAAII,KAAM0iC,GACrBw7K,EAAKy4B,EAASz4B,GACdvqM,EAAkC,MAAvBgjO,EAASv2O,MAAMxB,GAAe6jC,IAAWA,EAAS,GAAYp8B,SAASlH,EAIlF++M,IAAO0kK,GAAOa,IAAc9vW,IAAWkvW,GAAOD,EAAM1kK,GAAIn4L,QAAQm4L,GAAGjqM,EAAOwvW,EAAY9vW,GAC1FgjO,EAASz4B,GAAK2kK,GAMyNa,CAAiB1jX,KAAKwkF,IAAKn+E,IAASrG,KAAKgjX,WAAW38W,EA1C/R,SAAuBA,EAAMqjW,EAAakY,GACxC,IAAIC,EAEAC,EADAC,EAAUH,EAAS,GAEvB,OAAO,WACL,IAAII,EAAU,EAAMhiX,KAAMqG,GAC1B,OAAO27W,IAAYD,EAAU,KAAOC,IAAYH,EAAWC,EAAeA,EAAepY,EAAYmY,EAAWG,EAASJ,IAoCwK,CAAcv7W,EAAM9H,EAAG6B,GAAQopS,GAAUtrF,GAAG,aAAe73M,EAAM,OGXpW28W,WFjCa,gBACb,IAAIpkX,EAAM,UAAYyH,GAAQ,IAC9B,GAAI7H,UAAUC,OAAS,EAAG,OAAQG,EAAMoB,KAAKw9W,MAAM5+W,KAASA,EAAI+kD,OAChE,GAAa,MAATvjD,EAAe,OAAOJ,KAAKw9W,MAAM5+W,EAAK,MAC1C,GAAqB,oBAAVwB,EAAsB,MAAM,IAAIwC,MAC3C,OAAO5C,KAAKw9W,MAAM5+W,EAAKokX,GAAW38W,EAAMjG,EAAmB,MAAZopS,EAAmB,GAAKA,KE6BvEp5I,KMtCa,YACb,OAAOpwJ,KAAKw9W,MAAM,OAAyB,oBAAVp9W,EARnC,SAAsBA,GACpB,OAAO,WACL,IAAIwhX,EAASxhX,EAAMJ,MACnBA,KAAK42L,YAAwB,MAAVgrL,EAAiB,GAAKA,GAKa,CAAa3C,GAAWj/W,KAAM,OAAQI,IAdhG,SAAsBA,GACpB,OAAO,WACLJ,KAAK42L,YAAcx2L,GAYmF,CAAsB,MAATA,EAAgB,GAAKA,EAAQ,MNsClJ8iX,UDnCa,YACb,IAAItkX,EAAM,OACV,GAAIJ,UAAUC,OAAS,EAAG,OAAQG,EAAMoB,KAAKw9W,MAAM5+W,KAASA,EAAI+kD,OAChE,GAAa,MAATvjD,EAAe,OAAOJ,KAAKw9W,MAAM5+W,EAAK,MAC1C,GAAqB,oBAAVwB,EAAsB,MAAM,IAAIwC,MAC3C,OAAO5C,KAAKw9W,MAAM5+W,EAAKskX,GAAU9iX,KC+BjCqiC,OL3Ca,WACb,OAAOziC,KAAKk+M,GAAG,cAbOx7K,EAasB1iC,KAAKwkF,IAZ1C,WACL,IAAIzjD,EAAS/gC,KAAK+zL,WAElB,IAAK,IAAIx1L,KAAKyB,KAAKu9W,aACjB,IAAKh/W,IAAMmkC,EAAI,OAGb3B,GAAQA,EAAOg2J,YAAY/2L,SARnC,IAAwB0iC,GKwDtB86U,MrBDa,cACb,IAAI96U,EAAK1iC,KAAKwkF,IAGd,GAFAn+E,GAAQ,GAEJ7H,UAAUC,OAAS,EAAG,CAGxB,IAFA,IAEkCiX,EAF9B8nW,EAAQ79W,GAAIK,KAAKmoK,OAAQzlI,GAAI86U,MAExBj/W,EAAI,EAAG8W,EAAImoW,EAAM/+W,OAAWF,EAAI8W,IAAK9W,EAC5C,IAAKmX,EAAI8nW,EAAMj/W,IAAI8H,OAASA,EAC1B,OAAOqP,EAAEtV,MAIb,OAAO,KAGT,OAAOJ,KAAKwqW,MAAe,MAATpqW,EAAgBy+W,GAAcG,IAAet8U,EAAIr8B,EAAMjG,KqBdzEuiK,MT3Ca,YACb,IAAIjgI,EAAK1iC,KAAKwkF,IACd,OAAOhmF,UAAUC,OAASuB,KAAKwqW,MAAuB,oBAAVpqW,EAAuBkiX,GAAgBC,IAAe7/U,EAAItiC,IAAUT,GAAIK,KAAKmoK,OAAQzlI,GAAIigI,OS0CrIlZ,SR5Ca,YACb,IAAI/mH,EAAK1iC,KAAKwkF,IACd,OAAOhmF,UAAUC,OAASuB,KAAKwqW,MAAuB,oBAAVpqW,EAAuBoiX,GAAmBC,IAAkB//U,EAAItiC,IAAUT,GAAIK,KAAKmoK,OAAQzlI,GAAI+mH,UQ2C3Ii0N,KPlDa,YACb,IAAIh7U,EAAK1iC,KAAKwkF,IACd,OAAOhmF,UAAUC,OAASuB,KAAKwqW,KAAKkY,GAAahgV,EAAItiC,IAAUT,GAAIK,KAAKmoK,OAAQzlI,GAAIg7U,MOiDpFn1T,IO3Da,WACb,IAAIq6T,EACAC,EACA1hL,EAAOnhM,KACP0iC,EAAKy+J,EAAK38G,IACV7xD,EAAOwuK,EAAKxuK,OAChB,OAAO,IAAIjsB,SAAQ,SAAUpC,EAASC,GACpC,IAAIw8S,EAAS,CACX3gT,MAAOmE,GAELgkD,EAAM,CACRnoD,MAAO,WACU,MAATuyB,GAAYruB,MAGtB68L,EAAKqpK,MAAK,WACR,IAAI7zH,EAAW/2O,GAAII,KAAM0iC,GACrBw7K,EAAKy4B,EAASz4B,GAIdA,IAAO0kK,KACTC,GAAOD,EAAM1kK,GAAIn4L,QAEb4pK,EAAEoxH,OAAO5iT,KAAK4iT,GAElB8hE,EAAIlzL,EAAEg0L,UAAUxlX,KAAK4iT,GAErB8hE,EAAIlzL,EAAEpnI,IAAIpqD,KAAKoqD,IAGjBouL,EAASz4B,GAAK2kK,UC5BpB,IAAIe,GAAgB,CAClBj5T,KAAM,KAENg4G,MAAO,EACPlZ,SAAU,IACVi0N,KCHK,SAAoBhoW,GACzB,QAASA,GAAK,IAAM,EAAIA,EAAIA,EAAIA,GAAKA,GAAK,GAAKA,EAAIA,EAAI,GAAK,IDK9D,SAAS,GAAQyyJ,EAAMzlI,GAGrB,IAFA,IAAIo5K,IAEKA,EAAS3zC,EAAKo1M,iBAAmBzhK,EAASA,EAAOp5K,KACxD,KAAMylI,EAAOA,EAAK4rB,YAChB,OAAO6vL,GAAcj5T,KAAOu0G,KAAO0kN,GAIvC,OAAO9nK,EElBT,GAAU57M,UAAUyjX,UCFL,YACb,OAAO3jX,KAAKwqW,MAAK,YrCDJ,cACb,IACI7zH,EACA0L,EAEA9jP,EAJA++W,EAAYn1M,EAAKo1M,aAGjB70G,GAAQ,EAEZ,GAAK40G,EAAL,CAGA,IAAK/+W,KAFL8H,EAAe,MAARA,EAAe,KAAOA,EAAO,GAE1Bi3W,GACH3mI,EAAW2mI,EAAU/+W,IAAI8H,OAASA,GAKvCg8O,EAAS1L,EAASl0O,MDVA,GCUoBk0O,EAASl0O,MDP/B,ECQhBk0O,EAASl0O,MDPM,ECQfk0O,EAASqjG,MAAM9yU,OACfyvO,EAASz4B,GAAG3+M,KAAK8iP,EAAS,YAAc,SAAUl6E,EAAMA,EAAKqjH,SAAU70C,EAAS5iO,MAAO4iO,EAASl9L,cACzF6jU,EAAU/+W,IARfmqQ,GAAQ,EAWRA,UAAcvgG,EAAKo1M,cqCpBrBoG,CAAU3jX,KAAMqG,ODCpB,GAAUnG,UAAUwkP,WFoBL,YACb,IAAIhiN,EAAIo5K,EAEJz1M,aAAgBsrQ,IAClBjvO,EAAKr8B,EAAKm+E,IAAKn+E,EAAOA,EAAKq1C,QAE3BhZ,EAAKygV,MAAUrnK,EAAS8nK,IAAej5T,KAAOu0G,KAAO74J,EAAe,MAARA,EAAe,KAAOA,EAAO,IAG3F,IAAK,IAAIywC,EAAS92C,KAAKo6W,QAAS9kW,EAAIwhC,EAAOr4C,OAAQk3B,EAAI,EAAGA,EAAIrgB,IAAKqgB,EACjE,IAAK,IAAyCwyI,EAArC1uH,EAAQ3C,EAAOnhB,GAAItgB,EAAIokC,EAAMh7C,OAAcF,EAAI,EAAGA,EAAI8W,IAAK9W,GAC9D4pK,EAAO1uH,EAAMl7C,KACf,GAAS4pK,EAAM9hK,EAAMq8B,EAAInkC,EAAGk7C,EAAOqiK,GAAU,GAAQ3zC,EAAMzlI,IAKjE,OAAO,IAAIivO,GAAW76N,EAAQ92C,KAAKq6W,SAAUh0W,EAAMq8B,IIvCrD,I,SCFe,I,+DCAA,SAAS4kQ,GAAUn/H,GAChC,GAAY,MAARA,EACF,OAAOrL,OAGT,GAAwB,oBAApBqL,EAAK7oK,WAAkC,CACzC,IAAIuxL,EAAgB1oB,EAAK0oB,cACzB,OAAOA,GAAgBA,EAAc2gD,aAAwB10E,OAG/D,OAAOqL,ECRT,SAASopE,GAAUppE,GAEjB,OAAOA,aADUm/H,GAAUn/H,GAAMs3C,SACIt3C,aAAgBs3C,QAGvD,SAASokK,GAAc17M,GAErB,OAAOA,aADUm/H,GAAUn/H,GAAMwlE,aACIxlE,aAAgBwlE,YAGvD,SAASm2I,GAAa37M,GAEpB,MAA0B,qBAAf47M,aAKJ57M,aADUm/H,GAAUn/H,GAAM47M,YACI57M,aAAgB47M,YCnBhD,IAAI,GAAMxvW,KAAKY,IACX,GAAMZ,KAAKW,IACXwB,GAAQnC,KAAKmC,MCAT,SAASk7O,GAAsB/tN,EAASmgV,QAChC,IAAjBA,IACFA,GAAe,GAGjB,IAAIhhF,EAAOn/P,EAAQ+tN,wBACfr3N,EAAS,EACTE,EAAS,EAEb,GAAIopV,GAAchgV,IAAYmgV,EAAc,CAC1C,IAAI3yI,EAAextM,EAAQwtM,aACvBD,EAAcvtM,EAAQutM,YAGtBA,EAAc,IAChB72M,EAAS7jB,GAAMssR,EAAK5gR,OAASgvN,GAAe,GAG1CC,EAAe,IACjB52M,EAAS/jB,GAAMssR,EAAK3gR,QAAUgvN,GAAgB,GAIlD,MAAO,CACLjvN,MAAO4gR,EAAK5gR,MAAQmY,EACpBlY,OAAQ2gR,EAAK3gR,OAASoY,EACtBiE,IAAKskQ,EAAKtkQ,IAAMjE,EAChBgE,MAAOukQ,EAAKvkQ,MAAQlE,EACpBoE,OAAQqkQ,EAAKrkQ,OAASlE,EACtB+D,KAAMwkQ,EAAKxkQ,KAAOjE,EAClB/kB,EAAGwtR,EAAKxkQ,KAAOjE,EACf9kB,EAAGutR,EAAKtkQ,IAAMjE,GChCH,SAASwpV,GAAgB97M,GACtC,IAAI+7M,EAAM58E,GAAUn/H,GAGpB,MAAO,CACL69E,WAHek+H,EAAI9X,YAInBlpE,UAHcghF,EAAI7X,aCJP,SAAS8X,GAAYtgV,GAClC,OAAOA,GAAWA,EAAQwkI,UAAY,IAAIrzJ,cAAgB,KCA7C,SAASovW,GAAmBvgV,GAEzC,QAAS0tM,GAAU1tM,GAAWA,EAAQgtJ,cACtChtJ,EAAQzjB,WAAa08I,OAAO18I,UAAU0hP,gBCDzB,SAASuiH,GAAoBxgV,GAQ1C,OAAO+tN,GAAsBwyH,GAAmBvgV,IAAUrF,KAAOylV,GAAgBpgV,GAASmiN,WCV7E,SAAS3T,GAAiBxuM,GACvC,OAAOyjQ,GAAUzjQ,GAASwuM,iBAAiBxuM,GCD9B,SAASygV,GAAezgV,GAErC,IAAI0gV,EAAoBlyI,GAAiBxuM,GACrCs9P,EAAWojF,EAAkBpjF,SAC7BruD,EAAYyxI,EAAkBzxI,UAC9BF,EAAY2xI,EAAkB3xI,UAElC,MAAO,6BAA6B5wN,KAAKm/Q,EAAWvuD,EAAYE,GCUnD,SAAS0xI,GAAiBC,EAAyB5iF,EAAc0C,QAC9D,IAAZA,IACFA,GAAU,GAGZ,IAAImgF,EAA0Bb,GAAchiF,GACxC8iF,EAAuBd,GAAchiF,IAf3C,SAAyBh+P,GACvB,IAAIm/P,EAAOn/P,EAAQ+tN,wBACfr3N,EAAS7jB,GAAMssR,EAAK5gR,OAASyhB,EAAQutM,aAAe,EACpD32M,EAAS/jB,GAAMssR,EAAK3gR,QAAUwhB,EAAQwtM,cAAgB,EAC1D,OAAkB,IAAX92M,GAA2B,IAAXE,EAWmCmqV,CAAgB/iF,GACtE//B,EAAkBsiH,GAAmBviF,GACrCmB,EAAOpxC,GAAsB6yH,EAAyBE,GACtDE,EAAS,CACX7+H,WAAY,EACZk9C,UAAW,GAETtqI,EAAU,CACZpjJ,EAAG,EACHC,EAAG,GAkBL,OAfIivW,IAA4BA,IAA4BngF,MACxB,SAA9B4/E,GAAYtiF,IAChByiF,GAAexiH,MACb+iH,ECnCS,SAAuB18M,GACpC,OAAIA,IAASm/H,GAAUn/H,IAAU07M,GAAc17M,GCJxC,CACL69E,YAFyCniN,EDQbskI,GCNR69E,WACpBk9C,UAAWr/P,EAAQq/P,WDGZ+gF,GAAgB97M,GCNZ,IAA8BtkI,EFuC9BihV,CAAcjjF,IAGrBgiF,GAAchiF,KAChBjpI,EAAUg5F,GAAsBiwC,GAAc,IACtCrsR,GAAKqsR,EAAakjF,WAC1BnsN,EAAQnjJ,GAAKosR,EAAamjF,WACjBljH,IACTlpG,EAAQpjJ,EAAI6uW,GAAoBviH,KAI7B,CACLtsP,EAAGwtR,EAAKxkQ,KAAOqmV,EAAO7+H,WAAaptF,EAAQpjJ,EAC3CC,EAAGutR,EAAKtkQ,IAAMmmV,EAAO3hF,UAAYtqI,EAAQnjJ,EACzC2M,MAAO4gR,EAAK5gR,MACZC,OAAQ2gR,EAAK3gR,QGpDF,SAAS4iW,GAAcphV,GACpC,IAAIqhV,EAAatzH,GAAsB/tN,GAGnCzhB,EAAQyhB,EAAQutM,YAChB/uN,EAASwhB,EAAQwtM,aAUrB,OARI98N,KAAKgD,IAAI2tW,EAAW9iW,MAAQA,IAAU,IACxCA,EAAQ8iW,EAAW9iW,OAGjB7N,KAAKgD,IAAI2tW,EAAW7iW,OAASA,IAAW,IAC1CA,EAAS6iW,EAAW7iW,QAGf,CACL7M,EAAGquB,EAAQm1N,WACXvjP,EAAGouB,EAAQo1N,UACX72O,MAAOA,EACPC,OAAQA,GCnBG,SAAS2+Q,GAAcn9P,GACpC,MAA6B,SAAzBsgV,GAAYtgV,GACPA,EAMPA,EAAQshV,cACRthV,EAAQkwJ,aACR+vL,GAAajgV,GAAWA,EAAQkjP,KAAO,OAEvCq9F,GAAmBvgV,GCJR,SAASuhV,GAAkBvhV,EAAS6nD,GACjD,IAAI25R,OAES,IAAT35R,IACFA,EAAO,IAGT,IAAIu4M,ECdS,SAAShD,EAAgB94H,GACtC,MAAI,CAAC,OAAQ,OAAQ,aAAa3oK,QAAQ2kX,GAAYh8M,KAAU,EAEvDA,EAAK0oB,cAAc7hC,KAGxB60N,GAAc17M,IAASm8M,GAAen8M,GACjCA,EAGF84H,EAAgBD,GAAc74H,IDIlB84H,CAAgBp9P,GAC/B+jQ,EAAS3D,KAAqE,OAAlDohF,EAAwBxhV,EAAQgtJ,oBAAyB,EAASw0L,EAAsBr2N,MACpHk1N,EAAM58E,GAAUrD,GAChB3lS,EAASspS,EAAS,CAACs8E,GAAKxiW,OAAOwiW,EAAIoB,gBAAkB,GAAIhB,GAAergF,GAAgBA,EAAe,IAAMA,EAC7GshF,EAAc75R,EAAKhqE,OAAOpjB,GAC9B,OAAOspS,EAAS29E,EAChBA,EAAY7jW,OAAO0jW,GAAkBpkF,GAAc1iS,KEvBtC,SAASknX,GAAe3hV,GACrC,MAAO,CAAC,QAAS,KAAM,MAAMrkC,QAAQ2kX,GAAYtgV,KAAa,ECKhE,SAAS4hV,GAAoB5hV,GAC3B,OAAKggV,GAAchgV,IACoB,UAAvCwuM,GAAiBxuM,GAAS/P,SAInB+P,EAAQg+P,aAHN,KA4CI,SAASF,GAAgB99P,GAItC,IAHA,IAAIi5H,EAASwqI,GAAUzjQ,GACnBg+P,EAAe4jF,GAAoB5hV,GAEhCg+P,GAAgB2jF,GAAe3jF,IAA6D,WAA5CxvD,GAAiBwvD,GAAc/tQ,UACpF+tQ,EAAe4jF,GAAoB5jF,GAGrC,OAAIA,IAA+C,SAA9BsiF,GAAYtiF,IAA0D,SAA9BsiF,GAAYtiF,IAAwE,WAA5CxvD,GAAiBwvD,GAAc/tQ,UAC3HgpI,EAGF+kI,GAhDT,SAA4Bh+P,GAC1B,IAAIkkQ,GAAsE,IAA1DnoM,UAAUC,UAAU7qF,cAAcxV,QAAQ,WAG1D,IAFuD,IAA5CogG,UAAUC,UAAUrgG,QAAQ,YAE3BqkX,GAAchgV,IAII,UAFXwuM,GAAiBxuM,GAEnB/P,SACb,OAAO,KAIX,IAAI6pM,EAAcqjE,GAAcn9P,GAMhC,IAJIigV,GAAanmJ,KACfA,EAAcA,EAAYopD,MAGrB88F,GAAclmJ,IAAgB,CAAC,OAAQ,QAAQn+N,QAAQ2kX,GAAYxmJ,IAAgB,GAAG,CAC3F,IAAIvvC,EAAMikD,GAAiB1U,GAI3B,GAAsB,SAAlBvvC,EAAIp8E,WAA4C,SAApBo8E,EAAIs3L,aAA0C,UAAhBt3L,EAAIq/H,UAAiF,IAA1D,CAAC,YAAa,eAAejuT,QAAQ4uL,EAAIg5G,aAAsBW,GAAgC,WAAnB35G,EAAIg5G,YAA2BW,GAAa35G,EAAIrwL,QAAyB,SAAfqwL,EAAIrwL,OACjO,OAAO4/N,EAEPA,EAAcA,EAAY5pC,WAI9B,OAAO,KAiBgB4xL,CAAmB9hV,IAAYi5H,EClEjD,IAAI,GAAM,MACNn+H,GAAS,SACTF,GAAQ,QACRD,GAAO,OAEPonV,GAAiB,CAAC,GAAKjnV,GAAQF,GAAOD,IAOtCqnV,GAAmCD,GAAev7L,QAAO,SAAUy7L,EAAKt9I,GACjF,OAAOs9I,EAAIpkW,OAAO,CAAC8mN,WAAyBA,aAC3C,IACQ,GAA0B,GAAG9mN,OAAOkkW,GAAgB,CAX7C,SAWqDv7L,QAAO,SAAUy7L,EAAKt9I,GAC3F,OAAOs9I,EAAIpkW,OAAO,CAAC8mN,EAAWA,WAAyBA,aACtD,IAaQu9I,GAAiB,CAXJ,aACN,OACK,YAEC,aACN,OACK,YAEE,cACN,QACK,cC3BxB,SAAS,GAAMj9I,GACb,IAAIr8L,EAAM,IAAIvtC,IACV8mX,EAAU,IAAI3gS,IACd5gF,EAAS,GA0Bb,OAzBAqkO,EAAUnqO,SAAQ,SAAUwkS,GAC1B12P,EAAI7sC,IAAIujS,EAAS98R,KAAM88R,MAkBzBr6D,EAAUnqO,SAAQ,SAAUwkS,GACrB6iF,EAAQtmX,IAAIyjS,EAAS98R,OAhB5B,SAASurE,EAAKuxN,GACZ6iF,EAAQnzV,IAAIswQ,EAAS98R,MACN,GAAGqb,OAAOyhR,EAAS8iF,UAAY,GAAI9iF,EAAS+iF,kBAAoB,IACtEvnX,SAAQ,SAAUwnX,GACzB,IAAKH,EAAQtmX,IAAIymX,GAAM,CACrB,IAAIC,EAAc35U,EAAI9sC,IAAIwmX,GAEtBC,GACFx0S,EAAKw0S,OAIX3hX,EAAOtG,KAAKglS,GAMVvxN,CAAKuxN,MAGF1+R,EC/BM,SAASo8R,GAASzhS,GAC/B,IAAIwyK,EACJ,OAAO,WAUL,OATKA,IACHA,EAAU,IAAIlrK,SAAQ,SAAUpC,GAC9BoC,QAAQpC,UAAUK,MAAK,WACrBitK,OAAUzyK,EACVmF,EAAQlF,YAKPwyK,GCEX,IAEIy0M,GAAkB,CACpB79I,UAAW,SACXM,UAAW,GACXw9I,SAAU,YAGZ,SAASC,KACP,IAAK,IAAI78L,EAAOlrL,UAAUC,OAAQiqL,EAAO,IAAI/kK,MAAM+lK,GAAO3tI,EAAO,EAAGA,EAAO2tI,EAAM3tI,IAC/E2sI,EAAK3sI,GAAQv9C,UAAUu9C,GAGzB,OAAQ2sI,EAAKkQ,MAAK,SAAU/0J,GAC1B,QAASA,GAAoD,oBAAlCA,EAAQ+tN,0BAIhC,SAAS40H,GAAgBC,QACL,IAArBA,IACFA,EAAmB,IAGrB,IAAIC,EAAoBD,EACpBE,EAAwBD,EAAkBE,iBAC1CA,OAA6C,IAA1BD,EAAmC,GAAKA,EAC3DE,EAAyBH,EAAkBI,eAC3CA,OAA4C,IAA3BD,EAAoCR,GAAkBQ,EAC3E,OAAO,SAAsBxlF,EAAWn4D,EAAQ7gN,QAC9B,IAAZA,IACFA,EAAUy+V,GAGZ,IAAIrkX,EAAQ,CACV+lO,UAAW,SACXu+I,iBAAkB,GAClB1+V,QAASzqB,OAAOsrB,OAAO,GAAIm9V,GAAiBS,GAC5CE,cAAe,GACfhtW,SAAU,CACRqnR,UAAWA,EACXn4D,OAAQA,GAEVr1M,WAAY,GACZwkK,OAAQ,IAEN4uL,EAAmB,GACnBxgF,GAAc,EACdjhH,EAAW,CACb/iL,MAAOA,EACPykX,WAAY,SAAoBC,GAC9B,IAAI9+V,EAAsC,oBAArB8+V,EAAkCA,EAAiB1kX,EAAM4lB,SAAW8+V,EACzFC,IACA3kX,EAAM4lB,QAAUzqB,OAAOsrB,OAAO,GAAI49V,EAAgBrkX,EAAM4lB,QAASA,GACjE5lB,EAAMklS,cAAgB,CACpBtG,UAAW9vD,GAAU8vD,GAAa+jF,GAAkB/jF,GAAaA,EAAUgmF,eAAiBjC,GAAkB/jF,EAAUgmF,gBAAkB,GAC1In+I,OAAQk8I,GAAkBl8I,IAI5B,IAAI69I,EFvCG,SAAwBj+I,GAErC,IAAIi+I,EAAmB,GAAMj+I,GAE7B,OAAOi9I,GAAe17L,QAAO,SAAUy7L,EAAKwB,GAC1C,OAAOxB,EAAIpkW,OAAOqlW,EAAiBhpX,QAAO,SAAUolS,GAClD,OAAOA,EAASmkF,QAAUA,QAE3B,IE+B0BC,CCzEhB,SAAqBz+I,GAClC,IAAIhnL,EAASgnL,EAAUz+C,QAAO,SAAUvoI,EAAQ21E,GAC9C,IAAI+vP,EAAW1lU,EAAO21E,EAAQpxH,MAK9B,OAJAy7C,EAAO21E,EAAQpxH,MAAQmhX,EAAW5pX,OAAOsrB,OAAO,GAAIs+V,EAAU/vP,EAAS,CACrEpvG,QAASzqB,OAAOsrB,OAAO,GAAIs+V,EAASn/V,QAASovG,EAAQpvG,SACrDtF,KAAMnlB,OAAOsrB,OAAO,GAAIs+V,EAASzkW,KAAM00G,EAAQ10G,QAC5C00G,EACE31E,IACN,IAEH,OAAOlkD,OAAOD,KAAKmkD,GAAQrV,KAAI,SAAU7tC,GACvC,OAAOkjD,EAAOljD,MD8D4B6oX,CAAY,GAAG/lW,OAAOklW,EAAkBnkX,EAAM4lB,QAAQygN,aAyC5F,OAvCArmO,EAAMskX,iBAAmBA,EAAiBhpX,QAAO,SAAUuX,GACzD,OAAOA,EAAE4L,WAqJbze,EAAMskX,iBAAiBpoX,SAAQ,SAAU+9M,GACvC,IAAIr2M,EAAOq2M,EAAMr2M,KACbqhX,EAAgBhrK,EAAMr0L,QACtBA,OAA4B,IAAlBq/V,EAA2B,GAAKA,EAC1C35F,EAASrxE,EAAMqxE,OAEnB,GAAsB,oBAAXA,EAAuB,CAChC,IAAI45F,EAAY55F,EAAO,CACrBtrR,MAAOA,EACP4D,KAAMA,EACNm/K,SAAUA,EACVn9J,QAASA,IAKX4+V,EAAiB9oX,KAAKwpX,GAFT,kBA7HRniM,EAAS/5J,UAOlBozC,YAAa,WACX,IAAI4nO,EAAJ,CAIA,IAAImhF,EAAkBnlX,EAAMuX,SACxBqnR,EAAYumF,EAAgBvmF,UAC5Bn4D,EAAS0+I,EAAgB1+I,OAG7B,GAAKq9I,GAAiBllF,EAAWn4D,GAAjC,CASAzmO,EAAMwiS,MAAQ,CACZ5D,UAAWmjF,GAAiBnjF,EAAWM,GAAgBz4D,GAAoC,UAA3BzmO,EAAM4lB,QAAQi+V,UAC9Ep9I,OAAQ+7I,GAAc/7I,IAOxBzmO,EAAMoD,OAAQ,EACdpD,EAAM+lO,UAAY/lO,EAAM4lB,QAAQmgN,UAKhC/lO,EAAMskX,iBAAiBpoX,SAAQ,SAAUwkS,GACvC,OAAO1gS,EAAMukX,cAAc7jF,EAAS98R,MAAQzI,OAAOsrB,OAAO,GAAIi6Q,EAASpgR,SAIzE,IAFA,IAEShP,EAAQ,EAAGA,EAAQtR,EAAMskX,iBAAiBtoX,OAAQsV,IAUzD,IAAoB,IAAhBtR,EAAMoD,MAAV,CAMA,IAAIgiX,EAAwBplX,EAAMskX,iBAAiBhzW,GAC/C3U,EAAKyoX,EAAsBzoX,GAC3B0oX,EAAyBD,EAAsBx/V,QAC/C0/V,OAAsC,IAA3BD,EAAoC,GAAKA,EACpDzhX,EAAOwhX,EAAsBxhX,KAEf,oBAAPjH,IACTqD,EAAQrD,EAAG,CACTqD,MAAOA,EACP4lB,QAAS0/V,EACT1hX,KAAMA,EACNm/K,SAAUA,KACN/iL,QAjBNA,EAAMoD,OAAQ,EACdkO,GAAS,KAsBf0X,OAAQo1Q,IAAS,WACf,OAAO,IAAIn6R,SAAQ,SAAUpC,GAC3BkhL,EAAS3mH,cACTv6D,EAAQ7B,SAGZ4hF,QAAS,WACP+iS,IACA3gF,GAAc,IAIlB,IAAK8/E,GAAiBllF,EAAWn4D,GAK/B,OAAO1jD,EAmCT,SAAS4hM,IACPH,EAAiBtoX,SAAQ,SAAUS,GACjC,OAAOA,OAET6nX,EAAmB,GAGrB,OAvCAzhM,EAAS0hM,WAAW7+V,GAAS1jB,MAAK,SAAUlC,IACrCgkS,GAAep+Q,EAAQ2/V,eAC1B3/V,EAAQ2/V,cAAcvlX,MAqCnB+iL,GAGJ,IE9PHonF,GAAU,CACZA,SAAS,GCFI,SAASq7G,GAAiBz/I,GACvC,OAAOA,EAAU3tJ,MAAM,KAAK,GCFf,SAASqtS,GAAa1/I,GACnC,OAAOA,EAAU3tJ,MAAM,KAAK,GCDf,SAASstS,GAAyB3/I,GAC/C,MAAO,CAAC,MAAO,UAAUhpO,QAAQgpO,IAAc,EAAI,IAAM,ICG5C,SAAS4/I,GAAehyQ,GACrC,IAOIwiD,EAPAyoI,EAAYjrL,EAAKirL,UACjBx9P,EAAUuyE,EAAKvyE,QACf2kM,EAAYpyH,EAAKoyH,UACjBigE,EAAgBjgE,EAAYy/I,GAAiBz/I,GAAa,KAC1D68D,EAAY78D,EAAY0/I,GAAa1/I,GAAa,KAClD6/I,EAAUhnF,EAAU7rR,EAAI6rR,EAAUj/Q,MAAQ,EAAIyhB,EAAQzhB,MAAQ,EAC9DkmW,EAAUjnF,EAAU5rR,EAAI4rR,EAAUh/Q,OAAS,EAAIwhB,EAAQxhB,OAAS,EAGpE,OAAQomR,GACN,KAAK,GACH7vI,EAAU,CACRpjJ,EAAG6yW,EACH5yW,EAAG4rR,EAAU5rR,EAAIouB,EAAQxhB,QAE3B,MAEF,KAAKsc,GACHi6H,EAAU,CACRpjJ,EAAG6yW,EACH5yW,EAAG4rR,EAAU5rR,EAAI4rR,EAAUh/Q,QAE7B,MAEF,KAAKoc,GACHm6H,EAAU,CACRpjJ,EAAG6rR,EAAU7rR,EAAI6rR,EAAUj/Q,MAC3B3M,EAAG6yW,GAEL,MAEF,KAAK9pV,GACHo6H,EAAU,CACRpjJ,EAAG6rR,EAAU7rR,EAAIquB,EAAQzhB,MACzB3M,EAAG6yW,GAEL,MAEF,QACE1vN,EAAU,CACRpjJ,EAAG6rR,EAAU7rR,EACbC,EAAG4rR,EAAU5rR,GAInB,IAAI8yW,EAAW9/E,EAAgB0/E,GAAyB1/E,GAAiB,KAEzE,GAAgB,MAAZ8/E,EAAkB,CACpB,IAAIj5V,EAAmB,MAAbi5V,EAAmB,SAAW,QAExC,OAAQljF,GACN,ITlDa,QSmDXzsI,EAAQ2vN,GAAY3vN,EAAQ2vN,IAAalnF,EAAU/xQ,GAAO,EAAIuU,EAAQvU,GAAO,GAC7E,MAEF,ITrDW,MSsDTspI,EAAQ2vN,GAAY3vN,EAAQ2vN,IAAalnF,EAAU/xQ,GAAO,EAAIuU,EAAQvU,GAAO,IAOnF,OAAOspI,EClDM,ICTX4vN,GAAa,CACf9pV,IAAK,OACLD,MAAO,OACPE,OAAQ,OACRH,KAAM,QAgBD,SAASiqV,GAAY94N,GAC1B,IAAI+4N,EAEAx/I,EAASv5E,EAAMu5E,OACf68D,EAAap2I,EAAMo2I,WACnBv9D,EAAY74E,EAAM64E,UAClB68D,EAAY11I,EAAM01I,UAClBzsI,EAAUjJ,EAAMiJ,QAChB9kI,EAAW67H,EAAM77H,SACjB23Q,EAAkB97I,EAAM87I,gBACxBk9E,EAAWh5N,EAAMg5N,SACjBC,EAAej5N,EAAMi5N,aACrBrkF,EAAU50I,EAAM40I,QAChBskF,EAAajwN,EAAQpjJ,EACrBA,OAAmB,IAAfqzW,EAAwB,EAAIA,EAChCC,EAAalwN,EAAQnjJ,EACrBA,OAAmB,IAAfqzW,EAAwB,EAAIA,EAEhCpsK,EAAgC,oBAAjBksK,EAA8BA,EAAa,CAC5DpzW,EAAGA,EACHC,EAAGA,IACA,CACHD,EAAGA,EACHC,EAAGA,GAGLD,EAAIknM,EAAMlnM,EACVC,EAAIinM,EAAMjnM,EACV,IAAIszW,EAAOnwN,EAAQh4J,eAAe,KAC9BooX,EAAOpwN,EAAQh4J,eAAe,KAC9BqoX,EAAQzqV,GACR0qV,EAAQ,GACRhF,EAAMpnN,OAEV,GAAI6rN,EAAU,CACZ,IAAI9mF,EAAeF,GAAgBz4D,GAC/BigJ,EAAa,eACbC,EAAY,cAchB,GAZIvnF,IAAiByF,GAAUp+D,IAGmB,WAA5CmJ,GAFJwvD,EAAeuiF,GAAmBl7I,IAECp1M,UAAsC,aAAbA,IAC1Dq1V,EAAa,eACbC,EAAY,eAKhBvnF,EAAeA,EAEXr5D,IAAc,KAAQA,IAAchqM,IAAQgqM,IAAc/pM,KXzEjD,QWyE2D4mQ,EACtE6jF,EAAQvqV,GAGRlpB,IAFc8uR,GAAW1C,IAAiBqiF,GAAOA,EAAIoB,eAAiBpB,EAAIoB,eAAejjW,OACzFw/Q,EAAasnF,IACEpjF,EAAW1jR,OAC1B5M,GAAKg2R,EAAkB,GAAK,EAG9B,GAAIjjE,IAAchqM,KAASgqM,IAAc,IAAOA,IAAc7pM,KXjFjD,QWiF4D0mQ,EACvE4jF,EAAQxqV,GAGRjpB,IAFc+uR,GAAW1C,IAAiBqiF,GAAOA,EAAIoB,eAAiBpB,EAAIoB,eAAeljW,MACzFy/Q,EAAaunF,IACErjF,EAAW3jR,MAC1B5M,GAAKi2R,EAAkB,GAAK,EAIhC,IAgBM49E,EAhBFC,EAAe1rX,OAAOsrB,OAAO,CAC/B4K,SAAUA,GACT60V,GAAYH,IAEXh5G,GAAyB,IAAjBo5G,EAnFd,SAA2BxyQ,GACzB,IAAI5gG,EAAI4gG,EAAK5gG,EACTC,EAAI2gG,EAAK3gG,EAET8zW,EADMzsN,OACI23E,kBAAoB,EAClC,MAAO,CACLj/N,EAAGkB,GAAMlB,EAAI+zW,GAAOA,GAAO,EAC3B9zW,EAAGiB,GAAMjB,EAAI8zW,GAAOA,GAAO,GA4EOC,CAAkB,CACpDh0W,EAAGA,EACHC,EAAGA,IACA,CACHD,EAAGA,EACHC,EAAGA,GAML,OAHAD,EAAIg6P,EAAMh6P,EACVC,EAAI+5P,EAAM/5P,EAENg2R,EAGK7tS,OAAOsrB,OAAO,GAAIogW,IAAeD,EAAiB,IAAmBH,GAASF,EAAO,IAAM,GAAIK,EAAeJ,GAASF,EAAO,IAAM,GAAIM,EAAer3Q,WAAakyQ,EAAIzvI,kBAAoB,IAAM,EAAI,aAAej/N,EAAI,OAASC,EAAI,MAAQ,eAAiBD,EAAI,OAASC,EAAI,SAAU4zW,IAG5RzrX,OAAOsrB,OAAO,GAAIogW,IAAeZ,EAAkB,IAAoBQ,GAASF,EAAOvzW,EAAI,KAAO,GAAIizW,EAAgBO,GAASF,EAAOvzW,EAAI,KAAO,GAAIkzW,EAAgB12Q,UAAY,GAAI02Q,IC1C/K,QACbriX,KAAM,cACN6a,SAAS,EACTomW,MAAO,QACPloX,GA5EF,SAAqBg3G,GACnB,IAAI3zG,EAAQ2zG,EAAK3zG,MACjB7E,OAAOD,KAAK8E,EAAMuX,UAAUrb,SAAQ,SAAU0H,GAC5C,IAAI4pC,EAAQxtC,EAAM41L,OAAOhyL,IAAS,GAC9BwtB,EAAapxB,EAAMoxB,WAAWxtB,IAAS,GACvCw9B,EAAUphC,EAAMuX,SAAS3T,GAExBw9W,GAAchgV,IAAasgV,GAAYtgV,KAO5CjmC,OAAOsrB,OAAO2a,EAAQoM,MAAOA,GAC7BryC,OAAOD,KAAKk2B,GAAYl1B,SAAQ,SAAU0H,GACxC,IAAIjG,EAAQyzB,EAAWxtB,IAET,IAAVjG,EACFyjC,EAAQsjQ,gBAAgB9gS,GAExBw9B,EAAQ8T,aAAatxC,GAAgB,IAAVjG,EAAiB,GAAKA,WAwDvD2tR,OAlDF,SAAgBp+H,GACd,IAAIltJ,EAAQktJ,EAAMltJ,MACdgnX,EAAgB,CAClBvgJ,OAAQ,CACNp1M,SAAUrxB,EAAM4lB,QAAQi+V,SACxB9nV,KAAM,IACNE,IAAK,IACL87P,OAAQ,KAEVzxD,MAAO,CACLj1M,SAAU,YAEZutQ,UAAW,IASb,OAPAzjS,OAAOsrB,OAAOzmB,EAAMuX,SAASkvN,OAAOj5L,MAAOw5U,EAAcvgJ,QACzDzmO,EAAM41L,OAASoxL,EAEXhnX,EAAMuX,SAAS+uN,OACjBnrO,OAAOsrB,OAAOzmB,EAAMuX,SAAS+uN,MAAM94L,MAAOw5U,EAAc1gJ,OAGnD,WACLnrO,OAAOD,KAAK8E,EAAMuX,UAAUrb,SAAQ,SAAU0H,GAC5C,IAAIw9B,EAAUphC,EAAMuX,SAAS3T,GACzBwtB,EAAapxB,EAAMoxB,WAAWxtB,IAAS,GAGvC4pC,EAFkBryC,OAAOD,KAAK8E,EAAM41L,OAAOz3L,eAAeyF,GAAQ5D,EAAM41L,OAAOhyL,GAAQojX,EAAcpjX,IAE7EgkL,QAAO,SAAUp6I,EAAOzvC,GAElD,OADAyvC,EAAMzvC,GAAY,GACXyvC,IACN,IAEE4zU,GAAchgV,IAAasgV,GAAYtgV,KAI5CjmC,OAAOsrB,OAAO2a,EAAQoM,MAAOA,GAC7BryC,OAAOD,KAAKk2B,GAAYl1B,SAAQ,SAAUwc,GACxC0oB,EAAQsjQ,gBAAgBhsR,YAa9B8qW,SAAU,CAAC,kBCnCE,IC/CX15R,GAAO,CACT/tD,KAAM,QACNC,MAAO,OACPE,OAAQ,MACRD,IAAK,UAEQ,SAASinQ,GAAqBn9D,GAC3C,OAAOA,EAAU1sJ,QAAQ,0BAA0B,SAAU8pN,GAC3D,OAAOr5M,GAAKq5M,MCRhB,IAAI,GAAO,CACT3uP,MAAO,MACPsR,IAAK,SAEQ,SAASmhU,GAA8BlhJ,GACpD,OAAOA,EAAU1sJ,QAAQ,cAAc,SAAU8pN,GAC/C,OAAO,GAAKA,MCLD,SAAS34D,GAASlsM,EAAQmC,GACvC,IAAIglI,EAAWhlI,EAAMymV,aAAezmV,EAAMymV,cAE1C,GAAI5oV,EAAOksM,SAAS/pM,GAClB,OAAO,EAEJ,GAAIglI,GAAY47M,GAAa57M,GAAW,CAC3C,IAAIjjK,EAAOi+B,EAEX,EAAG,CACD,GAAIj+B,GAAQ87B,EAAO4tM,WAAW1pO,GAC5B,OAAO,EAITA,EAAOA,EAAK8uL,YAAc9uL,EAAK8hR,WACxB9hR,GAIX,OAAO,ECrBM,SAAS2kX,GAAiB5mF,GACvC,OAAOplS,OAAOsrB,OAAO,GAAI85Q,EAAM,CAC7BxkQ,KAAMwkQ,EAAKxtR,EACXkpB,IAAKskQ,EAAKvtR,EACVgpB,MAAOukQ,EAAKxtR,EAAIwtR,EAAK5gR,MACrBuc,OAAQqkQ,EAAKvtR,EAAIutR,EAAK3gR,SCuB1B,SAASwnW,GAA2BhmV,EAASimV,GAC3C,MlBpBoB,akBoBbA,EAA8BF,GC1BxB,SAAyB/lV,GACtC,IAAIqgV,EAAM58E,GAAUzjQ,GAChBy4N,EAAO8nH,GAAmBvgV,GAC1ByhV,EAAiBpB,EAAIoB,eACrBljW,EAAQk6O,EAAKroB,YACb5xN,EAASi6O,EAAKvoB,aACdv+N,EAAI,EACJC,EAAI,EAuBR,OAjBI6vW,IACFljW,EAAQkjW,EAAeljW,MACvBC,EAASijW,EAAejjW,OASnB,iCAAiCL,KAAK49E,UAAUC,aACnDrqF,EAAI8vW,EAAetsH,WACnBvjP,EAAI6vW,EAAersH,YAIhB,CACL72O,MAAOA,EACPC,OAAQA,EACR7M,EAAGA,EAAI6uW,GAAoBxgV,GAC3BpuB,EAAGA,GDRiDs0W,CAAgBlmV,IAAY0tM,GAAUu4I,GAd9F,SAAoCjmV,GAClC,IAAIm/P,EAAOpxC,GAAsB/tN,GASjC,OARAm/P,EAAKtkQ,IAAMskQ,EAAKtkQ,IAAMmF,EAAQmhV,UAC9BhiF,EAAKxkQ,KAAOwkQ,EAAKxkQ,KAAOqF,EAAQkhV,WAChC/hF,EAAKrkQ,OAASqkQ,EAAKtkQ,IAAMmF,EAAQkwM,aACjCivD,EAAKvkQ,MAAQukQ,EAAKxkQ,KAAOqF,EAAQowM,YACjC+uD,EAAK5gR,MAAQyhB,EAAQowM,YACrB+uD,EAAK3gR,OAASwhB,EAAQkwM,aACtBivD,EAAKxtR,EAAIwtR,EAAKxkQ,KACdwkQ,EAAKvtR,EAAIutR,EAAKtkQ,IACPskQ,EAIuGgnF,CAA2BF,GAAkBF,GEtB9I,SAAyB/lV,GACtC,IAAIwhV,EAEA/oH,EAAO8nH,GAAmBvgV,GAC1BomV,EAAYhG,GAAgBpgV,GAC5BmrH,EAA0D,OAAlDq2N,EAAwBxhV,EAAQgtJ,oBAAyB,EAASw0L,EAAsBr2N,KAChG5sI,EAAQ,GAAIk6O,EAAKrW,YAAaqW,EAAKroB,YAAajlF,EAAOA,EAAKi3F,YAAc,EAAGj3F,EAAOA,EAAKilF,YAAc,GACvG5xN,EAAS,GAAIi6O,EAAK9T,aAAc8T,EAAKvoB,aAAc/kF,EAAOA,EAAKw5F,aAAe,EAAGx5F,EAAOA,EAAK+kF,aAAe,GAC5Gv+N,GAAKy0W,EAAUjkI,WAAaq+H,GAAoBxgV,GAChDpuB,GAAKw0W,EAAU/mF,UAMnB,MAJiD,QAA7C7wD,GAAiBrjF,GAAQstG,GAAM/kO,YACjC/hB,GAAK,GAAI8mP,EAAKroB,YAAajlF,EAAOA,EAAKilF,YAAc,GAAK7xN,GAGrD,CACLA,MAAOA,EACPC,OAAQA,EACR7M,EAAGA,EACHC,EAAGA,GFGuKy0W,CAAgB9F,GAAmBvgV,KAuBlM,SAASsmV,GAAgBtmV,EAAS45E,EAAU2sQ,GACzD,IAAIC,EAAmC,oBAAb5sQ,EAlB5B,SAA4B55E,GAC1B,IAAIymV,EAAkBlF,GAAkBpkF,GAAcn9P,IAElD0mV,EADoB,CAAC,WAAY,SAAS/qX,QAAQ6yO,GAAiBxuM,GAAS/P,WAAa,GACnD+vV,GAAchgV,GAAW89P,GAAgB99P,GAAWA,EAE9F,OAAK0tM,GAAUg5I,GAKRD,EAAgBvsX,QAAO,SAAU+rX,GACtC,OAAOv4I,GAAUu4I,IAAmB78I,GAAS68I,EAAgBS,IAAmD,SAAhCpG,GAAY2F,MALrF,GAYkDU,CAAmB3mV,GAAW,GAAGniB,OAAO+7F,GAC/F6sQ,EAAkB,GAAG5oW,OAAO2oW,EAAqB,CAACD,IAClDK,EAAsBH,EAAgB,GACtCI,EAAeJ,EAAgBjgM,QAAO,SAAUsgM,EAASb,GAC3D,IAAI9mF,EAAO6mF,GAA2BhmV,EAASimV,GAK/C,OAJAa,EAAQjsV,IAAM,GAAIskQ,EAAKtkQ,IAAKisV,EAAQjsV,KACpCisV,EAAQlsV,MAAQ,GAAIukQ,EAAKvkQ,MAAOksV,EAAQlsV,OACxCksV,EAAQhsV,OAAS,GAAIqkQ,EAAKrkQ,OAAQgsV,EAAQhsV,QAC1CgsV,EAAQnsV,KAAO,GAAIwkQ,EAAKxkQ,KAAMmsV,EAAQnsV,MAC/BmsV,IACNd,GAA2BhmV,EAAS4mV,IAKvC,OAJAC,EAAatoW,MAAQsoW,EAAajsV,MAAQisV,EAAalsV,KACvDksV,EAAaroW,OAASqoW,EAAa/rV,OAAS+rV,EAAahsV,IACzDgsV,EAAal1W,EAAIk1W,EAAalsV,KAC9BksV,EAAaj1W,EAAIi1W,EAAahsV,IACvBgsV,EGnEM,SAASE,GAAmBC,GACzC,OAAOjtX,OAAOsrB,OAAO,GCDd,CACLwV,IAAK,EACLD,MAAO,EACPE,OAAQ,EACRH,KAAM,GDHuCqsV,GEFlC,SAASC,GAAgB1qX,EAAOzC,GAC7C,OAAOA,EAAK0sL,QAAO,SAAU0gM,EAASnsX,GAEpC,OADAmsX,EAAQnsX,GAAOwB,EACR2qX,IACN,ICMU,SAASC,GAAevoX,EAAO4lB,QAC5B,IAAZA,IACFA,EAAU,IAGZ,IAAI0/V,EAAW1/V,EACX4iW,EAAqBlD,EAASv/I,UAC9BA,OAAmC,IAAvByiJ,EAAgCxoX,EAAM+lO,UAAYyiJ,EAC9DC,EAAoBnD,EAAStqQ,SAC7BA,OAAiC,IAAtBytQ,ExBXY,kBwBWqCA,EAC5DC,EAAwBpD,EAASqC,aACjCA,OAAyC,IAA1Be,ExBZC,WwBY6CA,EAC7DC,EAAwBrD,EAASsD,eACjCA,OAA2C,IAA1BD,ExBbH,SwBa+CA,EAC7DE,EAAuBvD,EAASwD,YAChCA,OAAuC,IAAzBD,GAA0CA,EACxDE,EAAmBzD,EAASz5H,QAC5BA,OAA+B,IAArBk9H,EAA8B,EAAIA,EAC5CX,EAAgBD,GAAsC,kBAAZt8H,EAAuBA,EAAUw8H,GAAgBx8H,EAASs3H,KACpG6F,ExBnBc,WwBmBDJ,ExBlBI,YADH,SwBoBdtlF,EAAatjS,EAAMwiS,MAAM/7D,OACzBrlM,EAAUphC,EAAMuX,SAASuxW,EAAcE,EAAaJ,GACpDK,EAAqBvB,GAAgB54I,GAAU1tM,GAAWA,EAAUA,EAAQwjV,gBAAkBjD,GAAmB3hX,EAAMuX,SAASkvN,QAASzrH,EAAU2sQ,GACnJuB,EAAsB/5H,GAAsBnvP,EAAMuX,SAASqnR,WAC3D2E,EAAgBoiF,GAAe,CACjC/mF,UAAWsqF,EACX9nV,QAASkiQ,EACTugF,SAAU,WACV99I,UAAWA,IAETojJ,EAAmBhC,GAAiBhsX,OAAOsrB,OAAO,GAAI68Q,EAAYC,IAClE6lF,ExB/Bc,WwB+BMR,EAA4BO,EAAmBD,EAGnEG,EAAkB,CACpBptV,IAAKgtV,EAAmBhtV,IAAMmtV,EAAkBntV,IAAMmsV,EAAcnsV,IACpEC,OAAQktV,EAAkBltV,OAAS+sV,EAAmB/sV,OAASksV,EAAclsV,OAC7EH,KAAMktV,EAAmBltV,KAAOqtV,EAAkBrtV,KAAOqsV,EAAcrsV,KACvEC,MAAOotV,EAAkBptV,MAAQitV,EAAmBjtV,MAAQosV,EAAcpsV,OAExEstV,EAAatpX,EAAMukX,cAAc9rW,OAErC,GxB1CkB,WwB0CdmwW,GAA6BU,EAAY,CAC3C,IAAI7wW,EAAS6wW,EAAWvjJ,GACxB5qO,OAAOD,KAAKmuX,GAAiBntX,SAAQ,SAAUC,GAC7C,IAAIojC,EAAW,CAACvD,GAAOE,IAAQn/B,QAAQZ,IAAQ,EAAI,GAAK,EACpDmtB,EAAO,CAAC,GAAK4S,IAAQn/B,QAAQZ,IAAQ,EAAI,IAAM,IACnDktX,EAAgBltX,IAAQsc,EAAO6Q,GAAQiW,KAI3C,OAAO8pV,EC5DF,SAASE,GAAO92W,EAAK9U,EAAO+U,GACjC,OAAO,GAAQD,EAAK,GAAQ9U,EAAO+U,ICCrC,SAAS82W,GAAe9qF,EAAU6B,EAAMkpF,GAQtC,YAPyB,IAArBA,IACFA,EAAmB,CACjB12W,EAAG,EACHC,EAAG,IAIA,CACLipB,IAAKyiQ,EAASziQ,IAAMskQ,EAAK3gR,OAAS6pW,EAAiBz2W,EACnDgpB,MAAO0iQ,EAAS1iQ,MAAQukQ,EAAK5gR,MAAQ8pW,EAAiB12W,EACtDmpB,OAAQwiQ,EAASxiQ,OAASqkQ,EAAK3gR,OAAS6pW,EAAiBz2W,EACzD+oB,KAAM2iQ,EAAS3iQ,KAAOwkQ,EAAK5gR,MAAQ8pW,EAAiB12W,GAIxD,SAAS22W,GAAsBhrF,GAC7B,MAAO,CAAC,GAAK1iQ,GAAOE,GAAQH,IAAMo6J,MAAK,SAAUlwJ,GAC/C,OAAOy4P,EAASz4P,IAAS,KAiCd,IC3CX,GAA4B89U,GAAgB,CAC9CI,iBAFqB,CtB+BR,CACbvgX,KAAM,iBACN6a,SAAS,EACTomW,MAAO,QACPloX,GAAI,aACJ2uR,OAxCF,SAAgB33K,GACd,IAAI3zG,EAAQ2zG,EAAK3zG,MACb+iL,EAAWpvE,EAAKovE,SAChBn9J,EAAU+tF,EAAK/tF,QACf+jW,EAAkB/jW,EAAQw8V,OAC1BA,OAA6B,IAApBuH,GAAoCA,EAC7CC,EAAkBhkW,EAAQikW,OAC1BA,OAA6B,IAApBD,GAAoCA,EAC7CvvN,EAASwqI,GAAU7kS,EAAMuX,SAASkvN,QAClCy+D,EAAgB,GAAGjmR,OAAOjf,EAAMklS,cAActG,UAAW5+R,EAAMklS,cAAcz+D,QAYjF,OAVI27I,GACFl9E,EAAchpS,SAAQ,SAAUslS,GAC9BA,EAAa58N,iBAAiB,SAAUm+G,EAAS/5J,OAAQmhP,OAIzD0/G,GACFxvN,EAAOz1F,iBAAiB,SAAUm+G,EAAS/5J,OAAQmhP,IAG9C,WACDi4G,GACFl9E,EAAchpS,SAAQ,SAAUslS,GAC9BA,EAAa/8N,oBAAoB,SAAUs+G,EAAS/5J,OAAQmhP,OAI5D0/G,GACFxvN,EAAO51F,oBAAoB,SAAUs+G,EAAS/5J,OAAQmhP,MAY1D7pP,KAAM,IK7BO,CACb1c,KAAM,gBACN6a,SAAS,EACTomW,MAAO,OACPloX,GApBF,SAAuBg3G,GACrB,IAAI3zG,EAAQ2zG,EAAK3zG,MACb4D,EAAO+vG,EAAK/vG,KAKhB5D,EAAMukX,cAAc3gX,GAAQ+hX,GAAe,CACzC/mF,UAAW5+R,EAAMwiS,MAAM5D,UACvBx9P,QAASphC,EAAMwiS,MAAM/7D,OACrBo9I,SAAU,WACV99I,UAAW/lO,EAAM+lO,aAUnBzlN,KAAM,ICuJO,CACb1c,KAAM,gBACN6a,SAAS,EACTomW,MAAO,cACPloX,GAzDF,SAAuBqwQ,GACrB,IAAIhtQ,EAAQgtQ,EAAMhtQ,MACd4lB,EAAUonP,EAAMpnP,QAChBkkW,EAAwBlkW,EAAQojR,gBAChCA,OAA4C,IAA1B8gF,GAA0CA,EAC5DC,EAAoBnkW,EAAQsgW,SAC5BA,OAAiC,IAAtB6D,GAAsCA,EACjDC,EAAwBpkW,EAAQugW,aAChCA,OAAyC,IAA1B6D,GAA0CA,EAYzDnD,EAAe,CACjB9gJ,UAAWy/I,GAAiBxlX,EAAM+lO,WAClC68D,UAAW6iF,GAAazlX,EAAM+lO,WAC9BU,OAAQzmO,EAAMuX,SAASkvN,OACvB68D,WAAYtjS,EAAMwiS,MAAM/7D,OACxBuiE,gBAAiBA,EACjBlH,QAAoC,UAA3B9hS,EAAM4lB,QAAQi+V,UAGgB,MAArC7jX,EAAMukX,cAAchhF,gBACtBvjS,EAAM41L,OAAO6wC,OAAStrO,OAAOsrB,OAAO,GAAIzmB,EAAM41L,OAAO6wC,OAAQu/I,GAAY7qX,OAAOsrB,OAAO,GAAIogW,EAAc,CACvG1wN,QAASn2J,EAAMukX,cAAchhF,cAC7BlyQ,SAAUrxB,EAAM4lB,QAAQi+V,SACxBqC,SAAUA,EACVC,aAAcA,OAIe,MAA7BnmX,EAAMukX,cAAcj+I,QACtBtmO,EAAM41L,OAAO0wC,MAAQnrO,OAAOsrB,OAAO,GAAIzmB,EAAM41L,OAAO0wC,MAAO0/I,GAAY7qX,OAAOsrB,OAAO,GAAIogW,EAAc,CACrG1wN,QAASn2J,EAAMukX,cAAcj+I,MAC7Bj1M,SAAU,WACV60V,UAAU,EACVC,aAAcA,OAIlBnmX,EAAMoxB,WAAWq1M,OAAStrO,OAAOsrB,OAAO,GAAIzmB,EAAMoxB,WAAWq1M,OAAQ,CACnE,wBAAyBzmO,EAAM+lO,aAUjCzlN,KAAM,IgBzK8D,GdqCvD,CACb1c,KAAM,SACN6a,SAAS,EACTomW,MAAO,OACPrB,SAAU,CAAC,iBACX7mX,GA5BF,SAAgBuwJ,GACd,IAAIltJ,EAAQktJ,EAAMltJ,MACd4lB,EAAUsnI,EAAMtnI,QAChBhiB,EAAOspJ,EAAMtpJ,KACbqmX,EAAkBrkW,EAAQnN,OAC1BA,OAA6B,IAApBwxW,EAA6B,CAAC,EAAG,GAAKA,EAC/C3pW,EAAO,GAAWsnK,QAAO,SAAUy7L,EAAKt9I,GAE1C,OADAs9I,EAAIt9I,GA5BD,SAAiCA,EAAWy8D,EAAO/pR,GACxD,IAAIutR,EAAgBw/E,GAAiBz/I,GACjCmkJ,EAAiB,CAACnuV,GAAM,IAAKh/B,QAAQipS,IAAkB,GAAK,EAAI,EAEhEryL,EAAyB,oBAAXl7F,EAAwBA,EAAOtd,OAAOsrB,OAAO,GAAI+7Q,EAAO,CACxEz8D,UAAWA,KACPttN,EACF0xW,EAAWx2Q,EAAK,GAChBl0E,EAAWk0E,EAAK,GAIpB,OAFAw2Q,EAAWA,GAAY,EACvB1qV,GAAYA,GAAY,GAAKyqV,EACtB,CAACnuV,GAAMC,IAAOj/B,QAAQipS,IAAkB,EAAI,CACjDjzR,EAAG0sB,EACHzsB,EAAGm3W,GACD,CACFp3W,EAAGo3W,EACHn3W,EAAGysB,GAWc2qV,CAAwBrkJ,EAAW/lO,EAAMwiS,MAAO/pR,GAC1D4qW,IACN,IACCgH,EAAwB/pW,EAAKtgB,EAAM+lO,WACnChzN,EAAIs3W,EAAsBt3W,EAC1BC,EAAIq3W,EAAsBr3W,EAEW,MAArChT,EAAMukX,cAAchhF,gBACtBvjS,EAAMukX,cAAchhF,cAAcxwR,GAAKA,EACvC/S,EAAMukX,cAAchhF,cAAcvwR,GAAKA,GAGzChT,EAAMukX,cAAc3gX,GAAQ0c,Ie8Ff,CACb1c,KAAM,OACN6a,SAAS,EACTomW,MAAO,OACPloX,GA5HF,SAAcg3G,GACZ,IAAI3zG,EAAQ2zG,EAAK3zG,MACb4lB,EAAU+tF,EAAK/tF,QACfhiB,EAAO+vG,EAAK/vG,KAEhB,IAAI5D,EAAMukX,cAAc3gX,GAAM0mX,MAA9B,CAoCA,IAhCA,IAAIC,EAAoB3kW,EAAQkgW,SAC5B0E,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmB7kW,EAAQ8kW,QAC3BC,OAAoC,IAArBF,GAAqCA,EACpDG,EAA8BhlW,EAAQilW,mBACtCh/H,EAAUjmO,EAAQimO,QAClB7wI,EAAWp1F,EAAQo1F,SACnB2sQ,EAAe/hW,EAAQ+hW,aACvBmB,EAAcljW,EAAQkjW,YACtBgC,EAAwBllW,EAAQ2iR,eAChCA,OAA2C,IAA1BuiF,GAA0CA,EAC3DC,EAAwBnlW,EAAQmlW,sBAChCC,EAAqBhrX,EAAM4lB,QAAQmgN,UACnCigE,EAAgBw/E,GAAiBwF,GAEjCH,EAAqBD,IADH5kF,IAAkBglF,IACqCziF,EAAiB,CAACrF,GAAqB8nF,IAjCtH,SAAuCjlJ,GACrC,G5BLgB,S4BKZy/I,GAAiBz/I,GACnB,MAAO,GAGT,IAAIklJ,EAAoB/nF,GAAqBn9D,GAC7C,MAAO,CAACkhJ,GAA8BlhJ,GAAYklJ,EAAmBhE,GAA8BgE,IA2BwCC,CAA8BF,IACrKpjJ,EAAa,CAACojJ,GAAoB/rW,OAAO4rW,GAAoBjjM,QAAO,SAAUy7L,EAAKt9I,GACrF,OAAOs9I,EAAIpkW,O5BvCG,S4BuCIumW,GAAiBz/I,GCvCxB,SAA8B/lO,EAAO4lB,QAClC,IAAZA,IACFA,EAAU,IAGZ,IAAI0/V,EAAW1/V,EACXmgN,EAAYu/I,EAASv/I,UACrB/qH,EAAWsqQ,EAAStqQ,SACpB2sQ,EAAerC,EAASqC,aACxB97H,EAAUy5H,EAASz5H,QACnB08C,EAAiB+8E,EAAS/8E,eAC1B4iF,EAAwB7F,EAASyF,sBACjCA,OAAkD,IAA1BI,EAAmC,GAAgBA,EAC3EvoF,EAAY6iF,GAAa1/I,GACzB6B,EAAag7D,EAAY2F,EAAiB66E,GAAsBA,GAAoB9nX,QAAO,SAAUyqO,GACvG,OAAO0/I,GAAa1/I,KAAe68D,KAChCugF,GACDiI,EAAoBxjJ,EAAWtsO,QAAO,SAAUyqO,GAClD,OAAOglJ,EAAsBhuX,QAAQgpO,IAAc,KAGpB,IAA7BqlJ,EAAkBpvX,SACpBovX,EAAoBxjJ,GAQtB,IAAIyjJ,EAAYD,EAAkBxjM,QAAO,SAAUy7L,EAAKt9I,GAOtD,OANAs9I,EAAIt9I,GAAawiJ,GAAevoX,EAAO,CACrC+lO,UAAWA,EACX/qH,SAAUA,EACV2sQ,aAAcA,EACd97H,QAASA,IACR25H,GAAiBz/I,IACbs9I,IACN,IACH,OAAOloX,OAAOD,KAAKmwX,GAAWl8S,MAAK,SAAUn5D,EAAGC,GAC9C,OAAOo1W,EAAUr1W,GAAKq1W,EAAUp1W,MDDyBqsR,CAAqBtiS,EAAO,CACnF+lO,UAAWA,EACX/qH,SAAUA,EACV2sQ,aAAcA,EACd97H,QAASA,EACT08C,eAAgBA,EAChBwiF,sBAAuBA,IACpBhlJ,KACJ,IACCulJ,EAAgBtrX,EAAMwiS,MAAM5D,UAC5B0E,EAAatjS,EAAMwiS,MAAM/7D,OACzB8kJ,EAAY,IAAI9uX,IAChB+uX,GAAqB,EACrBC,EAAwB7jJ,EAAW,GAE9B9rO,EAAI,EAAGA,EAAI8rO,EAAW5rO,OAAQF,IAAK,CAC1C,IAAIiqO,EAAY6B,EAAW9rO,GAEvB4vX,EAAiBlG,GAAiBz/I,GAElC4lJ,E5BzDW,U4ByDQlG,GAAa1/I,GAChCiR,EAAa,CAAC,GAAK96M,IAAQn/B,QAAQ2uX,IAAmB,EACtD7+V,EAAMmqN,EAAa,QAAU,SAC7B0nD,EAAW6pF,GAAevoX,EAAO,CACnC+lO,UAAWA,EACX/qH,SAAUA,EACV2sQ,aAAcA,EACdmB,YAAaA,EACbj9H,QAASA,IAEP+/H,EAAoB50I,EAAa20I,EAAmB3vV,GAAQD,GAAO4vV,EAAmBzvV,GAAS,GAE/FovV,EAAcz+V,GAAOy2Q,EAAWz2Q,KAClC++V,EAAoB1oF,GAAqB0oF,IAG3C,IAAIC,EAAmB3oF,GAAqB0oF,GACxCE,EAAS,GAUb,GARItB,GACFsB,EAAOpwX,KAAKgjS,EAASgtF,IAAmB,GAGtCf,GACFmB,EAAOpwX,KAAKgjS,EAASktF,IAAsB,EAAGltF,EAASmtF,IAAqB,GAG1EC,EAAOpvK,OAAM,SAAUr1B,GACzB,OAAOA,KACL,CACFokM,EAAwB1lJ,EACxBylJ,GAAqB,EACrB,MAGFD,EAAUpuX,IAAI4oO,EAAW+lJ,GAG3B,GAAIN,EAqBF,IAnBA,IAEIjtO,EAAQ,SAAe/9H,GACzB,IAAIurW,EAAmBnkJ,EAAWhpF,MAAK,SAAUmnF,GAC/C,IAAI+lJ,EAASP,EAAUruX,IAAI6oO,GAE3B,GAAI+lJ,EACF,OAAOA,EAAOtnX,MAAM,EAAGgc,GAAIk8L,OAAM,SAAUr1B,GACzC,OAAOA,QAKb,GAAI0kM,EAEF,OADAN,EAAwBM,EACjB,SAIFvrW,EAnBY+nR,EAAiB,EAAI,EAmBZ/nR,EAAK,EAAGA,IAAM,CAG1C,GAAa,UAFF+9H,EAAM/9H,GAEK,MAItBxgB,EAAM+lO,YAAc0lJ,IACtBzrX,EAAMukX,cAAc3gX,GAAM0mX,OAAQ,EAClCtqX,EAAM+lO,UAAY0lJ,EAClBzrX,EAAMoD,OAAQ,KAUhBqgX,iBAAkB,CAAC,UACnBnjW,KAAM,CACJgqW,OAAO,IETI,CACb1mX,KAAM,kBACN6a,SAAS,EACTomW,MAAO,OACPloX,GA/HF,SAAyBg3G,GACvB,IAAI3zG,EAAQ2zG,EAAK3zG,MACb4lB,EAAU+tF,EAAK/tF,QACfhiB,EAAO+vG,EAAK/vG,KACZ2mX,EAAoB3kW,EAAQkgW,SAC5B0E,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmB7kW,EAAQ8kW,QAC3BC,OAAoC,IAArBF,GAAsCA,EACrDzvQ,EAAWp1F,EAAQo1F,SACnB2sQ,EAAe/hW,EAAQ+hW,aACvBmB,EAAcljW,EAAQkjW,YACtBj9H,EAAUjmO,EAAQimO,QAClBmgI,EAAkBpmW,EAAQqmW,OAC1BA,OAA6B,IAApBD,GAAoCA,EAC7CE,EAAwBtmW,EAAQumW,aAChCA,OAAyC,IAA1BD,EAAmC,EAAIA,EACtDxtF,EAAW6pF,GAAevoX,EAAO,CACnCg7G,SAAUA,EACV2sQ,aAAcA,EACd97H,QAASA,EACTi9H,YAAaA,IAEX9iF,EAAgBw/E,GAAiBxlX,EAAM+lO,WACvC68D,EAAY6iF,GAAazlX,EAAM+lO,WAC/BqmJ,GAAmBxpF,EACnBkjF,EAAWJ,GAAyB1/E,GACpC0kF,ECrCY,MDqCS5E,ECrCH,IAAM,IDsCxBviF,EAAgBvjS,EAAMukX,cAAchhF,cACpC+nF,EAAgBtrX,EAAMwiS,MAAM5D,UAC5B0E,EAAatjS,EAAMwiS,MAAM/7D,OACzB4lJ,EAA4C,oBAAjBF,EAA8BA,EAAahxX,OAAOsrB,OAAO,GAAIzmB,EAAMwiS,MAAO,CACvGz8D,UAAW/lO,EAAM+lO,aACbomJ,EACFG,EAA2D,kBAAtBD,EAAiC,CACxEvG,SAAUuG,EACV3B,QAAS2B,GACPlxX,OAAOsrB,OAAO,CAChBq/V,SAAU,EACV4E,QAAS,GACR2B,GACCE,EAAsBvsX,EAAMukX,cAAc9rW,OAASzY,EAAMukX,cAAc9rW,OAAOzY,EAAM+lO,WAAa,KACjGzlN,EAAO,CACTvN,EAAG,EACHC,EAAG,GAGL,GAAKuwR,EAAL,CAIA,GAAIinF,EAAe,CACjB,IAAIgC,EAEA/oF,EAAwB,MAAbqiF,EAAmB,GAAM/pV,GACpCwrQ,EAAuB,MAAbu+E,EAAmB5pV,GAASF,GACtCnP,EAAmB,MAAbi5V,EAAmB,SAAW,QACpCrtW,EAAS8qR,EAAcuiF,GACvBrzW,EAAMgG,EAASimR,EAAS+E,GACxB/wR,EAAM+F,EAASimR,EAAS6I,GACxBklF,EAAWR,GAAU3oF,EAAWz2Q,GAAO,EAAI,EAC3C43O,E9BlEW,U8BkEFm+B,EAAsB0oF,EAAcz+V,GAAOy2Q,EAAWz2Q,GAC/D6/V,E9BnEW,U8BmEF9pF,GAAuBU,EAAWz2Q,IAAQy+V,EAAcz+V,GAGjE+pN,EAAe52O,EAAMuX,SAAS+uN,MAC9BqmJ,EAAYV,GAAUr1I,EAAe4rI,GAAc5rI,GAAgB,CACrEj3N,MAAO,EACPC,OAAQ,GAENgtW,EAAqB5sX,EAAMukX,cAAc,oBAAsBvkX,EAAMukX,cAAc,oBAAoB14H,QRhFtG,CACL5vN,IAAK,EACLD,MAAO,EACPE,OAAQ,EACRH,KAAM,GQ6EF8wV,EAAkBD,EAAmBnpF,GACrCqpF,EAAkBF,EAAmBrlF,GAMrCwlF,EAAWxD,GAAO,EAAG+B,EAAcz+V,GAAM8/V,EAAU9/V,IACnDmgW,EAAYZ,EAAkBd,EAAcz+V,GAAO,EAAI4/V,EAAWM,EAAWF,EAAkBP,EAA4BxG,SAAWrhH,EAASsoH,EAAWF,EAAkBP,EAA4BxG,SACxMj+F,EAAYukG,GAAmBd,EAAcz+V,GAAO,EAAI4/V,EAAWM,EAAWD,EAAkBR,EAA4BxG,SAAW4G,EAASK,EAAWD,EAAkBR,EAA4BxG,SACzMmH,EAAoBjtX,EAAMuX,SAAS+uN,OAAS44D,GAAgBl/R,EAAMuX,SAAS+uN,OAC3E4mJ,EAAeD,EAAiC,MAAbnH,EAAmBmH,EAAkB1K,WAAa,EAAI0K,EAAkB3K,YAAc,EAAI,EAC7H6K,EAAwH,OAAjGX,EAA+C,MAAvBD,OAA8B,EAASA,EAAoBzG,IAAqB0G,EAAwB,EAEvJY,EAAY30W,EAASovQ,EAAYslG,EACjCE,EAAkB9D,GAAO0C,EAAS,GAAQx5W,EAF9BgG,EAASu0W,EAAYG,EAAsBD,GAEKz6W,EAAKgG,EAAQwzW,EAAS,GAAQv5W,EAAK06W,GAAa16W,GAChH6wR,EAAcuiF,GAAYuH,EAC1B/sW,EAAKwlW,GAAYuH,EAAkB50W,EAGrC,GAAIkyW,EAAc,CAChB,IAAI2C,EAEAC,EAAyB,MAAbzH,EAAmB,GAAM/pV,GAErCyxV,GAAwB,MAAb1H,EAAmB5pV,GAASF,GAEvC0X,GAAU6vP,EAAcmnF,GAExBzjM,GAAmB,MAAZyjM,EAAkB,SAAW,QAEpC+C,GAAO/5U,GAAUgrP,EAAS6uF,GAE1BG,GAAOh6U,GAAUgrP,EAAS8uF,IAE1BG,IAAuD,IAAxC,CAAC,GAAK5xV,IAAMh/B,QAAQipS,GAEnC4nF,GAAyH,OAAjGN,EAAgD,MAAvBf,OAA8B,EAASA,EAAoB7B,IAAoB4C,EAAyB,EAEzJO,GAAaF,GAAeF,GAAO/5U,GAAU43U,EAAcrkM,IAAQq8G,EAAWr8G,IAAQ2mM,GAAuBtB,EAA4B5B,QAEzIoD,GAAaH,GAAej6U,GAAU43U,EAAcrkM,IAAQq8G,EAAWr8G,IAAQ2mM,GAAuBtB,EAA4B5B,QAAUgD,GAE5IK,GAAmB9B,GAAU0B,GLzH9B,SAAwBl7W,EAAK9U,EAAO+U,GACzC,IAAI0E,EAAImyW,GAAO92W,EAAK9U,EAAO+U,GAC3B,OAAO0E,EAAI1E,EAAMA,EAAM0E,EKuH2B42W,CAAeH,GAAYn6U,GAASo6U,IAAcvE,GAAO0C,EAAS4B,GAAaJ,GAAM/5U,GAASu4U,EAAS6B,GAAaJ,IAEpKnqF,EAAcmnF,GAAWqD,GACzBztW,EAAKoqW,GAAWqD,GAAmBr6U,GAGrC1zC,EAAMukX,cAAc3gX,GAAQ0c,IAS5BmjW,iBAAkB,CAAC,WEhDN,CACb7/W,KAAM,QACN6a,SAAS,EACTomW,MAAO,OACPloX,GA9EF,SAAeg3G,GACb,IAAIs6Q,EAEAjuX,EAAQ2zG,EAAK3zG,MACb4D,EAAO+vG,EAAK/vG,KACZgiB,EAAU+tF,EAAK/tF,QACfgxN,EAAe52O,EAAMuX,SAAS+uN,MAC9Bi9D,EAAgBvjS,EAAMukX,cAAchhF,cACpCyC,EAAgBw/E,GAAiBxlX,EAAM+lO,WACvCz8M,EAAOo8V,GAAyB1/E,GAEhCn5Q,EADa,CAACkP,GAAMC,IAAOj/B,QAAQipS,IAAkB,EAClC,SAAW,QAElC,GAAKpvD,GAAiB2sD,EAAtB,CAIA,IAAI6kF,EAxBgB,SAAyBv8H,EAAS7rP,GAItD,OAAOmoX,GAAsC,kBAH7Ct8H,EAA6B,oBAAZA,EAAyBA,EAAQ1wP,OAAOsrB,OAAO,GAAIzmB,EAAMwiS,MAAO,CAC/Ez8D,UAAW/lO,EAAM+lO,aACb8lB,GACkDA,EAAUw8H,GAAgBx8H,EAASs3H,KAoBvE,CAAgBv9V,EAAQimO,QAAS7rP,GACjD2sX,EAAYnK,GAAc5rI,GAC1Bs3I,EAAmB,MAAT5kW,EAAe,GAAMyS,GAC/BoyV,EAAmB,MAAT7kW,EAAe4S,GAASF,GAClCoyV,EAAUpuX,EAAMwiS,MAAM5D,UAAU/xQ,GAAO7sB,EAAMwiS,MAAM5D,UAAUt1Q,GAAQi6Q,EAAcj6Q,GAAQtpB,EAAMwiS,MAAM/7D,OAAO55M,GAC9GwhW,EAAY9qF,EAAcj6Q,GAAQtpB,EAAMwiS,MAAM5D,UAAUt1Q,GACxD2jW,EAAoB/tF,GAAgBtoD,GACpC03I,EAAarB,EAA6B,MAAT3jW,EAAe2jW,EAAkB37I,cAAgB,EAAI27I,EAAkBz7I,aAAe,EAAI,EAC3H+8I,EAAoBH,EAAU,EAAIC,EAAY,EAG9C57W,EAAM21W,EAAc8F,GACpBx7W,EAAM47W,EAAa3B,EAAU9/V,GAAOu7V,EAAc+F,GAClDt1W,EAASy1W,EAAa,EAAI3B,EAAU9/V,GAAO,EAAI0hW,EAC/C91W,EAAS8wW,GAAO92W,EAAKoG,EAAQnG,GAE7B87W,EAAWllW,EACftpB,EAAMukX,cAAc3gX,KAASqqX,EAAwB,IAA0BO,GAAY/1W,EAAQw1W,EAAsBQ,aAAeh2W,EAASI,EAAQo1W,KA6CzJ3iG,OA1CF,SAAgBp+H,GACd,IAAIltJ,EAAQktJ,EAAMltJ,MAEd0uX,EADUxhO,EAAMtnI,QACWwb,QAC3Bw1M,OAAoC,IAArB83I,EAA8B,sBAAwBA,EAErD,MAAhB93I,IAKwB,kBAAjBA,IACTA,EAAe52O,EAAMuX,SAASkvN,OAAO6vB,cAAc1f,MAahDpM,GAASxqO,EAAMuX,SAASkvN,OAAQmQ,KAQrC52O,EAAMuX,SAAS+uN,MAAQsQ,IAUvB4sI,SAAU,CAAC,iBACXC,iBAAkB,CAAC,oBN7CN,CACb7/W,KAAM,OACN6a,SAAS,EACTomW,MAAO,OACPpB,iBAAkB,CAAC,mBACnB9mX,GAlCF,SAAcg3G,GACZ,IAAI3zG,EAAQ2zG,EAAK3zG,MACb4D,EAAO+vG,EAAK/vG,KACZ0nX,EAAgBtrX,EAAMwiS,MAAM5D,UAC5B0E,EAAatjS,EAAMwiS,MAAM/7D,OACzBgjJ,EAAmBzpX,EAAMukX,cAAcpoI,gBACvCwyI,EAAoBpG,GAAevoX,EAAO,CAC5C4oX,eAAgB,cAEdgG,EAAoBrG,GAAevoX,EAAO,CAC5C8oX,aAAa,IAEX+F,EAA2BrF,GAAemF,EAAmBrD,GAC7DwD,EAAsBtF,GAAeoF,EAAmBtrF,EAAYmmF,GACpEsF,EAAoBrF,GAAsBmF,GAC1CG,EAAmBtF,GAAsBoF,GAC7C9uX,EAAMukX,cAAc3gX,GAAQ,CAC1BirX,yBAA0BA,EAC1BC,oBAAqBA,EACrBC,kBAAmBA,EACnBC,iBAAkBA,GAEpBhvX,EAAMoxB,WAAWq1M,OAAStrO,OAAOsrB,OAAO,GAAIzmB,EAAMoxB,WAAWq1M,OAAQ,CACnE,+BAAgCsoJ,EAChC,sBAAuBC,SOrCvBC,GAAgB,CAClB9kH,SAAS,EACTspG,SAAS,GAGPyb,GAA0B,WAC5B,OAAOvxW,SAAS4uI,MAOlB,SAAS4iO,GAAwBxxX,EAAO2T,EAAOszO,GAC7C,GAAI1jO,MAAMC,QAAQxjB,GAAQ,CACxB,IAAIyZ,EAAIzZ,EAAM2T,GACd,OAAY,MAAL8F,EAAY8J,MAAMC,QAAQyjO,GAAgBA,EAAatzO,GAASszO,EAAextO,EAGxF,OAAOzZ,EAGT,SAAS6yT,GAAO7yT,EAAOoD,GACrB,IAAIitL,EAAM,GAAGnxL,SAASC,KAAKa,GAC3B,OAAkC,IAA3BqwL,EAAIjxL,QAAQ,YAAoBixL,EAAIjxL,QAAQgE,EAAO,MAAQ,EAGpE,SAASquX,GAAuBzxX,EAAOsoL,GACrC,MAAwB,oBAAVtoL,EAAuBA,EAAMhC,WAAM,EAAQsqL,GAAQtoL,EAGnE,SAAS,GAAShB,EAAI0yX,GAEpB,OAAW,IAAPA,EACK1yX,EAIF,SAAUuD,GACf86M,aAAakvB,GACbA,EAAUr+E,YAAW,WACnBlvJ,EAAGuD,KACFmvX,IALL,IAAInlJ,EAqBN,SAASolJ,GAAiB3xX,GACxB,MAAO,GAAGshB,OAAOthB,GAGnB,SAAS4xX,GAAantM,EAAKzkL,IACG,IAAxBykL,EAAIrlL,QAAQY,IACdykL,EAAI1mL,KAAKiC,GAUb,SAAS,GAAiBooO,GACxB,OAAOA,EAAU3tJ,MAAM,KAAK,GAG9B,SAASo3S,GAAU7xX,GACjB,MAAO,GAAG6G,MAAM1H,KAAKa,GAGvB,SAAS8xX,GAAqBtwX,GAC5B,OAAOhE,OAAOD,KAAKiE,GAAKyoL,QAAO,SAAUy7L,EAAKlnX,GAK5C,YAJiBO,IAAbyC,EAAIhD,KACNknX,EAAIlnX,GAAOgD,EAAIhD,IAGVknX,IACN,IAGL,SAASqM,KACP,OAAO/xW,SAAS4xK,cAAc,OAGhC,SAAS,GAAU5xL,GACjB,MAAO,CAAC,UAAW,YAAYw4L,MAAK,SAAUp1L,GAC5C,OAAOyvT,GAAO7yT,EAAOoD,MAQzB,SAAS4uX,GAAahyX,GACpB,OAAO6yT,GAAO7yT,EAAO,cAGvB,SAASiyX,GAAmBjyX,GAC1B,SAAUA,IAASA,EAAMkyX,QAAUlyX,EAAMkyX,OAAOjxF,YAAcjhS,GAGhE,SAASmyX,GAAmBnyX,GAC1B,OAAI,GAAUA,GACL,CAACA,GAdZ,SAAoBA,GAClB,OAAO6yT,GAAO7yT,EAAO,YAgBjBoyX,CAAWpyX,GACN6xX,GAAU7xX,GAGfujB,MAAMC,QAAQxjB,GACTA,EAGF6xX,GAAU7xW,SAASo2K,iBAAiBp2L,IAG7C,SAASqyX,GAAsBp8L,EAAKj2L,GAClCi2L,EAAI13L,SAAQ,SAAUk1L,GAChBA,IACFA,EAAG5jJ,MAAMk8L,mBAAqB/rO,EAAQ,SAK5C,SAASsyX,GAAmBr8L,EAAK5zL,GAC/B4zL,EAAI13L,SAAQ,SAAUk1L,GAChBA,GACFA,EAAGl8I,aAAa,aAAcl1C,MAKpC,SAASkwX,GAAiBC,GACxB,IAAIvN,EAGAxhV,EADoBkuV,GAAiBa,GACT,GAGhC,OAAkB,MAAX/uV,GAAsE,OAAlDwhV,EAAwBxhV,EAAQgtJ,gBAA0Bw0L,EAAsBr2N,KAAOnrH,EAAQgtJ,cAAgBzwK,SA8B5I,SAASyyW,GAA4B7/V,EAAKo9I,EAAQz8J,GAChD,IAAIjR,EAAS0tK,EAAS,gBAGtB,CAAC,gBAAiB,uBAAuBzxK,SAAQ,SAAUsV,GACzD+e,EAAItwB,GAAQuR,EAAON,MASvB,SAASm/W,GAAe/xV,EAAQmC,GAG9B,IAFA,IAAI5kC,EAAS4kC,EAEN5kC,GAAQ,CACb,IAAIy0X,EAEJ,GAAIhyV,EAAOksM,SAAS3uO,GAClB,OAAO,EAGTA,EAA+B,MAAtBA,EAAOqrX,aAA+E,OAA/CoJ,EAAsBz0X,EAAOqrX,oBAAvC,EAAyEoJ,EAAoBhsG,KAGrI,OAAO,EAGT,IAAIisG,GAAe,CACjBtlH,SAAS,GAEPulH,GAAoB,EAQxB,SAASC,KACHF,GAAatlH,UAIjBslH,GAAatlH,SAAU,EAEnB5wG,OAAOwC,aACTl/I,SAASinD,iBAAiB,YAAa8rT,KAU3C,SAASA,KACP,IAAIj0N,EAAMI,YAAYJ,MAElBA,EAAM+zN,GAAoB,KAC5BD,GAAatlH,SAAU,EACvBttP,SAAS8mD,oBAAoB,YAAaisT,KAG5CF,GAAoB/zN,EAUtB,SAASk0N,KACP,IAAIljJ,EAAgB9vN,SAAS8vN,cAE7B,GAAImiJ,GAAmBniJ,GAAgB,CACrC,IAAI1qD,EAAW0qD,EAAcoiJ,OAEzBpiJ,EAAcmjJ,OAAS7tM,EAAS/iL,MAAM28U,WACxClvG,EAAcmjJ,QAUpB,IACI/xF,MAD8B,qBAAXxkI,QAA8C,qBAAb18I,aAEtD08I,OAAO8gJ,SA8DT,IAAI01E,GAAc,CAChBC,aAAa,EACbC,cAAc,EACdC,mBAAmB,EACnBnrG,QAAQ,GAaN/uF,GAAe37L,OAAOsrB,OAAO,CAC/BwqW,SAAU/B,GACVgC,KAAM,CACJxqK,QAAS,OACTyqK,SAAU,QAEZjxN,MAAO,EACPlZ,SAAU,CAAC,IAAK,KAChBoqO,uBAAwB,KACxBC,aAAa,EACbC,kBAAkB,EAClBvwI,aAAa,EACbwwI,kBAAmB,EACnBC,oBAAqB,EACrBC,eAAgB,GAChBh5W,OAAQ,CAAC,EAAG,IACZi5W,cAAe,aACfC,eAAgB,aAChBxtF,SAAU,aACVytF,UAAW,aACXC,SAAU,aACVC,OAAQ,aACRC,QAAS,aACTC,OAAQ,aACRC,QAAS,aACTC,UAAW,aACXC,YAAa,aACbC,eAAgB,aAChBrsJ,UAAW,MACXssJ,QAAS,GACTC,cAAe,GACfnuU,OAAQ,KACRouU,cAAc,EACd1jI,OAAO,EACP3gB,QAAS,mBACTskJ,cAAe,MACd3B,GA/Ce,CAChB4B,WAAW,EACX9vV,UAAW,OACX2jM,OAAO,EACP5f,QAAS,GACTgsK,SAAS,EACT7oE,SAAU,IACVjrE,KAAM,UACN5nD,MAAO,GACPqiC,OAAQ,OAuCNs5J,GAAcx3X,OAAOD,KAAK47L,IAc9B,SAAS87L,GAAuBC,GAC9B,IACIhC,GADUgC,EAAYR,SAAW,IACXzqM,QAAO,SAAUy7L,EAAKpoK,GAC9C,IAIMhiK,EAJFr1C,EAAOq3M,EAAOr3M,KACdghP,EAAe3pC,EAAO2pC,aAEtBhhP,IAGFy/W,EAAIz/W,QAA8BlH,IAAtBm2X,EAAYjvX,GAAsBivX,EAAYjvX,GAAwC,OAA/Bq1C,EAAQ69I,GAAalzL,IAAiBq1C,EAAQ2rM,GAGnH,OAAOy+H,IACN,IACH,OAAOloX,OAAOsrB,OAAO,GAAIosW,EAAahC,GA6BxC,SAASiC,GAAcl0F,EAAW17G,GAChC,IAAIm+B,EAAMlmN,OAAOsrB,OAAO,GAAIy8J,EAAO,CACjCwjC,QAAS0oK,GAAuBlsM,EAAMwjC,QAAS,CAACk4E,KAC/C17G,EAAMouM,iBAAmB,GA7B9B,SAA+B1yF,EAAWyzF,GAuBxC,OAtBeA,EAAUl3X,OAAOD,KAAK03X,GAAuBz3X,OAAOsrB,OAAO,GAAIqwK,GAAc,CAC1Fu7L,QAASA,MACJM,IACc/qM,QAAO,SAAUy7L,EAAKlnX,GACzC,IAAI42X,GAAiBn0F,EAAUxoP,aAAa,cAAgBj6C,IAAQ,IAAI67E,OAExE,IAAK+6S,EACH,OAAO1P,EAGT,GAAY,YAARlnX,EACFknX,EAAIlnX,GAAO42X,OAEX,IACE1P,EAAIlnX,GAAOonB,KAAKC,MAAMuvW,GACtB,MAAOz7W,GACP+rW,EAAIlnX,GAAO42X,EAIf,OAAO1P,IACN,IAO8B2P,CAAsBp0F,EAAW17G,EAAMmvM,UAMxE,OALAhxK,EAAI6vK,KAAO/1X,OAAOsrB,OAAO,GAAIqwK,GAAao6L,KAAM7vK,EAAI6vK,MACpD7vK,EAAI6vK,KAAO,CACTC,SAAgC,SAAtB9vK,EAAI6vK,KAAKC,SAAsBjuM,EAAM69D,YAAc1/B,EAAI6vK,KAAKC,SACtEzqK,QAA8B,SAArBrF,EAAI6vK,KAAKxqK,QAAqBxjC,EAAM69D,YAAc,KAAO,cAAgB1/B,EAAI6vK,KAAKxqK,SAEtFrF,EA+BT,SAAS7xB,GAAwBpuJ,EAASy4N,GACxCz4N,EAAmB,UAAIy4N,EAGzB,SAASo5H,GAAmBt1X,GAC1B,IAAI2oO,EAAQopJ,KAcZ,OAZc,IAAV/xX,EACF2oO,EAAM1rC,UAtfQ,eAwfd0rC,EAAM1rC,UAvfY,kBAyfd,GAAUj9L,GACZ2oO,EAAMj1C,YAAY1zL,GAElB6xL,GAAwB82C,EAAO3oO,IAI5B2oO,EAGT,SAAS,GAAW5f,EAASxjC,GACvB,GAAUA,EAAMwjC,UAClBl3B,GAAwBk3B,EAAS,IACjCA,EAAQr1B,YAAYnO,EAAMwjC,UACQ,oBAAlBxjC,EAAMwjC,UAClBxjC,EAAMuvM,UACRjjM,GAAwBk3B,EAASxjC,EAAMwjC,SAEvCA,EAAQvyB,YAAcjR,EAAMwjC,SAKlC,SAASwsK,GAAYzsJ,GACnB,IAAIl2M,EAAMk2M,EAAOu5D,kBACbmzF,EAAc3D,GAAUj/V,EAAIe,UAChC,MAAO,CACLf,IAAKA,EACLm2L,QAASysK,EAAYv0O,MAAK,SAAU8mB,GAClC,OAAOA,EAAK8iE,UAAUgC,SAzhBR,oBA2hBhBlE,MAAO6sJ,EAAYv0O,MAAK,SAAU8mB,GAChC,OAAOA,EAAK8iE,UAAUgC,SA1hBV,gBA0hBmC9kE,EAAK8iE,UAAUgC,SAzhB9C,sBA2hBlB4oJ,SAAUD,EAAYv0O,MAAK,SAAU8mB,GACnC,OAAOA,EAAK8iE,UAAUgC,SA9hBP,sBAmiBrB,SAASrmL,GAAO4+H,GACd,IAAI0jD,EAASipJ,KACTn/V,EAAMm/V,KACVn/V,EAAIqqK,UAxiBU,YAyiBdrqK,EAAI2kB,aAAa,aAAc,UAC/B3kB,EAAI2kB,aAAa,WAAY,MAC7B,IAAIwxK,EAAUgpK,KAQd,SAASxsW,EAASmlK,EAAWJ,GAC3B,IAAIorM,EAAeH,GAAYzsJ,GAC3Bl2M,EAAM8iW,EAAa9iW,IACnBm2L,EAAU2sK,EAAa3sK,QACvB4f,EAAQ+sJ,EAAa/sJ,MAErBr+C,EAAU+O,MACZzmK,EAAI2kB,aAAa,aAAc+yI,EAAU+O,OAEzCzmK,EAAIm0Q,gBAAgB,cAGa,kBAAxBz8G,EAAUtlJ,UACnBpS,EAAI2kB,aAAa,iBAAkB+yI,EAAUtlJ,WAE7CpS,EAAIm0Q,gBAAgB,kBAGlBz8G,EAAUyqM,QACZniW,EAAI2kB,aAAa,eAAgB,IAEjC3kB,EAAIm0Q,gBAAgB,gBAGtBn0Q,EAAIid,MAAMq8Q,SAAyC,kBAAvB5hI,EAAU4hI,SAAwB5hI,EAAU4hI,SAAW,KAAO5hI,EAAU4hI,SAEhG5hI,EAAU22D,KACZruN,EAAI2kB,aAAa,OAAQ+yI,EAAU22D,MAEnCruN,EAAIm0Q,gBAAgB,QAGlBr8G,EAAUq+B,UAAYz+B,EAAUy+B,SAAWr+B,EAAUoqM,YAAcxqM,EAAUwqM,WAC/E,GAAW/rK,EAAS3jC,EAASG,OAG3B+E,EAAUq+C,MACPA,EAEMj+C,EAAUi+C,QAAUr+C,EAAUq+C,QACvC/1M,EAAI+jK,YAAYgyC,GAChB/1M,EAAI8gK,YAAY4hM,GAAmBhrM,EAAUq+C,SAH7C/1M,EAAI8gK,YAAY4hM,GAAmBhrM,EAAUq+C,QAKtCA,GACT/1M,EAAI+jK,YAAYgyC,GAIpB,OAvDA5f,EAAQ9rB,UA3iBU,gBA4iBlB8rB,EAAQxxK,aAAa,aAAc,UACnC,GAAWwxK,EAAS3jC,EAASG,OAC7BujD,EAAOp1C,YAAY9gK,GACnBA,EAAI8gK,YAAYq1B,GAChBxjM,EAAS6/J,EAASG,MAAOH,EAASG,OAkD3B,CACLujD,OAAQA,EACRvjN,SAAUA,GAMdihC,GAAOmvU,SAAU,EACjB,IAAIlrC,GAAY,EACZmrC,GAAqB,GAErBC,GAAmB,GAEvB,SAASC,GAAY70F,EAAWi0F,GAC9B,IAIIa,EACAC,EACAC,EAKAC,EACAC,EACAvO,EAGA9V,EAzjBUrtL,EAyiBVc,EAAQ4vM,GAAcl0F,EAAWzjS,OAAOsrB,OAAO,GAAIqwK,GAAc87L,GAAuBnD,GAAqBoD,MAO7GkB,GAAqB,EACrBC,GAAgC,EAChCC,GAAe,EACfC,GAAsB,EAItB9iX,EAAY,GACZ+iX,EAAuB,GAASC,EAAalxM,EAAMsuM,qBAKnDvxV,EAAKmoT,KAELiqC,GA/jBUjwM,EA+jBOc,EAAMmvM,SA9jBhB/2X,QAAO,SAAU+4X,EAAM/iX,GAChC,OAAO8wK,EAAIrlL,QAAQs3X,KAAU/iX,KA0kB3ByxK,EAAW,CAEb9iJ,GAAIA,EACJ2+P,UAAWA,EACXn4D,OAAQipJ,KACR9oJ,eAnBmB,KAoBnB1jD,MAAOA,EACPljL,MAnBU,CAEV+/P,WAAW,EAEX48E,WAAW,EAEX34C,aAAa,EAEbswF,WAAW,EAEXC,SAAS,GAUTlC,QAASA,EAETmC,mBA4oBF,WACEx5K,aAAa04K,GACb14K,aAAa24K,GACbtrU,qBAAqBurU,IA9oBrBa,SAipBF,SAAkBC,GAEZ,EAIJ,GAAI3xM,EAAS/iL,MAAMgkS,YACjB,OAGF2wF,EAAW,iBAAkB,CAAC5xM,EAAU2xM,IACxCE,IACA,IAAIvsM,EAAYtF,EAASG,MACrB+E,EAAY6qM,GAAcl0F,EAAWzjS,OAAOsrB,OAAO,GAAI4hK,EAAWonM,GAAqBiF,GAAe,CACxGpD,kBAAkB,KAEpBvuM,EAASG,MAAQ+E,EACjB4sM,IAEIxsM,EAAUmpM,sBAAwBvpM,EAAUupM,sBAC9CsD,IACAX,EAAuB,GAASC,EAAansM,EAAUupM,sBAIrDnpM,EAAUmqM,gBAAkBvqM,EAAUuqM,cACxClD,GAAiBjnM,EAAUmqM,eAAet2X,SAAQ,SAAUwpK,GAC1DA,EAAKg/H,gBAAgB,oBAEdz8G,EAAUuqM,eACnB5zF,EAAU8F,gBAAgB,iBAG5BqwF,IACAC,IAEI9xW,GACFA,EAASmlK,EAAWJ,GAGlBlF,EAAS6jD,iBACXquJ,IAKAC,IAAsBh5X,SAAQ,SAAUi5X,GAGtC/sU,sBAAsB+sU,EAAatF,OAAOjpJ,eAAexqK,iBAI7Du4T,EAAW,gBAAiB,CAAC5xM,EAAU2xM,KArsBvCU,WAwsBF,SAAoB1uK,GAClB3jC,EAAS0xM,SAAS,CAChB/tK,QAASA,KAzsBX42B,KA6sBF,WAEM,EAKJ,IAAI+3I,EAAmBtyM,EAAS/iL,MAAM28U,UAClC34C,EAAcjhH,EAAS/iL,MAAMgkS,YAC7BrpD,GAAc53D,EAAS/iL,MAAM+/P,UAC7Bu1H,EAA0B/E,GAAatlH,UAAYloF,EAASG,MAAM2rE,MAClE7nG,EAAWmoO,GAAwBpsM,EAASG,MAAMl8B,SAAU,EAAG8vC,GAAa9vC,UAEhF,GAAIquO,GAAoBrxF,GAAerpD,GAAc26I,EACnD,OAMF,GAAIC,IAAmBr/U,aAAa,YAClC,OAKF,GAFAy+U,EAAW,SAAU,CAAC5xM,IAAW,IAEO,IAApCA,EAASG,MAAM8uM,OAAOjvM,GACxB,OAGFA,EAAS/iL,MAAM28U,WAAY,EAEvB64C,MACF/uJ,EAAOj5L,MAAMioV,WAAa,WAG5BT,IACAU,IAEK3yM,EAAS/iL,MAAMs0X,YAClB7tJ,EAAOj5L,MAAMy0M,WAAa,QAK5B,GAAIuzI,IAAwB,CAC1B,IAAIG,EAAyBC,IACzBrlW,EAAMolW,EAAuBplW,IAC7Bm2L,EAAUivK,EAAuBjvK,QAErCspK,GAAsB,CAACz/V,EAAKm2L,GAAU,GAGxC6+J,EAAgB,WACd,IAAIsQ,EAEJ,GAAK9yM,EAAS/iL,MAAM28U,YAAau3C,EAAjC,CASA,GALAA,GAAsB,EAEjBztJ,EAAOmI,aACZnI,EAAOj5L,MAAMy0M,WAAal/D,EAASG,MAAMuuM,eAErC+D,KAA0BzyM,EAASG,MAAMvgJ,UAAW,CACtD,IAAImzV,EAAyBF,IACzB37M,EAAO67M,EAAuBvlW,IAC9BwlW,EAAWD,EAAuBpvK,QAEtCspK,GAAsB,CAAC/1M,EAAM87M,GAAW/uO,GACxCipO,GAAmB,CAACh2M,EAAM87M,GAAW,WAGvCC,IACAjB,IACAxF,GAAaiE,GAAkBzwM,GAGuB,OAArD8yM,EAAyB9yM,EAAS6jD,iBAAmCivJ,EAAuBz5T,cAC7Fu4T,EAAW,UAAW,CAAC5xM,IAEnBA,EAASG,MAAMvgJ,WAAa6yV,KA9hBpC,SAA0BxuO,EAAUr7H,GAClC67R,EAAgBxgK,EAAUr7H,GA8hBtBsqW,CAAiBjvO,GAAU,WACzB+7B,EAAS/iL,MAAMu0X,SAAU,EACzBI,EAAW,UAAW,CAAC5xM,SAxQ/B,WACE,IACIuO,EADA2/L,EAAWluM,EAASG,MAAM+tM,SAO1BvrN,EAAO6vN,IAGTjkM,EADEvO,EAASG,MAAM69D,aAAekwI,IAAa/B,IAAwC,WAAb+B,EAC3DvrN,EAAK4rB,WAEL89L,GAAuB6B,EAAU,CAACvrN,IAK5C4rB,EAAWk5C,SAAS/D,IACvBn1C,EAAWD,YAAYo1C,GAGzB1jD,EAAS/iL,MAAMs0X,WAAY,EAC3BW,KAGI,EAmPJiB,IAtyBAvvJ,KAyyBF,WAEM,EAKJ,IAAIwvJ,GAAmBpzM,EAAS/iL,MAAM28U,UAClC34C,EAAcjhH,EAAS/iL,MAAMgkS,YAC7BrpD,GAAc53D,EAAS/iL,MAAM+/P,UAC7B/4G,EAAWmoO,GAAwBpsM,EAASG,MAAMl8B,SAAU,EAAG8vC,GAAa9vC,UAEhF,GAAImvO,GAAmBnyF,GAAerpD,EACpC,OAKF,GAFAg6I,EAAW,SAAU,CAAC5xM,IAAW,IAEO,IAApCA,EAASG,MAAM4uM,OAAO/uM,GACxB,OAGFA,EAAS/iL,MAAM28U,WAAY,EAC3B55J,EAAS/iL,MAAMu0X,SAAU,EACzBL,GAAsB,EACtBH,GAAqB,EAEjByB,MACF/uJ,EAAOj5L,MAAMioV,WAAa,UAO5B,GAJAX,IACAsB,IACApB,GAAa,GAETQ,IAAwB,CAC1B,IAAIa,EAAyBT,IACzBrlW,EAAM8lW,EAAuB9lW,IAC7Bm2L,EAAU2vK,EAAuB3vK,QAEjC3jC,EAASG,MAAMvgJ,YACjBqtV,GAAsB,CAACz/V,EAAKm2L,GAAU1/D,GACtCipO,GAAmB,CAAC1/V,EAAKm2L,GAAU,WAIvCsvK,IACAjB,IAEIhyM,EAASG,MAAMvgJ,UACb6yV,KAnmBR,SAA2BxuO,EAAUr7H,GACnC67R,EAAgBxgK,GAAU,YACnB+7B,EAAS/iL,MAAM28U,WAAal2G,EAAOn1C,YAAcm1C,EAAOn1C,WAAWk5C,SAAS/D,IAC/E96M,OAimBA2qW,CAAkBtvO,EAAU+7B,EAASwzM,SAGvCxzM,EAASwzM,WA91BXC,sBAk2BF,SAA+BhlX,GAEzB,EAIJilX,IAAc7xT,iBAAiB,YAAauvT,GAC5C5E,GAAagE,GAAoBY,GACjCA,EAAqB3iX,IAz2BrBm2E,OA2nBF,WACEo7F,EAAS/iL,MAAM+/P,WAAY,GA3nB3BxsK,QA8nBF,WAGEwvF,EAAS4jD,OACT5jD,EAAS/iL,MAAM+/P,WAAY,GAjoB3Bw2H,QA02BF,WAEM,EAIAxzM,EAAS/iL,MAAM28U,WACjB55J,EAAS4jD,OAGX,IAAK5jD,EAAS/iL,MAAMs0X,UAClB,OAGFztJ,IAIAquJ,IAAsBh5X,SAAQ,SAAUi5X,GACtCA,EAAatF,OAAO0G,aAGlB9vJ,EAAOn1C,YACTm1C,EAAOn1C,WAAWgD,YAAYmyC,GAGhC+sJ,GAAmBA,GAAiBl4X,QAAO,SAAUQ,GACnD,OAAOA,IAAMinL,KAEfA,EAAS/iL,MAAMs0X,WAAY,EAC3BK,EAAW,WAAY,CAAC5xM,KAv4BxBnhG,QA04BF,WAEM,EAIJ,GAAImhG,EAAS/iL,MAAMgkS,YACjB,OAGFjhH,EAASyxM,qBACTzxM,EAASwzM,UACT3B,WACOh2F,EAAUixF,OACjB9sM,EAAS/iL,MAAMgkS,aAAc,EAC7B2wF,EAAW,YAAa,CAAC5xM,MAn5B3B,IAAKG,EAAM/+H,OAKT,OAAO4+H,EAMT,IAAI2zM,EAAgBxzM,EAAM/+H,OAAO4+H,GAC7B0jD,EAASiwJ,EAAcjwJ,OACvBvjN,EAAWwzW,EAAcxzW,SAE7BujN,EAAOvxL,aAAa,kBAAmB,IACvCuxL,EAAOxmM,GAAK,SAAW8iJ,EAAS9iJ,GAChC8iJ,EAAS0jD,OAASA,EAClBm4D,EAAUixF,OAAS9sM,EACnB0jD,EAAOopJ,OAAS9sM,EAChB,IAAI4zM,EAAetE,EAAQroV,KAAI,SAAUixK,GACvC,OAAOA,EAAOt+M,GAAGomL,MAEf6zM,EAAkBh4F,EAAU1oP,aAAa,iBAsB7C,OArBA2+U,IACAE,IACAC,IACAL,EAAW,WAAY,CAAC5xM,IAEpBG,EAAMqvM,cACRsE,KAKFpwJ,EAAO7hK,iBAAiB,cAAc,WAChCm+G,EAASG,MAAM69D,aAAeh+D,EAAS/iL,MAAM28U,WAC/C55J,EAASyxM,wBAGb/tJ,EAAO7hK,iBAAiB,cAAc,WAChCm+G,EAASG,MAAM69D,aAAeh+D,EAASG,MAAMgrD,QAAQnxO,QAAQ,eAAiB,GAChF05X,IAAc7xT,iBAAiB,YAAauvT,MAGzCpxM,EAIP,SAAS+zM,IACP,IAAIjoI,EAAQ9rE,EAASG,MAAM2rE,MAC3B,OAAO3tO,MAAMC,QAAQ0tO,GAASA,EAAQ,CAACA,EAAO,GAGhD,SAASkoI,IACP,MAA2C,SAApCD,IAA6B,GAGtC,SAAStB,IACP,IAAIwB,EAGJ,QAA6D,OAAlDA,EAAwBj0M,EAASG,MAAM/+H,UAAmB6yU,EAAsB1D,SAG7F,SAASiC,IACP,OAAO9lB,GAAiB7wE,EAG1B,SAAS63F,IACP,IAAIn4V,EAASi3V,IAAmBjkM,WAChC,OAAOhzJ,EAAS4xV,GAAiB5xV,GAAU3gB,SAG7C,SAASi4W,IACP,OAAO1C,GAAYzsJ,GAGrB,SAASwwJ,EAASC,GAIhB,OAAIn0M,EAAS/iL,MAAMs0X,YAAcvxM,EAAS/iL,MAAM28U,WAAa4zC,GAAatlH,SAAW4oH,GAA8C,UAA1BA,EAAiB9yX,KACjH,EAGFouX,GAAwBpsM,EAASG,MAAMhjB,MAAOg3N,EAAS,EAAI,EAAGpgM,GAAa52B,OAGpF,SAAS80N,EAAamC,QACH,IAAbA,IACFA,GAAW,GAGb1wJ,EAAOj5L,MAAMo4L,cAAgB7iD,EAASG,MAAM69D,cAAgBo2I,EAAW,GAAK,OAC5E1wJ,EAAOj5L,MAAM6rL,OAAS,GAAKt2C,EAASG,MAAMm2C,OAG5C,SAASs7J,EAAWyC,EAAMnxM,EAAMoxM,GAY5B,IAAIC,QAXwB,IAA1BD,IACFA,GAAwB,GAG1BV,EAAaz6X,SAAQ,SAAUq7X,GACzBA,EAAYH,IACdG,EAAYH,GAAMz7X,MAAM47X,EAAatxM,MAIrCoxM,KAGDC,EAAkBv0M,EAASG,OAAOk0M,GAAMz7X,MAAM27X,EAAiBrxM,GAIpE,SAAS+vM,IACP,IAAI9E,EAAOnuM,EAASG,MAAMguM,KAE1B,GAAKA,EAAKxqK,QAAV,CAIA,IAAIzrB,EAAO,QAAUi2L,EAAKxqK,QACtBzmL,EAAKwmM,EAAOxmM,GACJqvV,GAAiBvsM,EAASG,MAAMsvM,eAAiB5zF,GACvD1iS,SAAQ,SAAUwpK,GACtB,IAAIn9H,EAAem9H,EAAKtvH,aAAa6kJ,GAErC,GAAIlY,EAAS/iL,MAAM28U,UACjBj3K,EAAKxwH,aAAa+lJ,EAAM1yJ,EAAeA,EAAe,IAAMtI,EAAKA,OAC5D,CACL,IAAI25L,EAAYrxL,GAAgBA,EAAa8wC,QAAQp5C,EAAI,IAAI+3C,OAEzD4hJ,EACFl0D,EAAKxwH,aAAa+lJ,EAAM2+B,GAExBl0D,EAAKg/H,gBAAgBzpG,QAM7B,SAAS85L,KACH6B,GAAoB7zM,EAASG,MAAMguM,KAAKC,UAIhC7B,GAAiBvsM,EAASG,MAAMsvM,eAAiB5zF,GACvD1iS,SAAQ,SAAUwpK,GAClBqd,EAASG,MAAM69D,YACjBr7E,EAAKxwH,aAAa,gBAAiB6tI,EAAS/iL,MAAM28U,WAAaj3K,IAAS6vN,IAAqB,OAAS,SAEtG7vN,EAAKg/H,gBAAgB,oBAK3B,SAASowF,IACP2B,IAAchyT,oBAAoB,YAAa0vT,GAC/CZ,GAAqBA,GAAmBj4X,QAAO,SAAU4V,GACvD,OAAOA,IAAaijX,KAIxB,SAASqD,EAAgBhmX,GAEvB,IAAI++W,GAAatlH,UACXgpH,GAA+B,cAAfziX,EAAMzQ,KAD5B,CAMA,IAAI02X,EAAejmX,EAAMq6N,cAAgBr6N,EAAMq6N,eAAe,IAAMr6N,EAAM3V,OAE1E,IAAIknL,EAASG,MAAM69D,cAAesvI,GAAe5pJ,EAAQgxJ,GAAzD,CAKA,GAAInI,GAAiBvsM,EAASG,MAAMsvM,eAAiB5zF,GAAWzoG,MAAK,SAAU/E,GAC7E,OAAOi/L,GAAej/L,EAAIqmM,MACxB,CACF,GAAIlH,GAAatlH,QACf,OAGF,GAAIloF,EAAS/iL,MAAM28U,WAAa55J,EAASG,MAAMgrD,QAAQnxO,QAAQ,UAAY,EACzE,YAGF43X,EAAW,iBAAkB,CAAC5xM,EAAUvxK,KAGP,IAA/BuxK,EAASG,MAAMmuM,cACjBtuM,EAASyxM,qBACTzxM,EAAS4jD,OAITqtJ,GAAgC,EAChCnoO,YAAW,WACTmoO,GAAgC,KAK7BjxM,EAAS/iL,MAAMs0X,WAClB8B,OAKN,SAASxrB,IACPqpB,GAAe,EAGjB,SAASxlI,IACPwlI,GAAe,EAGjB,SAASyB,IACP,IAAIgC,EAAMjB,IACViB,EAAI9yT,iBAAiB,YAAa4yT,GAAiB,GACnDE,EAAI9yT,iBAAiB,WAAY4yT,EAAiBvI,IAClDyI,EAAI9yT,iBAAiB,aAAc6pL,EAAcwgI,IACjDyI,EAAI9yT,iBAAiB,YAAagmS,EAAaqkB,IAGjD,SAASmH,IACP,IAAIsB,EAAMjB,IACViB,EAAIjzT,oBAAoB,YAAa+yT,GAAiB,GACtDE,EAAIjzT,oBAAoB,WAAY+yT,EAAiBvI,IACrDyI,EAAIjzT,oBAAoB,aAAcgqL,EAAcwgI,IACpDyI,EAAIjzT,oBAAoB,YAAammS,EAAaqkB,IAepD,SAASznE,EAAgBxgK,EAAUr7H,GACjC,IAAI4E,EAAMqlW,IAA6BrlW,IAEvC,SAASrf,EAASM,GACZA,EAAM3V,SAAW00B,IACnB6/V,GAA4B7/V,EAAK,SAAUrf,GAC3Cya,KAMJ,GAAiB,IAAbq7H,EACF,OAAOr7H,IAGTykW,GAA4B7/V,EAAK,SAAUujW,GAC3C1D,GAA4B7/V,EAAK,MAAOrf,GACxC4iX,EAA+B5iX,EAGjC,SAASuqM,EAAGk8K,EAAWpzG,EAAS3+P,QACd,IAAZA,IACFA,GAAU,GAGA0pW,GAAiBvsM,EAASG,MAAMsvM,eAAiB5zF,GACvD1iS,SAAQ,SAAUwpK,GACtBA,EAAK9gG,iBAAiB+yT,EAAWpzG,EAAS3+P,GAC1CxU,EAAU1V,KAAK,CACbgqK,KAAMA,EACNiyN,UAAWA,EACXpzG,QAASA,EACT3+P,QAASA,OAKf,SAASivW,IAl5BX,IAAuBl3X,EAm5Bfo5X,MACFt7K,EAAG,aAAcy2K,EAAW,CAC1B/nH,SAAS,IAEX1uD,EAAG,WAAYq9B,EAAc,CAC3BqxB,SAAS,MAx5BMxsQ,EA45BLolL,EAASG,MAAMgrD,QA35BxBvwO,EAAMy6E,MAAM,OAAO98E,OAAO8zL,UA25BOlzL,SAAQ,SAAUy7X,GACtD,GAAkB,WAAdA,EAMJ,OAFAl8K,EAAGk8K,EAAWzF,GAENyF,GACN,IAAK,aACHl8K,EAAG,aAAcq9B,GACjB,MAEF,IAAK,QACHr9B,EAAGojF,GAAS,WAAa,OAAQ+4F,GACjC,MAEF,IAAK,UACHn8K,EAAG,WAAYm8K,OAMvB,SAAShD,IACPxjX,EAAUlV,SAAQ,SAAUy3G,GAC1B,IAAI+xD,EAAO/xD,EAAK+xD,KACZiyN,EAAYhkR,EAAKgkR,UACjBpzG,EAAU5wK,EAAK4wK,QACf3+P,EAAU+tF,EAAK/tF,QACnB8/I,EAAKjhG,oBAAoBkzT,EAAWpzG,EAAS3+P,MAE/CxU,EAAY,GAGd,SAAS8gX,EAAU1gX,GACjB,IAAIqmX,EAEAC,GAA0B,EAE9B,GAAK/0M,EAAS/iL,MAAM+/P,YAAag4H,EAAuBvmX,KAAUwiX,EAAlE,CAIA,IAAIgE,EAAoG,WAA5C,OAAzCH,EAAoBhE,QAA4B,EAASgE,EAAkB92X,MAC9F8yX,EAAmBriX,EACnBi+V,EAAgBj+V,EAAMi+V,cACtBslB,KAEKhyM,EAAS/iL,MAAM28U,WAAagzC,GAAan+W,IAK5C+hX,GAAmBr3X,SAAQ,SAAUgV,GACnC,OAAOA,EAASM,MAKD,UAAfA,EAAMzQ,OAAqBgiL,EAASG,MAAMgrD,QAAQnxO,QAAQ,cAAgB,GAAKg3X,KAAsD,IAA/BhxM,EAASG,MAAMmuM,aAAyBtuM,EAAS/iL,MAAM28U,UAC/Jm7C,GAA0B,EAE1BjB,GAAarlX,GAGI,UAAfA,EAAMzQ,OACRgzX,GAAsB+D,GAGpBA,IAA4BE,GAC9BC,GAAazmX,IAIjB,SAAS4iX,EAAY5iX,GACnB,IAAI3V,EAAS2V,EAAM3V,OACfq8X,EAAgC3C,IAAmB/qJ,SAAS3uO,IAAW4qO,EAAO+D,SAAS3uO,GAExE,cAAf2V,EAAMzQ,MAAwBm3X,GAp4BtC,SAA0CC,EAAgB3mX,GACxD,IAAIsrO,EAAUtrO,EAAMsrO,QAChBC,EAAUvrO,EAAMurO,QACpB,OAAOo7I,EAAez7K,OAAM,SAAU/oG,GACpC,IAAI2vL,EAAa3vL,EAAK2vL,WAClB80F,EAAczkR,EAAKykR,YAEnB7G,EADQ59Q,EAAKuvE,MACaquM,kBAC1BvrF,EAAgB,GAAiBoyF,EAAYryJ,WAC7CujJ,EAAa8O,EAAY7T,cAAc9rW,OAE3C,IAAK6wW,EACH,OAAO,EAGT,IAAI+O,EAAgC,WAAlBryF,EAA6BsjF,EAAWrtV,IAAIjpB,EAAI,EAC9DslX,EAAmC,QAAlBtyF,EAA0BsjF,EAAWptV,OAAOlpB,EAAI,EACjEulX,EAAiC,UAAlBvyF,EAA4BsjF,EAAWvtV,KAAKhpB,EAAI,EAC/DylX,EAAkC,SAAlBxyF,EAA2BsjF,EAAWttV,MAAMjpB,EAAI,EAChE0lX,EAAan1F,EAAWrnQ,IAAM8gN,EAAUs7I,EAAc9G,EACtDmH,EAAgB37I,EAAUumD,EAAWpnQ,OAASo8V,EAAiB/G,EAC/DoH,EAAcr1F,EAAWvnQ,KAAO+gN,EAAUy7I,EAAehH,EACzDqH,EAAe97I,EAAUwmD,EAAWtnQ,MAAQw8V,EAAgBjH,EAChE,OAAOkH,GAAcC,GAAiBC,GAAeC,KAk4BjDC,CAjBiB3D,IAAsBj2W,OAAOwnN,GAAQz8L,KAAI,SAAUy8L,GACtE,IAAIqyJ,EAGA94X,EAA6D,OAApD84X,EADEryJ,EAAOopJ,OACwBjpJ,qBAA0B,EAASkyJ,EAAsB94X,MAEvG,OAAIA,EACK,CACLsjS,WAAY78D,EAAO0oB,wBACnBipI,YAAap4X,EACbkjL,MAAOA,GAIJ,QACN5nL,OAAO8zL,SAE2C59K,KACnDsjX,IACAmD,GAAazmX,IAIjB,SAASsnO,EAAatnO,GACHumX,EAAuBvmX,IAAUuxK,EAASG,MAAMgrD,QAAQnxO,QAAQ,UAAY,GAAKg3X,IAM9FhxM,EAASG,MAAM69D,YACjBh+D,EAASyzM,sBAAsBhlX,GAIjCymX,GAAazmX,IAGf,SAASomX,EAAiBpmX,GACpBuxK,EAASG,MAAMgrD,QAAQnxO,QAAQ,WAAa,GAAKyU,EAAM3V,SAAW05X,KAKlExyM,EAASG,MAAM69D,aAAevvO,EAAM+4N,eAAiB9D,EAAO+D,SAASh5N,EAAM+4N,gBAI/E0tJ,GAAazmX,GAGf,SAASumX,EAAuBvmX,GAC9B,QAAO++W,GAAatlH,SAAU8rH,MAA+BvlX,EAAMzQ,KAAKhE,QAAQ,UAAY,EAG9F,SAASk4X,IACPpuJ,IACA,IAAIkyJ,EAAmBh2M,EAASG,MAC5BovM,EAAgByG,EAAiBzG,cACjCvsJ,EAAYgzJ,EAAiBhzJ,UAC7BttN,EAASsgX,EAAiBtgX,OAC1B24W,EAAyB2H,EAAiB3H,uBAC1CK,EAAiBsH,EAAiBtH,eAClCnrJ,EAAQkvJ,IAAyBtC,GAAYzsJ,GAAQH,MAAQ,KAC7D0yJ,EAAoB5H,EAAyB,CAC/CjiI,sBAAuBiiI,EACvBxM,eAAgBwM,EAAuBxM,gBAAkB2Q,KACvD32F,EA4BAv4D,EAAY,CAAC,CACfziO,KAAM,SACNgiB,QAAS,CACPnN,OAAQA,IAET,CACD7U,KAAM,kBACNgiB,QAAS,CACPimO,QAAS,CACP5vN,IAAK,EACLC,OAAQ,EACRH,KAAM,EACNC,MAAO,KAGV,CACDp4B,KAAM,OACNgiB,QAAS,CACPimO,QAAS,IAEV,CACDjoP,KAAM,gBACNgiB,QAAS,CACPsgW,UAAWuL,IAlDK,CAClB7tX,KAAM,UACN6a,SAAS,EACTomW,MAAO,cACPrB,SAAU,CAAC,iBACX7mX,GAAI,SAAYuwJ,GACd,IAAIltJ,EAAQktJ,EAAMltJ,MAElB,GAAIw1X,IAAwB,CAC1B,IACIjlW,EADwBqlW,IACIrlW,IAEhC,CAAC,YAAa,mBAAoB,WAAWr0B,SAAQ,SAAU++L,GAChD,cAATA,EACF1qK,EAAI2kB,aAAa,iBAAkBl1C,EAAM+lO,WAErC/lO,EAAMoxB,WAAWq1M,OAAO,eAAiBxrC,GAC3C1qK,EAAI2kB,aAAa,QAAU+lJ,EAAM,IAEjC1qK,EAAIm0Q,gBAAgB,QAAUzpG,MAIpCj7L,EAAMoxB,WAAWq1M,OAAS,OA+B5B+uJ,KAA0BlvJ,GAC5BD,EAAU3qO,KAAK,CACbkI,KAAM,QACNgiB,QAAS,CACPwb,QAASklM,EACTulB,QAAS,KAKfxlB,EAAU3qO,KAAKC,MAAM0qO,GAA6B,MAAjBisJ,OAAwB,EAASA,EAAcjsJ,YAAc,IAC9FtjD,EAAS6jD,eAAiB,GAAaoyJ,EAAmBvyJ,EAAQtrO,OAAOsrB,OAAO,GAAI6rW,EAAe,CACjGvsJ,UAAWA,EACXw/I,cAAeA,EACfl/I,UAAWA,KAIf,SAASQ,IACH9jD,EAAS6jD,iBACX7jD,EAAS6jD,eAAehlJ,UACxBmhG,EAAS6jD,eAAiB,MAoC9B,SAASsuJ,IACP,OAAO1F,GAAU/oJ,EAAO1yC,iBAAiB,sBAG3C,SAAS8iM,GAAarlX,GACpBuxK,EAASyxM,qBAELhjX,GACFmjX,EAAW,YAAa,CAAC5xM,EAAUvxK,IAGrCkkX,IACA,IAAIx1N,EAAQ+2N,GAAS,GAEjBgC,EAAwBnC,IACxBoC,EAAaD,EAAsB,GACnCE,EAAaF,EAAsB,GAEnC1I,GAAatlH,SAA0B,SAAfiuH,GAAyBC,IACnDj5N,EAAQi5N,GAGNj5N,EACFwzN,EAAc7nO,YAAW,WACvBk3B,EAASu6D,SACRp9E,GAEH6iB,EAASu6D,OAIb,SAAS26I,GAAazmX,GAIpB,GAHAuxK,EAASyxM,qBACTG,EAAW,cAAe,CAAC5xM,EAAUvxK,IAEhCuxK,EAAS/iL,MAAM28U,WASpB,KAAI55J,EAASG,MAAMgrD,QAAQnxO,QAAQ,eAAiB,GAAKgmL,EAASG,MAAMgrD,QAAQnxO,QAAQ,UAAY,GAAK,CAAC,aAAc,aAAaA,QAAQyU,EAAMzQ,OAAS,GAAKgzX,GAAjK,CAIA,IAAI7zN,EAAQ+2N,GAAS,GAEjB/2N,EACFyzN,EAAc9nO,YAAW,WACnBk3B,EAAS/iL,MAAM28U,WACjB55J,EAAS4jD,SAEVzmE,GAIH0zN,EAA6BxrU,uBAAsB,WACjD26H,EAAS4jD,gBAxBXyvJ,KAqUN,SAASgD,GAAMC,EAASC,QACA,IAAlBA,IACFA,EAAgB,IAGlB,IAAIjH,EAAUv7L,GAAau7L,QAAQpzW,OAAOq6W,EAAcjH,SAAW,IApzCnE10W,SAASinD,iBAAiB,aAAc6rT,GAAsBxB,IAC9D50N,OAAOz1F,iBAAiB,OAAQ+rT,IA4zChC,IAAIkC,EAAc13X,OAAOsrB,OAAO,GAAI6yW,EAAe,CACjDjH,QAASA,IAWPkH,EATWzJ,GAAmBuJ,GASTzxM,QAAO,SAAUy7L,EAAKzkF,GAC7C,IAAI77G,EAAW67G,GAAa60F,GAAY70F,EAAWi0F,GAMnD,OAJI9vM,GACFsgM,EAAI3nX,KAAKqnL,GAGJsgM,IACN,IACH,OAAO,GAAUgW,GAAWE,EAAU,GAAKA,EAG7CH,GAAMtiM,aAAeA,GACrBsiM,GAAMI,gBA1tCgB,SAAyB9E,GAMlCv5X,OAAOD,KAAKw5X,GAClBx4X,SAAQ,SAAUC,GACrB26L,GAAa36L,GAAOu4X,EAAav4X,OAmtCrCi9X,GAAM7I,aAAeA,GAiCKp1X,OAAOsrB,OAAO,GAAI,GAAa,CACvD6kQ,OAAQ,SAAgB33K,GACtB,IAAI3zG,EAAQ2zG,EAAK3zG,MACbgnX,EAAgB,CAClBvgJ,OAAQ,CACNp1M,SAAUrxB,EAAM4lB,QAAQi+V,SACxB9nV,KAAM,IACNE,IAAK,IACL87P,OAAQ,KAEVzxD,MAAO,CACLj1M,SAAU,YAEZutQ,UAAW,IAEbzjS,OAAOsrB,OAAOzmB,EAAMuX,SAASkvN,OAAOj5L,MAAOw5U,EAAcvgJ,QACzDzmO,EAAM41L,OAASoxL,EAEXhnX,EAAMuX,SAAS+uN,OACjBnrO,OAAOsrB,OAAOzmB,EAAMuX,SAAS+uN,MAAM94L,MAAOw5U,EAAc1gJ,UAgzB9D8yJ,GAAMI,gBAAgB,CACpBr1U,OAAQA,KAEK,UC39EXs1U,GAAM3nX,KAAK6F,KAAK,IAChB+hX,GAAK5nX,KAAK6F,KAAK,IACfgiX,GAAK7nX,KAAK6F,KAAK,GACJ,mBACb,IAAIxT,EAEAyO,EACAgnX,EACA5vW,EAHAluB,GAAK,EAKT,GAD8BqsB,GAASA,GAAzBqsB,GAASA,MAAvB/vC,GAAQA,IACc0jB,EAAQ,EAAG,MAAO,CAACqsB,GAEzC,IADIrwC,EAAUM,EAAO+vC,KAAO5hC,EAAI4hC,EAAOA,EAAQ/vC,EAAMA,EAAOmO,GACT,KAA9CoX,EAAO6vW,GAAcrlV,EAAO/vC,EAAM0jB,MAAkBwvB,SAAS3tB,GAAO,MAAO,GAEhF,GAAIA,EAAO,EAAG,CACZ,IAAI8vW,EAAKhoX,KAAKmC,MAAMugC,EAAQxqB,GACxB+zT,EAAKjsU,KAAKmC,MAAMxP,EAAOulB,GAK3B,IAJI8vW,EAAK9vW,EAAOwqB,KAASslV,EACrB/7C,EAAK/zT,EAAOvlB,KAAQs5U,EACxB67C,EAAQ,IAAI14W,MAAMtO,EAAImrU,EAAK+7C,EAAK,KAEvBh+X,EAAI8W,GACXgnX,EAAM99X,IAAMg+X,EAAKh+X,GAAKkuB,MAEnB,CACLA,GAAQA,EAER,IAAIg5L,EAAKlxM,KAAKmC,MAAMugC,EAAQxqB,GACxBi5L,EAAMnxM,KAAKmC,MAAMxP,EAAOulB,GAM5B,IAJIg5L,EAAKh5L,EAAOwqB,KAASwuK,EACrBC,EAAMj5L,EAAOvlB,KAAQw+M,EACzB22K,EAAQ,IAAI14W,MAAMtO,EAAIqwM,EAAMD,EAAK,KAExBlnN,EAAI8W,GACXgnX,EAAM99X,IAAMknN,EAAKlnN,GAAKkuB,EAK1B,OADI7lB,GAASy1X,EAAMz1X,UACZy1X,GAEF,SAASC,GAAcrlV,EAAO/vC,EAAM0jB,GACzC,IAAI6B,GAAQvlB,EAAO+vC,GAAS1iC,KAAKY,IAAI,EAAGyV,GACpC2pI,EAAQhgJ,KAAK2B,MAAM3B,KAAKwB,IAAI0W,GAAQlY,KAAKioX,MACzC33X,EAAQ4nB,EAAOlY,KAAKsB,IAAI,GAAI0+I,GAChC,OAAOA,GAAS,GAAK1vJ,GAASq3X,GAAM,GAAKr3X,GAASs3X,GAAK,EAAIt3X,GAASu3X,GAAK,EAAI,GAAK7nX,KAAKsB,IAAI,GAAI0+I,IAAUhgJ,KAAKsB,IAAI,IAAK0+I,IAAU1vJ,GAASq3X,GAAM,GAAKr3X,GAASs3X,GAAK,EAAIt3X,GAASu3X,GAAK,EAAI,GCxCpL,SAASK,GAAmBjnX,EAAGspB,GACpC,IAAKvgC,GAAKiX,EAAIspB,EAAItpB,EAAEknX,cAAc59V,EAAI,GAAKtpB,EAAEknX,iBAAiBl9X,QAAQ,MAAQ,EAAG,OAAO,KAExF,IAAIjB,EACAo+X,EAAcnnX,EAAEvO,MAAM,EAAG1I,GAG7B,MAAO,CAACo+X,EAAYl+X,OAAS,EAAIk+X,EAAY,GAAKA,EAAY11X,MAAM,GAAK01X,GAAcnnX,EAAEvO,MAAM1I,EAAI,ICZtF,mBACb,OAAOiX,EAAIinX,GAAmBloX,KAAKgD,IAAI/B,KAASA,EAAE,GAAKqiS,KCDrDxvB,GAAK,2EACM,SAASu0G,GAAgBC,GACtC,KAAMzjT,EAAQivM,GAAGh4O,KAAKwsV,IAAa,MAAM,IAAIj6X,MAAM,mBAAqBi6X,GACxE,IAAIzjT,EACJ,OAAO,IAAI0jT,GAAgB,CACzB5xT,KAAMkO,EAAM,GACZ2jT,MAAO3jT,EAAM,GACb7/C,KAAM6/C,EAAM,GACZktL,OAAQltL,EAAM,GACd4jT,KAAM5jT,EAAM,GACZh3D,MAAOg3D,EAAM,GACb6jT,MAAO7jT,EAAM,GACbhvC,UAAWgvC,EAAM,IAAMA,EAAM,GAAGnyE,MAAM,GACtCwzE,KAAMrB,EAAM,GACZ51E,KAAM41E,EAAM,MAKT,SAAS0jT,GAAgBD,GAC9B78X,KAAKkrE,UAA0B/rE,IAAnB09X,EAAU3xT,KAAqB,IAAM2xT,EAAU3xT,KAAO,GAClElrE,KAAK+8X,WAA4B59X,IAApB09X,EAAUE,MAAsB,IAAMF,EAAUE,MAAQ,GACrE/8X,KAAKu5B,UAA0Bp6B,IAAnB09X,EAAUtjW,KAAqB,IAAMsjW,EAAUtjW,KAAO,GAClEv5B,KAAKsmQ,YAA8BnnQ,IAArB09X,EAAUv2H,OAAuB,GAAKu2H,EAAUv2H,OAAS,GACvEtmQ,KAAKg9X,OAASH,EAAUG,KACxBh9X,KAAKoiB,WAA4BjjB,IAApB09X,EAAUz6W,WAAsBjjB,GAAa09X,EAAUz6W,MACpEpiB,KAAKi9X,QAAUJ,EAAUI,MACzBj9X,KAAKoqC,eAAoCjrC,IAAxB09X,EAAUzyV,eAA0BjrC,GAAa09X,EAAUzyV,UAC5EpqC,KAAKy6E,OAASoiT,EAAUpiT,KACxBz6E,KAAKwD,UAA0BrE,IAAnB09X,EAAUr5X,KAAqB,GAAKq5X,EAAUr5X,KAAO,GAZnEo5X,GAAgB18X,UAAY48X,GAAgB58X,UAe5C48X,GAAgB58X,UAAUZ,SAAW,WACnC,OAAOU,KAAKkrE,KAAOlrE,KAAK+8X,MAAQ/8X,KAAKu5B,KAAOv5B,KAAKsmQ,QAAUtmQ,KAAKg9X,KAAO,IAAM,UAAsB79X,IAAfa,KAAKoiB,MAAsB,GAAK7N,KAAKY,IAAI,EAAgB,EAAbnV,KAAKoiB,SAAepiB,KAAKi9X,MAAQ,IAAM,UAA0B99X,IAAnBa,KAAKoqC,UAA0B,GAAK,IAAM71B,KAAKY,IAAI,EAAoB,EAAjBnV,KAAKoqC,aAAmBpqC,KAAKy6E,KAAO,IAAM,IAAMz6E,KAAKwD,MCjC5Q,ICAJ05X,GCAP,GACO,GACA,GCFI,iBACb,IAAIp/W,EAAI2+W,GAAmBjnX,EAAGspB,GAC9B,IAAKhhB,EAAG,OAAOtI,EAAI,GACnB,IAAImnX,EAAc7+W,EAAE,GAChBuiT,EAAWviT,EAAE,GACjB,OAAOuiT,EAAW,EAAI,KAAO,IAAI18S,OAAO08S,GAAUrlP,KAAK,KAAO2hT,EAAcA,EAAYl+X,OAAS4hU,EAAW,EAAIs8D,EAAY11X,MAAM,EAAGo5T,EAAW,GAAK,IAAMs8D,EAAY11X,MAAMo5T,EAAW,GAAKs8D,EAAc,IAAIh5W,MAAM08S,EAAWs8D,EAAYl+X,OAAS,GAAGu8E,KAAK,MCHhP,IACb,IAAK,SAAWxlE,EAAGspB,GACjB,OAAY,IAAJtpB,GAASw7B,QAAQlS,IAE3B,EAAK,SAAWtpB,GACd,OAAOjB,KAAKmC,MAAMlB,GAAGlW,SAAS,IAEhC,EAAK,SAAWkW,GACd,OAAOA,EAAI,IAEb,EPba,YACb,OAAOjB,KAAKgD,IAAI/B,EAAIjB,KAAKmC,MAAMlB,KAAO,KAAOA,EAAE2nX,eAAe,MAAMrhT,QAAQ,KAAM,IAAMtmE,EAAElW,SAAS,KOanG,EAAK,SAAWkW,EAAGspB,GACjB,OAAOtpB,EAAEknX,cAAc59V,IAEzB,EAAK,SAAWtpB,EAAGspB,GACjB,OAAOtpB,EAAEw7B,QAAQlS,IAEnB,EAAK,SAAWtpB,EAAGspB,GACjB,OAAOtpB,EAAEgyT,YAAY1oS,IAEvB,EAAK,SAAWtpB,GACd,OAAOjB,KAAKmC,MAAMlB,GAAGlW,SAAS,IAEhC,EAAK,SAAWkW,EAAGqzT,GACjB,OAAOu0D,GAAkB,IAAJ5nX,EAASqzT,IAEhC,EAAKu0D,GACL,EH5Ba,cACb,IAAIt/W,EAAI2+W,GAAmBjnX,EAAGspB,GAC9B,IAAKhhB,EAAG,OAAOtI,EAAI,GACnB,IAAImnX,EAAc7+W,EAAE,GAChBuiT,EAAWviT,EAAE,GACbvf,EAAI8hU,GAAY68D,GAAuE,EAAtD3oX,KAAKY,KAAK,EAAGZ,KAAKW,IAAI,EAAGX,KAAK2B,MAAMmqT,EAAW,MAAY,EAC5FhrT,EAAIsnX,EAAYl+X,OACpB,OAAOF,IAAM8W,EAAIsnX,EAAcp+X,EAAI8W,EAAIsnX,EAAc,IAAIh5W,MAAMplB,EAAI8W,EAAI,GAAG2lE,KAAK,KAAOz8E,EAAI,EAAIo+X,EAAY11X,MAAM,EAAG1I,GAAK,IAAMo+X,EAAY11X,MAAM1I,GAAK,KAAO,IAAIolB,MAAM,EAAIplB,GAAGy8E,KAAK,KAAOyhT,GAAmBjnX,EAAGjB,KAAKY,IAAI,EAAG2pB,EAAIvgC,EAAI,IAAI,IGsBvO,EAAK,SAAWiX,GACd,OAAOjB,KAAKmC,MAAMlB,GAAGlW,SAAS,IAAIs7E,eAEpC,EAAK,SAAW1vD,GACd,OAAO3W,KAAKmC,MAAMwU,GAAI5rB,SAAS,MCnCpB,eACb,OAAOkW,GCOLi3B,GAAM9oB,MAAMzjB,UAAUusC,IACtBu6P,GAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KJC7F,GIAa,YACb,ICXa,IDWTvtP,OAA4Bt6C,IAApBk+X,EAAOC,eAA+Cn+X,IAArBk+X,EAAOE,UAA0B,ICXjE,EDWwF9wV,GAAIltC,KAAK89X,EAAOC,SAAU/wW,QCXlH,EDW2H8wW,EAAOE,UAAY,GCVpJ,SAAUn9X,EAAOgiB,GAOtB,IANA,IAAI7jB,EAAI6B,EAAM3B,OACViX,EAAI,GACJigB,EAAI,EACJ3X,EAAIs/W,EAAS,GACb7+X,EAAS,EAENF,EAAI,GAAKyf,EAAI,IACdvf,EAASuf,EAAI,EAAIoE,IAAOpE,EAAIzJ,KAAKY,IAAI,EAAGiN,EAAQ3jB,IACpDiX,EAAEvX,KAAKiC,EAAMiqK,UAAU9rK,GAAKyf,EAAGzf,EAAIyf,OAC9Bvf,GAAUuf,EAAI,GAAKoE,KACxBpE,EAAIs/W,EAAS3nW,GAAKA,EAAI,GAAK2nW,EAAS7+X,QAGtC,OAAOiX,EAAE9O,UAAUo0E,KAAKuiT,KDHtBC,OAAqCr+X,IAApBk+X,EAAOI,SAAyB,GAAKJ,EAAOI,SAAS,GAAK,GAC3EC,OAAqCv+X,IAApBk+X,EAAOI,SAAyB,GAAKJ,EAAOI,SAAS,GAAK,GAC3EE,OAA6Bx+X,IAAnBk+X,EAAOM,QAAwB,IAAMN,EAAOM,QAAU,GAChEC,OAA+Bz+X,IAApBk+X,EAAOO,SAAyB,GEflC,YACb,OAAO,SAAUx9X,GACf,OAAOA,EAAM07E,QAAQ,UAAU,SAAUv9E,GACvC,OAAOq/X,GAAUr/X,OFYqCs/X,CAAepxV,GAAIltC,KAAK89X,EAAOO,SAAU3/U,SAC/F6wM,OAA6B3vP,IAAnBk+X,EAAOvuI,QAAwB,IAAMuuI,EAAOvuI,QAAU,GAChEgvI,OAAyB3+X,IAAjBk+X,EAAOS,MAAsB,SAAMT,EAAOS,MAAQ,GAC1DC,OAAqB5+X,IAAfk+X,EAAOU,IAAoB,MAAQV,EAAOU,IAAM,GAE1D,SAASC,EAAUnB,GAEjB,IAAI3xT,GADJ2xT,EAAYD,GAAgBC,IACP3xT,KACjB6xT,EAAQF,EAAUE,MAClBxjW,EAAOsjW,EAAUtjW,KACjB+sO,EAASu2H,EAAUv2H,OACnB02H,EAAOH,EAAUG,KACjB56W,EAAQy6W,EAAUz6W,MAClB66W,EAAQJ,EAAUI,MAClB7yV,EAAYyyV,EAAUzyV,UACtBqwC,EAAOoiT,EAAUpiT,KACjBj3E,EAAOq5X,EAAUr5X,KAER,MAATA,GAAcy5X,GAAQ,EAAMz5X,EAAO,KAC7By6X,GAAYz6X,UAAqBrE,IAAdirC,IAA4BA,EAAY,IAAKqwC,GAAO,EAAMj3E,EAAO,MAE1Fw5X,GAAiB,MAAT9xT,GAA0B,MAAV6xT,KAAeC,GAAO,EAAM9xT,EAAO,IAAK6xT,EAAQ,KAG5E,IAAIn5S,EAAoB,MAAX0iL,EAAiBk3H,EAA4B,MAAXl3H,GAAkB,SAAStkP,KAAKxe,GAAQ,IAAMA,EAAKwR,cAAgB,GAC9GkpX,EAAoB,MAAX53H,EAAiBo3H,EAAiB,OAAO17W,KAAKxe,GAAQsrP,EAAU,GAIzEqvI,EAAaF,GAAYz6X,GACzB46X,EAAc,aAAap8W,KAAKxe,GAOpC,SAASqhB,EAAOzkB,GACd,IAEI7B,EACA8W,EACAsD,EAJA0lX,EAAcz6S,EACd06S,EAAcJ,EAKlB,GAAa,MAAT16X,EACF86X,EAAcH,EAAW/9X,GAASk+X,EAClCl+X,EAAQ,OACH,CAGL,IAAIm+X,GAFJn+X,GAASA,GAEmB,GAAK,EAAIA,EAAQ,EAY7C,GAVAA,EAAQ4F,MAAM5F,GAAS29X,EAAMI,EAAW5pX,KAAKgD,IAAInX,GAAQgqC,GAErDqwC,IAAMr6E,ENpEH,YACb0jN,EAAK,IAAK,IAAkCx9K,EAA9BjxB,EAAI4C,EAAExZ,OAAQF,EAAI,EAAG8nC,GAAM,EAAO9nC,EAAI8W,IAAK9W,EACvD,OAAQ0Z,EAAE1Z,IACR,IAAK,IACH8nC,EAAKC,EAAK/nC,EACV,MAEF,IAAK,IACQ,IAAP8nC,IAAUA,EAAK9nC,GACnB+nC,EAAK/nC,EACL,MAEF,QACE,KAAM0Z,EAAE1Z,GAAI,MAAMulN,EACdz9K,EAAK,IAAGA,EAAK,GAKvB,OAAOA,EAAK,EAAIpuB,EAAEhR,MAAM,EAAGo/B,GAAMpuB,EAAEhR,MAAMq/B,EAAK,GAAKruB,EMiD3BumX,CAAWp+X,IAEzBm+X,GAA4B,KAAVn+X,GAAwB,MAATm5B,IAAcglW,GAAgB,GAEnEF,GAAeE,EAAyB,MAAThlW,EAAeA,EAAOukW,EAAiB,MAATvkW,GAAyB,MAATA,EAAe,GAAKA,GAAQ8kW,EACzGC,GAAwB,MAAT96X,EAAewjS,GAAS,EAAIk2F,GAAiB,GAAK,IAAMoB,GAAeC,GAA0B,MAAThlW,EAAe,IAAM,IAGxH6kW,EAGF,IAFA7/X,GAAK,EAAG8W,EAAIjV,EAAM3B,SAETF,EAAI8W,GACX,GAA6B,IAAzBsD,EAAIvY,EAAMm4L,WAAWh6L,KAAcoa,EAAI,GAAI,CAC7C2lX,GAAqB,KAAN3lX,EAAWglX,EAAUv9X,EAAM6G,MAAM1I,EAAI,GAAK6B,EAAM6G,MAAM1I,IAAM+/X,EAC3El+X,EAAQA,EAAM6G,MAAM,EAAG1I,GACvB,OAOJ0+X,IAAUD,IAAM58X,EAAQq5C,EAAMr5C,EAAOgyB,MAEzC,IAAI3zB,EAAS4/X,EAAY5/X,OAAS2B,EAAM3B,OAAS6/X,EAAY7/X,OACzD6vP,EAAU7vP,EAAS2jB,EAAQ,IAAIuB,MAAMvB,EAAQ3jB,EAAS,GAAGu8E,KAAK9P,GAAQ,GAI1E,OAFI+xT,GAASD,IAAM58X,EAAQq5C,EAAM60M,EAAUluP,EAAOkuP,EAAQ7vP,OAAS2jB,EAAQk8W,EAAY7/X,OAAS2zB,KAAWk8N,EAAU,IAE7GyuI,GACN,IAAK,IACH38X,EAAQi+X,EAAcj+X,EAAQk+X,EAAchwI,EAC5C,MAEF,IAAK,IACHluP,EAAQi+X,EAAc/vI,EAAUluP,EAAQk+X,EACxC,MAEF,IAAK,IACHl+X,EAAQkuP,EAAQrnP,MAAM,EAAGxI,EAAS6vP,EAAQ7vP,QAAU,GAAK4/X,EAAcj+X,EAAQk+X,EAAchwI,EAAQrnP,MAAMxI,GAC3G,MAEF,QACE2B,EAAQkuP,EAAU+vI,EAAcj+X,EAAQk+X,EAI5C,OAAOV,EAASx9X,GAOlB,OAzEAgqC,OAA0BjrC,IAAdirC,EAA0B,EAAI,SAASpoB,KAAKxe,GAAQ+Q,KAAKY,IAAI,EAAGZ,KAAKW,IAAI,GAAIk1B,IAAc71B,KAAKY,IAAI,EAAGZ,KAAKW,IAAI,GAAIk1B,IAqEhIvlB,EAAOvlB,SAAW,WAChB,OAAOu9X,EAAY,IAGdh4W,EAaT,MAAO,CACLA,OAAQm5W,EACRS,aAZF,SAAsB5B,EAAWz8X,GAC/B,IAAI2d,EAAIigX,IAAWnB,EAAYD,GAAgBC,IAAsBr5X,KAAO,IAAKq5X,IAC7E9iX,EAAiE,EAA7DxF,KAAKY,KAAK,EAAGZ,KAAKW,IAAI,EAAGX,KAAK2B,MAAM,GAAS9V,GAAS,KAC1DszF,EAAIn/E,KAAKsB,IAAI,IAAKkE,GAClB6pE,EAASojN,GAAS,EAAIjtR,EAAI,GAC9B,OAAO,SAAU3Z,GACf,OAAO2d,EAAE21E,EAAItzF,GAASwjF,KJ1HjB,CANG,CACZ25S,UAAW,IACXD,SAAU,CAAC,GACXG,SAAU,CAAC,IAAK,MAIhB,GAAS,GAAO54W,OAChB,GAAe,GAAO45W,aOZT,qBACb,OAAOhmX,EAAIC,GAAK,EAAID,EAAIC,EAAI,EAAID,GAAKC,EAAI,EAAIm/R,KCAhC,YAAA95R,GACb,IAAI4Y,EAAQ5Y,EACRinS,EAAUjnS,EAUd,SAASygB,EAAK/lB,EAAGjD,EAAGkpX,EAAIp/F,GAItB,IAHU,MAANo/F,IAAYA,EAAK,GACX,MAANp/F,IAAYA,EAAK7mR,EAAEha,QAEhBigY,EAAKp/F,GAAI,CACd,IAAI37I,EAAM+6O,EAAKp/F,IAAO,EAClB0lB,EAAQvsS,EAAEkrI,GAAMnuI,GAAK,EAAGkpX,EAAK/6O,EAAM,EAAO27I,EAAK37I,EAGrD,OAAO+6O,EAsBT,OAvCiB,IAAb3gX,EAAEtf,SACJk4B,EAAQ,SAAe7Y,EAAGtI,GACxB,OAAOuI,EAAED,GAAKtI,GAGhBwvS,EAyCJ,SAA6BjnS,GAC3B,OAAO,SAAUD,EAAGtI,GAClB,OAAO,GAAUuI,EAAED,GAAItI,IA3CbmpX,CAAoB5gX,IAkCzB,CACLygB,KAAMA,EACNljB,OATF,SAAgB7C,EAAGjD,EAAGkpX,EAAIp/F,GACd,MAANo/F,IAAYA,EAAK,GACX,MAANp/F,IAAYA,EAAK7mR,EAAEha,QACvB,IAAIF,EAAIigC,EAAK/lB,EAAGjD,EAAGkpX,EAAIp/F,EAAK,GAC5B,OAAO/gS,EAAImgY,GAAM/nW,EAAMle,EAAEla,EAAI,GAAIiX,IAAMmhB,EAAMle,EAAEla,GAAIiX,GAAKjX,EAAI,EAAIA,GAMhEkgC,MAtBF,SAAehmB,EAAGjD,EAAGkpX,EAAIp/F,GAIvB,IAHU,MAANo/F,IAAYA,EAAK,GACX,MAANp/F,IAAYA,EAAK7mR,EAAEha,QAEhBigY,EAAKp/F,GAAI,CACd,IAAI37I,EAAM+6O,EAAKp/F,IAAO,EAClB0lB,EAAQvsS,EAAEkrI,GAAMnuI,GAAK,EAAG8pR,EAAK37I,EAAS+6O,EAAK/6O,EAAM,EAGvD,OAAO+6O,KC/BX,IAAIE,GAAkBC,GAAS,IACpBC,GAAcF,GAAgBngW,MAG1BsgW,IAFSH,GAAgBpgW,KACdqgW,ICAX,YACb,OAAa,OAANrpX,EAAaqiS,KAAOriS,KDDc8F,OAC5B,IEPA,mBACbrb,EAAYC,UAAYupR,EAAQvpR,UAAYA,EAC5CA,EAAUD,YAAcA,GAEnB,SAAS,GAAO8gC,EAAQm+U,GAC7B,IAAIh/W,EAAYtC,OAAOuC,OAAO4gC,EAAO7gC,WAErC,IAAK,IAAItB,KAAOsgX,EACdh/W,EAAUtB,GAAOsgX,EAAWtgX,GAG9B,OAAOsB,ECVF,SAAS,MAChB,IAMI,GAAM,sBACN,GAAM,gDACN,GAAM,iDACN,GAAQ,qBACR,GAAe,IAAI+mK,OAAO,UAAY,CAAC,GAAK,GAAK,IAAO,QACxD,GAAe,IAAIA,OAAO,UAAY,CAAC,GAAK,GAAK,IAAO,QACxD,GAAgB,IAAIA,OAAO,WAAa,CAAC,GAAK,GAAK,GAAK,IAAO,QAC/D,GAAgB,IAAIA,OAAO,WAAa,CAAC,GAAK,GAAK,GAAK,IAAO,QAC/D,GAAe,IAAIA,OAAO,UAAY,CAAC,GAAK,GAAK,IAAO,QACxD,GAAgB,IAAIA,OAAO,WAAa,CAAC,GAAK,GAAK,GAAK,IAAO,QAC/D,GAAQ,CACV+yG,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,QACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,EACPC,eAAgB,SAChBC,KAAM,IACNC,WAAY,QACZC,MAAO,SACPC,UAAW,SACXE,UAAW,QACXC,WAAY,QACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,QAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,IACVC,SAAU,MACVC,cAAe,SACfC,SAAU,SACVC,UAAW,MACXC,SAAU,SACVC,UAAW,SACXC,YAAa,QACbC,eAAgB,QAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,QACTC,WAAY,SACZC,aAAc,QACdC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,cAAe,MACfC,WAAY,QACZC,SAAU,SACVC,YAAa,MACbC,QAAS,QACTC,QAAS,QACTC,WAAY,QACZC,UAAW,SACXC,YAAa,SACbC,YAAa,QACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,QACNC,MAAO,MACPC,YAAa,SACbC,KAAM,QACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,QACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,QACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,QACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,QACfC,aAAc,QACdC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,QACXC,MAAO,SACPC,QAAS,SACTC,OAAQ,QACRC,iBAAkB,QAClBC,WAAY,IACZC,aAAc,SACdC,aAAc,QACdC,eAAgB,QAChBC,gBAAiB,QACjBC,kBAAmB,MACnBC,gBAAiB,QACjBC,gBAAiB,SACjBC,aAAc,QACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,IACNC,QAAS,SACTC,MAAO,QACPC,UAAW,QACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,QACRC,cAAe,QACfC,IAAK,SACLC,UAAW,SACXC,UAAW,QACXC,YAAa,QACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,QACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,QACTC,UAAW,QACXC,UAAW,QACXC,UAAW,QACXC,KAAM,SACNC,YAAa,MACbC,UAAW,QACXx9N,IAAK,SACLy9N,KAAM,MACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,QACXC,OAAQ,SACRC,MAAO,SACPh+C,MAAO,SACPi+C,WAAY,SACZC,OAAQ,SACRC,YAAa,UAiBf,SAAS,KACP,OAAOljR,KAAKgkO,MAAM87I,YAOpB,SAAS,KACP,OAAO9/W,KAAKgkO,MAAMg8I,YAGL,SAAS,GAAMn7V,GAC5B,IAAIvP,EAAGnB,EAEP,OADA0Q,GAAUA,EAAS,IAAI41D,OAAOzlE,eACtBM,EAAI,GAAM+6B,KAAKxrB,KAAY1Q,EAAImB,EAAE,GAAG7W,OAAQ6W,EAAIi7B,SAASj7B,EAAE,GAAI,IAAW,IAANnB,EAAU,GAAKmB,GACnF,IAANnB,EAAU,IAAI,GAAImB,GAAK,EAAI,GAAMA,GAAK,EAAI,IAAMA,GAAK,EAAI,GAAU,IAAJA,GAAe,GAAJA,IAAY,EAAQ,GAAJA,EAAS,GAC7F,IAANnB,EAAU,GAAKmB,GAAK,GAAK,IAAMA,GAAK,GAAK,IAAMA,GAAK,EAAI,KAAW,IAAJA,GAAY,KACrE,IAANnB,EAAU,GAAKmB,GAAK,GAAK,GAAMA,GAAK,EAAI,IAAMA,GAAK,EAAI,GAAMA,GAAK,EAAI,IAAMA,GAAK,EAAI,GAAU,IAAJA,IAAgB,GAAJA,IAAY,EAAQ,GAAJA,GAAW,KAClI,OACGA,EAAI,GAAa+6B,KAAKxrB,IAAW,IAAI,GAAIvP,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,IAC7DA,EAAI,GAAa+6B,KAAKxrB,IAAW,IAAI,GAAW,IAAPvP,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAK,IAC/FA,EAAI,GAAc+6B,KAAKxrB,IAAW,GAAKvP,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAC3DA,EAAI,GAAc+6B,KAAKxrB,IAAW,GAAY,IAAPvP,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAKA,EAAE,KAC/FA,EAAI,GAAa+6B,KAAKxrB,IAAW,GAAKvP,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAK,IACpEA,EAAI,GAAc+6B,KAAKxrB,IAAW,GAAKvP,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAKA,EAAE,IACxE,GAAM1U,eAAeikB,GAAU,GAAK,GAAMA,IAC/B,gBAAXA,EAA2B,IAAI,GAAIgzR,IAAKA,IAAKA,IAAK,GAAK,KAG3D,SAAS,GAAKxiS,GACZ,OAAO,IAAI,GAAIA,GAAK,GAAK,IAAMA,GAAK,EAAI,IAAU,IAAJA,EAAU,GAG1D,SAAS,GAAKuJ,EAAGZ,EAAGtF,EAAGD,GAErB,OADIA,GAAK,IAAGmG,EAAIZ,EAAItF,EAAIm/R,KACjB,IAAI,GAAIj5R,EAAGZ,EAAGtF,EAAGD,GAGnB,SAAS,GAAWqjI,GAEzB,OADMA,aAAa,KAAQA,EAAI,GAAMA,IAChCA,EAEE,IAAI,IADXA,EAAIA,EAAEkoF,OACWplN,EAAGk9H,EAAE99H,EAAG89H,EAAEpjI,EAAGojI,EAAElzG,SAFjB,IAAI,GAId,SAAS,GAAIhqB,EAAGZ,EAAGtF,EAAGkwB,GAC3B,OAA4B,IAArBpqC,UAAUC,OAAe,GAAWmgB,GAAK,IAAI,GAAIA,EAAGZ,EAAGtF,EAAc,MAAXkwB,EAAkB,EAAIA,GAElF,SAAS,GAAIhqB,EAAGZ,EAAGtF,EAAGkwB,GAC3B5oC,KAAK4e,GAAKA,EACV5e,KAAKge,GAAKA,EACVhe,KAAK0Y,GAAKA,EACV1Y,KAAK4oC,SAAWA,EAwBlB,SAAS,KACP,MAAO,IAAM,GAAI5oC,KAAK4e,GAAK,GAAI5e,KAAKge,GAAK,GAAIhe,KAAK0Y,GAGpD,SAAS,KACP,IAAID,EAAIzY,KAAK4oC,QAEb,OAAc,KADdnwB,EAAIzS,MAAMyS,GAAK,EAAIlE,KAAKY,IAAI,EAAGZ,KAAKW,IAAI,EAAGuD,KACzB,OAAS,SAAWlE,KAAKY,IAAI,EAAGZ,KAAKW,IAAI,IAAKX,KAAKmC,MAAM1W,KAAK4e,IAAM,IAAM,KAAOrK,KAAKY,IAAI,EAAGZ,KAAKW,IAAI,IAAKX,KAAKmC,MAAM1W,KAAKge,IAAM,IAAM,KAAOzJ,KAAKY,IAAI,EAAGZ,KAAKW,IAAI,IAAKX,KAAKmC,MAAM1W,KAAK0Y,IAAM,KAAa,IAAND,EAAU,IAAM,KAAOA,EAAI,KAGpP,SAAS,GAAIrY,GAEX,QADAA,EAAQmU,KAAKY,IAAI,EAAGZ,KAAKW,IAAI,IAAKX,KAAKmC,MAAMtW,IAAU,KACvC,GAAK,IAAM,IAAMA,EAAMd,SAAS,IAGlD,SAAS,GAAK2e,EAAGhG,EAAG9D,EAAGsE,GAErB,OADIA,GAAK,EAAGwF,EAAIhG,EAAI9D,EAAI0jS,IAAa1jS,GAAK,GAAKA,GAAK,EAAG8J,EAAIhG,EAAI4/R,IAAa5/R,GAAK,IAAGgG,EAAI45R,KACjF,IAAI,GAAI55R,EAAGhG,EAAG9D,EAAGsE,GAGnB,SAAS,GAAWqjI,GACzB,GAAIA,aAAa,GAAK,OAAO,IAAI,GAAIA,EAAE79H,EAAG69H,EAAE7jI,EAAG6jI,EAAE3nI,EAAG2nI,EAAElzG,SAEtD,GADMkzG,aAAa,KAAQA,EAAI,GAAMA,KAChCA,EAAG,OAAO,IAAI,GACnB,GAAIA,aAAa,GAAK,OAAOA,EAE7B,IAAIl9H,GADJk9H,EAAIA,EAAEkoF,OACIplN,EAAI,IACVZ,EAAI89H,EAAE99H,EAAI,IACVtF,EAAIojI,EAAEpjI,EAAI,IACVxD,EAAMX,KAAKW,IAAI0J,EAAGZ,EAAGtF,GACrBvD,EAAMZ,KAAKY,IAAIyJ,EAAGZ,EAAGtF,GACrBuF,EAAI45R,IACJ5/R,EAAI9C,EAAMD,EACVf,GAAKgB,EAAMD,GAAO,EAUtB,OARI+C,GACagG,EAAXW,IAAMzJ,GAAU6I,EAAItF,GAAKT,EAAc,GAAT+F,EAAItF,GAAgBsF,IAAM7I,GAAUuD,EAAIkG,GAAK3G,EAAI,GAAY2G,EAAIZ,GAAK/F,EAAI,EAC5GA,GAAK9D,EAAI,GAAMgB,EAAMD,EAAM,EAAIC,EAAMD,EACrC+I,GAAK,IAELhG,EAAI9D,EAAI,GAAKA,EAAI,EAAI,EAAI8J,EAGpB,IAAI,GAAIA,EAAGhG,EAAG9D,EAAG2nI,EAAElzG,SAM5B,SAAS,GAAI3qB,EAAGhG,EAAG9D,EAAGy0B,GACpB5oC,KAAKie,GAAKA,EACVje,KAAKiY,GAAKA,EACVjY,KAAKmU,GAAKA,EACVnU,KAAK4oC,SAAWA,EA+BlB,SAAS,GAAQ3qB,EAAGk5S,EAAIC,GACtB,OAA4G,KAApGn5S,EAAI,GAAKk5S,GAAMC,EAAKD,GAAMl5S,EAAI,GAAKA,EAAI,IAAMm5S,EAAKn5S,EAAI,IAAMk5S,GAAMC,EAAKD,IAAO,IAAMl5S,GAAK,GAAKk5S,GCxVjG,SAAS,GAAM1+R,EAAIhD,EAAIza,EAAIC,EAAI8rB,GACpC,IAAIgxF,EAAKt/F,EAAKA,EACV6zP,EAAKv0J,EAAKt/F,EACd,QAAS,EAAI,EAAIA,EAAK,EAAIs/F,EAAKu0J,GAAM72P,GAAM,EAAI,EAAIsiG,EAAK,EAAIu0J,GAAMtxQ,GAAM,EAAI,EAAIyd,EAAK,EAAIs/F,EAAK,EAAIu0J,GAAMrxQ,EAAKqxQ,EAAKvlP,GAAM,EDqK1H,GAAO,GAAO,GAAO,CACnBhhB,KAAM,SAAc26V,GAClB,OAAO9iX,OAAOsrB,OAAO,IAAIlpB,KAAKC,YAAeD,KAAM0gX,IAErDC,YAAa,WACX,OAAO3gX,KAAKgkO,MAAM28I,eAEpB3wU,IAAK,GAEL8vU,UAAW,GACXc,UASF,WACE,OAAO,GAAW5gX,MAAM4gX,aATxBZ,UAAW,GACX1gX,SAAU,KAyDZ,GAAO,GAAK,GAAK,GAAO,GAAO,CAC7BuhX,SAAU,SAAkBntR,GAE1B,OADAA,EAAS,MAALA,EA1OQ,EAHF,GA6OkBn/E,KAAKsB,IA1OrB,EAHF,GA6OsC69E,GACzC,IAAI,GAAI1zF,KAAK4e,EAAI80E,EAAG1zF,KAAKge,EAAI01E,EAAG1zF,KAAK0Y,EAAIg7E,EAAG1zF,KAAK4oC,UAE1Dk4U,OAAQ,SAAgBptR,GAEtB,OADAA,EAAS,MAALA,EAjPM,GAiPgBn/E,KAAKsB,IAjPrB,GAiPkC69E,GACrC,IAAI,GAAI1zF,KAAK4e,EAAI80E,EAAG1zF,KAAKge,EAAI01E,EAAG1zF,KAAK0Y,EAAIg7E,EAAG1zF,KAAK4oC,UAE1Do7L,IAAK,WACH,OAAOhkO,MAET2gX,YAAa,WACX,OAAQ,IAAO3gX,KAAK4e,GAAK5e,KAAK4e,EAAI,QAAU,IAAO5e,KAAKge,GAAKhe,KAAKge,EAAI,QAAU,IAAOhe,KAAK0Y,GAAK1Y,KAAK0Y,EAAI,OAAS,GAAK1Y,KAAK4oC,SAAW5oC,KAAK4oC,SAAW,GAE1JoH,IAAK,GAEL8vU,UAAW,GACXE,UAAW,GACX1gX,SAAU,MA2DZ,GAAO,IAXA,SAAa2e,EAAGhG,EAAG9D,EAAGy0B,GAC3B,OAA4B,IAArBpqC,UAAUC,OAAe,GAAWwf,GAAK,IAAI,GAAIA,EAAGhG,EAAG9D,EAAc,MAAXy0B,EAAkB,EAAIA,KAUxE,GAAO,GAAO,CAC7Bi4U,SAAU,SAAkBntR,GAE1B,OADAA,EAAS,MAALA,EAxTQ,EAHF,GA2TkBn/E,KAAKsB,IAxTrB,EAHF,GA2TsC69E,GACzC,IAAI,GAAI1zF,KAAKie,EAAGje,KAAKiY,EAAGjY,KAAKmU,EAAIu/E,EAAG1zF,KAAK4oC,UAElDk4U,OAAQ,SAAgBptR,GAEtB,OADAA,EAAS,MAALA,EA/TM,GA+TgBn/E,KAAKsB,IA/TrB,GA+TkC69E,GACrC,IAAI,GAAI1zF,KAAKie,EAAGje,KAAKiY,EAAGjY,KAAKmU,EAAIu/E,EAAG1zF,KAAK4oC,UAElDo7L,IAAK,WACH,IAAI/lN,EAAIje,KAAKie,EAAI,IAAqB,KAAdje,KAAKie,EAAI,GAC7BhG,EAAIjS,MAAMiY,IAAMjY,MAAMhG,KAAKiY,GAAK,EAAIjY,KAAKiY,EACzC9D,EAAInU,KAAKmU,EACTijT,EAAKjjT,GAAKA,EAAI,GAAMA,EAAI,EAAIA,GAAK8D,EACjCk/S,EAAK,EAAIhjT,EAAIijT,EACjB,OAAO,IAAI,GAAI,GAAQn5S,GAAK,IAAMA,EAAI,IAAMA,EAAI,IAAKk5S,EAAIC,GAAK,GAAQn5S,EAAGk5S,EAAIC,GAAK,GAAQn5S,EAAI,IAAMA,EAAI,IAAMA,EAAI,IAAKk5S,EAAIC,GAAKp3T,KAAK4oC,UAEvI+3U,YAAa,WACX,OAAQ,GAAK3gX,KAAKiY,GAAKjY,KAAKiY,GAAK,GAAKjS,MAAMhG,KAAKiY,KAAO,GAAKjY,KAAKmU,GAAKnU,KAAKmU,GAAK,GAAK,GAAKnU,KAAK4oC,SAAW5oC,KAAK4oC,SAAW,GAE7Hg4U,UAAW,WACT,IAAInoW,EAAIzY,KAAK4oC,QAEb,OAAc,KADdnwB,EAAIzS,MAAMyS,GAAK,EAAIlE,KAAKY,IAAI,EAAGZ,KAAKW,IAAI,EAAGuD,KACzB,OAAS,UAAYzY,KAAKie,GAAK,GAAK,KAAuB,KAAfje,KAAKiY,GAAK,GAAW,MAAwB,KAAfjY,KAAKmU,GAAK,GAAW,KAAa,IAANsE,EAAU,IAAM,KAAOA,EAAI,SC7UxI,ICLC,eACd,OAAO,WACL,OAAOjD,ICAX,SAAS,GAAOiD,EAAGqF,GACjB,OAAO,SAAUpI,GACf,OAAO+C,EAAI/C,EAAIoI,GAcZ,SAAS,GAAMrI,GACpB,OAAoB,KAAZA,GAAKA,GAAW,GAAU,SAAUgD,EAAGC,GAC7C,OAAOA,EAAID,EAZf,SAAqBA,EAAGC,EAAGjD,GACzB,OAAOgD,EAAIlE,KAAKsB,IAAI4C,EAAGhD,GAAIiD,EAAInE,KAAKsB,IAAI6C,EAAGjD,GAAKgD,EAAGhD,EAAI,EAAIA,EAAG,SAAUC,GACtE,OAAOnB,KAAKsB,IAAI4C,EAAI/C,EAAIgD,EAAGjD,IAUZ,CAAYgD,EAAGC,EAAGjD,GAAK,GAASzP,MAAMyS,GAAKC,EAAID,IAGnD,SAAS,GAAQA,EAAGC,GACjC,IAAIoF,EAAIpF,EAAID,EACZ,OAAOqF,EAAI,GAAOrF,EAAGqF,GAAK,GAAS9X,MAAMyS,GAAKC,EAAID,GCrBrC,qBACb,IAAImI,EAAQ,GAAMnL,GAElB,SAASuuN,EAAI/sL,EAAOsR,GAClB,IAAI3pC,EAAIgC,GAAOq2B,EAAQ,GAASA,IAAQr4B,GAAI2pC,EAAM,GAASA,IAAM3pC,GAC7DZ,EAAI4C,EAAMq2B,EAAMj5B,EAAGuqC,EAAIvqC,GACvBtF,EAAIkI,EAAMq2B,EAAMv+B,EAAG6vC,EAAI7vC,GACvBkwB,EAAU,GAAQqO,EAAMrO,QAAS2f,EAAI3f,SACzC,OAAO,SAAUlzB,GAKf,OAJAuhC,EAAMr4B,EAAIA,EAAElJ,GACZuhC,EAAMj5B,EAAIA,EAAEtI,GACZuhC,EAAMv+B,EAAIA,EAAEhD,GACZuhC,EAAMrO,QAAUA,EAAQlzB,GACjBuhC,EAAQ,IAKnB,OADA+sL,EAAIg9I,MAAQG,EACLn9I,EAlBM,CAmBZ,GAEH,SAAS,GAAUq9I,GACjB,OAAO,SAAUroM,GACf,IAIIz6K,EACAqiB,EALAvL,EAAI2jK,EAAOv6K,OACXmgB,EAAI,IAAI+E,MAAMtO,GACd2I,EAAI,IAAI2F,MAAMtO,GACdqD,EAAI,IAAIiL,MAAMtO,GAIlB,IAAK9W,EAAI,EAAGA,EAAI8W,IAAK9W,EACnBqiB,EAAQ,GAASo4J,EAAOz6K,IACxBqgB,EAAErgB,GAAKqiB,EAAMhC,GAAK,EAClBZ,EAAEzf,GAAKqiB,EAAM5C,GAAK,EAClBtF,EAAEna,GAAKqiB,EAAMlI,GAAK,EAOpB,OAJAkG,EAAIyiW,EAAOziW,GACXZ,EAAIqjW,EAAOrjW,GACXtF,EAAI2oW,EAAO3oW,GACXkI,EAAMgoB,QAAU,EACT,SAAUlzB,GAIf,OAHAkL,EAAMhC,EAAIA,EAAElJ,GACZkL,EAAM5C,EAAIA,EAAEtI,GACZkL,EAAMlI,EAAIA,EAAEhD,GACLkL,EAAQ,KAKC,IHjDP,YACb,IAAIvL,EAAItR,EAAOtF,OAAS,EACxB,OAAO,SAAUiX,GACf,IAAInX,EAAImX,GAAK,EAAIA,EAAI,EAAIA,GAAK,GAAKA,EAAI,EAAGL,EAAI,GAAKd,KAAK2B,MAAMR,EAAIL,GAC9D2F,EAAKjX,EAAOxF,GACZ0c,EAAKlX,EAAOxF,EAAI,GAChBk3B,EAAKl3B,EAAI,EAAIwF,EAAOxF,EAAI,GAAK,EAAIyc,EAAKC,EACtC8rB,EAAKxoC,EAAI8W,EAAI,EAAItR,EAAOxF,EAAI,GAAK,EAAI0c,EAAKD,EAC9C,OAAO,IAAOtF,EAAInX,EAAI8W,GAAKA,EAAGogB,EAAIza,EAAIC,EAAI8rB,OG0ClB,ICtDb,YACb,IAAI1xB,EAAItR,EAAOtF,OACf,OAAO,SAAUiX,GACf,IAAInX,EAAIgW,KAAK2B,QAAQR,GAAK,GAAK,IAAMA,EAAIA,GAAKL,GAC1CogB,EAAK1xB,GAAQxF,EAAI8W,EAAI,GAAKA,GAC1B2F,EAAKjX,EAAOxF,EAAI8W,GAChB4F,EAAKlX,GAAQxF,EAAI,GAAK8W,GACtB0xB,EAAKhjC,GAAQxF,EAAI,GAAK8W,GAC1B,OAAO,IAAOK,EAAInX,EAAI8W,GAAKA,EAAGogB,EAAIza,EAAIC,EAAI8rB,OD6CvC,IEtDQ,iBACRruB,IAAGA,EAAI,IACZ,IAEIna,EAFA8W,EAAIoD,EAAIlE,KAAKW,IAAIwD,EAAEja,OAAQga,EAAEha,QAAU,EACvCka,EAAID,EAAEzR,QAEV,OAAO,SAAUyO,GACf,IAAKnX,EAAI,EAAGA,EAAI8W,IAAK9W,EACnBoa,EAAEpa,GAAKka,EAAEla,IAAM,EAAImX,GAAKgD,EAAEna,GAAKmX,EAGjC,OAAOiD,IAGJ,SAASqmX,GAAcxpX,GAC5B,OAAOs8B,YAAYmtG,OAAOzpI,MAAQA,aAAa0pI,UCT1C,SAAS+/O,GAAaxmX,EAAGC,GAC9B,IAIIna,EAJA2gY,EAAKxmX,EAAIA,EAAEja,OAAS,EACpB0gY,EAAK1mX,EAAIlE,KAAKW,IAAIgqX,EAAIzmX,EAAEha,QAAU,EAClC+W,EAAI,IAAImO,MAAMw7W,GACdxmX,EAAI,IAAIgL,MAAMu7W,GAGlB,IAAK3gY,EAAI,EAAGA,EAAI4gY,IAAM5gY,EACpBiX,EAAEjX,GAAK,GAAMka,EAAEla,GAAIma,EAAEna,IAGvB,KAAOA,EAAI2gY,IAAM3gY,EACfoa,EAAEpa,GAAKma,EAAEna,GAGX,OAAO,SAAUmX,GACf,IAAKnX,EAAI,EAAGA,EAAI4gY,IAAM5gY,EACpBoa,EAAEpa,GAAKiX,EAAEjX,GAAGmX,GAGd,OAAOiD,GCzBI,qBACb,IAAImF,EAAI,IAAIyhJ,KACZ,OAAO9mJ,GAAKA,EAAGC,GAAKA,EAAG,SAAUhD,GAC/B,OAAOoI,EAAEshX,QAAQ3mX,GAAK,EAAI/C,GAAKgD,EAAIhD,GAAIoI,ICH5B,iBACb,OAAOrF,GAAKA,EAAGC,GAAKA,EAAG,SAAUhD,GAC/B,OAAO+C,GAAK,EAAI/C,GAAKgD,EAAIhD,ICDd,iBACb,IAEIg+E,EAFAn1F,EAAI,GACJoa,EAAI,GAKR,IAAK+6E,KAHK,OAANj7E,GAA2B,kBAANA,IAAgBA,EAAI,IACnC,OAANC,GAA2B,kBAANA,IAAgBA,EAAI,IAEnCA,EACJg7E,KAAKj7E,EACPla,EAAEm1F,GAAK,GAAMj7E,EAAEi7E,GAAIh7E,EAAEg7E,IAErB/6E,EAAE+6E,GAAKh7E,EAAEg7E,GAIb,OAAO,SAAUh+E,GACf,IAAKg+E,KAAKn1F,EACRoa,EAAE+6E,GAAKn1F,EAAEm1F,GAAGh+E,GAGd,OAAOiD,ICpBP,GAAM,8CACN,GAAM,IAAIsuJ,OAAO,GAAIvoK,OAAQ,KAclB,qBACb,IAEA8iX,EAEAC,EAEAvvO,EANIwvO,EAAK,GAAIvoS,UAAY,GAAIA,UAAY,EAQzC56E,GAAK,EAEL0Z,EAAI,GAEJO,EAAI,GAKJ,IAFAC,GAAQ,GAAIC,GAAQ,IAEZ8oW,EAAK,GAAInxU,KAAK53B,MAAQgpW,EAAK,GAAIpxU,KAAK33B,MACrCw5H,EAAKuvO,EAAG1tW,OAAS2tW,IAEpBxvO,EAAKx5H,EAAEzR,MAAMy6W,EAAIxvO,GACbj6H,EAAE1Z,GAAI0Z,EAAE1Z,IAAM2zI,EACbj6H,IAAI1Z,GAAK2zI,IAGXsvO,EAAKA,EAAG,OAASC,EAAKA,EAAG,IAExBxpW,EAAE1Z,GAAI0Z,EAAE1Z,IAAMkjX,EACbxpW,IAAI1Z,GAAKkjX,GAGdxpW,IAAI1Z,GAAK,KACTia,EAAEra,KAAK,CACLI,EAAGA,EACHiX,EAAG,GAAOgsW,EAAIC,MAIlBC,EAAK,GAAIvoS,UAYX,OARIuoS,EAAKhpW,EAAEja,SACTyzI,EAAKx5H,EAAEzR,MAAMy6W,GACTzpW,EAAE1Z,GAAI0Z,EAAE1Z,IAAM2zI,EACbj6H,IAAI1Z,GAAK2zI,GAKTj6H,EAAExZ,OAAS,EAAI+Z,EAAE,GAzD1B,SAAaE,GACX,OAAO,SAAUhD,GACf,OAAOgD,EAAEhD,GAAK,IAuDa,CAAI8C,EAAE,GAAGhD,GA/DxC,SAAckD,GACZ,OAAO,WACL,OAAOA,GA6DkC,CAAKA,IAAMA,EAAIF,EAAE/Z,OAAQ,SAAUiX,GAC5E,IAAK,IAAWomI,EAAPv9I,EAAI,EAAMA,EAAIma,IAAKna,EAC1B0Z,GAAG6jI,EAAItjI,EAAEja,IAAIA,GAAKu9I,EAAEtmI,EAAEE,GAGxB,OAAOuC,EAAE+iE,KAAK,OC/DH,iBACb,IACIriE,EADAjD,SAAWgD,EAEf,OAAY,MAALA,GAAmB,YAANhD,EAAkB,GAASgD,IAAY,WAANhD,EAAiB,GAAe,WAANA,GAAkBiD,EAAI,GAAMD,KAAOA,EAAIC,EAAG,IAAO,GAASD,aAAa,GAAQ,GAAMA,aAAa6mJ,KAAO8/N,GAAOL,GAActmX,GAAK4mX,GAAc37W,MAAMC,QAAQlL,GAAKumX,GAAoC,oBAAdvmX,EAAEs3R,SAAgD,oBAAft3R,EAAEpZ,UAA2B0G,MAAM0S,GAAKjb,GAAS,IAAQgb,EAAGC,ICZ3V,iBACb,OAAOD,GAAKA,EAAGC,GAAKA,EAAG,SAAUhD,GAC/B,OAAOnB,KAAKmC,MAAM+B,GAAK,EAAI/C,GAAKgD,EAAIhD,KCFzB,SAAS,GAAOF,GAC7B,OAAQA,ECGV,IAAI8gE,GAAO,CAAC,EAAG,GACR,SAAS,GAAS9gE,GACvB,OAAOA,EAGT,SAASiB,GAAUgC,EAAGC,GACpB,OAAQA,GAAKD,GAAKA,GAAK,SAAUjD,GAC/B,OAAQA,EAAIiD,GAAKC,ICXalD,EDYnBxP,MAAM0S,GAAKm/R,IAAM,GCXvB,WACL,OAAOriS,IAFI,IAAmBA,EDyBlC,SAAS+pX,GAAMviI,EAAQjlP,EAAO2xV,GAC5B,IAAI/0V,EAAKqoP,EAAO,GACZnoP,EAAKmoP,EAAO,GACZu/H,EAAKxkX,EAAM,GACXyoU,EAAKzoU,EAAM,GAEf,OADIlD,EAAKF,GAAIA,EAAK8B,GAAU5B,EAAIF,GAAK4nX,EAAK7yB,EAAYlpB,EAAI+7C,KAAS5nX,EAAK8B,GAAU9B,EAAIE,GAAK0nX,EAAK7yB,EAAY6yB,EAAI/7C,IACzG,SAAUhrU,GACf,OAAO+mX,EAAG5nX,EAAGa,KAIjB,SAASgqX,GAAQxiI,EAAQjlP,EAAO2xV,GAC9B,IAAI/zU,EAAIphB,KAAKW,IAAI8nP,EAAOv+P,OAAQsZ,EAAMtZ,QAAU,EAC5Cqf,EAAI,IAAI6F,MAAMgS,GACd/W,EAAI,IAAI+E,MAAMgS,GACdp3B,GAAK,EAOT,IALIy+P,EAAOrnO,GAAKqnO,EAAO,KACrBA,EAASA,EAAO/1P,QAAQL,UACxBmR,EAAQA,EAAM9Q,QAAQL,aAGfrI,EAAIo3B,GACX7X,EAAEvf,GAAKkY,GAAUumP,EAAOz+P,GAAIy+P,EAAOz+P,EAAI,IACvCqgB,EAAErgB,GAAKmrW,EAAY3xV,EAAMxZ,GAAIwZ,EAAMxZ,EAAI,IAGzC,OAAO,SAAUiX,GACf,IAAIjX,EAAIwgY,GAAO/hI,EAAQxnP,EAAG,EAAGmgB,GAAK,EAClC,OAAO/W,EAAErgB,GAAGuf,EAAEvf,GAAGiX,KAId,SAASuQ,GAAKrnB,EAAQJ,GAC3B,OAAOA,EAAO0+P,OAAOt+P,EAAOs+P,UAAUjlP,MAAMrZ,EAAOqZ,SAAS2xV,YAAYhrW,EAAOgrW,eAAez0V,MAAMvW,EAAOuW,SAASwqX,QAAQ/gY,EAAO+gY,WAE9H,SAASC,KACd,IAGI1tR,EACA2tR,EACAF,EAEAG,EACAn8W,EACA8hO,EATAyX,EAAS1mL,GACTv+D,EAAQu+D,GACRozR,EAAc,GAIdz0V,EAAQ,GAKZ,SAAS4qX,IACP,IAAIxqX,EAAId,KAAKW,IAAI8nP,EAAOv+P,OAAQsZ,EAAMtZ,QAItC,OAHIwW,IAAU,KAAUA,EA5D5B,SAAiBwD,EAAGC,GAClB,IAAIhD,EAEJ,OADI+C,EAAIC,IAAGhD,EAAI+C,EAAGA,EAAIC,EAAGA,EAAIhD,GACtB,SAAUF,GACf,OAAOjB,KAAKY,IAAIsD,EAAGlE,KAAKW,IAAIwD,EAAGlD,KAwDCsqX,CAAQ9iI,EAAO,GAAIA,EAAO3nP,EAAI,KAC9DuqX,EAAYvqX,EAAI,EAAImqX,GAAUD,GAC9B97W,EAAS8hO,EAAQ,KACV5nN,EAGT,SAASA,EAAMnoB,GACb,OAAY,MAALA,GAAaxP,MAAMwP,GAAKA,GAAKiqX,GAAWh8W,IAAWA,EAASm8W,EAAU5iI,EAAOvwN,IAAIulE,GAAYj6F,EAAO2xV,KAAe13P,EAAU/8F,EAAMO,KA+B5I,OA5BAmoB,EAAMjf,OAAS,SAAUjJ,GACvB,OAAOR,EAAM0qX,GAAap6I,IAAUA,EAAQq6I,EAAU7nX,EAAOilP,EAAOvwN,IAAIulE,GAAY,MAAqBv8F,MAG3GkoB,EAAMq/N,OAAS,SAAUrtE,GACvB,OAAOnxL,UAAUC,QAAUu+P,EAASr5O,MAAMK,KAAK2rK,EAAG,IAASkwM,KAAa7iI,EAAO/1P,SAGjF02B,EAAM5lB,MAAQ,SAAU43K,GACtB,OAAOnxL,UAAUC,QAAUsZ,EAAQ4L,MAAMK,KAAK2rK,GAAIkwM,KAAa9nX,EAAM9Q,SAGvE02B,EAAMoiW,WAAa,SAAUpwM,GAC3B,OAAO53K,EAAQ4L,MAAMK,KAAK2rK,GAAI+5K,EAAc,GAAkBm2B,KAGhEliW,EAAM1oB,MAAQ,SAAU06K,GACtB,OAAOnxL,UAAUC,QAAUwW,IAAQ06K,GAAW,GAAUkwM,KAAa5qX,IAAU,IAGjF0oB,EAAM+rU,YAAc,SAAU/5K,GAC5B,OAAOnxL,UAAUC,QAAUirW,EAAc/5K,EAAGkwM,KAAan2B,GAG3D/rU,EAAM8hW,QAAU,SAAU9vM,GACxB,OAAOnxL,UAAUC,QAAUghY,EAAU9vM,EAAGhyJ,GAAS8hW,GAG5C,SAAU/pX,EAAGuc,GAElB,OADA+/E,EAAYt8F,EAAGiqX,EAAc1tW,EACtB4tW,KAGI,SAASG,KACtB,OAAON,KAAc,GAAU,IEvH1B,SAASO,GAAUjjI,EAAQjlP,GAChC,OAAQvZ,UAAUC,QAChB,KAAK,EACH,MAEF,KAAK,EACHuB,KAAK+X,MAAMilP,GACX,MAEF,QACEh9P,KAAK+X,MAAMA,GAAOilP,OAAOA,GAI7B,OAAOh9P,KCRT,SAASkgY,GAAa1qX,GACpB,OAAOjB,KAAKwB,IAAIP,GAGlB,SAAS2qX,GAAa3qX,GACpB,OAAOjB,KAAK8C,IAAI7B,GAGlB,SAAS4qX,GAAc5qX,GACrB,OAAQjB,KAAKwB,KAAKP,GAGpB,SAAS6qX,GAAc7qX,GACrB,OAAQjB,KAAK8C,KAAK7B,GAGpB,SAAS8qX,GAAM9qX,GACb,OAAO4kC,SAAS5kC,KAAO,KAAOA,GAAKA,EAAI,EAAI,EAAIA,EAejD,SAAS+qX,GAAQxiX,GACf,OAAO,SAAUvI,GACf,OAAQuI,GAAGvI,IAIR,SAASgrX,GAAQxuR,GACtB,IAGIyuR,EACAC,EAJA/iW,EAAQq0E,EAAUkuR,GAAcC,IAChCnjI,EAASr/N,EAAMq/N,OACfr8P,EAAO,GAIX,SAASk/X,IAUP,OATAY,EApBJ,SAAc9/X,GACZ,OAAOA,IAAS4T,KAAKowN,EAAIpwN,KAAKwB,IAAe,KAATpV,GAAe4T,KAAKosX,OAAkB,IAAThgY,GAAc4T,KAAKw1D,OAASppE,EAAO4T,KAAKwB,IAAIpV,GAAO,SAAU6U,GAC5H,OAAOjB,KAAKwB,IAAIP,GAAK7U,IAkBdigY,CAAKjgY,GAAO+/X,EA1BvB,SAAc//X,GACZ,OAAgB,KAATA,EAAc2/X,GAAQ3/X,IAAS4T,KAAKowN,EAAIpwN,KAAK8C,IAAM,SAAU7B,GAClE,OAAOjB,KAAKsB,IAAIlV,EAAM6U,IAwBIqrX,CAAKlgY,GAE3Bq8P,IAAS,GAAK,GAChByjI,EAAOF,GAAQE,GAAOC,EAAOH,GAAQG,GACrC1uR,EAAUouR,GAAeC,KAEzBruR,EAAUkuR,GAAcC,IAGnBxiW,EA2ET,OAxEAA,EAAMh9B,KAAO,SAAUgvL,GACrB,OAAOnxL,UAAUC,QAAUkC,GAAQgvL,EAAGkwM,KAAal/X,GAGrDg9B,EAAMq/N,OAAS,SAAUrtE,GACvB,OAAOnxL,UAAUC,QAAUu+P,EAAOrtE,GAAIkwM,KAAa7iI,KAGrDr/N,EAAM0+V,MAAQ,SAAUzxW,GACtB,IAGIhM,EAHAd,EAAIk/O,IACJ/qO,EAAInU,EAAE,GACNjE,EAAIiE,EAAEA,EAAErf,OAAS,IAEjBmgB,EAAI/E,EAAIoY,KAAG1zB,EAAI0zB,EAAGA,EAAIpY,EAAGA,EAAItb,GACjC,IAEIugC,EACA40D,EACAh+E,EAJAnX,EAAIkiY,EAAKxuW,GACT0D,EAAI8qW,EAAK5mX,GAITxE,EAAa,MAATuV,EAAgB,IAAMA,EAC1BhE,EAAI,GAER,KAAMjmB,EAAO,IAAMg1B,EAAIp3B,EAAI8W,EAAG,CAE5B,GADA9W,EAAIgW,KAAK2B,MAAM3X,GAAIo3B,EAAIphB,KAAKuB,KAAK6f,GAC7B1D,EAAI,GAAG,KAAO1zB,GAAKo3B,IAAKp3B,EAC1B,IAAKm1F,EAAI,EAAG50D,EAAI4hW,EAAKniY,GAAIm1F,EAAI/yF,IAAQ+yF,EAEnC,MADAh+E,EAAIopB,EAAI40D,GACAzhE,GAAR,CACA,GAAIvc,EAAImE,EAAG,MACX+M,EAAEzoB,KAAKuX,SAEJ,KAAOnX,GAAKo3B,IAAKp3B,EACtB,IAAKm1F,EAAI/yF,EAAO,EAAGm+B,EAAI4hW,EAAKniY,GAAIm1F,GAAK,IAAKA,EAExC,MADAh+E,EAAIopB,EAAI40D,GACAzhE,GAAR,CACA,GAAIvc,EAAImE,EAAG,MACX+M,EAAEzoB,KAAKuX,GAGI,EAAXkR,EAAEnoB,OAAa4W,IAAGuR,EAAIy1W,GAAMpqW,EAAGpY,EAAGxE,SAEtCuR,EAAIy1W,GAAM99X,EAAGo3B,EAAGphB,KAAKW,IAAIygB,EAAIp3B,EAAG8W,IAAIo3B,IAAIi0V,GAG1C,OAAO9hX,EAAIgI,EAAEhgB,UAAYggB,GAG3B+W,EAAMmjW,WAAa,SAAUl2W,EAAOiyW,GAGlC,GAFiB,MAAbA,IAAmBA,EAAqB,KAATl8X,EAAc,MAAQ,KAChC,oBAAdk8X,IAA0BA,EAAY,GAAOA,IACpDjyW,IAAUwH,IAAU,OAAOyqW,EAClB,MAATjyW,IAAeA,EAAQ,IAC3B,IAAI8oE,EAAIn/E,KAAKY,IAAI,EAAGxU,EAAOiqB,EAAQ+S,EAAM0+V,QAAQ59X,QAEjD,OAAO,SAAUqf,GACf,IAAIvf,EAAIuf,EAAI4iX,EAAKnsX,KAAKmC,MAAM+pX,EAAK3iX,KAEjC,OADIvf,EAAIoC,EAAOA,EAAO,KAAKpC,GAAKoC,GACzBpC,GAAKm1F,EAAImpS,EAAU/+W,GAAK,KAInC6f,EAAMojW,KAAO,WACX,OAAO/jI,EC9HI,SAAcA,EAAQzgC,GAEnC,IAII7mN,EAJA2wB,EAAK,EACLC,GAFJ02N,EAASA,EAAO/1P,SAEAxI,OAAS,EACrBmwB,EAAKouO,EAAO32N,GACZrX,EAAKguO,EAAO12N,GAUhB,OAPItX,EAAKJ,IACPlZ,EAAI2wB,EAAIA,EAAKC,EAAIA,EAAK5wB,EACtBA,EAAIkZ,EAAIA,EAAKI,EAAIA,EAAKtZ,GAGxBsnP,EAAO32N,GAAMk2L,EAASrmN,MAAM0Y,GAC5BouO,EAAO12N,GAAMi2L,EAASzmN,KAAKkZ,GACpBguO,ED+GS+jI,CAAK/jI,IAAU,CAC3B9mP,MAAO,SAAeV,GACpB,OAAOkrX,EAAKnsX,KAAK2B,MAAMuqX,EAAKjrX,MAE9BM,KAAM,SAAcN,GAClB,OAAOkrX,EAAKnsX,KAAKuB,KAAK2qX,EAAKjrX,UAK1BmoB,EAEM,SAAS5nB,KACtB,IAAI4nB,EAAQ6iW,GAAQd,MAAe1iI,OAAO,CAAC,EAAG,KAO9C,OALAr/N,EAAM5X,KAAO,WACX,OAAOA,GAAK4X,EAAO5nB,MAAOpV,KAAKg9B,EAAMh9B,SAGvCs/X,GAAU7hY,MAAMu/B,EAAOn/B,WAChBm/B,EEhJM,SAASmjW,GAAW7pV,EAAO/vC,EAAM0jB,EAAOiyW,GACrD,IACIzyV,EADA3d,EtC6CC,SAAkBwqB,EAAO/vC,EAAM0jB,GACpC,IAAIo2W,EAAQzsX,KAAKgD,IAAIrQ,EAAO+vC,GAAS1iC,KAAKY,IAAI,EAAGyV,GAC7Cq2W,EAAQ1sX,KAAKsB,IAAI,GAAItB,KAAK2B,MAAM3B,KAAKwB,IAAIirX,GAASzsX,KAAKioX,OACvD33X,EAAQm8X,EAAQC,EAEpB,OADIp8X,GAASq3X,GAAK+E,GAAS,GAAYp8X,GAASs3X,GAAI8E,GAAS,EAAWp8X,GAASu3X,KAAI6E,GAAS,GACvF/5X,EAAO+vC,GAASgqV,EAAQA,EsClDpBC,CAASjqV,EAAO/vC,EAAM0jB,GAIjC,QAFAiyW,EAAYD,GAA6B,MAAbC,EAAoB,KAAOA,IAErCr5X,MAChB,IAAK,IAED,IAAIpD,EAAQmU,KAAKY,IAAIZ,KAAKgD,IAAI0/B,GAAQ1iC,KAAKgD,IAAIrQ,IAE/C,OAD2B,MAAvB21X,EAAUzyV,WAAsBpkC,MAAMokC,ECVnC,cACb,OAAO71B,KAAKY,IAAI,EAAgE,EAA7DZ,KAAKY,KAAK,EAAGZ,KAAKW,IAAI,EAAGX,KAAK2B,MAAM,GAAS9V,GAAS,KAAW,GAASmU,KAAKgD,IAAIkV,KDS1C00W,CAAgB10W,EAAMrsB,MAASy8X,EAAUzyV,UAAYA,GACpG,GAAayyV,EAAWz8X,GAGnC,IAAK,GACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IAE0B,MAAvBy8X,EAAUzyV,WAAsBpkC,MAAMokC,EEpBnC,cAEb,OADA3d,EAAOlY,KAAKgD,IAAIkV,GAAOtX,EAAMZ,KAAKgD,IAAIpC,GAAOsX,EACtClY,KAAKY,IAAI,EAAG,GAASA,GAAO,GAASsX,IAAS,EFkBO20W,CAAe30W,EAAMlY,KAAKY,IAAIZ,KAAKgD,IAAI0/B,GAAQ1iC,KAAKgD,IAAIrQ,QAAU21X,EAAUzyV,UAAYA,GAAgC,MAAnByyV,EAAUr5X,OACrK,MAGJ,IAAK,IACL,IAAK,IAE0B,MAAvBq5X,EAAUzyV,WAAsBpkC,MAAMokC,EG3BnC,YACb,OAAO71B,KAAKY,IAAI,GAAI,GAASZ,KAAKgD,IAAIkV,KH0BsB40W,CAAe50W,MAAQowW,EAAUzyV,UAAYA,EAAuC,GAAP,MAAnByyV,EAAUr5X,OAKhI,OAAO,GAAOq5X,GI7BT,SAASyE,GAAU3jW,GACxB,IAAIq/N,EAASr/N,EAAMq/N,OAmDnB,OAjDAr/N,EAAM0+V,MAAQ,SAAUzxW,GACtB,IAAI9M,EAAIk/O,IACR,OAAOq/H,GAAMv+W,EAAE,GAAIA,EAAEA,EAAErf,OAAS,GAAa,MAATmsB,EAAgB,GAAKA,IAG3D+S,EAAMmjW,WAAa,SAAUl2W,EAAOiyW,GAClC,IAAI/+W,EAAIk/O,IACR,OAAO8jI,GAAWhjX,EAAE,GAAIA,EAAEA,EAAErf,OAAS,GAAa,MAATmsB,EAAgB,GAAKA,EAAOiyW,IAGvEl/V,EAAMojW,KAAO,SAAUn2W,GACR,MAATA,IAAeA,EAAQ,IAC3B,IAKI22W,EACA90W,EANA3O,EAAIk/O,IACJ32N,EAAK,EACLC,EAAKxoB,EAAErf,OAAS,EAChBw4C,EAAQn5B,EAAEuoB,GACVn/B,EAAO4W,EAAEwoB,GAGTk7V,EAAU,GAOd,IALIt6X,EAAO+vC,IACTxqB,EAAOwqB,EAAOA,EAAQ/vC,EAAMA,EAAOulB,EACnCA,EAAO4Z,EAAIA,EAAKC,EAAIA,EAAK7Z,GAGpB+0W,KAAY,GAAG,CAGpB,IAFA/0W,EAAO6vW,GAAcrlV,EAAO/vC,EAAM0jB,MAErB22W,EAGX,OAFAzjX,EAAEuoB,GAAM4Q,EACRn5B,EAAEwoB,GAAMp/B,EACD81P,EAAOl/O,GACT,GAAI2O,EAAO,EAChBwqB,EAAQ1iC,KAAK2B,MAAM+gC,EAAQxqB,GAAQA,EACnCvlB,EAAOqN,KAAKuB,KAAK5O,EAAOulB,GAAQA,MAC3B,MAAIA,EAAO,GAIhB,MAHAwqB,EAAQ1iC,KAAKuB,KAAKmhC,EAAQxqB,GAAQA,EAClCvlB,EAAOqN,KAAK2B,MAAMhP,EAAOulB,GAAQA,EAKnC80W,EAAU90W,EAGZ,OAAOkR,GAGFA,EAEM,SAAS,KACtB,IAAIA,EAAQqiW,KAOZ,OALAriW,EAAM5X,KAAO,WACX,OAAOA,GAAK4X,EAAO,OAGrBsiW,GAAU7hY,MAAMu/B,EAAOn/B,WAChB8iY,GAAU3jW,GC9DnB,SAAS8jW,GAAaphE,GACpB,OAAO,SAAU7qT,GACf,OAAOA,EAAI,GAAKjB,KAAKsB,KAAKL,EAAG6qT,GAAY9rT,KAAKsB,IAAIL,EAAG6qT,IAIzD,SAASqhE,GAAclsX,GACrB,OAAOA,EAAI,GAAKjB,KAAK6F,MAAM5E,GAAKjB,KAAK6F,KAAK5E,GAG5C,SAASmsX,GAAgBnsX,GACvB,OAAOA,EAAI,GAAKA,EAAIA,EAAIA,EAAIA,EAGvB,SAASosX,GAAO5vR,GACrB,IAAIr0E,EAAQq0E,EAAU,GAAU,IAC5BquN,EAAW,EAEf,SAASw/D,IACP,OAAoB,IAAbx/D,EAAiBruN,EAAU,GAAU,IAAyB,KAAbquN,EAAmBruN,EAAU0vR,GAAeC,IAAmB3vR,EAAUyvR,GAAaphE,GAAWohE,GAAa,EAAIphE,IAO5K,OAJA1iS,EAAM0iS,SAAW,SAAU1wI,GACzB,OAAOnxL,UAAUC,QAAU4hU,GAAY1wI,EAAGkwM,KAAax/D,GAGlDihE,GAAU3jW,GAEJ,SAAS9nB,KACtB,IAAI8nB,EAAQikW,GAAOlC,MAOnB,OALA/hW,EAAM5X,KAAO,WACX,OAAOA,GAAK4X,EAAO9nB,MAAOwqT,SAAS1iS,EAAM0iS,aAG3C4/D,GAAU7hY,MAAMu/B,EAAOn/B,WAChBm/B,EAEF,SAASvjB,KACd,OAAOvE,GAAIzX,MAAM,KAAMI,WAAW6hU,SAAS,ICzCtC,IAAIwhE,GAAWzgY,OAAO,YCFd,ICCA,GDDA,YAKb,IAJA,IAAIiU,EAAIwnX,EAAUp+X,OAAS,EAAI,EAC3Bu6K,EAAS,IAAIr1J,MAAMtO,GACnB9W,EAAI,EAEDA,EAAI8W,GACT2jK,EAAOz6K,GAAK,IAAMs+X,EAAU51X,MAAU,EAAJ1I,EAAa,IAAJA,GAG7C,OAAOy6K,ECRM,CAAO,gECatB,SAAS8zH,KACP,OAAQA,GAAIlvS,OAAOsrB,QAAU,SAAUxT,GACrC,IAAK,IAAIL,EAAI,EAAGA,EAAI7W,UAAUC,OAAQ4W,IAAK,CACzC,IAAIuJ,EAAIpgB,UAAU6W,GAElB,IAAK,IAAI0E,KAAK6E,EACZhhB,OAAOsC,UAAUU,eAAerB,KAAKqf,EAAG7E,KAAOrE,EAAEqE,GAAK6E,EAAE7E,IAI5D,OAAOrE,IACNtX,MAAM4B,KAAMxB,WAGjB,IAAI,GAAI+V,KAAKC,GAAK,IAElB,SAAS,GAAEkB,GACT,OAAOA,EAAE06I,KAGX,SAASs8I,KACP,MAAO,QAGT,SAAS3xE,KACP,MAAO,SAGT,SAASl1B,GAAEnwL,GACT,OAAOnB,KAAK6F,KAAK1E,EAAEtV,OAGrB,SAASm6I,KACP,OAAO,OAAS,EAAIhmI,KAAKK,UAAY,GAGvC,SAAS,KACP,OAAO,EAGT,SAASuvN,GAAEzuN,EAAGL,EAAGuJ,EAAG7E,GAClB,IAAK1E,EAAE+0C,OAAQ,CACb,IAAI0xF,EAAIpmI,EAAEpT,QACNmW,EAAI/C,EAAEs5O,MACVlzG,EAAEk8L,UAAU,EAAG,EAAG,KAAOv/T,EAAG,KAAOA,GACnC,IAAIla,EAAI,EACJ0zB,EAAI,EACJlU,EAAI,EACJ5J,EAAIyK,EAAEngB,OAEV,MAAOsb,IAAKA,EAAI5F,GAAI,CAClBkB,EAAIuJ,EAAE7E,GAAI+hI,EAAEo8L,OAAQp8L,EAAEq8L,KAAO9iU,EAAE46B,MAAQ,IAAM56B,EAAE23D,OAAS,QAAU33D,EAAEsd,KAAO,GAAKla,GAAK,MAAQpD,EAAE8iU,KAC/F,IAAIlgU,EAAI6jI,EAAEs8L,YAAY/iU,EAAE+6I,KAAO,KAAKhuI,MAAQ3J,EACxCE,EAAItD,EAAEsd,MAAQ,EAElB,GAAItd,EAAEgjU,OAAQ,CACZ,IAAIp6T,EAAI1J,KAAKuE,IAAIzD,EAAEgjU,OAAS,IACxBv6T,EAAIvJ,KAAKsE,IAAIxD,EAAEgjU,OAAS,IACxB/iU,EAAI2C,EAAI6F,EACRrI,EAAIwC,EAAIgG,EACR6gB,EAAInmB,EAAImF,EACRtI,EAAImD,EAAIsF,EACZhG,EAAI1D,KAAKY,IAAIZ,KAAKgD,IAAIjC,EAAIE,GAAIjB,KAAKgD,IAAIjC,EAAIE,IAAM,IAAM,GAAK,EAAGmD,IAAMpE,KAAKY,IAAIZ,KAAKgD,IAAI9B,EAAIqpB,GAAIvqB,KAAKgD,IAAI9B,EAAIqpB,SACvG7mB,EAAIA,EAAI,IAAM,GAAK,EAE1B,GAAIU,EAAIoF,IAAMA,EAAIpF,GAAIpa,EAAI0Z,GAAK,OAAS1Z,EAAI,EAAG0zB,GAAKlU,EAAGA,EAAI,GAAIkU,EAAItZ,GAAK,KAAM,MAC9EmjI,EAAEpkG,WAAWn5C,GAAK0Z,GAAK,IAAMQ,GAAIwZ,GAAKtZ,GAAK,IAAMF,GAAIpD,EAAEgjU,QAAUv8L,EAAEu8L,OAAOhjU,EAAEgjU,OAAS,IAAIv8L,EAAE68L,SAAStjU,EAAE+6I,KAAM,EAAG,GAAI/6I,EAAEi5O,UAAYxyG,EAAEn+C,UAAY,EAAItoF,EAAEi5O,QAASxyG,EAAE88L,WAAWvjU,EAAE+6I,KAAM,EAAG,IAAKtU,EAAE+8L,UAAWxjU,EAAE+M,MAAQnK,EAAG5C,EAAEgN,OAAS1J,EAAGtD,EAAEyjU,KAAOv6U,EAAG8W,EAAE0jU,KAAO9mT,EAAG5c,EAAE2Z,GAAK/W,GAAK,EAAG5C,EAAE4Z,GAAKtW,GAAK,EAAGtD,EAAEuZ,IAAMvZ,EAAE2Z,GAAI3Z,EAAEwZ,IAAMxZ,EAAE4Z,GAAI5Z,EAAE2jU,SAAU,EAAIz6U,GAAK0Z,EAG5U,IAAK,IAAI4B,EAAIiiI,EAAEh5H,aAAa,EAAG,EAAG,KAAOrK,EAAG,KAAOA,GAAGsK,KAAM/E,EAAI,KAAMjE,GAAK,GACzE,IAAK1E,EAAIuJ,EAAE7E,IAAIi/T,QAAS,CACtB,IAAK,IAAItgU,GAAKT,EAAI5C,EAAE+M,QAAU,EAAGyE,GAAKlO,EAAItD,EAAE4Z,GAAK5Z,EAAEwZ,GAAI,GAAIhI,EAAIlO,EAAID,EAAGmO,IACpE7I,EAAE6I,GAAK,EAGT,GAAI,OAAStoB,EAAI8W,EAAEyjU,MAAO,OAC1B7mT,EAAI5c,EAAE0jU,KAEN,IAAK,IAAIjsC,EAAI,EAAGp5M,GAAK,EAAGg5M,EAAI,EAAGA,EAAI/zR,EAAG+zR,IAAK,CACzC,IAAK7lR,EAAI,EAAGA,EAAI5O,EAAG4O,IAAK,CACtB,IAAIk0M,EAAIlhN,EAAE,MAAQoY,EAAIy6Q,IAAMnuS,EAAIsoB,IAAM,GAAK,GAAK,GAAKA,EAAI,GAAK,EAC9D7I,EAAEtF,EAAIg0R,GAAK7lR,GAAK,KAAOk0M,EAAG+xE,GAAK/xE,EAGjC+xE,EAAIp5M,EAAIg5M,GAAKr3R,EAAEwZ,KAAMlW,IAAK+zR,IAAKz6Q,KAGjC5c,EAAE4Z,GAAK5Z,EAAEwZ,GAAK6kE,EAAGr+E,EAAE+0C,OAASpsC,EAAE/W,MAAM,GAAIoO,EAAE4Z,GAAK5Z,EAAEwZ,IAAMnW,KAM/D,SAASk0R,GAAEl3R,EAAGL,EAAGuJ,GACf,IAAK,IAAI7E,EAAG+hI,EAAIpmI,EAAE00C,OAAQ3xC,EAAI/C,EAAE0M,OAAS,EAAG7jB,EAAImX,EAAEF,GAAKiD,GAAK,GAAIwZ,EAAI,IAAM1zB,EAAGwf,EAAI,GAAKkU,EAAG9d,EAAIuB,EAAEuZ,GAAKvZ,EAAEmZ,GAAI5W,GAAKvC,EAAED,EAAIC,EAAEmZ,KAAOjQ,IAAM,IAAMrgB,GAAK,GAAIoa,EAAI,EAAGA,EAAIxE,EAAGwE,IAAK,CACpKoB,EAAI,EAEJ,IAAK,IAAIkE,EAAI,EAAGA,GAAKxF,EAAGwF,IACtB,IAAKlE,GAAKgE,GAAKE,EAAIxF,GAAKsB,EAAI+hI,EAAEnjI,EAAIF,EAAIwF,MAAQgU,EAAI,IAAM5c,EAAE4C,EAAIgG,GAAI,OAAO,EAG3EhG,GAAK2G,EAGP,OAAO,EAGT,SAAS,GAAElJ,EAAGL,GACZ,IAAIuJ,EAAIlJ,EAAE,GACNqE,EAAIrE,EAAE,GACVL,EAAEG,EAAIH,EAAEuZ,GAAKhQ,EAAEpJ,IAAMoJ,EAAEpJ,EAAIH,EAAEG,EAAIH,EAAEuZ,IAAKvZ,EAAEI,EAAIJ,EAAEwZ,GAAKjQ,EAAEnJ,IAAMmJ,EAAEnJ,EAAIJ,EAAEI,EAAIJ,EAAEwZ,IAAKxZ,EAAEG,EAAIH,EAAE2Z,GAAKjV,EAAEvE,IAAMuE,EAAEvE,EAAIH,EAAEG,EAAIH,EAAE2Z,IAAK3Z,EAAEI,EAAIJ,EAAE4Z,GAAKlV,EAAEtE,IAAMsE,EAAEtE,EAAIJ,EAAEI,EAAIJ,EAAE4Z,IAG7J,SAAS01M,GAAEjvN,GACT,IAAIL,EAAIK,EAAE,GAAKA,EAAE,GACjB,OAAO,SAAUA,GACf,MAAO,CAACL,GAAKK,GAAK,IAAMnB,KAAKsE,IAAInD,GAAIA,EAAInB,KAAKuE,IAAIpD,KAItD,SAASguL,KACP,OAAOtjL,SAAS4xK,cAAc,UAGhC,SAAS26G,GAAEj3R,GACT,MAAO,mBAAqBA,EAAIA,EAAI,WAClC,OAAOA,GAIX,IAAIygM,GAAI,CACNwkI,YAAah2G,GACbi2G,YAAa,SAAqBllU,GAChC,IAAIL,EAAI,EAAIK,EAAE,GAAKA,EAAE,GACjBkJ,EAAI,EACJ7E,EAAI,EACR,OAAO,SAAUrE,GACf,IAAIomI,EAAIpmI,EAAI,GAAK,EAAI,EAErB,OAAQnB,KAAK6F,KAAK,EAAI,EAAI0hI,EAAIpmI,GAAKomI,EAAI,GACrC,KAAK,EACHl9H,GAAKvJ,EACL,MAEF,KAAK,EACH0E,GAAK,EACL,MAEF,KAAK,EACH6E,GAAKvJ,EACL,MAEF,QACE0E,GAAK,EAGT,MAAO,CAAC6E,EAAG7E,MAKjB,SAASshI,GAAE3lI,EAAGL,GACZ,OAAOK,EAAEnB,KAAK2B,MAAMb,IAAMK,EAAEjX,SAG9B,SAASuzT,GAAEt8S,GACT,OAAOA,EAAEid,KAAO,KAGlB,SAAS6nH,GAAE9kI,GACT,OAAOA,EAAE06I,KAGX,SAASwqE,GAAEllN,GACT,MAAO,aAAeA,EAAEF,EAAI,KAAOE,EAAED,EAAI,KAAO,iBAAmBC,EAAE2iU,OAAS,UAAY3iU,EAAE2iU,OAAS,IAAM,IAG7G,SAAS,GAAE3iU,GACT,IAAIL,EACAuJ,EAAIlJ,EAAEw5I,UACNn1I,EAAIrE,EAAEosX,SACNhmP,EAAIpmI,EAAE2S,QACN5P,EAAI/C,EAAE6lW,UACNtpV,EAAIvc,EAAEid,KACN5U,EAAI+9H,EAAEimP,cACNvsX,EAAIsmI,EAAEkmP,oBACNn7W,EAAIi1H,EAAE42N,WACN9rV,EAAIk1H,EAAE89L,UACN31H,EAAInoE,EAAEmmP,UACNhwE,EAAIn2K,EAAEy1L,WACNj3L,EAAIwB,EAAEwyG,QACN4zI,EAAIpmP,EAAEqmP,WACNt1F,EAAI/wJ,EAAEsmP,UACNC,EAAIvmP,EAAEwmP,eACNv1F,EAAIjxJ,EAAE+9L,OACNt1E,EAAIzoH,EAAEn+G,MACN83R,EAAI//S,EAAEokU,MAAMp4T,SAASkwD,MAAK,SAAUl8D,EAAGL,GACzC,OCnNW,cACb,OAAOqD,EAAID,GAAK,EAAIC,EAAID,EAAI,EAAIC,GAAKD,EAAI,EAAIo/R,IDkNpC,CAAEniS,EAAEtV,MAAOiV,EAAEjV,UACnB6G,MAAM,EAAG8S,GACRy7S,EAAI,KAAEz3S,EAAImkX,GAAK,gBAAkB,OACpC7sX,EAAIG,EAAI,WACP,IAAIE,EAAI,CAAC,IAAK,KACVL,EAAI,GACJuJ,EAAI8tR,GACJ3yR,EAAI8rL,GACJ/pD,EAAIi/E,GACJtiN,EAAIsiN,GACJx8N,EAAIg8I,GACJtoH,EAAI,GACJlU,EAAI4mN,GACJxwN,EAAI,GACJ8D,EAAIma,IACJzZ,EAAI,aAAE,OAAQ,OACdsF,EAAI1J,KAAKK,OACTkJ,EAAI,GACJxI,EAAIouL,GACJjuL,GAAI,EAER,SAASD,EAAEH,EAAGuJ,EAAG7E,GACf,IAAK,IAAI+hI,EAAGrjI,EAAGla,EAAG0zB,EAAG9d,EAAG8D,EAAI2G,EAAEpJ,EAAGmD,EAAIiG,EAAEnJ,EAAGqI,EAAIvJ,KAAK6F,KAAK1E,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAKJ,EAAIyI,EAAErI,GAAID,EAAIwI,IAAM,GAAK,GAAK,EAAG6gB,GAAKrpB,GAAIqmI,EAAIxmI,EAAEwpB,GAAKrpB,MAAQgD,IAAMqjI,EAAE,GAAIv9I,IAAMu9I,EAAE,KAAMvnI,KAAKW,IAAIX,KAAKgD,IAAIkB,GAAIlE,KAAKgD,IAAIhZ,KAAOuf,KAC/M,GAAIc,EAAEpJ,EAAIyC,EAAIQ,EAAGmG,EAAEnJ,EAAIkD,EAAIpa,IAAKqgB,EAAEpJ,EAAIoJ,EAAEgQ,GAAK,GAAKhQ,EAAEnJ,EAAImJ,EAAEiQ,GAAK,GAAKjQ,EAAEpJ,EAAIoJ,EAAEoQ,GAAKtZ,EAAE,IAAMkJ,EAAEnJ,EAAImJ,EAAEqQ,GAAKvZ,EAAE,IAAMqE,GAAK6yR,GAAEhuR,EAAGvJ,EAAGK,EAAE,KAAOqE,MAAQkY,EAAIrT,GAAGpJ,EAAIyc,EAAEjD,IAAM7a,EAAI4F,GAAG,GAAGvE,GAAKyc,EAAEzc,EAAIyc,EAAErD,GAAKza,EAAE,GAAGqB,GAAKyc,EAAExc,EAAIwc,EAAEhD,GAAK9a,EAAE,GAAGsB,GAAKwc,EAAExc,EAAIwc,EAAEpD,GAAK1a,EAAE,GAAGsB,IAAK,CACjP,IAAK,IAAID,EAAGqE,EAAI+E,EAAEwrC,OAAQpsC,EAAIY,EAAEwD,OAAS,EAAG1J,EAAIhD,EAAE,IAAM,EAAGmR,EAAIjI,EAAEpJ,GAAKwI,GAAK,GAAI8uR,EAAI,IAAMjmR,EAAGD,EAAI,GAAKkmR,EAAGp5M,EAAI90E,EAAEqQ,GAAKrQ,EAAEiQ,GAAI69Q,GAAK9tR,EAAEnJ,EAAImJ,EAAEiQ,IAAMnW,GAAKmO,GAAK,GAAIk0M,EAAI,EAAGA,EAAIrnI,EAAGqnI,IAAK,CAC3KvlN,EAAI,EAEJ,IAAK,IAAIqwL,EAAI,EAAGA,GAAK7nL,EAAG6nL,IACtBxwL,EAAEq3R,EAAI7mG,IAAMrwL,GAAKoR,GAAKi/K,EAAI7nL,GAAKxI,EAAIqE,EAAEkhN,EAAI/8M,EAAI6nL,MAAQinG,EAAI,GAG3DJ,GAAKh0R,EAGP,cAAckG,EAAEwrC,QAAQ,EAI5B,OAAO,EAGT,OAAOtsC,EAAEqE,OAAS,SAAUzM,GAC1B,OAAOlX,UAAUC,QAAU6W,EAAIq3R,GAAEj3R,GAAIoI,GAAKxI,GACzCwI,EAAEm5B,MAAQ,WACX,IAAIl5B,EAAI,SAAUrI,GAChBA,EAAE0M,MAAQ1M,EAAE2M,OAAS,EACrB,IAAIhN,EAAId,KAAK6F,KAAK1E,EAAE4M,WAAW,MAAMQ,aAAa,EAAG,EAAG,EAAG,GAAGC,KAAKtkB,QAAU,GAC7EiX,EAAE0M,MAAQ,KAAO/M,EAAGK,EAAE2M,OAAS,KAAOhN,EACtC,IAAIuJ,EAAIlJ,EAAE4M,WAAW,MACrB,OAAO1D,EAAEy9Q,UAAYz9Q,EAAE27T,YAAc,MAAO37T,EAAE47T,UAAY,SAAU,CAClEl4U,QAASsc,EACTowO,MAAO35O,GAPH,CASNC,KACE2C,EAAI,IAAI8H,aAAarK,EAAE,IAAM,GAAKA,EAAE,IACpCopB,EAAI,KACJjlB,EAAI,GACJmE,EAAI7J,EAAEs4B,KAAI,SAAU/2B,EAAGqI,GACzB,OAAOrI,EAAE06I,KAAO/6I,EAAE9V,KAAKS,KAAM0V,EAAGqI,GAAIrI,EAAEyiU,KAAOv5T,EAAErf,KAAKS,KAAM0V,EAAGqI,GAAIrI,EAAEu6B,MAAQ6rG,EAAEv8I,KAAKS,KAAM0V,EAAGqI,GAAIrI,EAAEs3D,OAASv0D,EAAElZ,KAAKS,KAAM0V,EAAGqI,GAAIrI,EAAE2iU,OAAS95U,EAAEgB,KAAKS,KAAM0V,EAAGqI,GAAIrI,EAAEid,OAAS5Y,EAAExa,KAAKS,KAAM0V,EAAGqI,GAAIrI,EAAE44O,QAAUr8N,EAAE1yB,KAAKS,KAAM0V,EAAGqI,GAAIrI,KAC3Nk8D,MAAK,SAAUl8D,EAAGL,GACnB,OAAOA,EAAEsd,KAAOjd,EAAEid,QAGpB,OAAO27H,YAAW,WAChB,OAAO,SAASj5I,EAAEuJ,GAChB,IAAI7E,EAAI,GAAK6E,EACTk9H,EAAIvnI,KAAKW,IAAI,IAAM0J,EAAI,GAAIzK,EAAE1V,SAChC,SAAU4W,EAAGuJ,GACZ,IAAK,IAAI7E,EAAI1E,EAAG0E,EAAI6E,EAAG7E,GAAK,EAAG,CAC7B,IAAI+hI,EAAI99H,EAAEjE,GACV+hI,EAAEtmI,EAAIE,EAAE,IAAMuI,IAAM,KAAO,EAAG69H,EAAErmI,EAAIC,EAAE,IAAMuI,IAAM,KAAO,EAAGkmN,GAAEpmN,EAAG+9H,EAAG99H,EAAGjE,GAAI+hI,EAAEk9L,SAAWxjU,EAAEyC,EAAG6jI,EAAGh9G,KAAOjlB,EAAE1b,KAAK29I,GAAInjI,EAAEpZ,KAAK,OAAQue,EAAGg+H,GAAIh9G,EAAI,GAAEA,EAAGg9G,GAAKh9G,EAAI,CAAC,CACzJtpB,EAAGsmI,EAAEtmI,EAAIsmI,EAAEltH,GACXnZ,EAAGqmI,EAAErmI,EAAIqmI,EAAEjtH,IACV,CACDrZ,EAAGsmI,EAAEtmI,EAAIsmI,EAAE9sH,GACXvZ,EAAGqmI,EAAErmI,EAAIqmI,EAAE7sH,KACT6sH,EAAEtmI,GAAKE,EAAE,IAAM,EAAGomI,EAAErmI,GAAKC,EAAE,IAAM,IATxC,CAWCqE,EAAG+hI,GAAIrmI,IAAMqmI,EAAI3nI,EAAE1V,OAAS6vJ,YAAW,WACvC,OAAOj5I,EAAEuJ,EAAI,KACZ,IAAMd,EAAE5W,OAAQyR,EAAEpZ,KAAK,MAAOue,EAAGjE,EAAGilB,KAhBlC,CAiBL,KACD,GAAIhhB,GACNA,EAAEykX,OAAS,WACZ,OAAO9sX,GAAI,EAAIqI,GACdA,EAAE5W,KAAO,WACV,OAAOuO,GAAI,EAAIqI,GACdA,EAAEi8T,aAAe,SAAUrkU,GAC5B,OAAOlX,UAAUC,QAAUwZ,EAAI,MAAQvC,EAAI0c,IAAW1c,EAAGoI,GAAK7F,GAC7D6F,EAAEg8T,MAAQ,SAAUpkU,GACrB,OAAOlX,UAAUC,QAAU0V,EAAIuB,EAAGoI,GAAK3J,GACtC2J,EAAE6U,KAAO,SAAUtd,GACpB,OAAO7W,UAAUC,QAAUiX,EAAI,EAAEL,EAAE,IAAKA,EAAE,IAAKyI,GAAKpI,GACnDoI,EAAEq6T,KAAO,SAAUziU,GACpB,OAAOlX,UAAUC,QAAUmgB,EAAI+tR,GAAEj3R,GAAIoI,GAAKc,GACzCd,EAAE87T,UAAY,SAAUlkU,GACzB,OAAOlX,UAAUC,QAAUq9I,EAAI6wJ,GAAEj3R,GAAIoI,GAAKg+H,GACzCh+H,EAAEyzT,WAAa,SAAU77T,GAC1B,OAAOlX,UAAUC,QAAUga,EAAIk0R,GAAEj3R,GAAIoI,GAAKrF,GACzCqF,EAAEu6T,OAAS,SAAU3iU,GACtB,OAAOlX,UAAUC,QAAUF,EAAIouS,GAAEj3R,GAAIoI,GAAKvf,GACzCuf,EAAEsyI,KAAO,SAAU16I,GACpB,OAAOlX,UAAUC,QAAU4W,EAAIs3R,GAAEj3R,GAAIoI,GAAKzI,GACzCyI,EAAE+7T,OAAS,SAAUnkU,GACtB,OAAOlX,UAAUC,QAAUsf,EAAIo4L,GAAEzgM,IAAMA,EAAGoI,GAAKC,GAC9CD,EAAE4qO,SAAW,SAAUhzO,GACxB,OAAOlX,UAAUC,QAAUsb,EAAI4yR,GAAEj3R,GAAIoI,GAAK/D,GACzC+D,EAAEwwO,QAAU,SAAU54O,GACvB,OAAOlX,UAAUC,QAAUwzB,EAAI06Q,GAAEj3R,GAAIoI,GAAKmU,GACzCnU,EAAElJ,OAAS,SAAUc,GACtB,OAAOlX,UAAUC,QAAUwf,EAAIvI,EAAGoI,GAAKG,GACtCH,EAAEogM,GAAK,WACR,IAAIxoM,EAAIiD,EAAEulM,GAAG9/M,MAAMua,EAAGna,WACtB,OAAOkX,IAAMiD,EAAImF,EAAIpI,GACpBoI,EA/GI,GAgHH,QAAK6U,KAAKV,GAAGq8N,QAAQh0G,GAAGw/L,MAAM,KAAErkB,IAAI4iB,QAAO,WAC/C,YAAO,IAAWxrC,EAAI,OAAS,EAAI2oB,KAAO,GAAK,SAAU9/S,EAAGL,EAAGuJ,GAC7D,GAAIlJ,EAAI,EAAG,OAAO,EAClB,IAAIqE,EAAI,GACR,GAAI,IAAMrE,EAAGqE,EAAI,CAAC1E,EAAE,QAAS,CAC3B0E,EAAI,GAAG2H,OAAOrM,GAEd,IAAK,IAAIymI,GAAKzmI,EAAE,GAAKA,EAAE,KAAOK,EAAI,GAAI+C,EAAIpD,EAAE,GAAKymI,EAAGrjI,EAAIpD,EAAE,IACxD0E,EAAE5b,KAAKsa,GAAIA,GAAKqjI,EAGpB,OAAOT,GAAEthI,EAAG6E,GAViC,CAW7CiuR,EAAGw1F,EAAG7sE,MACPqkB,OAAO9sC,GAAGn4R,OAAO4gT,GAAGplK,KAAK5V,IAAG29L,KAAKtxT,GAAG+yT,UAAUhzT,GAAG2qT,WAAWtf,GAAI,SAASv8S,EAAEqE,EAAGkY,QAC/E,IAAWA,IAAMA,EAAI,GAAIzc,GAAKH,EAAEktX,SAAUltX,EAAEqzO,UAAS,SAAUhzO,GAC7D,OAAO,SAAUA,EAAGL,EAAGuJ,GACrB,IAAI7E,EACA+hI,EEtVG,SAAa/3I,EAAQy+X,GAClC,IAAIttX,EAEJ,QAAgB/V,IAAZqjY,EAAuB,CACzB,IACIv9S,EADAC,EAAY,aAA2BnhF,GAG3C,IACE,IAAKmhF,EAAUjtE,MAAOgtE,EAAQC,EAAU7vE,KAAK5R,MAAO,CAClD,IAAIrD,EAAQ6kF,EAAM7kF,MAEL,MAATA,IAAkB8U,EAAM9U,QAAiBjB,IAAR+V,GAAqB9U,GAASA,KACjE8U,EAAM9U,IAGV,MAAOyB,GACPqjF,EAAUnrE,EAAElY,GACZ,QACAqjF,EAAUnnE,SAEP,CACL,IAGIgzF,EAHAh9F,GAAS,EAETi9F,EAAa,aAA2BjtG,GAG5C,IACE,IAAKitG,EAAW/4F,MAAO84F,EAASC,EAAW37F,KAAK5R,MAAO,CACrD,IAAIkgD,EAASotD,EAAO3wG,MAE+B,OAA9CujD,EAAS6+U,EAAQ7+U,IAAU5vC,EAAOhQ,MAAqBmR,EAAMyuC,QAAkBxkD,IAAR+V,GAAqByuC,GAAUA,KACzGzuC,EAAMyuC,IAGV,MAAO9hD,GACPmvG,EAAWj3F,EAAElY,GACb,QACAmvG,EAAWjzF,KAIf,OAAO7I,EF6SO,CAAEQ,GAAG,SAAUA,GACrB,OAAO6W,OAAO7W,EAAEtV,UAEdqY,EGzVG,SAAa1U,EAAQy+X,GAClC,IAAIrtX,EAEJ,QAAgBhW,IAAZqjY,EAAuB,CACzB,IACIv9S,EADAC,EAAY,aAA2BnhF,GAG3C,IACE,IAAKmhF,EAAUjtE,MAAOgtE,EAAQC,EAAU7vE,KAAK5R,MAAO,CAClD,IAAIrD,EAAQ6kF,EAAM7kF,MAEL,MAATA,IAAkB+U,EAAM/U,QAAiBjB,IAARgW,GAAqB/U,GAASA,KACjE+U,EAAM/U,IAGV,MAAOyB,GACPqjF,EAAUnrE,EAAElY,GACZ,QACAqjF,EAAUnnE,SAEP,CACL,IAGIgzF,EAHAh9F,GAAS,EAETi9F,EAAa,aAA2BjtG,GAG5C,IACE,IAAKitG,EAAW/4F,MAAO84F,EAASC,EAAW37F,KAAK5R,MAAO,CACrD,IAAIkgD,EAASotD,EAAO3wG,MAE+B,OAA9CujD,EAAS6+U,EAAQ7+U,IAAU5vC,EAAOhQ,MAAqBoR,EAAMwuC,QAAkBxkD,IAARgW,GAAqBwuC,GAAUA,KACzGxuC,EAAMwuC,IAGV,MAAO9hD,GACPmvG,EAAWj3F,EAAElY,GACb,QACAmvG,EAAWjzF,KAIf,OAAO5I,EHgTO,CAAEO,GAAG,SAAUA,GACrB,OAAO6W,OAAO7W,EAAEtV,UAGlB,OAAQwe,GACN,IAAK,MACH7E,EAAI,GACJ,MAEF,IAAK,OACHA,EAAI,GACJ,MAEF,IAAK,SACL,QACEA,EAAI,GAGR,OAAOA,IAAIijP,OAAO,CAAClhH,EAAGrjI,IAAIV,MAAM1C,GAvB3B,CAwBLogT,EAAG17S,EAAGwqP,EAxBD,CAwBI7uP,EAAEtV,UACZ89M,GAAG,OAAO,SAAU7oM,GACrB,GAAIogT,EAAEh3T,SAAW4W,EAAE5W,QAAUwzB,GAAK,GAAI,CACpC,KAAOA,GAAK1Y,QAAQC,KAAK,qBAAuBi8S,EAAEh3T,OAAS4W,EAAE5W,QAAU,kBAAoBwzB,EAAI,wIAC/F,IAAIlU,EAAIxJ,KAAKY,IAAI,IAAM4E,EAAE,GAAI,GAC7BrE,EAAE,CAACqI,EAAGxJ,KAAKY,IAAI,IAAM4E,EAAE,GAAIgE,IAAKkU,EAAI,QAC9B,SAAUvc,GAChB,IAAIL,EACAuJ,EAAIlJ,EAAEw5I,UACNn1I,EAAIrE,EAAE2S,QACNyzH,EAAIpmI,EAAEd,OACN6D,EAAI/C,EAAEokU,MACN7nT,EAAIrT,EAAE6jX,aACN1kX,EAAIa,EAAE8jX,eACNvuX,EAAIyK,EAAE+jX,YACN1qX,EAAI2G,EAAEgkX,gBACNjqX,EAAIiG,EAAEikX,eACN5kX,EAAIlE,EAAEi/J,OACNl7J,EAAI/D,EAAE+oX,cACNxtX,EAAIyE,EAAE6/T,UACN96S,EAAI/kB,EAAEw3T,WACN/7T,EAAIuE,EAAEgpX,eACNlpX,EAAIE,EAAEipX,eACNhlX,EAAIjE,EAAE24V,WACNh6V,EAAIqB,EAAEoyN,mBAEV,SAAStlN,EAAEnR,GACT,OAAOuc,EAAIA,EAAEvc,GAAK2lI,GAAEp9H,EAAG69H,GAGzBpmI,EAAE6lW,UAAUb,UAAU,QAAQ33V,KAAKtK,GAAGuiE,MAAK,SAAUtlE,GACnD,IAAIkJ,EAAIlJ,EAAEyoN,OAAO,QAAQjgB,GAAG,SAAS,SAAUxoM,GAC7CvB,GAAKA,EAAEuB,EAAG,MACTwoM,GAAG,aAAa,SAAUxoM,GAC3BoI,IAAMzI,EAAI,GAAE,EAAE/W,OAAQwuS,GAAE,CACtB1nQ,UAAW,QACX2jM,OAAO,EACP5f,QAAS,WACP,OAAOprM,EAAErI,KAEVmE,KAAM5B,GAAKA,EAAEvC,EAAG,MAClBwoM,GAAG,YAAY,SAAUxoM,GAC1BL,GAAKA,EAAEgvE,UAAW1rE,GAAKA,EAAEjD,EAAG,MAC3BgoL,KAAK,SAAUvpL,EAAI,UAAY,WAAWupL,KAAK,OAAQ72K,GAAG62K,KAAK,cAAe1/K,GAAG0/K,KAAK,aAAcpoL,GAAGooL,KAAK,cAAe5+J,GAAG4+J,KAAK,cAAe,UAAUA,KAAK,YAAa,6BACjL,iBAAmBloL,GAAK5X,OAAOD,KAAK6X,GAAG7W,SAAQ,SAAU+W,GACvDkJ,EAAIA,EAAE8+K,KAAKhoL,EAAGF,EAAEE,OACdkJ,EAAIA,EAAErf,MAAK,SAAUmW,GACvB,OAAOA,EAAEgvO,aAAaj7F,SAAS/wI,GAAGglL,KAAK,YAAas0H,IAAGt0H,KAAK,YAAak9B,IAAGxqE,KAAK5V,UAElF,SAAU9kI,GACXA,EAAEgvO,aAAaj7F,SAAS/wI,GAAGglL,KAAK,OAAQ72K,GAAG62K,KAAK,cAAe1/K,GAAG0/K,KAAK,YAAas0H,IAAGt0H,KAAK,YAAak9B,IAAGxqE,KAAK5V,OAChH,SAAU9kI,GACXA,EAAEgvO,aAAaj7F,SAAS/wI,GAAGglL,KAAK,eAAgB,GAAGj7J,YA9C/C,CAgDN,CACAysH,UAAWtwI,EACXyJ,QAASyzH,EACTlnI,OAAQ4gT,EACR+lD,UAAW9iW,EACXqhU,MAAOzkU,OAER4hC,QAvF8D,CAwFjEgtK,GAGJ,IAAI,GAAI,CACNy+K,eAAgB,SAAwBhtX,GACtC,OAAOA,EAAE06I,KAAO,KAAO16I,EAAEtV,MAAQ,MAGjC,GAAI,CACN44K,OrGpba,gBACb/hI,GAASA,EAAO/vC,GAAQA,EAAMulB,GAAQpX,EAAI7W,UAAUC,QAAU,GAAKyI,EAAO+vC,EAAOA,EAAQ,EAAG,GAAK5hC,EAAI,EAAI,GAAKoX,EAK9G,IAJA,IAAIluB,GAAK,EACL8W,EAAoD,EAAhDd,KAAKY,IAAI,EAAGZ,KAAKuB,MAAM5O,EAAO+vC,GAASxqB,IAC3C1U,EAAQ,IAAI4L,MAAMtO,KAEb9W,EAAI8W,GACX0C,EAAMxZ,GAAK04C,EAAQ14C,EAAIkuB,EAGzB,OAAO1U,EqG0aC,CAAE,IAAI00B,KAAI,SAAU/2B,GAC1B,OAAOA,EAAEpW,cACRmtC,IHnbU,SAASw2V,IACtB,IAAIlvX,EAAQ,IAAI7U,IACZ89P,EAAS,GACTjlP,EAAQ,GACR0nX,EAAUoC,GAEd,SAASlkW,EAAM7f,GACb,IAAIlf,EAAMkf,EAAI,GACVvf,EAAIwV,EAAMpU,IAAIf,GAElB,IAAKL,EAAG,CACN,GAAIkhY,IAAYoC,GAAU,OAAOpC,EACjC1rX,EAAMnU,IAAIhB,EAAKL,EAAIy+P,EAAO7+P,KAAK2f,IAGjC,OAAO/F,GAAOxZ,EAAI,GAAKwZ,EAAMtZ,QAuC/B,OApCAk/B,EAAMq/N,OAAS,SAAUrtE,GACvB,IAAKnxL,UAAUC,OAAQ,OAAOu+P,EAAO/1P,QACrC+1P,EAAS,GAAIjpP,EAAQ,IAAI7U,IAEzB,IACI+lF,EADAC,EAAY,aAA2ByqG,GAG3C,IACE,IAAKzqG,EAAUjtE,MAAOgtE,EAAQC,EAAU7vE,KAAK5R,MAAO,CAClD,IAAIrD,EAAQ6kF,EAAM7kF,MACdxB,EAAMwB,EAAQ,GACd2T,EAAMrU,IAAId,IACdmV,EAAMnU,IAAIhB,EAAKo+P,EAAO7+P,KAAKiC,KAE7B,MAAOyB,GACPqjF,EAAUnrE,EAAElY,GACZ,QACAqjF,EAAUnnE,IAGZ,OAAO4f,GAGTA,EAAM5lB,MAAQ,SAAU43K,GACtB,OAAOnxL,UAAUC,QAAUsZ,EAAQ4L,MAAMK,KAAK2rK,GAAIhyJ,GAAS5lB,EAAM9Q,SAGnE02B,EAAM8hW,QAAU,SAAU9vM,GACxB,OAAOnxL,UAAUC,QAAUghY,EAAU9vM,EAAGhyJ,GAAS8hW,GAGnD9hW,EAAM5X,KAAO,WACX,OAAOk9W,EAAQjmI,EAAQjlP,GAAO0nX,QAAQA,IAGxCQ,GAAU7hY,MAAMu/B,EAAOn/B,WAChBm/B,EG6XA,CAAE,KACTokW,eAAe,EACfC,qBAAqB,EACrBc,eAAe,EACfpwB,WAAY,kBACZuvB,UAAW,CAAC,EAAG,IACfroD,UAAW,SACXrI,WAAY,SACZjjF,QAAS,EACTg0I,eAAgB,EAAE,GAAI,IACtB3kW,MAAO,OACPk8S,OAAQ,cACRmpD,eAAgB,GAChB72J,mBAAoB,KAGtB,SAAS,GAAE5tO,GACT,IAAIwf,EAAIxf,EAAE2wJ,UACN/6I,EAAI5V,EAAEujY,SACN7pX,OAAI,IAAW9D,EAAI,IAAMA,EACzBwE,EAAIpa,EAAE2kY,QACNjlX,EAAI1f,EAAE8pB,QACNvK,EAAIvf,EAAEo0B,KACNrd,EAAI/W,EAAEu7U,MACNrkU,EAAI,SAAUC,EAAGL,GACnB,GAAI,MAAQK,EAAG,MAAO,GACtB,IAAIkJ,EACA7E,EACA+hI,EAAI,GACJrjI,EAAI7a,OAAOD,KAAK+X,GAEpB,IAAKqE,EAAI,EAAGA,EAAItB,EAAEha,OAAQsb,IACxB1E,EAAE7V,QAAQof,EAAInG,EAAEsB,KAAO,IAAM+hI,EAAEl9H,GAAKlJ,EAAEkJ,IAGxC,OAAOk9H,EAXD,CAYNv9I,EAAG,CAAC,YAAa,WAAY,UAAW,UAAW,OAAQ,UACzDugC,EAAIguQ,GAAE,GAAI,GAAG/uR,GACbvI,EAAIs3R,GAAE,GAAI,GAAG7uR,GACbpE,EAAI,SAAUnE,EAAGL,EAAG9W,GACtB,IAAIwf,EAAI,mBACJ5J,EAAI,mBAAEkB,GACN4C,EAAI9D,EAAE,GACNwE,EAAIxE,EAAE,GACN8J,EAAI,mBAAE,MACNH,EAAIG,EAAE,GACN3I,EAAI2I,EAAE,GACV,OAAO,qBAAE,WACP,IAAIW,EAAIb,EAAE05G,QACN19G,EAAI,GAAE6E,GAAGu/M,OAAO,OAAOluL,MAAM,UAAW,SAC5C,iBAAmB1xC,GAAKX,OAAOD,KAAKY,GAAGI,SAAQ,SAAU+W,GACvDqE,EAAIA,EAAE2jL,KAAKhoL,EAAGnX,EAAEmX,OAElB,IAAIomI,EAAI/hI,EAAEokN,OAAO,KAEjB,SAAShqN,EAAEuB,EAAGL,GACZ0E,EAAE2jL,KAAK,SAAUroL,GAAGqoL,KAAK,QAAShoL,GAAIomI,EAAE4hD,KAAK,YAAa,aAAehoL,EAAI,EAAI,KAAOL,EAAI,EAAI,KAAMsD,EAAE,CAACjD,EAAGL,IAG9GC,EAAEwmI,GACF,IAAI7jI,EAAI,EACJgG,EAAI,OACR,IAAW5I,GAAK4C,EAAI2G,EAAEw5N,cAAchH,YAAanzN,EAAIW,EAAEw5N,cAAc/G,eAAiBp5N,EAAI5C,EAAE,GAAI4I,EAAI5I,EAAE,IAAKlB,EAAE8D,EAAI1D,KAAKY,IAAI8C,EAAGvC,EAAE,IAAKuI,EAAI1J,KAAKY,IAAI8I,EAAGvI,EAAE,KACtJ,IAAIoI,EAAI,IAAI,MAAE,SAAUpI,GACtB,GAAIA,GAAK,IAAMA,EAAEjX,aAAU,IAAW4W,EAAG,CACvC,IAAIuJ,EAAIlJ,EAAE,GAAGy8N,YACbh+N,EAAEyK,EAAEwD,MAAOxD,EAAEyD,YAGjB,OAAOvE,EAAEm4N,QAAQr3N,GAAI,WACnBd,EAAE45N,UAAU94N,GAAI,GAAEA,GAAG87V,UAAU,KAAKj4U,YAErC,CAACptB,EAAGK,EAAGnX,IAAK,CAACwf,EAAGD,EAAG7F,GAjChB,CAkCNU,EAAGmF,EAAGG,EAAEklX,eACNnlX,EAAInE,EAAE,GACNnB,EAAImB,EAAE,GACNgN,EAAIhN,EAAE,GACN+M,EAAI,iBAAE,IAAE,GAAG,MAEf,OAAO,qBAAE,WACPlO,GAAKkO,EAAE6wG,QAAQ,CACby3B,UAAWpwH,EACXgjW,SAAU7pX,EACVoQ,QAAS7S,EACT+lW,UAAW7iW,EACXia,KAAM9L,EACNizT,MAAOxkU,MAER,CAAC2C,EAAG6mB,EAAGtpB,EAAGkD,EAAGmO,EAAGvR,IAAK,IAAE08K,cAAc,MAAO86G,GAAE,CAC/C1vG,IAAKp/K,EACLiyB,MAAO,CACL5tB,OAAQ,OACRD,MAAO,SAER3M,IAGL,GAAE8jL,aAAe,CACfrqC,UAAW,GACX4yO,SAAU,IACVoB,QAAS,CAAC,IAAK,KACf76W,QAAS,IAEI,Q,8BIrhBA,ICPX+6W,EAAkB,45HAElBrvX,EDHJ,SAAiB3U,GACf,IAAImmC,EAAQ,GACZ,OAAO,SAAU5iC,GAEf,YADmBxD,IAAfomC,EAAM5iC,KAAoB4iC,EAAM5iC,GAAOvD,EAAGuD,IACvC4iC,EAAM5iC,ICDL,EAAQ,SAAU67N,GAC5B,OAAO4kK,EAAgBphX,KAAKw8M,IAAgC,MAAvBA,EAAKjmC,WAAW,IAE3B,MAAvBimC,EAAKjmC,WAAW,IAEhBimC,EAAKjmC,WAAW,GAAK,MAIX,O,6BCNf,SAAS8qM,EAAQjmL,GACf,OAAOx/M,OAAOsC,UAAUZ,SAASC,KAAK69M,GAASn2M,MAAM,GAAI,GAU3D,SAASg/N,EAAY7oB,GACnB,MAA4B,cAArBimL,EAAQjmL,GAUjB,SAASoqJ,EAAOpqJ,GACd,MAA4B,SAArBimL,EAAQjmL,GAUjB,SAASlwB,EAAckwB,GACrB,MAAyB,WAArBimL,EAAQjmL,KACLA,EAAQn9M,cAAgBrC,QAAUA,OAAOmC,eAAeq9M,KAAax/M,OAAOsC,WA+ErF,SAAS0jB,EAAQw5L,GACf,MAA4B,UAArBimL,EAAQjmL,GAgJjB,SAAS2gD,EAAS3gD,GAChB,MAA4B,WAArBimL,EAAQjmL,GAuFjB,IAEiB3kM,EAAGC,EAAGC,EAAGmF,EAAG/D,EAAZtB,EAFe+uV,EAEZ9uV,EAFoButN,ECjVxC,SAASq9J,IACP,IAAK,IAAIrrX,EAAI,EAAG1Z,EAAI,EAAGusB,EAAKtsB,UAAUC,OAAQF,EAAIusB,EAAIvsB,IACpD0Z,GAAKzZ,UAAUD,GAAGE,OAGf,IAAImgB,EAAI+E,MAAM1L,GAAIy7E,EAAI,EAA3B,IAA8Bn1F,EAAI,EAAGA,EAAIusB,EAAIvsB,IAC3C,IAAK,IAAIka,EAAIja,UAAUD,GAAIo3B,EAAI,EAAG0iB,EAAK5/B,EAAEha,OAAQk3B,EAAI0iB,EAAI1iB,IAAK+9D,IAC5D90E,EAAE80E,GAAKj7E,EAAEkd,GAIb,OAAO/W,EAGT,SAAS2kX,EAAWC,EAAO5kY,EAAK6kY,EAAQC,GACtC,IAAIC,EAAWD,EAAer9M,qBAAqBznL,GAAO,aAAe,gBACxD,eAAb+kY,IAA2BH,EAAM5kY,GAAO6kY,GAE3B,kBAAbE,GACF/lY,OAAOmB,eAAeykY,EAAO5kY,EAAK,CAChCwB,MAAOqjY,EACPvlY,YAAY,EACZmC,UAAU,EACVC,cAAc,IAKpB,SAASsjY,EAAiBtsW,EAAQusW,EAAU5gV,GAE1C,IAAKiqI,EAAc22M,GAQjB,OANI5gV,GAAcr/B,EAAQq/B,IACxBA,EAAWtkD,SAAQ,SAAUyoO,GAC3By8J,EAAWz8J,EAAO9vM,EAAQusW,MAIvBA,EAIT,IAAIC,EAAY,GAEZ52M,EAAc51J,KAGhBwsW,EAAYR,EAFE1lY,OAAO48L,oBAAoBljK,GACzB15B,OAAOC,sBAAsBy5B,IACE+yJ,QAAO,SAAUm5M,EAAO5kY,GAErE,IAAImlY,EAAYzsW,EAAO14B,GAMvB,QAJKm/P,EAASn/P,KAAShB,OAAO48L,oBAAoBqpM,GAAUh8H,SAASjpQ,IAAQm/P,EAASn/P,KAAShB,OAAOC,sBAAsBgmY,GAAUh8H,SAASjpQ,KAC7I2kY,EAAWC,EAAO5kY,EAAKmlY,EAAWzsW,GAG7BksW,IACN,KA2BL,OArBaF,EAHD1lY,OAAO48L,oBAAoBqpM,GACzBjmY,OAAOC,sBAAsBgmY,IAECx5M,QAAO,SAAUm5M,EAAO5kY,GAElE,IAAI6kY,EAASI,EAASjlY,GAClBmlY,EAAY72M,EAAc51J,GAC5BA,EAAO14B,QAAOO,EAchB,OAZI8jD,GAAcr/B,EAAQq/B,IACxBA,EAAWtkD,SAAQ,SAAUyoO,GAC3Bq8J,EAASr8J,EAAO28J,EAAWN,WAKbtkY,IAAd4kY,GAA2B72M,EAAcu2M,KAC3CA,EAASG,EAAiBG,EAAWN,EAAQxgV,IAG/CsgV,EAAWC,EAAO5kY,EAAK6kY,EAAQI,GACxBL,IACNM,GA4CU,IA7Bf,SAAexsW,GAGb,IAFA,IAAI0sW,EAAY,GAEP/gX,EAAK,EAAGA,EAAKzkB,UAAUC,OAAQwkB,IACtC+gX,EAAU/gX,EAAK,GAAKzkB,UAAUykB,GAGhC,IAAIggC,EAAa,KACbtiD,EAAO22B,EAOX,OALI41J,EAAc51J,IAAWA,EAAO2rB,YAA6C,IAA/BrlD,OAAOD,KAAK25B,GAAQ74B,SACpEkC,EAAO,GACPsiD,EAAa3rB,EAAO2rB,YAGf+gV,EAAU35M,QAAO,SAAU5lL,EAAQo/X,GACxC,OAAOD,EAAiBn/X,EAAQo/X,EAAU5gV,KACzCtiD,K,iDCnHU,EAXE,SAAoBvB,GACnC,IAAI6kY,EAAQ,iBAAO7kY,GAEnB6kY,EAAMxsQ,QAAUr4H,EAChB,OAAA8kY,EAAA,IAAc,WACZ,OAAO,WACL,OAAOD,EAAMxsQ,eCaJ,EAnBG,SAAqBo1I,GACrC,IAAIjiN,EAAQ,iBAAO,GAEf1L,EAAK,mBAAS2tN,GACdpqQ,EAAQy8C,EAAG,GACXsnB,EAAWtnB,EAAG,GAEdilV,EAAc,uBAAY,SAAU/jY,GACtC0qD,qBAAqBF,EAAM6sE,SAC3B7sE,EAAM6sE,QAAU5sE,uBAAsB,WACpC2b,EAASpmE,QAEV,IAIH,OAHA,GAAW,WACT0qD,qBAAqBF,EAAM6sE,YAEtB,CAACh1H,EAAO0hY,I,QCoBF,IAlCK,SAAuBC,EAAcC,QAClC,IAAjBD,IACFA,EAAehyW,UAGK,IAAlBiyW,IACFA,EAAgBjyW,KAGlB,IAAI8sB,EAAK,EAAY,CACnB98B,MAAO,IAAW06I,OAAO8xD,WAAaw1K,EACtC/hX,OAAQ,IAAWy6I,OAAO+xD,YAAcw1K,IAEtC5hY,EAAQy8C,EAAG,GACXsnB,EAAWtnB,EAAG,GAiBlB,OAfA,qBAAU,WACR,GAAI,IAAU,CACZ,IAAIolV,EAAY,WACd99T,EAAS,CACPpkD,MAAO06I,OAAO8xD,WACdvsM,OAAQy6I,OAAO+xD,eAKnB,OADA/xD,OAAOz1F,iBAAiB,SAAUi9T,GAC3B,WACLxnO,OAAO51F,oBAAoB,SAAUo9T,OAGxC,IACI7hY,I,0EC5BT,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAGR,EAAQ,KAAOyoL,Y,6BC3FE,EAAQ,IAMzB4lH,CAAW,OAAO,SAAU3qO,GAC1B,OAAO,WACL,OAAOA,EAAKnmE,KAAMxB,UAAUC,OAASD,UAAU,QAAKW,MANjC,EAAQ,O,6BCF/B,IAAIimQ,EAAwB,EAAQ,KAEhC9iE,EAAU,EAAQ,KAItBhlM,EAAOC,QAAU6nQ,EAAwB,GAAG9lQ,SAAW,WACrD,MAAO,WAAagjM,EAAQtiM,MAAQ,M,6BCPrB,EAAQ,IAMzB8wS,CAAW,OAAO,SAAU3qO,GAC1B,OAAO,WACL,OAAOA,EAAKnmE,KAAMxB,UAAUC,OAASD,UAAU,QAAKW,MANjC,EAAQ,O,6BCFvB,EAAQ,GAMhBo+P,CAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACDq8M,UAVc,EAAQ,Q,6BCFxB,IAAIjnI,EAAI,EAAQ,IAEZh9D,EAAW,EAAQ,IAEnB3iF,EAAO,EAAQ,IAEf6mR,EAAiB,EAAQ,KAEzB1gH,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACDg3B,MAAO,SAAeH,GAGpB,IAAIvyK,EAAM8zJ,EAASvgM,MACfsB,EAAWmjY,EAAeh4V,GAC1ByyK,EAAgBthG,EAAKohG,EAAYxgN,UAAUC,OAAS,EAAID,UAAU,QAAKW,GAC3E,OAAQ4kR,EAAQziR,GAAU,SAAU1C,EAAKwB,EAAO8G,GAC9C,IAAKg4M,EAAc9+M,EAAOxB,EAAK6tC,GAAM,OAAOvlC,MAC3C,CACDk6L,YAAY,EACZC,aAAa,EACbC,aAAa,IACZP,Y,6BC9BP,IAAIw8D,EAAI,EAAQ,IAEZwF,EAAa,EAAQ,IAErBnlJ,EAAO,EAAQ,IAEfr+G,EAAO,EAAQ,IAEfq2M,EAAY,EAAQ,IAEpBrV,EAAW,EAAQ,IAEnBipF,EAAqB,EAAQ,IAE7Bi7G,EAAiB,EAAQ,KAEzB1gH,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACDpqL,OAAQ,SAAgBihN,GAGtB,IAAIvyK,EAAM8zJ,EAASvgM,MACfsB,EAAWmjY,EAAeh4V,GAC1ByyK,EAAgBthG,EAAKohG,EAAYxgN,UAAUC,OAAS,EAAID,UAAU,QAAKW,GACvEulY,EAAS,IAAKl7G,EAAmB/8O,EAAKs2N,EAAW,SACjDpD,EAAS/pD,EAAU8uL,EAAO9kY,KAO9B,OANAmkR,EAAQziR,GAAU,SAAU1C,EAAKwB,GAC3B8+M,EAAc9+M,EAAOxB,EAAK6tC,IAAMltC,EAAKogQ,EAAQ+kI,EAAQ9lY,EAAKwB,KAC7D,CACDghM,YAAY,EACZC,aAAa,IAERqjM,M,6BCxCX,IAAInnI,EAAI,EAAQ,IAEZh9D,EAAW,EAAQ,IAEnB3iF,EAAO,EAAQ,IAEf6mR,EAAiB,EAAQ,KAEzB1gH,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACD9mC,KAAM,SAAc29D,GAGlB,IAAIvyK,EAAM8zJ,EAASvgM,MACfsB,EAAWmjY,EAAeh4V,GAC1ByyK,EAAgBthG,EAAKohG,EAAYxgN,UAAUC,OAAS,EAAID,UAAU,QAAKW,GAC3E,OAAO4kR,EAAQziR,GAAU,SAAU1C,EAAKwB,EAAO8G,GAC7C,GAAIg4M,EAAc9+M,EAAOxB,EAAK6tC,GAAM,OAAOvlC,EAAK9G,KAC/C,CACDghM,YAAY,EACZC,aAAa,EACbC,aAAa,IACZ78L,W,6BC9BP,IAAI84P,EAAI,EAAQ,IAEZh9D,EAAW,EAAQ,IAEnB3iF,EAAO,EAAQ,IAEf6mR,EAAiB,EAAQ,KAEzB1gH,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACDu+K,QAAS,SAAiB1nJ,GAGxB,IAAIvyK,EAAM8zJ,EAASvgM,MACfsB,EAAWmjY,EAAeh4V,GAC1ByyK,EAAgBthG,EAAKohG,EAAYxgN,UAAUC,OAAS,EAAID,UAAU,QAAKW,GAC3E,OAAO4kR,EAAQziR,GAAU,SAAU1C,EAAKwB,EAAO8G,GAC7C,GAAIg4M,EAAc9+M,EAAOxB,EAAK6tC,GAAM,OAAOvlC,EAAKtI,KAC/C,CACDwiM,YAAY,EACZC,aAAa,EACbC,aAAa,IACZ78L,W,gBChCC,EAAQ,GAMhB84P,CAAE,CACAj/P,OAAQ,MACR2pL,MAAM,EACNE,QAAQ,GACP,CACDnkK,KATS,EAAQ,Q,6BCAnB,IAAIu5O,EAAI,EAAQ,IAEZh+P,EAAO,EAAQ,IAEf8sL,EAAc,EAAQ,IAEtBupB,EAAY,EAAQ,IAEpBjV,EAAc,EAAQ,KAEtBojF,EAAU,EAAQ,IAElB5lR,EAAOkuL,EAAY,GAAGluL,MAG1Bo/P,EAAE,CACAj/P,OAAQ,MACR2pL,MAAM,EACNE,QAAQ,GACP,CACDq2K,QAAS,SAAiB14V,EAAU6+X,GAClC/uL,EAAU+uL,GACV,IAAIrjY,EAAWq/L,EAAY76L,GACvB4+X,EAAS,IAAI1kY,KACbN,EAAMk2M,EAAU8uL,EAAOhlY,KACvBC,EAAMi2M,EAAU8uL,EAAO/kY,KACvBC,EAAMg2M,EAAU8uL,EAAO9kY,KAO3B,OANAmkR,EAAQziR,GAAU,SAAUuiC,GAC1B,IAAI+gW,EAAaD,EAAc9gW,GAC1BtkC,EAAKG,EAAKglY,EAAQE,GAA2DzmY,EAAKoB,EAAKI,EAAK+kY,EAAQE,GAAa/gW,GAAlFtkC,EAAKK,EAAK8kY,EAAQE,EAAY,CAAC/gW,MAClE,CACDw9J,aAAa,IAERqjM,M,6BCjCX,IAAInnI,EAAI,EAAQ,IAEZh9D,EAAW,EAAQ,IAEnBkkM,EAAiB,EAAQ,KAEzBI,EAAgB,EAAQ,KAExB9gH,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACD0/E,SAAU,SAAkByuC,GAC1B,OAAOvyB,EAAQ0gH,EAAelkM,EAASvgM,QAAQ,SAAUpB,EAAKwB,EAAO8G,GACnE,GAAI29X,EAAczkY,EAAOk2S,GAAgB,OAAOpvS,MAC/C,CACDk6L,YAAY,EACZC,aAAa,EACbC,aAAa,IACZP,Y,cCzBPzjM,EAAOC,QAAU,SAAUiY,EAAGC,GAE5B,OAAOD,IAAMC,GAAKD,GAAKA,GAAKC,GAAKA,I,6BCFnC,IAAI8nP,EAAI,EAAQ,IAEZh+P,EAAO,EAAQ,IAEfwkR,EAAU,EAAQ,IAElBnuE,EAAY,EAAQ,IAIxB2nD,EAAE,CACAj/P,OAAQ,MACR2pL,MAAM,EACNE,QAAQ,GACP,CACDu2K,MAAO,SAAe54V,EAAU6+X,GAC9B,IAAID,EAAS,IAAI1kY,KACjB41M,EAAU+uL,GACV,IAAIhlI,EAAS/pD,EAAU8uL,EAAO9kY,KAI9B,OAHAmkR,EAAQj+Q,GAAU,SAAU+9B,GAC1BtkC,EAAKogQ,EAAQ+kI,EAAQC,EAAc9gW,GAAUA,MAExC6gW,M,6BCtBX,IAAInnI,EAAI,EAAQ,IAEZh9D,EAAW,EAAQ,IAEnBkkM,EAAiB,EAAQ,KAEzB1gH,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACD28M,MAAO,SAAexuF,GACpB,OAAOvyB,EAAQ0gH,EAAelkM,EAASvgM,QAAQ,SAAUpB,EAAKwB,EAAO8G,GACnE,GAAI9G,IAAUk2S,EAAe,OAAOpvS,EAAKtI,KACxC,CACDwiM,YAAY,EACZC,aAAa,EACbC,aAAa,IACZ78L,W,6BCvBP,IAAI84P,EAAI,EAAQ,IAEZwF,EAAa,EAAQ,IAErBnlJ,EAAO,EAAQ,IAEfr+G,EAAO,EAAQ,IAEfq2M,EAAY,EAAQ,IAEpBrV,EAAW,EAAQ,IAEnBipF,EAAqB,EAAQ,IAE7Bi7G,EAAiB,EAAQ,KAEzB1gH,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACDg8K,QAAS,SAAiBnlJ,GAGxB,IAAIvyK,EAAM8zJ,EAASvgM,MACfsB,EAAWmjY,EAAeh4V,GAC1ByyK,EAAgBthG,EAAKohG,EAAYxgN,UAAUC,OAAS,EAAID,UAAU,QAAKW,GACvEulY,EAAS,IAAKl7G,EAAmB/8O,EAAKs2N,EAAW,SACjDpD,EAAS/pD,EAAU8uL,EAAO9kY,KAO9B,OANAmkR,EAAQziR,GAAU,SAAU1C,EAAKwB,GAC/Bb,EAAKogQ,EAAQ+kI,EAAQxlL,EAAc9+M,EAAOxB,EAAK6tC,GAAMrsC,KACpD,CACDghM,YAAY,EACZC,aAAa,IAERqjM,M,6BCxCX,IAAInnI,EAAI,EAAQ,IAEZwF,EAAa,EAAQ,IAErBnlJ,EAAO,EAAQ,IAEfr+G,EAAO,EAAQ,IAEfq2M,EAAY,EAAQ,IAEpBrV,EAAW,EAAQ,IAEnBipF,EAAqB,EAAQ,IAE7Bi7G,EAAiB,EAAQ,KAEzB1gH,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACDi8K,UAAW,SAAmBplJ,GAG5B,IAAIvyK,EAAM8zJ,EAASvgM,MACfsB,EAAWmjY,EAAeh4V,GAC1ByyK,EAAgBthG,EAAKohG,EAAYxgN,UAAUC,OAAS,EAAID,UAAU,QAAKW,GACvEulY,EAAS,IAAKl7G,EAAmB/8O,EAAKs2N,EAAW,SACjDpD,EAAS/pD,EAAU8uL,EAAO9kY,KAO9B,OANAmkR,EAAQziR,GAAU,SAAU1C,EAAKwB,GAC/Bb,EAAKogQ,EAAQ+kI,EAAQ9lY,EAAKsgN,EAAc9+M,EAAOxB,EAAK6tC,MACnD,CACD20J,YAAY,EACZC,aAAa,IAERqjM,M,6BCxCX,IAAInnI,EAAI,EAAQ,IAEZ3nD,EAAY,EAAQ,IAEpBrV,EAAW,EAAQ,IAEnBwjF,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNnqM,MAAO,EACPjS,QAAQ,GACP,CAED9lI,MAAO,SAAev8C,GAQpB,IALA,IAAI2mC,EAAM8zJ,EAASvgM,MACf2/P,EAAS/pD,EAAUnpK,EAAI7sC,KACvBgmR,EAAkBpnR,UAAUC,OAC5BF,EAAI,EAEDA,EAAIqnR,GACT7B,EAAQvlR,UAAUD,KAAMohQ,EAAQ,CAC9Bx+D,KAAM10J,EACN20J,YAAY,IAIhB,OAAO30J,M,gBCnCH,EAAQ,GAMhB8wN,CAAE,CACAj/P,OAAQ,MACR2pL,MAAM,EACNE,QAAQ,GACP,CACD48M,GATO,EAAQ,Q,6BCAjB,IAAIxnI,EAAI,EAAQ,IAEZpwG,EAAS,EAAQ,IAEjBozC,EAAW,EAAQ,IAEnBqV,EAAY,EAAQ,IAEpB6uL,EAAiB,EAAQ,KAEzB1gH,EAAU,EAAQ,IAElBtkR,EAAY0tJ,EAAO1tJ,UAGvB89P,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACDkC,OAAQ,SAAgB20B,GAGtB,IAAIvyK,EAAM8zJ,EAASvgM,MACfsB,EAAWmjY,EAAeh4V,GAC1Bu4V,EAAYxmY,UAAUC,OAAS,EAC/Bi9U,EAAcspD,OAAY7lY,EAAYX,UAAU,GAapD,GAZAo3M,EAAUoJ,GACV+kE,EAAQziR,GAAU,SAAU1C,EAAKwB,GAC3B4kY,GACFA,GAAY,EACZtpD,EAAct7U,GAEds7U,EAAc18H,EAAW08H,EAAat7U,EAAOxB,EAAK6tC,KAEnD,CACD20J,YAAY,EACZC,aAAa,IAEX2jM,EAAW,MAAMvlY,EAAU,6CAC/B,OAAOi8U,M,6BCzCX,IAAIn+E,EAAI,EAAQ,IAEZh9D,EAAW,EAAQ,IAEnB3iF,EAAO,EAAQ,IAEf6mR,EAAiB,EAAQ,KAEzB1gH,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACDyQ,KAAM,SAAcomB,GAGlB,IAAIvyK,EAAM8zJ,EAASvgM,MACfsB,EAAWmjY,EAAeh4V,GAC1ByyK,EAAgBthG,EAAKohG,EAAYxgN,UAAUC,OAAS,EAAID,UAAU,QAAKW,GAC3E,OAAO4kR,EAAQziR,GAAU,SAAU1C,EAAKwB,EAAO8G,GAC7C,GAAIg4M,EAAc9+M,EAAOxB,EAAK6tC,GAAM,OAAOvlC,MAC1C,CACDk6L,YAAY,EACZC,aAAa,EACbC,aAAa,IACZP,Y,6BC9BP,IAAIw8D,EAAI,EAAQ,IAEZpwG,EAAS,EAAQ,IAEjB5tJ,EAAO,EAAQ,IAEfghM,EAAW,EAAQ,IAEnBqV,EAAY,EAAQ,IAEpBn2M,EAAY0tJ,EAAO1tJ,UAGvB89P,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACD18J,OAAQ,SAAgB7sB,EAAKwvB,GAG3B,IAAIqe,EAAM8zJ,EAASvgM,MACfL,EAAMi2M,EAAUnpK,EAAI9sC,KACpBD,EAAMk2M,EAAUnpK,EAAI/sC,KACpBE,EAAMg2M,EAAUnpK,EAAI7sC,KACpBnB,EAASD,UAAUC,OACvBm3M,EAAUxnL,GACV,IAAI62W,EAAiB1lY,EAAKG,EAAK+sC,EAAK7tC,GAEpC,IAAKqmY,GAAkBxmY,EAAS,EAC9B,MAAMgB,EAAU,yBAGlB,IAAIW,EAAQ6kY,EAAiB1lY,EAAKI,EAAK8sC,EAAK7tC,GAAOg3M,EAAUn3M,EAAS,EAAID,UAAU,QAAKW,EAAtCy2M,CAAiDh3M,EAAK6tC,GAEzG,OADAltC,EAAKK,EAAK6sC,EAAK7tC,EAAKwvB,EAAShuB,EAAOxB,EAAK6tC,IAClCA,M,6BCpCH,EAAQ,GAMhB8wN,CAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACD+8M,OAVW,EAAQ,Q,6BCFrB,IAAI3lY,EAAO,EAAQ,IAEfq2M,EAAY,EAAQ,IAEpBrV,EAAW,EAAQ,IAGvBjjM,EAAOC,QAAU,WAMf,IAHA,IAAIqC,EAAM2gM,EAASvgM,MACfmlY,EAAQvvL,EAAUh2M,EAAIizB,KAEjB6gE,EAAI,EAAGpkE,EAAM9wB,UAAUC,OAAQi1F,EAAIpkE,EAAKokE,IAC/Cn0F,EAAK4lY,EAAOvlY,EAAKpB,UAAUk1F,IAG7B,OAAO9zF,I,6BCjBD,EAAQ,GAMhB29P,CAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACDq8M,UAVc,EAAQ,Q,6BCFxB,IAAIjnI,EAAI,EAAQ,IAEZwF,EAAa,EAAQ,IAErBxjQ,EAAO,EAAQ,IAEfq2M,EAAY,EAAQ,IAEpBrV,EAAW,EAAQ,IAEnBipF,EAAqB,EAAQ,IAE7BzF,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACD20K,WAAY,SAAoBh3V,GAC9B,IAAIlG,EAAM2gM,EAASvgM,MACfolY,EAAS,IAAK57G,EAAmB5pR,EAAKmjQ,EAAW,QAAxC,CAAiDnjQ,GAC1DmxS,EAAUn7F,EAAUwvL,EAAe,QAIvC,OAHArhH,EAAQj+Q,GAAU,SAAU1F,GAC1Bb,EAAKwxS,EAASq0F,EAAQhlY,MAEjBglY,M,6BC7BX,IAAI7nI,EAAI,EAAQ,IAEZh9D,EAAW,EAAQ,IAEnB3iF,EAAO,EAAQ,IAEfynR,EAAiB,EAAQ,KAEzBthH,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACDg3B,MAAO,SAAeH,GAGpB,IAAIp/M,EAAM2gM,EAASvgM,MACfsB,EAAW+jY,EAAezlY,GAC1Bs/M,EAAgBthG,EAAKohG,EAAYxgN,UAAUC,OAAS,EAAID,UAAU,QAAKW,GAC3E,OAAQ4kR,EAAQziR,GAAU,SAAUlB,EAAO8G,GACzC,IAAKg4M,EAAc9+M,EAAOA,EAAOR,GAAM,OAAOsH,MAC7C,CACDm6L,aAAa,EACbC,aAAa,IACZP,Y,6BC7BP,IAAIw8D,EAAI,EAAQ,IAEZwF,EAAa,EAAQ,IAErBxjQ,EAAO,EAAQ,IAEfq2M,EAAY,EAAQ,IAEpBrV,EAAW,EAAQ,IAEnB3iF,EAAO,EAAQ,IAEf4rK,EAAqB,EAAQ,IAE7B67G,EAAiB,EAAQ,KAEzBthH,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACDpqL,OAAQ,SAAgBihN,GAGtB,IAAIp/M,EAAM2gM,EAASvgM,MACfsB,EAAW+jY,EAAezlY,GAC1Bs/M,EAAgBthG,EAAKohG,EAAYxgN,UAAUC,OAAS,EAAID,UAAU,QAAKW,GACvEimY,EAAS,IAAK57G,EAAmB5pR,EAAKmjQ,EAAW,SACjDoiI,EAAQvvL,EAAUwvL,EAAOvyW,KAM7B,OALAkxP,EAAQziR,GAAU,SAAUlB,GACtB8+M,EAAc9+M,EAAOA,EAAOR,IAAML,EAAK4lY,EAAOC,EAAQhlY,KACzD,CACDihM,aAAa,IAER+jM,M,6BCvCX,IAAI7nI,EAAI,EAAQ,IAEZh9D,EAAW,EAAQ,IAEnB3iF,EAAO,EAAQ,IAEfynR,EAAiB,EAAQ,KAEzBthH,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACD9mC,KAAM,SAAc29D,GAGlB,IAAIp/M,EAAM2gM,EAASvgM,MACfsB,EAAW+jY,EAAezlY,GAC1Bs/M,EAAgBthG,EAAKohG,EAAYxgN,UAAUC,OAAS,EAAID,UAAU,QAAKW,GAC3E,OAAO4kR,EAAQziR,GAAU,SAAUlB,EAAO8G,GACxC,GAAIg4M,EAAc9+M,EAAOA,EAAOR,GAAM,OAAOsH,EAAK9G,KACjD,CACDihM,aAAa,EACbC,aAAa,IACZ78L,W,gBC/BC,EAAQ,GAMhB84P,CAAE,CACAj/P,OAAQ,MACR2pL,MAAM,EACNE,QAAQ,GACP,CACDnkK,KATS,EAAQ,Q,6BCAnB,IAAIu5O,EAAI,EAAQ,IAEZwF,EAAa,EAAQ,IAErBxjQ,EAAO,EAAQ,IAEfq2M,EAAY,EAAQ,IAEpBrV,EAAW,EAAQ,IAEnBipF,EAAqB,EAAQ,IAE7BzF,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACDxpI,aAAc,SAAsB74C,GAClC,IAAIlG,EAAM2gM,EAASvgM,MACfolY,EAAS,IAAK57G,EAAmB5pR,EAAKmjQ,EAAW,SACjDuiI,EAAW1vL,EAAUh2M,EAAIF,KACzBylY,EAAQvvL,EAAUwvL,EAAOvyW,KAI7B,OAHAkxP,EAAQj+Q,GAAU,SAAU1F,GACtBb,EAAK+lY,EAAU1lY,EAAKQ,IAAQb,EAAK4lY,EAAOC,EAAQhlY,MAE/CglY,M,6BC9BX,IAAI7nI,EAAI,EAAQ,IAEZh+P,EAAO,EAAQ,IAEfq2M,EAAY,EAAQ,IAEpBrV,EAAW,EAAQ,IAEnBwjF,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACDo9M,eAAgB,SAAwBz/X,GACtC,IAAIlG,EAAM2gM,EAASvgM,MACfslY,EAAW1vL,EAAUh2M,EAAIF,KAC7B,OAAQqkR,EAAQj+Q,GAAU,SAAU1F,EAAO8G,GACzC,IAAmC,IAA/B3H,EAAK+lY,EAAU1lY,EAAKQ,GAAiB,OAAO8G,MAC/C,CACDo6L,aAAa,IACZP,Y,6BCzBP,IAAIw8D,EAAI,EAAQ,IAEZwF,EAAa,EAAQ,IAErBxjQ,EAAO,EAAQ,IAEfq2M,EAAY,EAAQ,IAEpBxV,EAAa,EAAQ,IAErBG,EAAW,EAAQ,IAEnBI,EAAc,EAAQ,KAEtBojF,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACDq9M,WAAY,SAAoB1/X,GAC9B,IAAIxE,EAAWq/L,EAAY3gM,MACvBylY,EAAWllM,EAASz6L,GACpBw/X,EAAWG,EAAS/lY,IAOxB,OALK0gM,EAAWklM,KACdG,EAAW,IAAK1iI,EAAW,OAAhB,CAAwBj9P,GACnCw/X,EAAW1vL,EAAU6vL,EAAS/lY,OAGxBqkR,EAAQziR,GAAU,SAAUlB,EAAO8G,GACzC,IAAwC,IAApC3H,EAAK+lY,EAAUG,EAAUrlY,GAAkB,OAAO8G,MACrD,CACDm6L,aAAa,EACbC,aAAa,IACZP,Y,6BCvCP,IAAIw8D,EAAI,EAAQ,IAEZh+P,EAAO,EAAQ,IAEfq2M,EAAY,EAAQ,IAEpBrV,EAAW,EAAQ,IAEnBwjF,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACDu9M,aAAc,SAAsB5/X,GAClC,IAAIlG,EAAM2gM,EAASvgM,MACfslY,EAAW1vL,EAAUh2M,EAAIF,KAC7B,OAAQqkR,EAAQj+Q,GAAU,SAAU1F,EAAO8G,GACzC,IAAmC,IAA/B3H,EAAK+lY,EAAU1lY,EAAKQ,GAAkB,OAAO8G,MAChD,CACDo6L,aAAa,IACZP,Y,6BCzBP,IAAIw8D,EAAI,EAAQ,IAEZlxE,EAAc,EAAQ,IAEtBkU,EAAW,EAAQ,IAEnBjhM,EAAW,EAAQ,IAEnB+lY,EAAiB,EAAQ,KAEzBthH,EAAU,EAAQ,IAElB4hH,EAAYt5M,EAAY,GAAGrxG,MAC3B78E,EAAO,GAAGA,KAGdo/P,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACDntG,KAAM,SAAcu5G,GAClB,IAAI30L,EAAM2gM,EAASvgM,MACfsB,EAAW+jY,EAAezlY,GAC1BgmY,OAAoBzmY,IAAdo1L,EAA0B,IAAMj1L,EAASi1L,GAC/C9vL,EAAS,GAKb,OAJAs/Q,EAAQziR,EAAUnD,EAAM,CACtBgjM,KAAM18L,EACN48L,aAAa,IAERskM,EAAUlhY,EAAQmhY,O,6BC/B7B,IAAIroI,EAAI,EAAQ,IAEZwF,EAAa,EAAQ,IAErBnlJ,EAAO,EAAQ,IAEfr+G,EAAO,EAAQ,IAEfq2M,EAAY,EAAQ,IAEpBrV,EAAW,EAAQ,IAEnBipF,EAAqB,EAAQ,IAE7B67G,EAAiB,EAAQ,KAEzBthH,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACD17I,IAAK,SAAauyK,GAGhB,IAAIp/M,EAAM2gM,EAASvgM,MACfsB,EAAW+jY,EAAezlY,GAC1Bs/M,EAAgBthG,EAAKohG,EAAYxgN,UAAUC,OAAS,EAAID,UAAU,QAAKW,GACvEimY,EAAS,IAAK57G,EAAmB5pR,EAAKmjQ,EAAW,SACjDoiI,EAAQvvL,EAAUwvL,EAAOvyW,KAM7B,OALAkxP,EAAQziR,GAAU,SAAUlB,GAC1Bb,EAAK4lY,EAAOC,EAAQlmL,EAAc9+M,EAAOA,EAAOR,MAC/C,CACDyhM,aAAa,IAER+jM,M,gBCzCH,EAAQ,GAMhB7nI,CAAE,CACAj/P,OAAQ,MACR2pL,MAAM,EACNE,QAAQ,GACP,CACD48M,GATO,EAAQ,Q,6BCAjB,IAAIxnI,EAAI,EAAQ,IAEZpwG,EAAS,EAAQ,IAEjByoD,EAAY,EAAQ,IAEpBrV,EAAW,EAAQ,IAEnB8kM,EAAiB,EAAQ,KAEzBthH,EAAU,EAAQ,IAElBtkR,EAAY0tJ,EAAO1tJ,UAGvB89P,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACDkC,OAAQ,SAAgB20B,GAGtB,IAAIp/M,EAAM2gM,EAASvgM,MACfsB,EAAW+jY,EAAezlY,GAC1BolY,EAAYxmY,UAAUC,OAAS,EAC/Bi9U,EAAcspD,OAAY7lY,EAAYX,UAAU,GAYpD,GAXAo3M,EAAUoJ,GACV+kE,EAAQziR,GAAU,SAAUlB,GACtB4kY,GACFA,GAAY,EACZtpD,EAAct7U,GAEds7U,EAAc18H,EAAW08H,EAAat7U,EAAOA,EAAOR,KAErD,CACDyhM,aAAa,IAEX2jM,EAAW,MAAMvlY,EAAU,6CAC/B,OAAOi8U,M,6BCxCX,IAAIn+E,EAAI,EAAQ,IAEZh9D,EAAW,EAAQ,IAEnB3iF,EAAO,EAAQ,IAEfynR,EAAiB,EAAQ,KAEzBthH,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACDyQ,KAAM,SAAcomB,GAGlB,IAAIp/M,EAAM2gM,EAASvgM,MACfsB,EAAW+jY,EAAezlY,GAC1Bs/M,EAAgBthG,EAAKohG,EAAYxgN,UAAUC,OAAS,EAAID,UAAU,QAAKW,GAC3E,OAAO4kR,EAAQziR,GAAU,SAAUlB,EAAO8G,GACxC,GAAIg4M,EAAc9+M,EAAOA,EAAOR,GAAM,OAAOsH,MAC5C,CACDm6L,aAAa,EACbC,aAAa,IACZP,Y,6BC7BP,IAAIw8D,EAAI,EAAQ,IAEZwF,EAAa,EAAQ,IAErBxjQ,EAAO,EAAQ,IAEfq2M,EAAY,EAAQ,IAEpBrV,EAAW,EAAQ,IAEnBipF,EAAqB,EAAQ,IAE7BzF,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACD09M,oBAAqB,SAA6B//X,GAChD,IAAIlG,EAAM2gM,EAASvgM,MACfolY,EAAS,IAAK57G,EAAmB5pR,EAAKmjQ,EAAW,QAAxC,CAAiDnjQ,GAC1DmxS,EAAUn7F,EAAUwvL,EAAe,QACnCD,EAAQvvL,EAAUwvL,EAAOvyW,KAI7B,OAHAkxP,EAAQj+Q,GAAU,SAAU1F,GAC1Bb,EAAKwxS,EAASq0F,EAAQhlY,IAAUb,EAAK4lY,EAAOC,EAAQhlY,MAE/CglY,M,6BC9BX,IAAI7nI,EAAI,EAAQ,IAEZwF,EAAa,EAAQ,IAErBntD,EAAY,EAAQ,IAEpBrV,EAAW,EAAQ,IAEnBipF,EAAqB,EAAQ,IAE7BzF,EAAU,EAAQ,IAItBxmB,EAAE,CACAj/P,OAAQ,MACRglQ,OAAO,EACPihI,MAAM,EACNp8M,QAAQ,GACP,CACDx0J,MAAO,SAAe7tB,GACpB,IAAIlG,EAAM2gM,EAASvgM,MACfolY,EAAS,IAAK57G,EAAmB5pR,EAAKmjQ,EAAW,QAAxC,CAAiDnjQ,GAI9D,OAHAmkR,EAAQj+Q,EAAU8vM,EAAUwvL,EAAOvyW,KAAM,CACvCsuK,KAAMikM,IAEDA,M,6BC1BX,IAAI7nI,EAAI,EAAQ,IAEZpwG,EAAS,EAAQ,IAEjB5tJ,EAAO,EAAQ,IAEf8sL,EAAc,EAAQ,IAEtB65E,EAAU,EAAQ,IAElB7jE,EAAc,EAAQ,IAEtBV,EAAgB,EAAQ,KAExBrB,EAAQ,EAAQ,IAEhBp/L,EAAS,EAAQ,IAEjBw/L,EAAgB,EAAQ,KAExBH,EAAW,EAAQ,IAEnBwd,EAAkB,EAAQ,IAE1BrY,EAAgB,EAAQ,KAExB61G,EAAY,EAAQ,IAEpBz9F,EAA2B,EAAQ,KAEnCgoL,EAAqB,EAAQ,KAE7BjzG,EAAa,EAAQ,KAErBruB,EAA4B,EAAQ,KAEpCuhI,EAA8B,EAAQ,KAEtC3xG,EAA8B,EAAQ,KAEtCl2B,EAAiC,EAAQ,IAEzCtC,EAAuB,EAAQ,IAE/BQ,EAAyB,EAAQ,KAEjCv+C,EAA6B,EAAQ,KAErCr2B,EAAgB,EAAQ,IAExBia,EAAS,EAAQ,KAEjB6hC,EAAY,EAAQ,KAEpBC,EAAa,EAAQ,KAErB7hC,EAAM,EAAQ,KAEda,EAAkB,EAAQ,IAE1Byb,EAA+B,EAAQ,KAEvC01F,EAAwB,EAAQ,IAEhCC,EAA0B,EAAQ,KAElC1vB,EAAiB,EAAQ,KAEzB9lB,EAAsB,EAAQ,IAE9B6nI,EAAW,EAAQ,IAAgCrnY,QAEnDsnY,EAAS3iK,EAAU,UAGnBg7B,EAAmBH,EAAoBv+P,IACvCy+P,EAAmBF,EAAoBp6B,UAH9B,UAITnhC,EAAkBhlM,OAAgB,UAClCuD,EAAUgsJ,EAAO/rJ,OACjB8xS,EAAkB/xS,GAAWA,EAAiB,UAC9C1B,EAAY0tJ,EAAO1tJ,UACnBymY,EAAU/4O,EAAO+4O,QACjB1nI,EAAiCN,EAA+BngP,EAChEwgP,EAAuB3C,EAAqB79O,EAC5CooX,EAA4BJ,EAA4BhoX,EACxDqoX,EAA6BvoL,EAA2B9/L,EACxD5f,EAAOkuL,EAAY,GAAGluL,MACtBkoY,EAAa5kM,EAAO,WACpB6kM,EAAyB7kM,EAAO,cAChCI,GAAwBJ,EAAO,OAE/B8kM,IAAcL,IAAYA,EAAiB,YAAMA,EAAiB,UAAEM,UAEpEC,GAAsBpkM,GAAe/B,GAAM,WAC7C,OAMS,GANFwlM,EAAmBvnI,EAAqB,GAAI,IAAK,CACtD5+P,IAAK,WACH,OAAO4+P,EAAqBv+P,KAAM,IAAK,CACrCI,MAAO,IACNqY,MAEHA,KACD,SAAUotL,EAAGxqD,EAAGyqD,GACnB,IAAI4gM,EAA4BloI,EAA+B57D,EAAiBvnD,GAC5EqrP,UAAkC9jM,EAAgBvnD,GACtDkjH,EAAqB14D,EAAGxqD,EAAGyqD,GAEvB4gM,GAA6B7gM,IAAMjD,GACrC27D,EAAqB37D,EAAiBvnD,EAAGqrP,IAEzCnoI,EAEAz8P,GAAO,SAAc6uL,EAAKsR,GAC5B,IAAIqkE,EAAS+/H,EAAW11M,GAAOm1M,EAAmB5yF,GAOlD,OANA50C,EAAiBgI,EAAQ,CACvB9iQ,KAzCS,SA0CTmtL,IAAKA,EACLsR,YAAaA,IAEVI,IAAaikE,EAAOrkE,YAAcA,GAChCqkE,GAGL3gE,GAAkB,SAAwBE,EAAGxqD,EAAGyqD,GAC9CD,IAAMjD,GAAiB+C,GAAgB2gM,EAAwBjrP,EAAGyqD,GACtEvF,EAASsF,GACT,IAAIjnM,EAAM8mM,EAAcrqD,GAGxB,OAFAklD,EAASuF,GAEL5kM,EAAOmlY,EAAYznY,IAChBknM,EAAW5nM,YAIVgD,EAAO2kM,EAAGogM,IAAWpgM,EAAEogM,GAAQrnY,KAAMinM,EAAEogM,GAAQrnY,IAAO,GAC1DknM,EAAaggM,EAAmBhgM,EAAY,CAC1C5nM,WAAY4/M,EAAyB,GAAG,OALrC58M,EAAO2kM,EAAGogM,IAAS1nI,EAAqB14D,EAAGogM,EAAQnoL,EAAyB,EAAG,KACpFjY,EAAEogM,GAAQrnY,IAAO,GAQZ6nY,GAAoB5gM,EAAGjnM,EAAKknM,IAG9By4D,EAAqB14D,EAAGjnM,EAAKknM,IAGlC6gM,GAAoB,SAA0B9gM,EAAGy3D,GACnD/8D,EAASsF,GACT,IAAI5tI,EAAa8lJ,EAAgBu/C,GAC7B3/P,EAAOk1R,EAAW56N,GAAYv2C,OAAOklX,GAAuB3uU,IAIhE,OAHA+tU,EAASroY,GAAM,SAAUiB,GAClByjM,IAAe9iM,EAAKokR,GAAuB1rN,EAAYr5D,IAAM+mM,GAAgBE,EAAGjnM,EAAKq5D,EAAWr5D,OAEhGinM,GAOL89E,GAAwB,SAA8Bpf,GACxD,IAAIlpH,EAAIqqD,EAAc6+D,GAClBrmQ,EAAaqB,EAAK6mY,EAA4BpmY,KAAMq7I,GACxD,QAAIr7I,OAAS4iM,GAAmB1hM,EAAOmlY,EAAYhrP,KAAOn6I,EAAOolY,EAAwBjrP,QAClFn9I,IAAegD,EAAOlB,KAAMq7I,KAAOn6I,EAAOmlY,EAAYhrP,IAAMn6I,EAAOlB,KAAMimY,IAAWjmY,KAAKimY,GAAQ5qP,KAAKn9I,IAG3G0nM,GAA4B,SAAkCC,EAAGxqD,GACnE,IAAIwuC,EAAKk0B,EAAgBlY,GACrBjnM,EAAM8mM,EAAcrqD,GACxB,GAAIwuC,IAAO+Y,IAAmB1hM,EAAOmlY,EAAYznY,IAASsC,EAAOolY,EAAwB1nY,GAAzF,CACA,IAAIgnL,EAAa44E,EAA+B30E,EAAIjrL,GAMpD,OAJIgnL,IAAc1kL,EAAOmlY,EAAYznY,IAAUsC,EAAO2oL,EAAIo8M,IAAWp8M,EAAGo8M,GAAQrnY,KAC9EgnL,EAAW1nL,YAAa,GAGnB0nL,IAGLyuG,GAAuB,SAA6BxuF,GACtD,IAAIxV,EAAQ81M,EAA0BpoL,EAAgBlY,IAClDphM,EAAS,GAIb,OAHAuhY,EAAS31M,GAAO,SAAUzxL,GACnBsC,EAAOmlY,EAAYznY,IAASsC,EAAOqiO,EAAY3kO,IAAMT,EAAKsG,EAAQ7F,MAElE6F,GAGLmiY,GAAyB,SAAgC/gM,GAC3D,IAAIghM,EAAsBhhM,IAAMjD,EAC5BvS,EAAQ81M,EAA0BU,EAAsBP,EAAyBvoL,EAAgBlY,IACjGphM,EAAS,GAMb,OALAuhY,EAAS31M,GAAO,SAAUzxL,IACpBsC,EAAOmlY,EAAYznY,IAAUioY,IAAuB3lY,EAAO0hM,EAAiBhkM,IAC9ET,EAAKsG,EAAQ4hY,EAAWznY,OAGrB6F,GAKJk9L,IAoBHna,EADA0rH,GAlBA/xS,EAAU,WACR,GAAIu/L,EAAcwyG,EAAiBlzS,MAAO,MAAMP,EAAU,+BAC1D,IAAIwiM,EAAezjM,UAAUC,aAA2BU,IAAjBX,UAAU,GAA+B+8S,EAAU/8S,UAAU,SAAhCW,EAChEwxL,EAAM+Q,EAAIO,GAEV09D,EAAS,SAASA,EAAOv/P,GACvBJ,OAAS4iM,GAAiBrjM,EAAKogQ,EAAQ2mI,EAAwBlmY,GAC/Dc,EAAOlB,KAAMimY,IAAW/kY,EAAOlB,KAAKimY,GAASt1M,KAAM3wL,KAAKimY,GAAQt1M,IAAO,GAC3E81M,GAAoBzmY,KAAM2wL,EAAKmtB,EAAyB,EAAG19M,KAO7D,OAJIiiM,GAAekkM,IAAYE,GAAoB7jM,EAAiBjS,EAAK,CACvErwL,cAAc,EACdV,IAAK+/P,IAEA79P,GAAK6uL,EAAKsR,KAGgB,UACJ,YAAY,WACzC,OAAOo8D,EAAiBr+P,MAAM2wL,OAEhCnJ,EAAcrmL,EAAS,iBAAiB,SAAU8gM,GAChD,OAAOngM,GAAK4/L,EAAIO,GAAcA,MAEhC4b,EAA2B9/L,EAAI4lQ,GAC/B/nB,EAAqB79O,EAAI4nL,GACzBy2D,EAAuBr+O,EAAI4oX,GAC3BzoI,EAA+BngP,EAAI6nL,GACnC4+D,EAA0BzmP,EAAIgoX,EAA4BhoX,EAAIs2Q,GAC9DD,EAA4Br2Q,EAAI6oX,GAEhC5oL,EAA6BjgM,EAAI,SAAU1X,GACzC,OAAOvE,GAAKygM,EAAgBl8L,GAAOA,IAGjCg8L,IAEFk8D,EAAqB20C,EAAiB,cAAe,CACnD5yS,cAAc,EACdX,IAAK,WACH,OAAO0+P,EAAiBr+P,MAAMiiM,eAI7BikE,GACH1+E,EAAcob,EAAiB,uBAAwB+gF,GAAuB,CAC5EzsE,QAAQ,MAMhBqmD,EAAE,CACApwG,QAAQ,EACRltJ,aAAa,EACb6B,MAAM,EACNqmL,QAASwZ,EACTvZ,MAAOuZ,GACN,CACDvgM,OAAQD,IAEV6kY,EAASnzG,EAAWhxF,KAAwB,SAAUx7L,GACpDqtS,EAAsBrtS,MAExBk3P,EAAE,CACAj/P,OApMW,SAqMX2pL,MAAM,EACNE,QAASwZ,GACR,CACDmlM,UAAW,WACTP,IAAa,GAEfQ,UAAW,WACTR,IAAa,KAGjBhpI,EAAE,CACAj/P,OAAQ,SACR2pL,MAAM,EACNE,QAASwZ,EACTvZ,MAAOia,GACN,CAGDliM,OArIY,SAAgB0lM,EAAGy3D,GAC/B,YAAsBn+P,IAAfm+P,EAA2BwoI,EAAmBjgM,GAAK8gM,GAAkBb,EAAmBjgM,GAAIy3D,IAuInGv+P,eAAgB4mM,GAGhB7mM,iBAAkB6nY,GAGlB1oY,yBAA0B2nM,KAE5B23D,EAAE,CACAj/P,OAAQ,SACR2pL,MAAM,EACNE,QAASwZ,GACR,CAGDnH,oBAAqB65F,KAIvBsf,IAGA1vB,EAAe9iR,EAhPF,UAiPboiO,EAAW0iK,IAAU,G,gBC5TrB,IAAI94O,EAAS,EAAQ,IAErB7vJ,EAAOC,QAAU4vJ,G,gBCFjB,IAAIA,EAAS,EAAQ,IAEjBvpI,EAAU,EAAQ,KAElB8hQ,EAAgB,EAAQ,KAExBz5F,EAAW,EAAQ,IAInB45C,EAFkB,EAAQ,GAEhBtjC,CAAgB,WAC1B5+K,EAAQwpI,EAAOxpI,MAGnBrmB,EAAOC,QAAU,SAAU0rQ,GACzB,IAAIvlE,EAWJ,OATI9/K,EAAQqlP,KACVvlE,EAAIulE,EAAchpQ,aAEdylR,EAAchiF,KAAOA,IAAM//K,GAASC,EAAQ8/K,EAAExjM,aAAoC+rL,EAASyX,IAEnF,QADVA,EAAIA,EAAEmiC,OADuDniC,OAAIvkM,SAMxDA,IAANukM,EAAkB//K,EAAQ+/K,I,gBC1BnC,IAAI65D,EAAI,EAAQ,IAEZwF,EAAa,EAAQ,IAErB7hQ,EAAS,EAAQ,IAEjB5B,EAAW,EAAQ,IAEnBmiM,EAAS,EAAQ,KAEjBulM,EAAyB,EAAQ,KAEjCC,EAAyBxlM,EAAO,6BAChCylM,EAAyBzlM,EAAO,6BAGpC87D,EAAE,CACAj/P,OAAQ,SACR2pL,MAAM,EACNE,QAAS6+M,GACR,CACD,IAAO,SAAcpoY,GACnB,IAAIuxC,EAAS7wC,EAASV,GACtB,GAAIsC,EAAO+lY,EAAwB92V,GAAS,OAAO82V,EAAuB92V,GAC1E,IAAIm2N,EAASvD,EAAW,SAAXA,CAAqB5yN,GAGlC,OAFA82V,EAAuB92V,GAAUm2N,EACjC4gI,EAAuB5gI,GAAUn2N,EAC1Bm2N,M,gBC3BX,IAAI/I,EAAI,EAAQ,IAEZr8P,EAAS,EAAQ,IAEjB68P,EAAW,EAAQ,KAEnB19D,EAAc,EAAQ,KAEtBoB,EAAS,EAAQ,KAEjBulM,EAAyB,EAAQ,KAEjCE,EAAyBzlM,EAAO,6BAGpC87D,EAAE,CACAj/P,OAAQ,SACR2pL,MAAM,EACNE,QAAS6+M,GACR,CACD5zF,OAAQ,SAAgBp1S,GACtB,IAAK+/P,EAAS//P,GAAM,MAAMyB,UAAU4gM,EAAYriM,GAAO,oBACvD,GAAIkD,EAAOgmY,EAAwBlpY,GAAM,OAAOkpY,EAAuBlpY,O,gBCtB3E,IAAIu/P,EAAI,EAAQ,IAEZwF,EAAa,EAAQ,IAErB3kQ,EAAQ,EAAQ,KAEhBmB,EAAO,EAAQ,IAEf8sL,EAAc,EAAQ,IAEtBiU,EAAQ,EAAQ,IAEhB18K,EAAU,EAAQ,KAElBw8K,EAAa,EAAQ,IAErBnU,EAAW,EAAQ,IAEnB8xE,EAAW,EAAQ,KAEnBl/G,EAAa,EAAQ,KAErB8iD,EAAgB,EAAQ,KAExBwlM,EAAapkI,EAAW,OAAQ,aAChC1yN,EAAOg8I,EAAY,IAAIh8I,MACvBrpC,EAASqlL,EAAY,GAAGrlL,QACxBuxL,EAAalM,EAAY,GAAGkM,YAC5Bz8G,EAAUuwG,EAAY,GAAGvwG,SACzBsrT,EAAiB/6M,EAAY,GAAI/sL,UACjC+nY,EAAS,mBACT1vX,EAAM,oBACN2nR,EAAK,oBACLgoG,GAA4B3lM,GAAiBrB,GAAM,WACrD,IAAIgmE,EAASvD,EAAW,SAAXA,GAEb,MAA+B,UAAxBokI,EAAW,CAAC7gI,KAGb,MAFH6gI,EAAW,CACZ1uX,EAAG6tP,KAE4B,MAA9B6gI,EAAWvpY,OAAO0oQ,OAGnBihI,EAAqBjnM,GAAM,WAC7B,MAAsC,qBAA/B6mM,EAAW,iBAAqE,cAAzBA,EAAW,aAGvEK,EAA0B,SAAiC39M,EAAI0yH,GACjE,IAAI7zH,EAAO7pC,EAAWrgJ,WAClBipY,EAAYlrF,EAChB,IAAKtwH,EAASswH,SAAoBp9S,IAAP0qL,KAAoBk0E,EAASl0E,GAOxD,OALKjmK,EAAQ24R,KAAWA,EAAW,SAAkB39S,EAAKwB,GAExD,GADIggM,EAAWqnM,KAAYrnY,EAAQb,EAAKkoY,EAAWznY,KAAMpB,EAAKwB,KACzD29P,EAAS39P,GAAQ,OAAOA,IAE/BsoL,EAAK,GAAK6zH,EACHn+S,EAAM+oY,EAAY,KAAMz+M,IAG7Bg/M,EAAe,SAAsBtuT,EAAOl+D,EAAQi1B,GACtD,IAAIppC,EAAOC,EAAOmpC,EAAQj1B,EAAS,GAC/BjW,EAAO+B,EAAOmpC,EAAQj1B,EAAS,GAEnC,OAAIm1B,EAAK14B,EAAKyhE,KAAW/oC,EAAKivP,EAAIr6R,IAASorC,EAAKivP,EAAIlmN,KAAW/oC,EAAK14B,EAAK5Q,GAChE,MAAQqgY,EAAe7uM,EAAWn/G,EAAO,GAAI,IAG/CA,GAGL+tT,GAGF5pI,EAAE,CACAj/P,OAAQ,OACR2pL,MAAM,EACNmS,MAAO,EACPjS,OAAQm/M,GAA4BC,GACnC,CAEDrhX,UAAW,SAAmB2jK,EAAI0yH,EAAUzmM,GAC1C,IAAI4yE,EAAO7pC,EAAWrgJ,WAClBiG,EAASrG,EAAMkpY,EAA2BE,EAA0BL,EAAY,KAAMz+M,GAC1F,OAAO6+M,GAAuC,iBAAV9iY,EAAqBq3E,EAAQr3E,EAAQ4iY,EAAQK,GAAgBjjY,M,gBCpFvG,IAAI84P,EAAI,EAAQ,IAEZ57D,EAAgB,EAAQ,KAExBrB,EAAQ,EAAQ,IAEhB8zF,EAA8B,EAAQ,KAEtC7uF,EAAW,EAAQ,IASvBg4D,EAAE,CACAj/P,OAAQ,SACR2pL,MAAM,EACNE,QARYwZ,GAAiBrB,GAAM,WACnC8zF,EAA4Br2Q,EAAE,OAQ7B,CACDlgB,sBAAuB,SAA+BgsL,GACpD,IAAI+8M,EAAyBxyG,EAA4Br2Q,EACzD,OAAO6oX,EAAyBA,EAAuBrhM,EAAS1b,IAAO,O,gBCxB3E,IAAI0W,EAAW,EAAQ,IAEnBM,EAAgB,EAAQ,KAG5BvjM,EAAOC,QAAU,SAAU+D,EAAUlC,EAAIgB,EAAOunY,GAC9C,IACE,OAAOA,EAAUvoY,EAAGmhM,EAASngM,GAAO,GAAIA,EAAM,IAAMhB,EAAGgB,GACvD,MAAOyE,GACPg8L,EAAcv/L,EAAU,QAASuD,M,gBCTT,EAAQ,GAIpC6uS,CAAsB,Y,gBCJM,EAAQ,GAIpCA,CAAsB,e,gBCHM,EAAQ,GAIpCA,CAAsB,iB,6BCHtB,IAAIhtS,EAAU,EAAQ,KAElBkhY,EAAoB,CAACr7M,eAAgB9sL,UAAWg/P,YAChDv9O,GAAU,EAGd,SAAS80E,IACP90E,GAAU,EACVxa,EAAQouS,GAAK,KACbpuS,EAAQ4uS,GAAK,KA6Ef,SAASuyF,EAAehjY,EAAO6mF,GAC7B,OAAOA,EAAKktG,MAAK,SAAUkvM,GACzB,OAAOjjY,aAAiBijY,KApF5BvqY,EAAQy4F,QAAUA,EAQlBz4F,EAAQ6sF,OAER,SAAgB/hE,GACdA,EAAUA,GAAW,GACjBnH,GAAS80E,IACb90E,GAAU,EACV,IAAIwhB,EAAK,EACLqlW,EAAY,EACZC,EAAa,GAgCjB,SAASC,EAAYvlW,IACfra,EAAQ6/W,eAAiBL,EAAeG,EAAWtlW,GAAI79B,MAAOwjB,EAAQ8/W,WAAaP,MACrFI,EAAWtlW,GAAIqlW,UAAYA,IAEvB1/W,EAAQ4/W,aACVD,EAAWtlW,GAAI0lW,QAAS,EACxB//W,EAAQ4/W,YAAYD,EAAWtlW,GAAIqlW,UAAWC,EAAWtlW,GAAI79B,SAE7DmjY,EAAWtlW,GAAI0lW,QAAS,EAkBhC,SAAkB1lW,EAAI79B,GACpB0U,QAAQC,KAAK,6CAA+CkpB,EAAK,QACnD79B,IAAUA,EAAM+uT,OAAS/uT,IAAU,IAC1Cg2E,MAAM,MAAMl8E,SAAQ,SAAUypD,GACnC7uC,QAAQC,KAAK,KAAO4uC,MArBhBigV,CAASL,EAAWtlW,GAAIqlW,UAAWC,EAAWtlW,GAAI79B,SAvCxD6B,EAAQouS,GAAK,SAAU1pC,GACF,IAAfA,EAAQspC,IACZszF,EAAW58H,EAAQk9H,MACbN,EAAW58H,EAAQk9H,IAAIF,OAyC/B,SAAmB1lW,GACbslW,EAAWtlW,GAAI0lW,SACb//W,EAAQkgX,UACVlgX,EAAQkgX,UAAUP,EAAWtlW,GAAIqlW,UAAWC,EAAWtlW,GAAI79B,OACjDmjY,EAAWtlW,GAAIulW,cACzB1uX,QAAQC,KAAK,kCAAoCwuX,EAAWtlW,GAAIqlW,UAAY,MAC5ExuX,QAAQC,KAAK,gHAAkHwuX,EAAWtlW,GAAIqlW,UAAY,OA9C1JQ,CAAUn9H,EAAQk9H,IAElB7qL,aAAauqL,EAAW58H,EAAQk9H,IAAI37J,gBAG/Bq7J,EAAW58H,EAAQk9H,MAI9B5hY,EAAQ4uS,GAAK,SAAUlqC,EAASvpQ,GACX,IAAfupQ,EAAQqpC,KAEVrpC,EAAQk9H,GAAK5lW,IACbslW,EAAW58H,EAAQk9H,IAAM,CACvBP,UAAW,KACXljY,MAAOhD,EACP8qO,QAASr+E,WAAW25O,EAAYrqR,KAAK,KAAMwtJ,EAAQk9H,IAInDT,EAAehmY,EAAK+lY,GAAqB,IAAM,KAC/CQ,QAAQ,O,8BCjDhB,YAaA,SAASI,EAAQ5uF,GACV/uK,EAAMpsI,SACTgqY,KACW,GAIb59P,EAAMA,EAAMpsI,QAAUm7S,EATxBt8S,EAAOC,QAAUirY,EAYjB,IAOIC,EAPA59P,EAAQ,GAWR92H,EAAQ,EAWZ,SAASolS,IACP,KAAOplS,EAAQ82H,EAAMpsI,QAAQ,CAC3B,IAAI80N,EAAex/M,EAUnB,GAPAA,GAAgB,EAChB82H,EAAM0oF,GAAch0N,OAMhBwU,EAnBO,KAmBW,CAGpB,IAAK,IAAI20X,EAAO,EAAGC,EAAY99P,EAAMpsI,OAASsV,EAAO20X,EAAOC,EAAWD,IACrE79P,EAAM69P,GAAQ79P,EAAM69P,EAAO30X,GAG7B82H,EAAMpsI,QAAUsV,EAChBA,EAAQ,GAIZ82H,EAAMpsI,OAAS,EACfsV,EAAQ,GACG,EAYb,IAAIwsC,EAA0B,qBAAX4sG,EAAyBA,EAASlrJ,KACjD2mY,EAA0BroV,EAAMy1L,kBAAoBz1L,EAAMi5P,uBAgG9D,SAASqvF,EAAyBz6W,GAChC,OAAO,WAKL,IAAI06W,EAAgBx6O,WAAWy6O,EAAa,GAIxCC,EAAiB5oG,YAAY2oG,EAAa,IAE9C,SAASA,IAGPtrL,aAAaqrL,GACbzoG,cAAc2oG,GACd56W,MApGJq6W,EADqC,oBAA5BG,EAsCX,SAA6Cx6W,GAC3C,IAAIg0O,EAAS,EACThtB,EAAW,IAAIwzJ,EAAwBx6W,GACvC+5I,EAAO/nJ,SAASmyK,eAAe,IAInC,OAHA6iD,EAASa,QAAQ9tE,EAAM,CACrB+tE,eAAe,IAEV,WACLksB,GAAUA,EACVj6F,EAAKplJ,KAAOq/O,GA9CC6mI,CAAoC9vF,GA0BpC0vF,EAAyB1vF,GAQ1CqvF,EAAQC,aAAeA,EA0EvBD,EAAQK,yBAA2BA,I,gDC3MnC,IAAIniY,EAAU,EAAQ,KAEtBpJ,EAAOC,QAAUmJ,EAGjB,IAAIwiY,EAAOC,GAAa,GACpBC,EAAQD,GAAa,GACrBE,EAAOF,EAAa,MACpBG,EAAYH,OAAahqY,GACzBo8F,EAAO4tS,EAAa,GACpBI,EAAcJ,EAAa,IAE/B,SAASA,EAAa/oY,GACpB,IAAI0+B,EAAI,IAAIp4B,EAAQA,EAAQgvS,IAG5B,OAFA52Q,EAAE41Q,GAAK,EACP51Q,EAAE61Q,GAAKv0S,EACA0+B,EAGTp4B,EAAQpC,QAAU,SAAUlE,GAC1B,GAAIA,aAAiBsG,EAAS,OAAOtG,EACrC,GAAc,OAAVA,EAAgB,OAAOipY,EAC3B,QAAclqY,IAAViB,EAAqB,OAAOkpY,EAChC,IAAc,IAAVlpY,EAAgB,OAAO8oY,EAC3B,IAAc,IAAV9oY,EAAiB,OAAOgpY,EAC5B,GAAc,IAAVhpY,EAAa,OAAOm7F,EACxB,GAAc,KAAVn7F,EAAc,OAAOmpY,EAEzB,GAAqB,kBAAVnpY,GAAuC,oBAAVA,EACtC,IACE,IAAIuE,EAAOvE,EAAMuE,KAEjB,GAAoB,oBAATA,EACT,OAAO,IAAI+B,EAAQ/B,EAAKi5G,KAAKx9G,IAE/B,MAAO60S,GACP,OAAO,IAAIvuS,GAAQ,SAAUpC,EAASC,GACpCA,EAAO0wS,MAKb,OAAOk0F,EAAa/oY,IAGtB,IAAIq5M,EAAmB,SAAyB3zM,GAC9C,MAA0B,oBAAf6d,MAAMK,MAEfy1L,EAAmB91L,MAAMK,KAClBL,MAAMK,KAAKle,KAIpB2zM,EAAmB,SAAyBjkM,GAC1C,OAAOmO,MAAMzjB,UAAU+G,MAAM1H,KAAKiW,IAG7BmO,MAAMzjB,UAAU+G,MAAM1H,KAAKuG,KAGpCY,EAAQ2qQ,IAAM,SAAUxsF,GACtB,IAAI6D,EAAO+wB,EAAiB50B,GAE5B,OAAO,IAAIn+K,GAAQ,SAAUpC,EAASC,GACpC,GAAoB,IAAhBmkL,EAAKjqL,OAAc,OAAO6F,EAAQ,IACtC,IAAIo4V,EAAYh0K,EAAKjqL,OAErB,SAASi+J,EAAIn+J,EAAGs0C,GACd,GAAIA,IAAuB,kBAARA,GAAmC,oBAARA,GAAqB,CACjE,GAAIA,aAAensC,GAAWmsC,EAAIluC,OAAS+B,EAAQxG,UAAUyE,KAAM,CACjE,KAAkB,IAAXkuC,EAAI6hQ,IACT7hQ,EAAMA,EAAI8hQ,GAGZ,OAAe,IAAX9hQ,EAAI6hQ,GAAiBh4I,EAAIn+J,EAAGs0C,EAAI8hQ,KACrB,IAAX9hQ,EAAI6hQ,IAAUnwS,EAAOsuC,EAAI8hQ,SAC7B9hQ,EAAIluC,MAAK,SAAUkuC,GACjB6pH,EAAIn+J,EAAGs0C,KACNtuC,IAGH,IAAII,EAAOkuC,EAAIluC,KAEf,GAAoB,oBAATA,EAKT,YAJQ,IAAI+B,EAAQ/B,EAAKi5G,KAAK/qE,IAC5BluC,MAAK,SAAUkuC,GACf6pH,EAAIn+J,EAAGs0C,KACNtuC,GAMTmkL,EAAKnqL,GAAKs0C,EAEU,MAAd6pT,GACJp4V,EAAQokL,GAIZ,IAAK,IAAInqL,EAAI,EAAGA,EAAImqL,EAAKjqL,OAAQF,IAC/Bm+J,EAAIn+J,EAAGmqL,EAAKnqL,QAKlBmI,EAAQnC,OAAS,SAAUnE,GACzB,OAAO,IAAIsG,GAAQ,SAAUpC,EAASC,GACpCA,EAAOnE,OAIXsG,EAAQ8iY,KAAO,SAAUzlY,GACvB,OAAO,IAAI2C,GAAQ,SAAUpC,EAASC,GACpCk1M,EAAiB11M,GAAQpF,SAAQ,SAAUyB,GACzCsG,EAAQpC,QAAQlE,GAAOuE,KAAKL,EAASC,UAO3CmC,EAAQxG,UAAiB,MAAI,SAAU80S,GACrC,OAAOh1S,KAAK2E,KAAK,KAAMqwS,K,6BC7HzB,uNAAI7nJ,EAA+B,qBAAf48B,YAA8BA,YAA8B,qBAAT9nL,MAAwBA,MAA0B,qBAAXkrJ,GAA0BA,EACpIs8O,EACY,oBAAqBt8O,EADjCs8O,EAEQ,WAAYt8O,GAAU,aAAc/rJ,OAF5CqoY,EAGI,eAAgBt8O,GAAU,SAAUA,GAAU,WAClD,IAEE,OADA,IAAI2yD,MACG,EACP,MAAO/lM,GACP,OAAO,GALyC,GAHlD0vX,EAWQ,aAAct8O,EAXtBs8O,EAYW,gBAAiBt8O,EAOhC,GAAIs8O,EACF,IAAIC,EAAc,CAAC,qBAAsB,sBAAuB,6BAA8B,sBAAuB,uBAAwB,sBAAuB,uBAAwB,wBAAyB,yBAEjNpjK,EAAoBx0L,YAAYmtG,QAAU,SAAUr9I,GACtD,OAAOA,GAAO8nY,EAAYlqY,QAAQ5B,OAAOsC,UAAUZ,SAASC,KAAKqC,KAAS,GAI9E,SAAS+nY,EAActjY,GAKrB,GAJoB,kBAATA,IACTA,EAAO43C,OAAO53C,IAGZ,6BAA6B2b,KAAK3b,IAAkB,KAATA,EAC7C,MAAM,IAAI5G,UAAU,4CAA8C4G,EAAO,KAG3E,OAAOA,EAAK2O,cAGd,SAAS40X,EAAexpY,GAKtB,MAJqB,kBAAVA,IACTA,EAAQ69C,OAAO79C,IAGVA,EAIT,SAASypY,EAAYC,GACnB,IAAIxoY,EAAW,CACb2D,KAAM,WACJ,IAAI7E,EAAQ0pY,EAAM9mR,QAClB,MAAO,CACLv/G,UAAgBtE,IAAViB,EACNA,MAAOA,KAWb,OANIqpY,IACFnoY,EAASF,OAAOE,UAAY,WAC1B,OAAOA,IAIJA,EAGF,SAASotJ,EAAQD,GACtBzuJ,KAAKysC,IAAM,GAEPgiH,aAAmBC,EACrBD,EAAQ9vJ,SAAQ,SAAUyB,EAAOiG,GAC/BrG,KAAKm+N,OAAO93N,EAAMjG,KACjBJ,MACM2jB,MAAMC,QAAQ6qI,GACvBA,EAAQ9vJ,SAAQ,SAAU61W,GACxBx0W,KAAKm+N,OAAOq2I,EAAO,GAAIA,EAAO,MAC7Bx0W,MACMyuJ,GACT7wJ,OAAO48L,oBAAoB/rC,GAAS9vJ,SAAQ,SAAU0H,GACpDrG,KAAKm+N,OAAO93N,EAAMooJ,EAAQpoJ,MACzBrG,MAgEP,SAAS+pY,EAAS/6O,GAChB,GAAIA,EAAKg7O,SACP,OAAOtjY,QAAQnC,OAAO,IAAI9E,UAAU,iBAGtCuvJ,EAAKg7O,UAAW,EAGlB,SAASC,EAAgB96O,GACvB,OAAO,IAAIzoJ,SAAQ,SAAUpC,EAASC,GACpC4qJ,EAAOkxG,OAAS,WACd/7P,EAAQ6qJ,EAAO1qJ,SAGjB0qJ,EAAOixG,QAAU,WACf77P,EAAO4qJ,EAAOtqJ,WAKpB,SAASqlY,EAAsB/5O,GAC7B,IAAIhB,EAAS,IAAI8xG,WACbmK,EAAU6+H,EAAgB96O,GAE9B,OADAA,EAAOg7O,kBAAkBh6O,GAClBi7G,EAqBT,SAASg/H,EAAYroL,GACnB,GAAIA,EAAI96M,MACN,OAAO86M,EAAI96M,MAAM,GAEjB,IAAIw9C,EAAO,IAAInuC,WAAWyrM,EAAIlyD,YAE9B,OADAprG,EAAK7kD,IAAI,IAAI0W,WAAWyrM,IACjBt9J,EAAKvkC,OAIhB,SAASmqX,IAkHP,OAjHArqY,KAAKgqY,UAAW,EAEhBhqY,KAAKsqY,UAAY,SAAUt7O,GA7L7B,IAAoBptJ,EAwMhB5B,KAAKgqY,SAAWhqY,KAAKgqY,SACrBhqY,KAAKuqY,UAAYv7O,EAEZA,EAEsB,kBAATA,EAChBhvJ,KAAKwqY,UAAYx7O,EACRy6O,GAAgB3pL,KAAK5/M,UAAUwgM,cAAc1xC,GACtDhvJ,KAAKyqY,UAAYz7O,EACRy6O,GAAoBpjK,SAASnmO,UAAUwgM,cAAc1xC,GAC9DhvJ,KAAK0qY,cAAgB17O,EACZy6O,GAAwB1iK,gBAAgB7mO,UAAUwgM,cAAc1xC,GACzEhvJ,KAAKwqY,UAAYx7O,EAAK1vJ,WACbmqY,GAAuBA,KArNlB7nY,EAqN6CotJ,IApNjD9P,SAASh/I,UAAUwgM,cAAc9+L,KAqN3C5B,KAAK2qY,iBAAmBP,EAAYp7O,EAAK9uI,QAEzClgB,KAAKuqY,UAAY,IAAIzqL,KAAK,CAAC9/M,KAAK2qY,oBACvBlB,IAAwB33V,YAAY5xC,UAAUwgM,cAAc1xC,IAASs3E,EAAkBt3E,IAChGhvJ,KAAK2qY,iBAAmBP,EAAYp7O,GAEpChvJ,KAAKwqY,UAAYx7O,EAAOpxJ,OAAOsC,UAAUZ,SAASC,KAAKyvJ,GAhBvDhvJ,KAAKwqY,UAAY,GAmBdxqY,KAAKyuJ,QAAQ9uJ,IAAI,kBACA,kBAATqvJ,EACThvJ,KAAKyuJ,QAAQ7uJ,IAAI,eAAgB,4BACxBI,KAAKyqY,WAAazqY,KAAKyqY,UAAUjnY,KAC1CxD,KAAKyuJ,QAAQ7uJ,IAAI,eAAgBI,KAAKyqY,UAAUjnY,MACvCimY,GAAwB1iK,gBAAgB7mO,UAAUwgM,cAAc1xC,IACzEhvJ,KAAKyuJ,QAAQ7uJ,IAAI,eAAgB,qDAKnC6pY,IACFzpY,KAAKmwJ,KAAO,WACV,IAAIy6O,EAAWb,EAAS/pY,MAExB,GAAI4qY,EACF,OAAOA,EAGT,GAAI5qY,KAAKyqY,UACP,OAAO/jY,QAAQpC,QAAQtE,KAAKyqY,WACvB,GAAIzqY,KAAK2qY,iBACd,OAAOjkY,QAAQpC,QAAQ,IAAIw7M,KAAK,CAAC9/M,KAAK2qY,oBACjC,GAAI3qY,KAAK0qY,cACd,MAAM,IAAI9nY,MAAM,wCAEhB,OAAO8D,QAAQpC,QAAQ,IAAIw7M,KAAK,CAAC9/M,KAAKwqY,cAI1CxqY,KAAKkwJ,YAAc,WACjB,GAAIlwJ,KAAK2qY,iBAAkB,CACzB,IAAIE,EAAad,EAAS/pY,MAE1B,OAAI6qY,IAIA/4V,YAAYmtG,OAAOj/I,KAAK2qY,kBACnBjkY,QAAQpC,QAAQtE,KAAK2qY,iBAAiBzqX,OAAOjZ,MAAMjH,KAAK2qY,iBAAiBlrI,WAAYz/P,KAAK2qY,iBAAiBlrI,WAAaz/P,KAAK2qY,iBAAiB96O,aAE9InpJ,QAAQpC,QAAQtE,KAAK2qY,mBAG9B,OAAO3qY,KAAKmwJ,OAAOxrJ,KAAKulY,KAK9BlqY,KAAKowJ,KAAO,WACV,IAAIw6O,EAAWb,EAAS/pY,MAExB,GAAI4qY,EACF,OAAOA,EAGT,GAAI5qY,KAAKyqY,UACP,OA1HN,SAAwBt6O,GACtB,IAAIhB,EAAS,IAAI8xG,WACbmK,EAAU6+H,EAAgB96O,GAE9B,OADAA,EAAO27O,WAAW36O,GACXi7G,EAsHI2/H,CAAe/qY,KAAKyqY,WACtB,GAAIzqY,KAAK2qY,iBACd,OAAOjkY,QAAQpC,QArHrB,SAA+By9M,GAI7B,IAHA,IAAIt9J,EAAO,IAAInuC,WAAWyrM,GACtBs4I,EAAQ,IAAI12U,MAAM8gC,EAAKhmD,QAElBF,EAAI,EAAGA,EAAIkmD,EAAKhmD,OAAQF,IAC/B87V,EAAM97V,GAAK0/C,OAAOm5G,aAAa3yG,EAAKlmD,IAGtC,OAAO87V,EAAMr/Q,KAAK,IA6GSgwT,CAAsBhrY,KAAK2qY,mBAC7C,GAAI3qY,KAAK0qY,cACd,MAAM,IAAI9nY,MAAM,wCAEhB,OAAO8D,QAAQpC,QAAQtE,KAAKwqY,YAI5Bf,IACFzpY,KAAKirY,SAAW,WACd,OAAOjrY,KAAKowJ,OAAOzrJ,KAAK+rJ,KAI5B1wJ,KAAK2wH,KAAO,WACV,OAAO3wH,KAAKowJ,OAAOzrJ,KAAKqhB,KAAKC,QAGxBjmB,KArOT0uJ,EAAQxuJ,UAAUi+N,OAAS,SAAU93N,EAAMjG,GACzCiG,EAAOsjY,EAActjY,GACrBjG,EAAQwpY,EAAexpY,GACvB,IAAI8qY,EAAWlrY,KAAKysC,IAAIpmC,GACxBrG,KAAKysC,IAAIpmC,GAAQ6kY,EAAWA,EAAW,KAAO9qY,EAAQA,GAGxDsuJ,EAAQxuJ,UAAkB,OAAI,SAAUmG,UAC/BrG,KAAKysC,IAAIk9V,EAActjY,KAGhCqoJ,EAAQxuJ,UAAUP,IAAM,SAAU0G,GAEhC,OADAA,EAAOsjY,EAActjY,GACdrG,KAAKN,IAAI2G,GAAQrG,KAAKysC,IAAIpmC,GAAQ,MAG3CqoJ,EAAQxuJ,UAAUR,IAAM,SAAU2G,GAChC,OAAOrG,KAAKysC,IAAI7rC,eAAe+oY,EAActjY,KAG/CqoJ,EAAQxuJ,UAAUN,IAAM,SAAUyG,EAAMjG,GACtCJ,KAAKysC,IAAIk9V,EAActjY,IAASujY,EAAexpY,IAGjDsuJ,EAAQxuJ,UAAUvB,QAAU,SAAUyvB,EAAUi5M,GAC9C,IAAK,IAAIhhO,KAAQrG,KAAKysC,IAChBzsC,KAAKysC,IAAI7rC,eAAeyF,IAC1B+nB,EAAS7uB,KAAK8nO,EAASrnO,KAAKysC,IAAIpmC,GAAOA,EAAMrG,OAKnD0uJ,EAAQxuJ,UAAUvC,KAAO,WACvB,IAAImsY,EAAQ,GAIZ,OAHA9pY,KAAKrB,SAAQ,SAAUyB,EAAOiG,GAC5ByjY,EAAM3rY,KAAKkI,MAENwjY,EAAYC,IAGrBp7O,EAAQxuJ,UAAU6D,OAAS,WACzB,IAAI+lY,EAAQ,GAIZ,OAHA9pY,KAAKrB,SAAQ,SAAUyB,GACrB0pY,EAAM3rY,KAAKiC,MAENypY,EAAYC,IAGrBp7O,EAAQxuJ,UAAU80O,QAAU,WAC1B,IAAI80J,EAAQ,GAIZ,OAHA9pY,KAAKrB,SAAQ,SAAUyB,EAAOiG,GAC5ByjY,EAAM3rY,KAAK,CAACkI,EAAMjG,OAEbypY,EAAYC,IAGjBL,IACF/6O,EAAQxuJ,UAAUkB,OAAOE,UAAYotJ,EAAQxuJ,UAAU80O,SAgLzD,IAAIk0C,EAAU,CAAC,SAAU,MAAO,OAAQ,UAAW,OAAQ,OAOpD,SAAS16H,EAAQ+2F,EAAOl9N,GAC7B,KAAMroB,gBAAgBwuJ,GACpB,MAAM,IAAI/uJ,UAAU,8FAItB,IAAIuvJ,GADJ3mI,EAAUA,GAAW,IACF2mI,KAEnB,GAAIu2F,aAAiB/2F,EAAS,CAC5B,GAAI+2F,EAAMykJ,SACR,MAAM,IAAIvqY,UAAU,gBAGtBO,KAAK0jB,IAAM6hO,EAAM7hO,IACjB1jB,KAAK2uJ,YAAc42F,EAAM52F,YAEpBtmI,EAAQomI,UACXzuJ,KAAKyuJ,QAAU,IAAIC,EAAQ62F,EAAM92F,UAGnCzuJ,KAAK0C,OAAS6iP,EAAM7iP,OACpB1C,KAAK4iE,KAAO2iL,EAAM3iL,KAClB5iE,KAAKmrY,OAAS5lJ,EAAM4lJ,OAEfn8O,GAA2B,MAAnBu2F,EAAMglJ,YACjBv7O,EAAOu2F,EAAMglJ,UACbhlJ,EAAMykJ,UAAW,QAGnBhqY,KAAK0jB,IAAMu6B,OAAOsnM,GAcpB,GAXAvlP,KAAK2uJ,YAActmI,EAAQsmI,aAAe3uJ,KAAK2uJ,aAAe,eAE1DtmI,EAAQomI,SAAYzuJ,KAAKyuJ,UAC3BzuJ,KAAKyuJ,QAAU,IAAIC,EAAQrmI,EAAQomI,UAGrCzuJ,KAAK0C,OA3CP,SAAyBA,GACvB,IAAI0oY,EAAU1oY,EAAOk4E,cACrB,OAAOsuM,EAAQ1pR,QAAQ4rY,IAAY,EAAIA,EAAU1oY,EAyCnC2oY,CAAgBhjX,EAAQ3lB,QAAU1C,KAAK0C,QAAU,OAC/D1C,KAAK4iE,KAAOv6C,EAAQu6C,MAAQ5iE,KAAK4iE,MAAQ,KACzC5iE,KAAKmrY,OAAS9iX,EAAQ8iX,QAAUnrY,KAAKmrY,OACrCnrY,KAAKsrY,SAAW,MAEK,QAAhBtrY,KAAK0C,QAAoC,SAAhB1C,KAAK0C,SAAsBssJ,EACvD,MAAM,IAAIvvJ,UAAU,6CAKtB,GAFAO,KAAKsqY,UAAUt7O,IAEK,QAAhBhvJ,KAAK0C,QAAoC,SAAhB1C,KAAK0C,UACV,aAAlB2lB,EAAQkd,OAA0C,aAAlBld,EAAQkd,OAAsB,CAEhE,IAAIgmW,EAAgB,gBAEpB,GAAIA,EAAcvpX,KAAKhiB,KAAK0jB,KAE1B1jB,KAAK0jB,IAAM1jB,KAAK0jB,IAAIo4D,QAAQyvT,EAAe,QAAS,IAAIhsO,MAAOk8J,eAC1D,CAGLz7T,KAAK0jB,MADe,KACO1B,KAAKhiB,KAAK0jB,KAAO,IAAM,KAAO,MAAO,IAAI67I,MAAOk8J,YAYnF,SAAS/qK,EAAO1B,GACd,IAAIw8O,EAAO,IAAInlK,SASf,OARAr3E,EAAKv0E,OAAOI,MAAM,KAAKl8E,SAAQ,SAAU+4S,GACvC,GAAIA,EAAO,CACT,IAAI78N,EAAQ68N,EAAM78N,MAAM,KACpBx0E,EAAOw0E,EAAMmoC,QAAQlnC,QAAQ,MAAO,KACpC17E,EAAQy6E,EAAMG,KAAK,KAAKc,QAAQ,MAAO,KAC3C0vT,EAAKrtK,OAAO9mE,mBAAmBhxJ,GAAOgxJ,mBAAmBj3J,QAGtDorY,EAGT,SAASjsF,EAAaksF,GACpB,IAAIh9O,EAAU,IAAIC,EAkBlB,OAf0B+8O,EAAW3vT,QAAQ,eAAgB,KAIzCjB,MAAM,MAAMpuC,KAAI,SAAU+nU,GAC5C,OAAgC,IAAzBA,EAAOh1W,QAAQ,MAAcg1W,EAAOr7J,OAAO,EAAGq7J,EAAO/1W,QAAU+1W,KACrE71W,SAAQ,SAAUypD,GACnB,IAAImiG,EAAQniG,EAAKyyB,MAAM,KACnBj8E,EAAM2rJ,EAAMvnC,QAAQvoC,OAExB,GAAI77E,EAAK,CACP,IAAIwB,EAAQmqJ,EAAMvvE,KAAK,KAAKP,OAC5Bg0E,EAAQ0vE,OAAOv/N,EAAKwB,OAGjBquJ,EAIF,SAASuB,EAAS07O,EAAUrjX,GACjC,KAAMroB,gBAAgBgwJ,GACpB,MAAM,IAAIvwJ,UAAU,8FAGjB4oB,IACHA,EAAU,IAGZroB,KAAKwD,KAAO,UACZxD,KAAKo6E,YAA4Bj7E,IAAnBkpB,EAAQ+xD,OAAuB,IAAM/xD,EAAQ+xD,OAC3Dp6E,KAAKwyQ,GAAKxyQ,KAAKo6E,QAAU,KAAOp6E,KAAKo6E,OAAS,IAC9Cp6E,KAAKiwJ,gBAAoC9wJ,IAAvBkpB,EAAQ4nI,WAA2B,GAAK,GAAK5nI,EAAQ4nI,WACvEjwJ,KAAKyuJ,QAAU,IAAIC,EAAQrmI,EAAQomI,SACnCzuJ,KAAK0jB,IAAM2E,EAAQ3E,KAAO,GAE1B1jB,KAAKsqY,UAAUoB,GA1DjBl9O,EAAQtuJ,UAAU+oB,MAAQ,WACxB,OAAO,IAAIulI,EAAQxuJ,KAAM,CACvBgvJ,KAAMhvJ,KAAKuqY,aAuCfF,EAAK9qY,KAAKivJ,EAAQtuJ,WAmBlBmqY,EAAK9qY,KAAKywJ,EAAS9vJ,WAEnB8vJ,EAAS9vJ,UAAU+oB,MAAQ,WACzB,OAAO,IAAI+mI,EAAShwJ,KAAKuqY,UAAW,CAClCnwT,OAAQp6E,KAAKo6E,OACb61E,WAAYjwJ,KAAKiwJ,WACjBxB,QAAS,IAAIC,EAAQ1uJ,KAAKyuJ,SAC1B/qI,IAAK1jB,KAAK0jB,OAIdssI,EAASnrJ,MAAQ,WACf,IAAImpJ,EAAW,IAAIgC,EAAS,KAAM,CAChC51E,OAAQ,EACR61E,WAAY,KAGd,OADAjC,EAASxqJ,KAAO,QACTwqJ,GAGT,IAAI29O,EAAmB,CAAC,IAAK,IAAK,IAAK,IAAK,KAE5C37O,EAAS47O,SAAW,SAAUloX,EAAK02D,GACjC,IAA0C,IAAtCuxT,EAAiBnsY,QAAQ46E,GAC3B,MAAM,IAAIqkL,WAAW,uBAGvB,OAAO,IAAIzuG,EAAS,KAAM,CACxB51E,OAAQA,EACRq0E,QAAS,CACP1tF,SAAUr9C,MAKT,IAAImoX,EAAe1+O,EAAO0+O,aAEjC,IACE,IAAIA,EACJ,MAAOhqY,IACPgqY,EAAe,SAAsBvrX,EAASja,GAC5CrG,KAAKsgB,QAAUA,EACftgB,KAAKqG,KAAOA,EACZ,IAAIxB,EAAQjC,MAAM0d,GAClBtgB,KAAK4zT,MAAQ/uT,EAAM+uT,QAGR1zT,UAAYtC,OAAOuC,OAAOyC,MAAM1C,WAC7C2rY,EAAa3rY,UAAUD,YAAc4rY,EAGhC,SAAS/8O,EAAMy2F,EAAOp/K,GAC3B,OAAO,IAAIz/D,SAAQ,SAAUpC,EAASC,GACpC,IAAIo9P,EAAU,IAAInzG,EAAQ+2F,EAAOp/K,GAEjC,GAAIw7L,EAAQwpI,QAAUxpI,EAAQwpI,OAAOW,QACnC,OAAOvnY,EAAO,IAAIsnY,EAAa,UAAW,eAG5C,IAAIE,EAAM,IAAIntF,eAEd,SAASotF,IACPD,EAAI/qF,QAGN+qF,EAAI1rI,OAAS,WACX,IAAIh4O,EAAU,CACZ+xD,OAAQ2xT,EAAI3xT,OACZ61E,WAAY87O,EAAI97O,WAChBxB,QAAS8wJ,EAAawsF,EAAI1rF,yBAA2B,KAEvDh4R,EAAQ3E,IAAM,gBAAiBqoX,EAAMA,EAAI5rF,YAAc93R,EAAQomI,QAAQ9uJ,IAAI,iBAC3E,IAAIqvJ,EAAO,aAAc+8O,EAAMA,EAAI/9O,SAAW+9O,EAAIzrF,aAClDhyJ,YAAW,WACThqJ,EAAQ,IAAI0rJ,EAAShB,EAAM3mI,MAC1B,IAGL0jX,EAAI3rI,QAAU,WACZ9xG,YAAW,WACT/pJ,EAAO,IAAI9E,UAAU,6BACpB,IAGLssY,EAAIvrF,UAAY,WACdlyJ,YAAW,WACT/pJ,EAAO,IAAI9E,UAAU,6BACpB,IAGLssY,EAAIxrF,QAAU,WACZjyJ,YAAW,WACT/pJ,EAAO,IAAIsnY,EAAa,UAAW,iBAClC,IAWLE,EAAI3uI,KAAKuE,EAAQj/P,OARjB,SAAgBghB,GACd,IACE,MAAe,KAARA,GAAcypI,EAAOpsF,SAASu3I,KAAOnrD,EAAOpsF,SAASu3I,KAAO50L,EACnE,MAAO3J,GACP,OAAO2J,GAIcuoX,CAAOtqI,EAAQj+O,MAAM,GAElB,YAAxBi+O,EAAQhzG,YACVo9O,EAAIv+O,iBAAkB,EACW,SAAxBm0G,EAAQhzG,cACjBo9O,EAAIv+O,iBAAkB,GAGpB,iBAAkBu+O,IAChBtC,EACFsC,EAAIl9O,aAAe,OACV46O,GAAuB9nI,EAAQlzG,QAAQ9uJ,IAAI,kBAAgG,IAA7EgiQ,EAAQlzG,QAAQ9uJ,IAAI,gBAAgBH,QAAQ,8BACnHusY,EAAIl9O,aAAe,iBAInB1oF,GAAgC,kBAAjBA,EAAKsoF,SAA0BtoF,EAAKsoF,mBAAmBC,EAKxEizG,EAAQlzG,QAAQ9vJ,SAAQ,SAAUyB,EAAOiG,GACvC0lY,EAAI/6O,iBAAiB3qJ,EAAMjG,MAL7BxC,OAAO48L,oBAAoBr0H,EAAKsoF,SAAS9vJ,SAAQ,SAAU0H,GACzD0lY,EAAI/6O,iBAAiB3qJ,EAAMujY,EAAezjU,EAAKsoF,QAAQpoJ,QAQvDs7P,EAAQwpI,SACVxpI,EAAQwpI,OAAO9jU,iBAAiB,QAAS2kU,GAEzCD,EAAI7rF,mBAAqB,WAEA,IAAnB6rF,EAAIn2Q,YACN+rI,EAAQwpI,OAAOjkU,oBAAoB,QAAS8kU,KAKlDD,EAAI5wL,KAAkC,qBAAtBwmD,EAAQ4oI,UAA4B,KAAO5oI,EAAQ4oI,cAGvEz7O,EAAMo8B,UAAW,EAEZ/9B,EAAO2B,QACV3B,EAAO2B,MAAQA,EACf3B,EAAOuB,QAAUA,EACjBvB,EAAOqB,QAAUA,EACjBrB,EAAO6C,SAAWA,I,iBC3lBpB,YAOA,IAPA,MAAU,EAAQ,KACdga,EAAyB,qBAAXlN,OAAyB3P,EAAS2P,OAChDovO,EAAU,CAAC,MAAO,UAClBhO,EAAS,iBACTiO,EAAMniO,EAAK,UAAYk0N,GACvBkO,EAAMpiO,EAAK,SAAWk0N,IAAWl0N,EAAK,gBAAkBk0N,GAEnD3/X,EAAI,GAAI4tY,GAAO5tY,EAAI2tY,EAAQztY,OAAQF,IAC1C4tY,EAAMniO,EAAKkiO,EAAQ3tY,GAAK,UAAY2/X,GACpCkO,EAAMpiO,EAAKkiO,EAAQ3tY,GAAK,SAAW2/X,IAAWl0N,EAAKkiO,EAAQ3tY,GAAK,gBAAkB2/X,GAIpF,IAAKiO,IAAQC,EAAK,CAChB,IAAI10Q,EAAO,EACPh1F,EAAK,EACLmoG,EAAQ,GAGZshQ,EAAM,SAAa/9W,GACjB,GAAqB,IAAjBy8G,EAAMpsI,OAAc,CACtB,IAAI4tY,EAAOntO,IACPj6J,EAAOsP,KAAKY,IAAI,EALJ,IAAO,IAKiBk3X,EAAO30Q,IAE/CA,EAAOzyH,EAAOonY,EACd/9O,YAAW,WACT,IAAIg+O,EAAKzhQ,EAAM5jI,MAAM,GAIrB4jI,EAAMpsI,OAAS,EAEf,IAAK,IAAIF,EAAI,EAAGA,EAAI+tY,EAAG7tY,OAAQF,IAC7B,IAAK+tY,EAAG/tY,GAAG6jV,UACT,IACEkqD,EAAG/tY,GAAG6vB,SAASspG,GACf,MAAO39G,GACPu0I,YAAW,WACT,MAAMv0I,IACL,MAIRxF,KAAKmC,MAAMzR,IAQhB,OALA4lI,EAAM1sI,KAAK,CACTmJ,SAAUo7B,EACVtU,SAAUA,EACVg0T,WAAW,IAEN1/S,GAGT0pW,EAAM,SAAa9kY,GACjB,IAAK,IAAI/I,EAAI,EAAGA,EAAIssI,EAAMpsI,OAAQF,IAC5BssI,EAAMtsI,GAAG+I,SAAWA,IACtBujI,EAAMtsI,GAAG6jV,WAAY,IAM7B9kV,EAAOC,QAAU,SAAU6B,GAIzB,OAAO+sY,EAAI5sY,KAAKyqK,EAAM5qK,IAGxB9B,EAAOC,QAAQwjT,OAAS,WACtBqrF,EAAIhuY,MAAM4rK,EAAMxrK,YAGlBlB,EAAOC,QAAQ2tL,SAAW,SAAUztL,GAC7BA,IACHA,EAASusK,GAGXvsK,EAAOotD,sBAAwBshV,EAC/B1uY,EAAOqtD,qBAAuBshV,K,oCChFhC,aACA,WACE,IAAIG,EAAgBC,EAAQC,EAAUC,EAAgBC,EAAcC,EAEzC,qBAAhBttO,aAA+C,OAAhBA,aAAwBA,YAAYJ,IAC5E5hK,EAAOC,QAAU,WACf,OAAO+hK,YAAYJ,OAEO,qBAAZwuB,GAAuC,OAAZA,GAAoBA,EAAQ8+M,QACvElvY,EAAOC,QAAU,WACf,OAAQgvY,IAAmBI,GAAgB,KAG7CH,EAAS9+M,EAAQ8+M,OAQjBE,GANAH,EAAiB,WACf,IAAI7sG,EAEJ,OAAe,KADfA,EAAK8sG,KACK,GAAW9sG,EAAG,OAI1BktG,EAA4B,IAAnBl/M,EAAQm/M,SACjBF,EAAeD,EAAiBE,GACvBrtO,KAAKL,KACd5hK,EAAOC,QAAU,WACf,OAAOgiK,KAAKL,MAAQutO,GAGtBA,EAAWltO,KAAKL,QAEhB5hK,EAAOC,QAAU,WACf,OAAO,IAAIgiK,MAAOk8J,UAAYgxE,GAGhCA,GAAW,IAAIltO,MAAOk8J,aAEvBl8T,KAAKS,Q,gDC3BR,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KA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CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACnG,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACnG,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACpG,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACnG,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACtG,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACpG,CAAC,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACzF,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACtG,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpG,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,G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","file":"static/js/2.5a4938f3.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport setPrototypeOf from \"./setPrototypeOf\";\nimport isNativeFunction from \"./isNativeFunction\";\nimport construct from \"./construct\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import superPropBase from \"./superPropBase\";\nexport default function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","import _wrapNativeSuper from \"D:\\\\AT projects\\\\explorug-v3\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/wrapNativeSuper\";\nimport _toConsumableArray from \"D:\\\\AT projects\\\\explorug-v3\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/toConsumableArray\";\nimport _asyncToGenerator from \"D:\\\\AT projects\\\\explorug-v3\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/asyncToGenerator\";\nimport _createForOfIteratorHelper from \"D:\\\\AT projects\\\\explorug-v3\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/createForOfIteratorHelper\";\nimport _slicedToArray from \"D:\\\\AT projects\\\\explorug-v3\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/slicedToArray\";\nimport _get from \"D:\\\\AT projects\\\\explorug-v3\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/get\";\nimport _getPrototypeOf from \"D:\\\\AT projects\\\\explorug-v3\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/getPrototypeOf\";\nimport _assertThisInitialized from \"D:\\\\AT projects\\\\explorug-v3\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"D:\\\\AT projects\\\\explorug-v3\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/inherits\";\nimport _createSuper from \"D:\\\\AT projects\\\\explorug-v3\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"D:\\\\AT projects\\\\explorug-v3\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"D:\\\\AT projects\\\\explorug-v3\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"D:\\\\AT projects\\\\explorug-v3\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/createClass\";\n\nvar _TO_LINEAR, _FROM_LINEAR;\n\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = \"function\" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || \"@@iterator\", asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\", toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, \"\"); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = \"suspendedStart\"; return function (method, arg) { if (\"executing\" === state) throw new Error(\"Generator is already running\"); if (\"completed\" === state) { if (\"throw\" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) { if (\"suspendedStart\" === state) throw state = \"completed\", context.arg; context.dispatchException(context.arg); } else \"return\" === context.method && context.abrupt(\"return\", context.arg); state = \"executing\"; var record = tryCatch(innerFn, self, context); if (\"normal\" === record.type) { if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: \"normal\", arg: fn.call(obj, arg) }; } catch (err) { return { type: \"throw\", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { [\"next\", \"throw\", \"return\"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if (\"throw\" !== record.type) { var result = record.arg, value = result.value; return value && \"object\" == typeof value && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke(\"next\", value, resolve, reject); }, function (err) { invoke(\"throw\", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke(\"throw\", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, \"throw\" === context.method) { if (delegate.iterator.return && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel; context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = \"normal\", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: \"root\" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if (\"function\" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, \"constructor\", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) { var ctor = \"function\" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, \"toString\", function () { return \"[object Generator]\"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if (\"throw\" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if (\"root\" === entry.tryLoc) return handle(\"end\"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, \"catchLoc\"), hasFinally = hasOwn.call(entry, \"finallyLoc\"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error(\"try statement without catch or finally\"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if (\"throw\" === record.type) throw record.arg; return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, catch: function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if (\"throw\" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }\n\n/**\n * @license\n * Copyright 2010-2023 Three.js Authors\n * SPDX-License-Identifier: MIT\n */\nvar REVISION = '152';\nvar MOUSE = {\n LEFT: 0,\n MIDDLE: 1,\n RIGHT: 2,\n ROTATE: 0,\n DOLLY: 1,\n PAN: 2\n};\nvar TOUCH = {\n ROTATE: 0,\n PAN: 1,\n DOLLY_PAN: 2,\n DOLLY_ROTATE: 3\n};\nvar CullFaceNone = 0;\nvar CullFaceBack = 1;\nvar CullFaceFront = 2;\nvar CullFaceFrontBack = 3;\nvar BasicShadowMap = 0;\nvar PCFShadowMap = 1;\nvar PCFSoftShadowMap = 2;\nvar VSMShadowMap = 3;\nvar FrontSide = 0;\nvar BackSide = 1;\nvar DoubleSide = 2;\nvar TwoPassDoubleSide = 2; // r149\n\nvar NoBlending = 0;\nvar NormalBlending = 1;\nvar AdditiveBlending = 2;\nvar SubtractiveBlending = 3;\nvar MultiplyBlending = 4;\nvar CustomBlending = 5;\nvar AddEquation = 100;\nvar SubtractEquation = 101;\nvar ReverseSubtractEquation = 102;\nvar MinEquation = 103;\nvar MaxEquation = 104;\nvar ZeroFactor = 200;\nvar OneFactor = 201;\nvar SrcColorFactor = 202;\nvar OneMinusSrcColorFactor = 203;\nvar SrcAlphaFactor = 204;\nvar OneMinusSrcAlphaFactor = 205;\nvar DstAlphaFactor = 206;\nvar OneMinusDstAlphaFactor = 207;\nvar DstColorFactor = 208;\nvar OneMinusDstColorFactor = 209;\nvar SrcAlphaSaturateFactor = 210;\nvar NeverDepth = 0;\nvar AlwaysDepth = 1;\nvar LessDepth = 2;\nvar LessEqualDepth = 3;\nvar EqualDepth = 4;\nvar GreaterEqualDepth = 5;\nvar GreaterDepth = 6;\nvar NotEqualDepth = 7;\nvar MultiplyOperation = 0;\nvar MixOperation = 1;\nvar AddOperation = 2;\nvar NoToneMapping = 0;\nvar LinearToneMapping = 1;\nvar ReinhardToneMapping = 2;\nvar CineonToneMapping = 3;\nvar ACESFilmicToneMapping = 4;\nvar CustomToneMapping = 5;\nvar UVMapping = 300;\nvar CubeReflectionMapping = 301;\nvar CubeRefractionMapping = 302;\nvar EquirectangularReflectionMapping = 303;\nvar EquirectangularRefractionMapping = 304;\nvar CubeUVReflectionMapping = 306;\nvar RepeatWrapping = 1000;\nvar ClampToEdgeWrapping = 1001;\nvar MirroredRepeatWrapping = 1002;\nvar NearestFilter = 1003;\nvar NearestMipmapNearestFilter = 1004;\nvar NearestMipMapNearestFilter = 1004;\nvar NearestMipmapLinearFilter = 1005;\nvar NearestMipMapLinearFilter = 1005;\nvar LinearFilter = 1006;\nvar LinearMipmapNearestFilter = 1007;\nvar LinearMipMapNearestFilter = 1007;\nvar LinearMipmapLinearFilter = 1008;\nvar LinearMipMapLinearFilter = 1008;\nvar UnsignedByteType = 1009;\nvar ByteType = 1010;\nvar ShortType = 1011;\nvar UnsignedShortType = 1012;\nvar IntType = 1013;\nvar UnsignedIntType = 1014;\nvar FloatType = 1015;\nvar HalfFloatType = 1016;\nvar UnsignedShort4444Type = 1017;\nvar UnsignedShort5551Type = 1018;\nvar UnsignedInt248Type = 1020;\nvar AlphaFormat = 1021;\nvar RGBAFormat = 1023;\nvar LuminanceFormat = 1024;\nvar LuminanceAlphaFormat = 1025;\nvar DepthFormat = 1026;\nvar DepthStencilFormat = 1027;\nvar RedFormat = 1028;\nvar RedIntegerFormat = 1029;\nvar RGFormat = 1030;\nvar RGIntegerFormat = 1031;\nvar RGBAIntegerFormat = 1033;\nvar RGB_S3TC_DXT1_Format = 33776;\nvar RGBA_S3TC_DXT1_Format = 33777;\nvar RGBA_S3TC_DXT3_Format = 33778;\nvar RGBA_S3TC_DXT5_Format = 33779;\nvar RGB_PVRTC_4BPPV1_Format = 35840;\nvar RGB_PVRTC_2BPPV1_Format = 35841;\nvar RGBA_PVRTC_4BPPV1_Format = 35842;\nvar RGBA_PVRTC_2BPPV1_Format = 35843;\nvar RGB_ETC1_Format = 36196;\nvar RGB_ETC2_Format = 37492;\nvar RGBA_ETC2_EAC_Format = 37496;\nvar RGBA_ASTC_4x4_Format = 37808;\nvar RGBA_ASTC_5x4_Format = 37809;\nvar RGBA_ASTC_5x5_Format = 37810;\nvar RGBA_ASTC_6x5_Format = 37811;\nvar RGBA_ASTC_6x6_Format = 37812;\nvar RGBA_ASTC_8x5_Format = 37813;\nvar RGBA_ASTC_8x6_Format = 37814;\nvar RGBA_ASTC_8x8_Format = 37815;\nvar RGBA_ASTC_10x5_Format = 37816;\nvar RGBA_ASTC_10x6_Format = 37817;\nvar RGBA_ASTC_10x8_Format = 37818;\nvar RGBA_ASTC_10x10_Format = 37819;\nvar RGBA_ASTC_12x10_Format = 37820;\nvar RGBA_ASTC_12x12_Format = 37821;\nvar RGBA_BPTC_Format = 36492;\nvar RED_RGTC1_Format = 36283;\nvar SIGNED_RED_RGTC1_Format = 36284;\nvar RED_GREEN_RGTC2_Format = 36285;\nvar SIGNED_RED_GREEN_RGTC2_Format = 36286;\nvar LoopOnce = 2200;\nvar LoopRepeat = 2201;\nvar LoopPingPong = 2202;\nvar InterpolateDiscrete = 2300;\nvar InterpolateLinear = 2301;\nvar InterpolateSmooth = 2302;\nvar ZeroCurvatureEnding = 2400;\nvar ZeroSlopeEnding = 2401;\nvar WrapAroundEnding = 2402;\nvar NormalAnimationBlendMode = 2500;\nvar AdditiveAnimationBlendMode = 2501;\nvar TrianglesDrawMode = 0;\nvar TriangleStripDrawMode = 1;\nvar TriangleFanDrawMode = 2;\n/** @deprecated Use LinearSRGBColorSpace or NoColorSpace in three.js r152+. */\n\nvar LinearEncoding = 3000;\n/** @deprecated Use SRGBColorSpace in three.js r152+. */\n\nvar sRGBEncoding = 3001;\nvar BasicDepthPacking = 3200;\nvar RGBADepthPacking = 3201;\nvar TangentSpaceNormalMap = 0;\nvar ObjectSpaceNormalMap = 1; // Color space string identifiers, matching CSS Color Module Level 4 and WebGPU names where available.\n\nvar NoColorSpace = '';\nvar SRGBColorSpace = 'srgb';\nvar LinearSRGBColorSpace = 'srgb-linear';\nvar DisplayP3ColorSpace = 'display-p3';\nvar ZeroStencilOp = 0;\nvar KeepStencilOp = 7680;\nvar ReplaceStencilOp = 7681;\nvar IncrementStencilOp = 7682;\nvar DecrementStencilOp = 7683;\nvar IncrementWrapStencilOp = 34055;\nvar DecrementWrapStencilOp = 34056;\nvar InvertStencilOp = 5386;\nvar NeverStencilFunc = 512;\nvar LessStencilFunc = 513;\nvar EqualStencilFunc = 514;\nvar LessEqualStencilFunc = 515;\nvar GreaterStencilFunc = 516;\nvar NotEqualStencilFunc = 517;\nvar GreaterEqualStencilFunc = 518;\nvar AlwaysStencilFunc = 519;\nvar StaticDrawUsage = 35044;\nvar DynamicDrawUsage = 35048;\nvar StreamDrawUsage = 35040;\nvar StaticReadUsage = 35045;\nvar DynamicReadUsage = 35049;\nvar StreamReadUsage = 35041;\nvar StaticCopyUsage = 35046;\nvar DynamicCopyUsage = 35050;\nvar StreamCopyUsage = 35042;\nvar GLSL1 = '100';\nvar GLSL3 = '300 es';\nvar _SRGBAFormat = 1035; // fallback for WebGL 1\n\n/**\n * https://github.com/mrdoob/eventdispatcher.js/\n */\n\nvar EventDispatcher = /*#__PURE__*/function () {\n function EventDispatcher() {\n _classCallCheck(this, EventDispatcher);\n }\n\n _createClass(EventDispatcher, [{\n key: \"addEventListener\",\n value: function addEventListener(type, listener) {\n if (this._listeners === undefined) this._listeners = {};\n var listeners = this._listeners;\n\n if (listeners[type] === undefined) {\n listeners[type] = [];\n }\n\n if (listeners[type].indexOf(listener) === -1) {\n listeners[type].push(listener);\n }\n }\n }, {\n key: \"hasEventListener\",\n value: function hasEventListener(type, listener) {\n if (this._listeners === undefined) return false;\n var listeners = this._listeners;\n return listeners[type] !== undefined && listeners[type].indexOf(listener) !== -1;\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(type, listener) {\n if (this._listeners === undefined) return;\n var listeners = this._listeners;\n var listenerArray = listeners[type];\n\n if (listenerArray !== undefined) {\n var index = listenerArray.indexOf(listener);\n\n if (index !== -1) {\n listenerArray.splice(index, 1);\n }\n }\n }\n }, {\n key: \"dispatchEvent\",\n value: function dispatchEvent(event) {\n if (this._listeners === undefined) return;\n var listeners = this._listeners;\n var listenerArray = listeners[event.type];\n\n if (listenerArray !== undefined) {\n event.target = this; // Make a copy, in case listeners are removed while iterating.\n\n var array = listenerArray.slice(0);\n\n for (var i = 0, l = array.length; i < l; i++) {\n array[i].call(this, event);\n }\n\n event.target = null;\n }\n }\n }]);\n\n return EventDispatcher;\n}();\n\nvar _lut = ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f', 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf', 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf', 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df', 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff'];\nvar _seed = 1234567;\nvar DEG2RAD = Math.PI / 180;\nvar RAD2DEG = 180 / Math.PI; // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\n\nfunction generateUUID() {\n var d0 = Math.random() * 0xffffffff | 0;\n var d1 = Math.random() * 0xffffffff | 0;\n var d2 = Math.random() * 0xffffffff | 0;\n var d3 = Math.random() * 0xffffffff | 0;\n var uuid = _lut[d0 & 0xff] + _lut[d0 >> 8 & 0xff] + _lut[d0 >> 16 & 0xff] + _lut[d0 >> 24 & 0xff] + '-' + _lut[d1 & 0xff] + _lut[d1 >> 8 & 0xff] + '-' + _lut[d1 >> 16 & 0x0f | 0x40] + _lut[d1 >> 24 & 0xff] + '-' + _lut[d2 & 0x3f | 0x80] + _lut[d2 >> 8 & 0xff] + '-' + _lut[d2 >> 16 & 0xff] + _lut[d2 >> 24 & 0xff] + _lut[d3 & 0xff] + _lut[d3 >> 8 & 0xff] + _lut[d3 >> 16 & 0xff] + _lut[d3 >> 24 & 0xff]; // .toLowerCase() here flattens concatenated strings to save heap memory space.\n\n return uuid.toLowerCase();\n}\n\nfunction clamp(value, min, max) {\n return Math.max(min, Math.min(max, value));\n} // compute euclidean modulo of m % n\n// https://en.wikipedia.org/wiki/Modulo_operation\n\n\nfunction euclideanModulo(n, m) {\n return (n % m + m) % m;\n} // Linear mapping from range to range \n\n\nfunction mapLinear(x, a1, a2, b1, b2) {\n return b1 + (x - a1) * (b2 - b1) / (a2 - a1);\n} // https://www.gamedev.net/tutorials/programming/general-and-gameplay-programming/inverse-lerp-a-super-useful-yet-often-overlooked-function-r5230/\n\n\nfunction inverseLerp(x, y, value) {\n if (x !== y) {\n return (value - x) / (y - x);\n } else {\n return 0;\n }\n} // https://en.wikipedia.org/wiki/Linear_interpolation\n\n\nfunction lerp(x, y, t) {\n return (1 - t) * x + t * y;\n} // http://www.rorydriscoll.com/2016/03/07/frame-rate-independent-damping-using-lerp/\n\n\nfunction damp(x, y, lambda, dt) {\n return lerp(x, y, 1 - Math.exp(-lambda * dt));\n} // https://www.desmos.com/calculator/vcsjnyz7x4\n\n\nfunction pingpong(x) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n return length - Math.abs(euclideanModulo(x, length * 2) - length);\n} // http://en.wikipedia.org/wiki/Smoothstep\n\n\nfunction smoothstep(x, min, max) {\n if (x <= min) return 0;\n if (x >= max) return 1;\n x = (x - min) / (max - min);\n return x * x * (3 - 2 * x);\n}\n\nfunction smootherstep(x, min, max) {\n if (x <= min) return 0;\n if (x >= max) return 1;\n x = (x - min) / (max - min);\n return x * x * x * (x * (x * 6 - 15) + 10);\n} // Random integer from interval\n\n\nfunction randInt(low, high) {\n return low + Math.floor(Math.random() * (high - low + 1));\n} // Random float from interval\n\n\nfunction randFloat(low, high) {\n return low + Math.random() * (high - low);\n} // Random float from <-range/2, range/2> interval\n\n\nfunction randFloatSpread(range) {\n return range * (0.5 - Math.random());\n} // Deterministic pseudo-random float in the interval [ 0, 1 ]\n\n\nfunction seededRandom(s) {\n if (s !== undefined) _seed = s; // Mulberry32 generator\n\n var t = _seed += 0x6D2B79F5;\n t = Math.imul(t ^ t >>> 15, t | 1);\n t ^= t + Math.imul(t ^ t >>> 7, t | 61);\n return ((t ^ t >>> 14) >>> 0) / 4294967296;\n}\n\nfunction degToRad(degrees) {\n return degrees * DEG2RAD;\n}\n\nfunction radToDeg(radians) {\n return radians * RAD2DEG;\n}\n\nfunction isPowerOfTwo(value) {\n return (value & value - 1) === 0 && value !== 0;\n}\n\nfunction ceilPowerOfTwo(value) {\n return Math.pow(2, Math.ceil(Math.log(value) / Math.LN2));\n}\n\nfunction floorPowerOfTwo(value) {\n return Math.pow(2, Math.floor(Math.log(value) / Math.LN2));\n}\n\nfunction setQuaternionFromProperEuler(q, a, b, c, order) {\n // Intrinsic Proper Euler Angles - see https://en.wikipedia.org/wiki/Euler_angles\n // rotations are applied to the axes in the order specified by 'order'\n // rotation by angle 'a' is applied first, then by angle 'b', then by angle 'c'\n // angles are in radians\n var cos = Math.cos;\n var sin = Math.sin;\n var c2 = cos(b / 2);\n var s2 = sin(b / 2);\n var c13 = cos((a + c) / 2);\n var s13 = sin((a + c) / 2);\n var c1_3 = cos((a - c) / 2);\n var s1_3 = sin((a - c) / 2);\n var c3_1 = cos((c - a) / 2);\n var s3_1 = sin((c - a) / 2);\n\n switch (order) {\n case 'XYX':\n q.set(c2 * s13, s2 * c1_3, s2 * s1_3, c2 * c13);\n break;\n\n case 'YZY':\n q.set(s2 * s1_3, c2 * s13, s2 * c1_3, c2 * c13);\n break;\n\n case 'ZXZ':\n q.set(s2 * c1_3, s2 * s1_3, c2 * s13, c2 * c13);\n break;\n\n case 'XZX':\n q.set(c2 * s13, s2 * s3_1, s2 * c3_1, c2 * c13);\n break;\n\n case 'YXY':\n q.set(s2 * c3_1, c2 * s13, s2 * s3_1, c2 * c13);\n break;\n\n case 'ZYZ':\n q.set(s2 * s3_1, s2 * c3_1, c2 * s13, c2 * c13);\n break;\n\n default:\n console.warn('THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: ' + order);\n }\n}\n\nfunction denormalize(value, array) {\n switch (array.constructor) {\n case Float32Array:\n return value;\n\n case Uint16Array:\n return value / 65535.0;\n\n case Uint8Array:\n return value / 255.0;\n\n case Int16Array:\n return Math.max(value / 32767.0, -1.0);\n\n case Int8Array:\n return Math.max(value / 127.0, -1.0);\n\n default:\n throw new Error('Invalid component type.');\n }\n}\n\nfunction normalize(value, array) {\n switch (array.constructor) {\n case Float32Array:\n return value;\n\n case Uint16Array:\n return Math.round(value * 65535.0);\n\n case Uint8Array:\n return Math.round(value * 255.0);\n\n case Int16Array:\n return Math.round(value * 32767.0);\n\n case Int8Array:\n return Math.round(value * 127.0);\n\n default:\n throw new Error('Invalid component type.');\n }\n}\n\nvar MathUtils = {\n DEG2RAD: DEG2RAD,\n RAD2DEG: RAD2DEG,\n generateUUID: generateUUID,\n clamp: clamp,\n euclideanModulo: euclideanModulo,\n mapLinear: mapLinear,\n inverseLerp: inverseLerp,\n lerp: lerp,\n damp: damp,\n pingpong: pingpong,\n smoothstep: smoothstep,\n smootherstep: smootherstep,\n randInt: randInt,\n randFloat: randFloat,\n randFloatSpread: randFloatSpread,\n seededRandom: seededRandom,\n degToRad: degToRad,\n radToDeg: radToDeg,\n isPowerOfTwo: isPowerOfTwo,\n ceilPowerOfTwo: ceilPowerOfTwo,\n floorPowerOfTwo: floorPowerOfTwo,\n setQuaternionFromProperEuler: setQuaternionFromProperEuler,\n normalize: normalize,\n denormalize: denormalize\n};\n\nvar Vector2 = /*#__PURE__*/function (_Symbol$iterator) {\n function Vector2() {\n var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Vector2);\n\n Vector2.prototype.isVector2 = true;\n this.x = x;\n this.y = y;\n }\n\n _createClass(Vector2, [{\n key: \"width\",\n get: function get() {\n return this.x;\n },\n set: function set(value) {\n this.x = value;\n }\n }, {\n key: \"height\",\n get: function get() {\n return this.y;\n },\n set: function set(value) {\n this.y = value;\n }\n }, {\n key: \"set\",\n value: function set(x, y) {\n this.x = x;\n this.y = y;\n return this;\n }\n }, {\n key: \"setScalar\",\n value: function setScalar(scalar) {\n this.x = scalar;\n this.y = scalar;\n return this;\n }\n }, {\n key: \"setX\",\n value: function setX(x) {\n this.x = x;\n return this;\n }\n }, {\n key: \"setY\",\n value: function setY(y) {\n this.y = y;\n return this;\n }\n }, {\n key: \"setComponent\",\n value: function setComponent(index, value) {\n switch (index) {\n case 0:\n this.x = value;\n break;\n\n case 1:\n this.y = value;\n break;\n\n default:\n throw new Error('index is out of range: ' + index);\n }\n\n return this;\n }\n }, {\n key: \"getComponent\",\n value: function getComponent(index) {\n switch (index) {\n case 0:\n return this.x;\n\n case 1:\n return this.y;\n\n default:\n throw new Error('index is out of range: ' + index);\n }\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor(this.x, this.y);\n }\n }, {\n key: \"copy\",\n value: function copy(v) {\n this.x = v.x;\n this.y = v.y;\n return this;\n }\n }, {\n key: \"add\",\n value: function add(v) {\n this.x += v.x;\n this.y += v.y;\n return this;\n }\n }, {\n key: \"addScalar\",\n value: function addScalar(s) {\n this.x += s;\n this.y += s;\n return this;\n }\n }, {\n key: \"addVectors\",\n value: function addVectors(a, b) {\n this.x = a.x + b.x;\n this.y = a.y + b.y;\n return this;\n }\n }, {\n key: \"addScaledVector\",\n value: function addScaledVector(v, s) {\n this.x += v.x * s;\n this.y += v.y * s;\n return this;\n }\n }, {\n key: \"sub\",\n value: function sub(v) {\n this.x -= v.x;\n this.y -= v.y;\n return this;\n }\n }, {\n key: \"subScalar\",\n value: function subScalar(s) {\n this.x -= s;\n this.y -= s;\n return this;\n }\n }, {\n key: \"subVectors\",\n value: function subVectors(a, b) {\n this.x = a.x - b.x;\n this.y = a.y - b.y;\n return this;\n }\n }, {\n key: \"multiply\",\n value: function multiply(v) {\n this.x *= v.x;\n this.y *= v.y;\n return this;\n }\n }, {\n key: \"multiplyScalar\",\n value: function multiplyScalar(scalar) {\n this.x *= scalar;\n this.y *= scalar;\n return this;\n }\n }, {\n key: \"divide\",\n value: function divide(v) {\n this.x /= v.x;\n this.y /= v.y;\n return this;\n }\n }, {\n key: \"divideScalar\",\n value: function divideScalar(scalar) {\n return this.multiplyScalar(1 / scalar);\n }\n }, {\n key: \"applyMatrix3\",\n value: function applyMatrix3(m) {\n var x = this.x,\n y = this.y;\n var e = m.elements;\n this.x = e[0] * x + e[3] * y + e[6];\n this.y = e[1] * x + e[4] * y + e[7];\n return this;\n }\n }, {\n key: \"min\",\n value: function min(v) {\n this.x = Math.min(this.x, v.x);\n this.y = Math.min(this.y, v.y);\n return this;\n }\n }, {\n key: \"max\",\n value: function max(v) {\n this.x = Math.max(this.x, v.x);\n this.y = Math.max(this.y, v.y);\n return this;\n }\n }, {\n key: \"clamp\",\n value: function clamp(min, max) {\n // assumes min < max, componentwise\n this.x = Math.max(min.x, Math.min(max.x, this.x));\n this.y = Math.max(min.y, Math.min(max.y, this.y));\n return this;\n }\n }, {\n key: \"clampScalar\",\n value: function clampScalar(minVal, maxVal) {\n this.x = Math.max(minVal, Math.min(maxVal, this.x));\n this.y = Math.max(minVal, Math.min(maxVal, this.y));\n return this;\n }\n }, {\n key: \"clampLength\",\n value: function clampLength(min, max) {\n var length = this.length();\n return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\n }\n }, {\n key: \"floor\",\n value: function floor() {\n this.x = Math.floor(this.x);\n this.y = Math.floor(this.y);\n return this;\n }\n }, {\n key: \"ceil\",\n value: function ceil() {\n this.x = Math.ceil(this.x);\n this.y = Math.ceil(this.y);\n return this;\n }\n }, {\n key: \"round\",\n value: function round() {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n return this;\n }\n }, {\n key: \"roundToZero\",\n value: function roundToZero() {\n this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x);\n this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y);\n return this;\n }\n }, {\n key: \"negate\",\n value: function negate() {\n this.x = -this.x;\n this.y = -this.y;\n return this;\n }\n }, {\n key: \"dot\",\n value: function dot(v) {\n return this.x * v.x + this.y * v.y;\n }\n }, {\n key: \"cross\",\n value: function cross(v) {\n return this.x * v.y - this.y * v.x;\n }\n }, {\n key: \"lengthSq\",\n value: function lengthSq() {\n return this.x * this.x + this.y * this.y;\n }\n }, {\n key: \"length\",\n value: function length() {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n }\n }, {\n key: \"manhattanLength\",\n value: function manhattanLength() {\n return Math.abs(this.x) + Math.abs(this.y);\n }\n }, {\n key: \"normalize\",\n value: function normalize() {\n return this.divideScalar(this.length() || 1);\n }\n }, {\n key: \"angle\",\n value: function angle() {\n // computes the angle in radians with respect to the positive x-axis\n var angle = Math.atan2(-this.y, -this.x) + Math.PI;\n return angle;\n }\n }, {\n key: \"angleTo\",\n value: function angleTo(v) {\n var denominator = Math.sqrt(this.lengthSq() * v.lengthSq());\n if (denominator === 0) return Math.PI / 2;\n var theta = this.dot(v) / denominator; // clamp, to handle numerical problems\n\n return Math.acos(clamp(theta, -1, 1));\n }\n }, {\n key: \"distanceTo\",\n value: function distanceTo(v) {\n return Math.sqrt(this.distanceToSquared(v));\n }\n }, {\n key: \"distanceToSquared\",\n value: function distanceToSquared(v) {\n var dx = this.x - v.x,\n dy = this.y - v.y;\n return dx * dx + dy * dy;\n }\n }, {\n key: \"manhattanDistanceTo\",\n value: function manhattanDistanceTo(v) {\n return Math.abs(this.x - v.x) + Math.abs(this.y - v.y);\n }\n }, {\n key: \"setLength\",\n value: function setLength(length) {\n return this.normalize().multiplyScalar(length);\n }\n }, {\n key: \"lerp\",\n value: function lerp(v, alpha) {\n this.x += (v.x - this.x) * alpha;\n this.y += (v.y - this.y) * alpha;\n return this;\n }\n }, {\n key: \"lerpVectors\",\n value: function lerpVectors(v1, v2, alpha) {\n this.x = v1.x + (v2.x - v1.x) * alpha;\n this.y = v1.y + (v2.y - v1.y) * alpha;\n return this;\n }\n }, {\n key: \"equals\",\n value: function equals(v) {\n return v.x === this.x && v.y === this.y;\n }\n }, {\n key: \"fromArray\",\n value: function fromArray(array) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n this.x = array[offset];\n this.y = array[offset + 1];\n return this;\n }\n }, {\n key: \"toArray\",\n value: function toArray() {\n var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n array[offset] = this.x;\n array[offset + 1] = this.y;\n return array;\n }\n }, {\n key: \"fromBufferAttribute\",\n value: function fromBufferAttribute(attribute, index) {\n this.x = attribute.getX(index);\n this.y = attribute.getY(index);\n return this;\n }\n }, {\n key: \"rotateAround\",\n value: function rotateAround(center, angle) {\n var c = Math.cos(angle),\n s = Math.sin(angle);\n var x = this.x - center.x;\n var y = this.y - center.y;\n this.x = x * c - y * s + center.x;\n this.y = x * s + y * c + center.y;\n return this;\n }\n }, {\n key: \"random\",\n value: function random() {\n this.x = Math.random();\n this.y = Math.random();\n return this;\n }\n }, {\n key: _Symbol$iterator,\n value: /*#__PURE__*/_regeneratorRuntime().mark(function value() {\n return _regeneratorRuntime().wrap(function value$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.x;\n\n case 2:\n _context2.next = 4;\n return this.y;\n\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }\n }, value, this);\n })\n }]);\n\n return Vector2;\n}(Symbol.iterator);\n\nvar Matrix3 = /*#__PURE__*/function () {\n function Matrix3() {\n _classCallCheck(this, Matrix3);\n\n Matrix3.prototype.isMatrix3 = true;\n this.elements = [1, 0, 0, 0, 1, 0, 0, 0, 1];\n }\n\n _createClass(Matrix3, [{\n key: \"set\",\n value: function set(n11, n12, n13, n21, n22, n23, n31, n32, n33) {\n var te = this.elements;\n te[0] = n11;\n te[1] = n21;\n te[2] = n31;\n te[3] = n12;\n te[4] = n22;\n te[5] = n32;\n te[6] = n13;\n te[7] = n23;\n te[8] = n33;\n return this;\n }\n }, {\n key: \"identity\",\n value: function identity() {\n this.set(1, 0, 0, 0, 1, 0, 0, 0, 1);\n return this;\n }\n }, {\n key: \"copy\",\n value: function copy(m) {\n var te = this.elements;\n var me = m.elements;\n te[0] = me[0];\n te[1] = me[1];\n te[2] = me[2];\n te[3] = me[3];\n te[4] = me[4];\n te[5] = me[5];\n te[6] = me[6];\n te[7] = me[7];\n te[8] = me[8];\n return this;\n }\n }, {\n key: \"extractBasis\",\n value: function extractBasis(xAxis, yAxis, zAxis) {\n xAxis.setFromMatrix3Column(this, 0);\n yAxis.setFromMatrix3Column(this, 1);\n zAxis.setFromMatrix3Column(this, 2);\n return this;\n }\n }, {\n key: \"setFromMatrix4\",\n value: function setFromMatrix4(m) {\n var me = m.elements;\n this.set(me[0], me[4], me[8], me[1], me[5], me[9], me[2], me[6], me[10]);\n return this;\n }\n }, {\n key: \"multiply\",\n value: function multiply(m) {\n return this.multiplyMatrices(this, m);\n }\n }, {\n key: \"premultiply\",\n value: function premultiply(m) {\n return this.multiplyMatrices(m, this);\n }\n }, {\n key: \"multiplyMatrices\",\n value: function multiplyMatrices(a, b) {\n var ae = a.elements;\n var be = b.elements;\n var te = this.elements;\n var a11 = ae[0],\n a12 = ae[3],\n a13 = ae[6];\n var a21 = ae[1],\n a22 = ae[4],\n a23 = ae[7];\n var a31 = ae[2],\n a32 = ae[5],\n a33 = ae[8];\n var b11 = be[0],\n b12 = be[3],\n b13 = be[6];\n var b21 = be[1],\n b22 = be[4],\n b23 = be[7];\n var b31 = be[2],\n b32 = be[5],\n b33 = be[8];\n te[0] = a11 * b11 + a12 * b21 + a13 * b31;\n te[3] = a11 * b12 + a12 * b22 + a13 * b32;\n te[6] = a11 * b13 + a12 * b23 + a13 * b33;\n te[1] = a21 * b11 + a22 * b21 + a23 * b31;\n te[4] = a21 * b12 + a22 * b22 + a23 * b32;\n te[7] = a21 * b13 + a22 * b23 + a23 * b33;\n te[2] = a31 * b11 + a32 * b21 + a33 * b31;\n te[5] = a31 * b12 + a32 * b22 + a33 * b32;\n te[8] = a31 * b13 + a32 * b23 + a33 * b33;\n return this;\n }\n }, {\n key: \"multiplyScalar\",\n value: function multiplyScalar(s) {\n var te = this.elements;\n te[0] *= s;\n te[3] *= s;\n te[6] *= s;\n te[1] *= s;\n te[4] *= s;\n te[7] *= s;\n te[2] *= s;\n te[5] *= s;\n te[8] *= s;\n return this;\n }\n }, {\n key: \"determinant\",\n value: function determinant() {\n var te = this.elements;\n var a = te[0],\n b = te[1],\n c = te[2],\n d = te[3],\n e = te[4],\n f = te[5],\n g = te[6],\n h = te[7],\n i = te[8];\n return a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g;\n }\n }, {\n key: \"invert\",\n value: function invert() {\n var te = this.elements,\n n11 = te[0],\n n21 = te[1],\n n31 = te[2],\n n12 = te[3],\n n22 = te[4],\n n32 = te[5],\n n13 = te[6],\n n23 = te[7],\n n33 = te[8],\n t11 = n33 * n22 - n32 * n23,\n t12 = n32 * n13 - n33 * n12,\n t13 = n23 * n12 - n22 * n13,\n det = n11 * t11 + n21 * t12 + n31 * t13;\n if (det === 0) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0);\n var detInv = 1 / det;\n te[0] = t11 * detInv;\n te[1] = (n31 * n23 - n33 * n21) * detInv;\n te[2] = (n32 * n21 - n31 * n22) * detInv;\n te[3] = t12 * detInv;\n te[4] = (n33 * n11 - n31 * n13) * detInv;\n te[5] = (n31 * n12 - n32 * n11) * detInv;\n te[6] = t13 * detInv;\n te[7] = (n21 * n13 - n23 * n11) * detInv;\n te[8] = (n22 * n11 - n21 * n12) * detInv;\n return this;\n }\n }, {\n key: \"transpose\",\n value: function transpose() {\n var tmp;\n var m = this.elements;\n tmp = m[1];\n m[1] = m[3];\n m[3] = tmp;\n tmp = m[2];\n m[2] = m[6];\n m[6] = tmp;\n tmp = m[5];\n m[5] = m[7];\n m[7] = tmp;\n return this;\n }\n }, {\n key: \"getNormalMatrix\",\n value: function getNormalMatrix(matrix4) {\n return this.setFromMatrix4(matrix4).invert().transpose();\n }\n }, {\n key: \"transposeIntoArray\",\n value: function transposeIntoArray(r) {\n var m = this.elements;\n r[0] = m[0];\n r[1] = m[3];\n r[2] = m[6];\n r[3] = m[1];\n r[4] = m[4];\n r[5] = m[7];\n r[6] = m[2];\n r[7] = m[5];\n r[8] = m[8];\n return this;\n }\n }, {\n key: \"setUvTransform\",\n value: function setUvTransform(tx, ty, sx, sy, rotation, cx, cy) {\n var c = Math.cos(rotation);\n var s = Math.sin(rotation);\n this.set(sx * c, sx * s, -sx * (c * cx + s * cy) + cx + tx, -sy * s, sy * c, -sy * (-s * cx + c * cy) + cy + ty, 0, 0, 1);\n return this;\n } //\n\n }, {\n key: \"scale\",\n value: function scale(sx, sy) {\n this.premultiply(_m3.makeScale(sx, sy));\n return this;\n }\n }, {\n key: \"rotate\",\n value: function rotate(theta) {\n this.premultiply(_m3.makeRotation(-theta));\n return this;\n }\n }, {\n key: \"translate\",\n value: function translate(tx, ty) {\n this.premultiply(_m3.makeTranslation(tx, ty));\n return this;\n } // for 2D Transforms\n\n }, {\n key: \"makeTranslation\",\n value: function makeTranslation(x, y) {\n this.set(1, 0, x, 0, 1, y, 0, 0, 1);\n return this;\n }\n }, {\n key: \"makeRotation\",\n value: function makeRotation(theta) {\n // counterclockwise\n var c = Math.cos(theta);\n var s = Math.sin(theta);\n this.set(c, -s, 0, s, c, 0, 0, 0, 1);\n return this;\n }\n }, {\n key: \"makeScale\",\n value: function makeScale(x, y) {\n this.set(x, 0, 0, 0, y, 0, 0, 0, 1);\n return this;\n } //\n\n }, {\n key: \"equals\",\n value: function equals(matrix) {\n var te = this.elements;\n var me = matrix.elements;\n\n for (var i = 0; i < 9; i++) {\n if (te[i] !== me[i]) return false;\n }\n\n return true;\n }\n }, {\n key: \"fromArray\",\n value: function fromArray(array) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n for (var i = 0; i < 9; i++) {\n this.elements[i] = array[i + offset];\n }\n\n return this;\n }\n }, {\n key: \"toArray\",\n value: function toArray() {\n var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var te = this.elements;\n array[offset] = te[0];\n array[offset + 1] = te[1];\n array[offset + 2] = te[2];\n array[offset + 3] = te[3];\n array[offset + 4] = te[4];\n array[offset + 5] = te[5];\n array[offset + 6] = te[6];\n array[offset + 7] = te[7];\n array[offset + 8] = te[8];\n return array;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().fromArray(this.elements);\n }\n }]);\n\n return Matrix3;\n}();\n\nvar _m3 = /*@__PURE__*/new Matrix3();\n\nfunction arrayNeedsUint32(array) {\n // assumes larger values usually on last\n for (var i = array.length - 1; i >= 0; --i) {\n if (array[i] >= 65535) return true; // account for PRIMITIVE_RESTART_FIXED_INDEX, #24565\n }\n\n return false;\n}\n\nvar TYPED_ARRAYS = {\n Int8Array: Int8Array,\n Uint8Array: Uint8Array,\n Uint8ClampedArray: Uint8ClampedArray,\n Int16Array: Int16Array,\n Uint16Array: Uint16Array,\n Int32Array: Int32Array,\n Uint32Array: Uint32Array,\n Float32Array: Float32Array,\n Float64Array: Float64Array\n};\n\nfunction getTypedArray(type, buffer) {\n return new TYPED_ARRAYS[type](buffer);\n}\n\nfunction createElementNS(name) {\n return document.createElementNS('http://www.w3.org/1999/xhtml', name);\n}\n\nvar _cache = {};\n\nfunction warnOnce(message) {\n if (message in _cache) return;\n _cache[message] = true;\n console.warn(message);\n}\n\nfunction SRGBToLinear(c) {\n return c < 0.04045 ? c * 0.0773993808 : Math.pow(c * 0.9478672986 + 0.0521327014, 2.4);\n}\n\nfunction LinearToSRGB(c) {\n return c < 0.0031308 ? c * 12.92 : 1.055 * Math.pow(c, 0.41666) - 0.055;\n}\n/**\n * Matrices converting P3 <-> Rec. 709 primaries, without gamut mapping\n * or clipping. Based on W3C specifications for sRGB and Display P3,\n * and ICC specifications for the D50 connection space. Values in/out\n * are _linear_ sRGB and _linear_ Display P3.\n *\n * Note that both sRGB and Display P3 use the sRGB transfer functions.\n *\n * Reference:\n * - http://www.russellcottrell.com/photo/matrixCalculator.htm\n */\n\n\nvar LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = /*@__PURE__*/new Matrix3().fromArray([0.8224621, 0.0331941, 0.0170827, 0.1775380, 0.9668058, 0.0723974, -0.0000001, 0.0000001, 0.9105199]);\nvar LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = /*@__PURE__*/new Matrix3().fromArray([1.2249401, -0.0420569, -0.0196376, -0.2249404, 1.0420571, -0.0786361, 0.0000001, 0.0000000, 1.0982735]);\n\nfunction DisplayP3ToLinearSRGB(color) {\n // Display P3 uses the sRGB transfer functions\n return color.convertSRGBToLinear().applyMatrix3(LINEAR_DISPLAY_P3_TO_LINEAR_SRGB);\n}\n\nfunction LinearSRGBToDisplayP3(color) {\n // Display P3 uses the sRGB transfer functions\n return color.applyMatrix3(LINEAR_SRGB_TO_LINEAR_DISPLAY_P3).convertLinearToSRGB();\n} // Conversions from to Linear-sRGB reference space.\n\n\nvar TO_LINEAR = (_TO_LINEAR = {}, _defineProperty(_TO_LINEAR, LinearSRGBColorSpace, function (color) {\n return color;\n}), _defineProperty(_TO_LINEAR, SRGBColorSpace, function (color) {\n return color.convertSRGBToLinear();\n}), _defineProperty(_TO_LINEAR, DisplayP3ColorSpace, DisplayP3ToLinearSRGB), _TO_LINEAR); // Conversions to from Linear-sRGB reference space.\n\nvar FROM_LINEAR = (_FROM_LINEAR = {}, _defineProperty(_FROM_LINEAR, LinearSRGBColorSpace, function (color) {\n return color;\n}), _defineProperty(_FROM_LINEAR, SRGBColorSpace, function (color) {\n return color.convertLinearToSRGB();\n}), _defineProperty(_FROM_LINEAR, DisplayP3ColorSpace, LinearSRGBToDisplayP3), _FROM_LINEAR);\nvar ColorManagement = {\n enabled: true,\n\n get legacyMode() {\n console.warn('THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150.');\n return !this.enabled;\n },\n\n set legacyMode(legacyMode) {\n console.warn('THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150.');\n this.enabled = !legacyMode;\n },\n\n get workingColorSpace() {\n return LinearSRGBColorSpace;\n },\n\n set workingColorSpace(colorSpace) {\n console.warn('THREE.ColorManagement: .workingColorSpace is readonly.');\n },\n\n convert: function convert(color, sourceColorSpace, targetColorSpace) {\n if (this.enabled === false || sourceColorSpace === targetColorSpace || !sourceColorSpace || !targetColorSpace) {\n return color;\n }\n\n var sourceToLinear = TO_LINEAR[sourceColorSpace];\n var targetFromLinear = FROM_LINEAR[targetColorSpace];\n\n if (sourceToLinear === undefined || targetFromLinear === undefined) {\n throw new Error(\"Unsupported color space conversion, \\\"\".concat(sourceColorSpace, \"\\\" to \\\"\").concat(targetColorSpace, \"\\\".\"));\n }\n\n return targetFromLinear(sourceToLinear(color));\n },\n fromWorkingColorSpace: function fromWorkingColorSpace(color, targetColorSpace) {\n return this.convert(color, this.workingColorSpace, targetColorSpace);\n },\n toWorkingColorSpace: function toWorkingColorSpace(color, sourceColorSpace) {\n return this.convert(color, sourceColorSpace, this.workingColorSpace);\n }\n};\n\nvar _canvas;\n\nvar ImageUtils = /*#__PURE__*/function () {\n function ImageUtils() {\n _classCallCheck(this, ImageUtils);\n }\n\n _createClass(ImageUtils, null, [{\n key: \"getDataURL\",\n value: function getDataURL(image) {\n if (/^data:/i.test(image.src)) {\n return image.src;\n }\n\n if (typeof HTMLCanvasElement === 'undefined') {\n return image.src;\n }\n\n var canvas;\n\n if (image instanceof HTMLCanvasElement) {\n canvas = image;\n } else {\n if (_canvas === undefined) _canvas = createElementNS('canvas');\n _canvas.width = image.width;\n _canvas.height = image.height;\n\n var context = _canvas.getContext('2d');\n\n if (image instanceof ImageData) {\n context.putImageData(image, 0, 0);\n } else {\n context.drawImage(image, 0, 0, image.width, image.height);\n }\n\n canvas = _canvas;\n }\n\n if (canvas.width > 2048 || canvas.height > 2048) {\n console.warn('THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons', image);\n return canvas.toDataURL('image/jpeg', 0.6);\n } else {\n return canvas.toDataURL('image/png');\n }\n }\n }, {\n key: \"sRGBToLinear\",\n value: function sRGBToLinear(image) {\n if (typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement || typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap) {\n var canvas = createElementNS('canvas');\n canvas.width = image.width;\n canvas.height = image.height;\n var context = canvas.getContext('2d');\n context.drawImage(image, 0, 0, image.width, image.height);\n var imageData = context.getImageData(0, 0, image.width, image.height);\n var data = imageData.data;\n\n for (var i = 0; i < data.length; i++) {\n data[i] = SRGBToLinear(data[i] / 255) * 255;\n }\n\n context.putImageData(imageData, 0, 0);\n return canvas;\n } else if (image.data) {\n var _data = image.data.slice(0);\n\n for (var _i = 0; _i < _data.length; _i++) {\n if (_data instanceof Uint8Array || _data instanceof Uint8ClampedArray) {\n _data[_i] = Math.floor(SRGBToLinear(_data[_i] / 255) * 255);\n } else {\n // assuming float\n _data[_i] = SRGBToLinear(_data[_i]);\n }\n }\n\n return {\n data: _data,\n width: image.width,\n height: image.height\n };\n } else {\n console.warn('THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied.');\n return image;\n }\n }\n }]);\n\n return ImageUtils;\n}();\n\nvar Source = /*#__PURE__*/function () {\n function Source() {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n _classCallCheck(this, Source);\n\n this.isSource = true;\n this.uuid = generateUUID();\n this.data = data;\n this.version = 0;\n }\n\n _createClass(Source, [{\n key: \"needsUpdate\",\n set: function set(value) {\n if (value === true) this.version++;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON(meta) {\n var isRootObject = meta === undefined || typeof meta === 'string';\n\n if (!isRootObject && meta.images[this.uuid] !== undefined) {\n return meta.images[this.uuid];\n }\n\n var output = {\n uuid: this.uuid,\n url: ''\n };\n var data = this.data;\n\n if (data !== null) {\n var url;\n\n if (Array.isArray(data)) {\n // cube texture\n url = [];\n\n for (var i = 0, l = data.length; i < l; i++) {\n if (data[i].isDataTexture) {\n url.push(serializeImage(data[i].image));\n } else {\n url.push(serializeImage(data[i]));\n }\n }\n } else {\n // texture\n url = serializeImage(data);\n }\n\n output.url = url;\n }\n\n if (!isRootObject) {\n meta.images[this.uuid] = output;\n }\n\n return output;\n }\n }]);\n\n return Source;\n}();\n\nfunction serializeImage(image) {\n if (typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement || typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap) {\n // default images\n return ImageUtils.getDataURL(image);\n } else {\n if (image.data) {\n // images of DataTexture\n return {\n data: Array.from(image.data),\n width: image.width,\n height: image.height,\n type: image.data.constructor.name\n };\n } else {\n console.warn('THREE.Texture: Unable to serialize Texture.');\n return {};\n }\n }\n}\n\nvar textureId = 0;\n\nvar Texture = /*#__PURE__*/function (_EventDispatcher) {\n _inherits(Texture, _EventDispatcher);\n\n var _super = _createSuper(Texture);\n\n function Texture() {\n var _this2;\n\n var image = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Texture.DEFAULT_IMAGE;\n var mapping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Texture.DEFAULT_MAPPING;\n var wrapS = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ClampToEdgeWrapping;\n var wrapT = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ClampToEdgeWrapping;\n var magFilter = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : LinearFilter;\n var minFilter = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : LinearMipmapLinearFilter;\n var format = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : RGBAFormat;\n var type = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : UnsignedByteType;\n var anisotropy = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : Texture.DEFAULT_ANISOTROPY;\n var colorSpace = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : NoColorSpace;\n\n _classCallCheck(this, Texture);\n\n _this2 = _super.call(this);\n _this2.isTexture = true;\n Object.defineProperty(_assertThisInitialized(_this2), 'id', {\n value: textureId++\n });\n _this2.uuid = generateUUID();\n _this2.name = '';\n _this2.source = new Source(image);\n _this2.mipmaps = [];\n _this2.mapping = mapping;\n _this2.channel = 0;\n _this2.wrapS = wrapS;\n _this2.wrapT = wrapT;\n _this2.magFilter = magFilter;\n _this2.minFilter = minFilter;\n _this2.anisotropy = anisotropy;\n _this2.format = format;\n _this2.internalFormat = null;\n _this2.type = type;\n _this2.offset = new Vector2(0, 0);\n _this2.repeat = new Vector2(1, 1);\n _this2.center = new Vector2(0, 0);\n _this2.rotation = 0;\n _this2.matrixAutoUpdate = true;\n _this2.matrix = new Matrix3();\n _this2.generateMipmaps = true;\n _this2.premultiplyAlpha = false;\n _this2.flipY = true;\n _this2.unpackAlignment = 4; // valid values: 1, 2, 4, 8 (see http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml)\n\n if (typeof colorSpace === 'string') {\n _this2.colorSpace = colorSpace;\n } else {\n // @deprecated, r152\n warnOnce('THREE.Texture: Property .encoding has been replaced by .colorSpace.');\n _this2.colorSpace = colorSpace === sRGBEncoding ? SRGBColorSpace : NoColorSpace;\n }\n\n _this2.userData = {};\n _this2.version = 0;\n _this2.onUpdate = null;\n _this2.isRenderTargetTexture = false; // indicates whether a texture belongs to a render target or not\n\n _this2.needsPMREMUpdate = false; // indicates whether this texture should be processed by PMREMGenerator or not (only relevant for render target textures)\n\n return _this2;\n }\n\n _createClass(Texture, [{\n key: \"image\",\n get: function get() {\n return this.source.data;\n },\n set: function set(value) {\n if (value === void 0) {\n value = null;\n }\n\n this.source.data = value;\n }\n }, {\n key: \"updateMatrix\",\n value: function updateMatrix() {\n this.matrix.setUvTransform(this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y);\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n this.name = source.name;\n this.source = source.source;\n this.mipmaps = source.mipmaps.slice(0);\n this.mapping = source.mapping;\n this.channel = source.channel;\n this.wrapS = source.wrapS;\n this.wrapT = source.wrapT;\n this.magFilter = source.magFilter;\n this.minFilter = source.minFilter;\n this.anisotropy = source.anisotropy;\n this.format = source.format;\n this.internalFormat = source.internalFormat;\n this.type = source.type;\n this.offset.copy(source.offset);\n this.repeat.copy(source.repeat);\n this.center.copy(source.center);\n this.rotation = source.rotation;\n this.matrixAutoUpdate = source.matrixAutoUpdate;\n this.matrix.copy(source.matrix);\n this.generateMipmaps = source.generateMipmaps;\n this.premultiplyAlpha = source.premultiplyAlpha;\n this.flipY = source.flipY;\n this.unpackAlignment = source.unpackAlignment;\n this.colorSpace = source.colorSpace;\n this.userData = JSON.parse(JSON.stringify(source.userData));\n this.needsUpdate = true;\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON(meta) {\n var isRootObject = meta === undefined || typeof meta === 'string';\n\n if (!isRootObject && meta.textures[this.uuid] !== undefined) {\n return meta.textures[this.uuid];\n }\n\n var output = {\n metadata: {\n version: 4.5,\n type: 'Texture',\n generator: 'Texture.toJSON'\n },\n uuid: this.uuid,\n name: this.name,\n image: this.source.toJSON(meta).uuid,\n mapping: this.mapping,\n channel: this.channel,\n repeat: [this.repeat.x, this.repeat.y],\n offset: [this.offset.x, this.offset.y],\n center: [this.center.x, this.center.y],\n rotation: this.rotation,\n wrap: [this.wrapS, this.wrapT],\n format: this.format,\n internalFormat: this.internalFormat,\n type: this.type,\n colorSpace: this.colorSpace,\n minFilter: this.minFilter,\n magFilter: this.magFilter,\n anisotropy: this.anisotropy,\n flipY: this.flipY,\n generateMipmaps: this.generateMipmaps,\n premultiplyAlpha: this.premultiplyAlpha,\n unpackAlignment: this.unpackAlignment\n };\n if (Object.keys(this.userData).length > 0) output.userData = this.userData;\n\n if (!isRootObject) {\n meta.textures[this.uuid] = output;\n }\n\n return output;\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n this.dispatchEvent({\n type: 'dispose'\n });\n }\n }, {\n key: \"transformUv\",\n value: function transformUv(uv) {\n if (this.mapping !== UVMapping) return uv;\n uv.applyMatrix3(this.matrix);\n\n if (uv.x < 0 || uv.x > 1) {\n switch (this.wrapS) {\n case RepeatWrapping:\n uv.x = uv.x - Math.floor(uv.x);\n break;\n\n case ClampToEdgeWrapping:\n uv.x = uv.x < 0 ? 0 : 1;\n break;\n\n case MirroredRepeatWrapping:\n if (Math.abs(Math.floor(uv.x) % 2) === 1) {\n uv.x = Math.ceil(uv.x) - uv.x;\n } else {\n uv.x = uv.x - Math.floor(uv.x);\n }\n\n break;\n }\n }\n\n if (uv.y < 0 || uv.y > 1) {\n switch (this.wrapT) {\n case RepeatWrapping:\n uv.y = uv.y - Math.floor(uv.y);\n break;\n\n case ClampToEdgeWrapping:\n uv.y = uv.y < 0 ? 0 : 1;\n break;\n\n case MirroredRepeatWrapping:\n if (Math.abs(Math.floor(uv.y) % 2) === 1) {\n uv.y = Math.ceil(uv.y) - uv.y;\n } else {\n uv.y = uv.y - Math.floor(uv.y);\n }\n\n break;\n }\n }\n\n if (this.flipY) {\n uv.y = 1 - uv.y;\n }\n\n return uv;\n }\n }, {\n key: \"needsUpdate\",\n set: function set(value) {\n if (value === true) {\n this.version++;\n this.source.needsUpdate = true;\n }\n }\n }, {\n key: \"encoding\",\n get: function get() {\n // @deprecated, r152\n warnOnce('THREE.Texture: Property .encoding has been replaced by .colorSpace.');\n return this.colorSpace === SRGBColorSpace ? sRGBEncoding : LinearEncoding;\n },\n set: function set(encoding) {\n // @deprecated, r152\n warnOnce('THREE.Texture: Property .encoding has been replaced by .colorSpace.');\n this.colorSpace = encoding === sRGBEncoding ? SRGBColorSpace : NoColorSpace;\n }\n }]);\n\n return Texture;\n}(EventDispatcher);\n\nTexture.DEFAULT_IMAGE = null;\nTexture.DEFAULT_MAPPING = UVMapping;\nTexture.DEFAULT_ANISOTROPY = 1;\n\nvar Vector4 = /*#__PURE__*/function (_Symbol$iterator2) {\n function Vector4() {\n var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var w = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n\n _classCallCheck(this, Vector4);\n\n Vector4.prototype.isVector4 = true;\n this.x = x;\n this.y = y;\n this.z = z;\n this.w = w;\n }\n\n _createClass(Vector4, [{\n key: \"width\",\n get: function get() {\n return this.z;\n },\n set: function set(value) {\n this.z = value;\n }\n }, {\n key: \"height\",\n get: function get() {\n return this.w;\n },\n set: function set(value) {\n this.w = value;\n }\n }, {\n key: \"set\",\n value: function set(x, y, z, w) {\n this.x = x;\n this.y = y;\n this.z = z;\n this.w = w;\n return this;\n }\n }, {\n key: \"setScalar\",\n value: function setScalar(scalar) {\n this.x = scalar;\n this.y = scalar;\n this.z = scalar;\n this.w = scalar;\n return this;\n }\n }, {\n key: \"setX\",\n value: function setX(x) {\n this.x = x;\n return this;\n }\n }, {\n key: \"setY\",\n value: function setY(y) {\n this.y = y;\n return this;\n }\n }, {\n key: \"setZ\",\n value: function setZ(z) {\n this.z = z;\n return this;\n }\n }, {\n key: \"setW\",\n value: function setW(w) {\n this.w = w;\n return this;\n }\n }, {\n key: \"setComponent\",\n value: function setComponent(index, value) {\n switch (index) {\n case 0:\n this.x = value;\n break;\n\n case 1:\n this.y = value;\n break;\n\n case 2:\n this.z = value;\n break;\n\n case 3:\n this.w = value;\n break;\n\n default:\n throw new Error('index is out of range: ' + index);\n }\n\n return this;\n }\n }, {\n key: \"getComponent\",\n value: function getComponent(index) {\n switch (index) {\n case 0:\n return this.x;\n\n case 1:\n return this.y;\n\n case 2:\n return this.z;\n\n case 3:\n return this.w;\n\n default:\n throw new Error('index is out of range: ' + index);\n }\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor(this.x, this.y, this.z, this.w);\n }\n }, {\n key: \"copy\",\n value: function copy(v) {\n this.x = v.x;\n this.y = v.y;\n this.z = v.z;\n this.w = v.w !== undefined ? v.w : 1;\n return this;\n }\n }, {\n key: \"add\",\n value: function add(v) {\n this.x += v.x;\n this.y += v.y;\n this.z += v.z;\n this.w += v.w;\n return this;\n }\n }, {\n key: \"addScalar\",\n value: function addScalar(s) {\n this.x += s;\n this.y += s;\n this.z += s;\n this.w += s;\n return this;\n }\n }, {\n key: \"addVectors\",\n value: function addVectors(a, b) {\n this.x = a.x + b.x;\n this.y = a.y + b.y;\n this.z = a.z + b.z;\n this.w = a.w + b.w;\n return this;\n }\n }, {\n key: \"addScaledVector\",\n value: function addScaledVector(v, s) {\n this.x += v.x * s;\n this.y += v.y * s;\n this.z += v.z * s;\n this.w += v.w * s;\n return this;\n }\n }, {\n key: \"sub\",\n value: function sub(v) {\n this.x -= v.x;\n this.y -= v.y;\n this.z -= v.z;\n this.w -= v.w;\n return this;\n }\n }, {\n key: \"subScalar\",\n value: function subScalar(s) {\n this.x -= s;\n this.y -= s;\n this.z -= s;\n this.w -= s;\n return this;\n }\n }, {\n key: \"subVectors\",\n value: function subVectors(a, b) {\n this.x = a.x - b.x;\n this.y = a.y - b.y;\n this.z = a.z - b.z;\n this.w = a.w - b.w;\n return this;\n }\n }, {\n key: \"multiply\",\n value: function multiply(v) {\n this.x *= v.x;\n this.y *= v.y;\n this.z *= v.z;\n this.w *= v.w;\n return this;\n }\n }, {\n key: \"multiplyScalar\",\n value: function multiplyScalar(scalar) {\n this.x *= scalar;\n this.y *= scalar;\n this.z *= scalar;\n this.w *= scalar;\n return this;\n }\n }, {\n key: \"applyMatrix4\",\n value: function applyMatrix4(m) {\n var x = this.x,\n y = this.y,\n z = this.z,\n w = this.w;\n var e = m.elements;\n this.x = e[0] * x + e[4] * y + e[8] * z + e[12] * w;\n this.y = e[1] * x + e[5] * y + e[9] * z + e[13] * w;\n this.z = e[2] * x + e[6] * y + e[10] * z + e[14] * w;\n this.w = e[3] * x + e[7] * y + e[11] * z + e[15] * w;\n return this;\n }\n }, {\n key: \"divideScalar\",\n value: function divideScalar(scalar) {\n return this.multiplyScalar(1 / scalar);\n }\n }, {\n key: \"setAxisAngleFromQuaternion\",\n value: function setAxisAngleFromQuaternion(q) {\n // http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm\n // q is assumed to be normalized\n this.w = 2 * Math.acos(q.w);\n var s = Math.sqrt(1 - q.w * q.w);\n\n if (s < 0.0001) {\n this.x = 1;\n this.y = 0;\n this.z = 0;\n } else {\n this.x = q.x / s;\n this.y = q.y / s;\n this.z = q.z / s;\n }\n\n return this;\n }\n }, {\n key: \"setAxisAngleFromRotationMatrix\",\n value: function setAxisAngleFromRotationMatrix(m) {\n // http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/index.htm\n // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n var angle, x, y, z; // variables for result\n\n var epsilon = 0.01,\n // margin to allow for rounding errors\n epsilon2 = 0.1,\n // margin to distinguish between 0 and 180 degrees\n te = m.elements,\n m11 = te[0],\n m12 = te[4],\n m13 = te[8],\n m21 = te[1],\n m22 = te[5],\n m23 = te[9],\n m31 = te[2],\n m32 = te[6],\n m33 = te[10];\n\n if (Math.abs(m12 - m21) < epsilon && Math.abs(m13 - m31) < epsilon && Math.abs(m23 - m32) < epsilon) {\n // singularity found\n // first check for identity matrix which must have +1 for all terms\n // in leading diagonal and zero in other terms\n if (Math.abs(m12 + m21) < epsilon2 && Math.abs(m13 + m31) < epsilon2 && Math.abs(m23 + m32) < epsilon2 && Math.abs(m11 + m22 + m33 - 3) < epsilon2) {\n // this singularity is identity matrix so angle = 0\n this.set(1, 0, 0, 0);\n return this; // zero angle, arbitrary axis\n } // otherwise this singularity is angle = 180\n\n\n angle = Math.PI;\n var xx = (m11 + 1) / 2;\n var yy = (m22 + 1) / 2;\n var zz = (m33 + 1) / 2;\n var xy = (m12 + m21) / 4;\n var xz = (m13 + m31) / 4;\n var yz = (m23 + m32) / 4;\n\n if (xx > yy && xx > zz) {\n // m11 is the largest diagonal term\n if (xx < epsilon) {\n x = 0;\n y = 0.707106781;\n z = 0.707106781;\n } else {\n x = Math.sqrt(xx);\n y = xy / x;\n z = xz / x;\n }\n } else if (yy > zz) {\n // m22 is the largest diagonal term\n if (yy < epsilon) {\n x = 0.707106781;\n y = 0;\n z = 0.707106781;\n } else {\n y = Math.sqrt(yy);\n x = xy / y;\n z = yz / y;\n }\n } else {\n // m33 is the largest diagonal term so base result on this\n if (zz < epsilon) {\n x = 0.707106781;\n y = 0.707106781;\n z = 0;\n } else {\n z = Math.sqrt(zz);\n x = xz / z;\n y = yz / z;\n }\n }\n\n this.set(x, y, z, angle);\n return this; // return 180 deg rotation\n } // as we have reached here there are no singularities so we can handle normally\n\n\n var s = Math.sqrt((m32 - m23) * (m32 - m23) + (m13 - m31) * (m13 - m31) + (m21 - m12) * (m21 - m12)); // used to normalize\n\n if (Math.abs(s) < 0.001) s = 1; // prevent divide by zero, should not happen if matrix is orthogonal and should be\n // caught by singularity test above, but I've left it in just in case\n\n this.x = (m32 - m23) / s;\n this.y = (m13 - m31) / s;\n this.z = (m21 - m12) / s;\n this.w = Math.acos((m11 + m22 + m33 - 1) / 2);\n return this;\n }\n }, {\n key: \"min\",\n value: function min(v) {\n this.x = Math.min(this.x, v.x);\n this.y = Math.min(this.y, v.y);\n this.z = Math.min(this.z, v.z);\n this.w = Math.min(this.w, v.w);\n return this;\n }\n }, {\n key: \"max\",\n value: function max(v) {\n this.x = Math.max(this.x, v.x);\n this.y = Math.max(this.y, v.y);\n this.z = Math.max(this.z, v.z);\n this.w = Math.max(this.w, v.w);\n return this;\n }\n }, {\n key: \"clamp\",\n value: function clamp(min, max) {\n // assumes min < max, componentwise\n this.x = Math.max(min.x, Math.min(max.x, this.x));\n this.y = Math.max(min.y, Math.min(max.y, this.y));\n this.z = Math.max(min.z, Math.min(max.z, this.z));\n this.w = Math.max(min.w, Math.min(max.w, this.w));\n return this;\n }\n }, {\n key: \"clampScalar\",\n value: function clampScalar(minVal, maxVal) {\n this.x = Math.max(minVal, Math.min(maxVal, this.x));\n this.y = Math.max(minVal, Math.min(maxVal, this.y));\n this.z = Math.max(minVal, Math.min(maxVal, this.z));\n this.w = Math.max(minVal, Math.min(maxVal, this.w));\n return this;\n }\n }, {\n key: \"clampLength\",\n value: function clampLength(min, max) {\n var length = this.length();\n return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\n }\n }, {\n key: \"floor\",\n value: function floor() {\n this.x = Math.floor(this.x);\n this.y = Math.floor(this.y);\n this.z = Math.floor(this.z);\n this.w = Math.floor(this.w);\n return this;\n }\n }, {\n key: \"ceil\",\n value: function ceil() {\n this.x = Math.ceil(this.x);\n this.y = Math.ceil(this.y);\n this.z = Math.ceil(this.z);\n this.w = Math.ceil(this.w);\n return this;\n }\n }, {\n key: \"round\",\n value: function round() {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n this.z = Math.round(this.z);\n this.w = Math.round(this.w);\n return this;\n }\n }, {\n key: \"roundToZero\",\n value: function roundToZero() {\n this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x);\n this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y);\n this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z);\n this.w = this.w < 0 ? Math.ceil(this.w) : Math.floor(this.w);\n return this;\n }\n }, {\n key: \"negate\",\n value: function negate() {\n this.x = -this.x;\n this.y = -this.y;\n this.z = -this.z;\n this.w = -this.w;\n return this;\n }\n }, {\n key: \"dot\",\n value: function dot(v) {\n return this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\n }\n }, {\n key: \"lengthSq\",\n value: function lengthSq() {\n return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n }\n }, {\n key: \"length\",\n value: function length() {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);\n }\n }, {\n key: \"manhattanLength\",\n value: function manhattanLength() {\n return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z) + Math.abs(this.w);\n }\n }, {\n key: \"normalize\",\n value: function normalize() {\n return this.divideScalar(this.length() || 1);\n }\n }, {\n key: \"setLength\",\n value: function setLength(length) {\n return this.normalize().multiplyScalar(length);\n }\n }, {\n key: \"lerp\",\n value: function lerp(v, alpha) {\n this.x += (v.x - this.x) * alpha;\n this.y += (v.y - this.y) * alpha;\n this.z += (v.z - this.z) * alpha;\n this.w += (v.w - this.w) * alpha;\n return this;\n }\n }, {\n key: \"lerpVectors\",\n value: function lerpVectors(v1, v2, alpha) {\n this.x = v1.x + (v2.x - v1.x) * alpha;\n this.y = v1.y + (v2.y - v1.y) * alpha;\n this.z = v1.z + (v2.z - v1.z) * alpha;\n this.w = v1.w + (v2.w - v1.w) * alpha;\n return this;\n }\n }, {\n key: \"equals\",\n value: function equals(v) {\n return v.x === this.x && v.y === this.y && v.z === this.z && v.w === this.w;\n }\n }, {\n key: \"fromArray\",\n value: function fromArray(array) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n this.x = array[offset];\n this.y = array[offset + 1];\n this.z = array[offset + 2];\n this.w = array[offset + 3];\n return this;\n }\n }, {\n key: \"toArray\",\n value: function toArray() {\n var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n array[offset] = this.x;\n array[offset + 1] = this.y;\n array[offset + 2] = this.z;\n array[offset + 3] = this.w;\n return array;\n }\n }, {\n key: \"fromBufferAttribute\",\n value: function fromBufferAttribute(attribute, index) {\n this.x = attribute.getX(index);\n this.y = attribute.getY(index);\n this.z = attribute.getZ(index);\n this.w = attribute.getW(index);\n return this;\n }\n }, {\n key: \"random\",\n value: function random() {\n this.x = Math.random();\n this.y = Math.random();\n this.z = Math.random();\n this.w = Math.random();\n return this;\n }\n }, {\n key: _Symbol$iterator2,\n value: /*#__PURE__*/_regeneratorRuntime().mark(function value() {\n return _regeneratorRuntime().wrap(function value$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return this.x;\n\n case 2:\n _context3.next = 4;\n return this.y;\n\n case 4:\n _context3.next = 6;\n return this.z;\n\n case 6:\n _context3.next = 8;\n return this.w;\n\n case 8:\n case \"end\":\n return _context3.stop();\n }\n }\n }, value, this);\n })\n }]);\n\n return Vector4;\n}(Symbol.iterator);\n/*\n In options, we can specify:\n * Texture parameters for an auto-generated target texture\n * depthBuffer/stencilBuffer: Booleans to indicate if we should generate these buffers\n*/\n\n\nvar WebGLRenderTarget = /*#__PURE__*/function (_EventDispatcher2) {\n _inherits(WebGLRenderTarget, _EventDispatcher2);\n\n var _super2 = _createSuper(WebGLRenderTarget);\n\n function WebGLRenderTarget() {\n var _this3;\n\n var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n _classCallCheck(this, WebGLRenderTarget);\n\n _this3 = _super2.call(this);\n _this3.isWebGLRenderTarget = true;\n _this3.width = width;\n _this3.height = height;\n _this3.depth = 1;\n _this3.scissor = new Vector4(0, 0, width, height);\n _this3.scissorTest = false;\n _this3.viewport = new Vector4(0, 0, width, height);\n var image = {\n width: width,\n height: height,\n depth: 1\n };\n\n if (options.encoding !== undefined) {\n // @deprecated, r152\n warnOnce('THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace.');\n options.colorSpace = options.encoding === sRGBEncoding ? SRGBColorSpace : NoColorSpace;\n }\n\n _this3.texture = new Texture(image, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace);\n _this3.texture.isRenderTargetTexture = true;\n _this3.texture.flipY = false;\n _this3.texture.generateMipmaps = options.generateMipmaps !== undefined ? options.generateMipmaps : false;\n _this3.texture.internalFormat = options.internalFormat !== undefined ? options.internalFormat : null;\n _this3.texture.minFilter = options.minFilter !== undefined ? options.minFilter : LinearFilter;\n _this3.depthBuffer = options.depthBuffer !== undefined ? options.depthBuffer : true;\n _this3.stencilBuffer = options.stencilBuffer !== undefined ? options.stencilBuffer : false;\n _this3.depthTexture = options.depthTexture !== undefined ? options.depthTexture : null;\n _this3.samples = options.samples !== undefined ? options.samples : 0;\n return _this3;\n }\n\n _createClass(WebGLRenderTarget, [{\n key: \"setSize\",\n value: function setSize(width, height) {\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n if (this.width !== width || this.height !== height || this.depth !== depth) {\n this.width = width;\n this.height = height;\n this.depth = depth;\n this.texture.image.width = width;\n this.texture.image.height = height;\n this.texture.image.depth = depth;\n this.dispose();\n }\n\n this.viewport.set(0, 0, width, height);\n this.scissor.set(0, 0, width, height);\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n this.width = source.width;\n this.height = source.height;\n this.depth = source.depth;\n this.scissor.copy(source.scissor);\n this.scissorTest = source.scissorTest;\n this.viewport.copy(source.viewport);\n this.texture = source.texture.clone();\n this.texture.isRenderTargetTexture = true; // ensure image object is not shared, see #20328\n\n var image = Object.assign({}, source.texture.image);\n this.texture.source = new Source(image);\n this.depthBuffer = source.depthBuffer;\n this.stencilBuffer = source.stencilBuffer;\n if (source.depthTexture !== null) this.depthTexture = source.depthTexture.clone();\n this.samples = source.samples;\n return this;\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n this.dispatchEvent({\n type: 'dispose'\n });\n }\n }]);\n\n return WebGLRenderTarget;\n}(EventDispatcher);\n\nvar DataArrayTexture = /*#__PURE__*/function (_Texture) {\n _inherits(DataArrayTexture, _Texture);\n\n var _super3 = _createSuper(DataArrayTexture);\n\n function DataArrayTexture() {\n var _this4;\n\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var width = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var height = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var depth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n\n _classCallCheck(this, DataArrayTexture);\n\n _this4 = _super3.call(this, null);\n _this4.isDataArrayTexture = true;\n _this4.image = {\n data: data,\n width: width,\n height: height,\n depth: depth\n };\n _this4.magFilter = NearestFilter;\n _this4.minFilter = NearestFilter;\n _this4.wrapR = ClampToEdgeWrapping;\n _this4.generateMipmaps = false;\n _this4.flipY = false;\n _this4.unpackAlignment = 1;\n return _this4;\n }\n\n return _createClass(DataArrayTexture);\n}(Texture);\n\nvar WebGLArrayRenderTarget = /*#__PURE__*/function (_WebGLRenderTarget) {\n _inherits(WebGLArrayRenderTarget, _WebGLRenderTarget);\n\n var _super4 = _createSuper(WebGLArrayRenderTarget);\n\n function WebGLArrayRenderTarget() {\n var _this5;\n\n var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n _classCallCheck(this, WebGLArrayRenderTarget);\n\n _this5 = _super4.call(this, width, height);\n _this5.isWebGLArrayRenderTarget = true;\n _this5.depth = depth;\n _this5.texture = new DataArrayTexture(null, width, height, depth);\n _this5.texture.isRenderTargetTexture = true;\n return _this5;\n }\n\n return _createClass(WebGLArrayRenderTarget);\n}(WebGLRenderTarget);\n\nvar Data3DTexture = /*#__PURE__*/function (_Texture2) {\n _inherits(Data3DTexture, _Texture2);\n\n var _super5 = _createSuper(Data3DTexture);\n\n function Data3DTexture() {\n var _this6;\n\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var width = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var height = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var depth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n\n _classCallCheck(this, Data3DTexture);\n\n // We're going to add .setXXX() methods for setting properties later.\n // Users can still set in DataTexture3D directly.\n //\n //\tconst texture = new THREE.DataTexture3D( data, width, height, depth );\n // \ttexture.anisotropy = 16;\n //\n // See #14839\n _this6 = _super5.call(this, null);\n _this6.isData3DTexture = true;\n _this6.image = {\n data: data,\n width: width,\n height: height,\n depth: depth\n };\n _this6.magFilter = NearestFilter;\n _this6.minFilter = NearestFilter;\n _this6.wrapR = ClampToEdgeWrapping;\n _this6.generateMipmaps = false;\n _this6.flipY = false;\n _this6.unpackAlignment = 1;\n return _this6;\n }\n\n return _createClass(Data3DTexture);\n}(Texture);\n\nvar WebGL3DRenderTarget = /*#__PURE__*/function (_WebGLRenderTarget2) {\n _inherits(WebGL3DRenderTarget, _WebGLRenderTarget2);\n\n var _super6 = _createSuper(WebGL3DRenderTarget);\n\n function WebGL3DRenderTarget() {\n var _this7;\n\n var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n _classCallCheck(this, WebGL3DRenderTarget);\n\n _this7 = _super6.call(this, width, height);\n _this7.isWebGL3DRenderTarget = true;\n _this7.depth = depth;\n _this7.texture = new Data3DTexture(null, width, height, depth);\n _this7.texture.isRenderTargetTexture = true;\n return _this7;\n }\n\n return _createClass(WebGL3DRenderTarget);\n}(WebGLRenderTarget);\n\nvar WebGLMultipleRenderTargets = /*#__PURE__*/function (_WebGLRenderTarget3) {\n _inherits(WebGLMultipleRenderTargets, _WebGLRenderTarget3);\n\n var _super7 = _createSuper(WebGLMultipleRenderTargets);\n\n function WebGLMultipleRenderTargets() {\n var _this8;\n\n var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var count = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, WebGLMultipleRenderTargets);\n\n _this8 = _super7.call(this, width, height, options);\n _this8.isWebGLMultipleRenderTargets = true;\n var texture = _this8.texture;\n _this8.texture = [];\n\n for (var i = 0; i < count; i++) {\n _this8.texture[i] = texture.clone();\n _this8.texture[i].isRenderTargetTexture = true;\n }\n\n return _this8;\n }\n\n _createClass(WebGLMultipleRenderTargets, [{\n key: \"setSize\",\n value: function setSize(width, height) {\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n if (this.width !== width || this.height !== height || this.depth !== depth) {\n this.width = width;\n this.height = height;\n this.depth = depth;\n\n for (var i = 0, il = this.texture.length; i < il; i++) {\n this.texture[i].image.width = width;\n this.texture[i].image.height = height;\n this.texture[i].image.depth = depth;\n }\n\n this.dispose();\n }\n\n this.viewport.set(0, 0, width, height);\n this.scissor.set(0, 0, width, height);\n return this;\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n this.dispose();\n this.width = source.width;\n this.height = source.height;\n this.depth = source.depth;\n this.scissor.copy(source.scissor);\n this.scissorTest = source.scissorTest;\n this.viewport.copy(source.viewport);\n this.depthBuffer = source.depthBuffer;\n this.stencilBuffer = source.stencilBuffer;\n if (source.depthTexture !== null) this.depthTexture = source.depthTexture.clone();\n this.texture.length = 0;\n\n for (var i = 0, il = source.texture.length; i < il; i++) {\n this.texture[i] = source.texture[i].clone();\n this.texture[i].isRenderTargetTexture = true;\n }\n\n return this;\n }\n }]);\n\n return WebGLMultipleRenderTargets;\n}(WebGLRenderTarget);\n\nvar Quaternion = /*#__PURE__*/function (_Symbol$iterator3) {\n function Quaternion() {\n var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var w = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n\n _classCallCheck(this, Quaternion);\n\n this.isQuaternion = true;\n this._x = x;\n this._y = y;\n this._z = z;\n this._w = w;\n }\n\n _createClass(Quaternion, [{\n key: \"x\",\n get: function get() {\n return this._x;\n },\n set: function set(value) {\n this._x = value;\n\n this._onChangeCallback();\n }\n }, {\n key: \"y\",\n get: function get() {\n return this._y;\n },\n set: function set(value) {\n this._y = value;\n\n this._onChangeCallback();\n }\n }, {\n key: \"z\",\n get: function get() {\n return this._z;\n },\n set: function set(value) {\n this._z = value;\n\n this._onChangeCallback();\n }\n }, {\n key: \"w\",\n get: function get() {\n return this._w;\n },\n set: function set(value) {\n this._w = value;\n\n this._onChangeCallback();\n }\n }, {\n key: \"set\",\n value: function set(x, y, z, w) {\n this._x = x;\n this._y = y;\n this._z = z;\n this._w = w;\n\n this._onChangeCallback();\n\n return this;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor(this._x, this._y, this._z, this._w);\n }\n }, {\n key: \"copy\",\n value: function copy(quaternion) {\n this._x = quaternion.x;\n this._y = quaternion.y;\n this._z = quaternion.z;\n this._w = quaternion.w;\n\n this._onChangeCallback();\n\n return this;\n }\n }, {\n key: \"setFromEuler\",\n value: function setFromEuler(euler, update) {\n var x = euler._x,\n y = euler._y,\n z = euler._z,\n order = euler._order; // http://www.mathworks.com/matlabcentral/fileexchange/\n // \t20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/\n //\tcontent/SpinCalc.m\n\n var cos = Math.cos;\n var sin = Math.sin;\n var c1 = cos(x / 2);\n var c2 = cos(y / 2);\n var c3 = cos(z / 2);\n var s1 = sin(x / 2);\n var s2 = sin(y / 2);\n var s3 = sin(z / 2);\n\n switch (order) {\n case 'XYZ':\n this._x = s1 * c2 * c3 + c1 * s2 * s3;\n this._y = c1 * s2 * c3 - s1 * c2 * s3;\n this._z = c1 * c2 * s3 + s1 * s2 * c3;\n this._w = c1 * c2 * c3 - s1 * s2 * s3;\n break;\n\n case 'YXZ':\n this._x = s1 * c2 * c3 + c1 * s2 * s3;\n this._y = c1 * s2 * c3 - s1 * c2 * s3;\n this._z = c1 * c2 * s3 - s1 * s2 * c3;\n this._w = c1 * c2 * c3 + s1 * s2 * s3;\n break;\n\n case 'ZXY':\n this._x = s1 * c2 * c3 - c1 * s2 * s3;\n this._y = c1 * s2 * c3 + s1 * c2 * s3;\n this._z = c1 * c2 * s3 + s1 * s2 * c3;\n this._w = c1 * c2 * c3 - s1 * s2 * s3;\n break;\n\n case 'ZYX':\n this._x = s1 * c2 * c3 - c1 * s2 * s3;\n this._y = c1 * s2 * c3 + s1 * c2 * s3;\n this._z = c1 * c2 * s3 - s1 * s2 * c3;\n this._w = c1 * c2 * c3 + s1 * s2 * s3;\n break;\n\n case 'YZX':\n this._x = s1 * c2 * c3 + c1 * s2 * s3;\n this._y = c1 * s2 * c3 + s1 * c2 * s3;\n this._z = c1 * c2 * s3 - s1 * s2 * c3;\n this._w = c1 * c2 * c3 - s1 * s2 * s3;\n break;\n\n case 'XZY':\n this._x = s1 * c2 * c3 - c1 * s2 * s3;\n this._y = c1 * s2 * c3 - s1 * c2 * s3;\n this._z = c1 * c2 * s3 + s1 * s2 * c3;\n this._w = c1 * c2 * c3 + s1 * s2 * s3;\n break;\n\n default:\n console.warn('THREE.Quaternion: .setFromEuler() encountered an unknown order: ' + order);\n }\n\n if (update !== false) this._onChangeCallback();\n return this;\n }\n }, {\n key: \"setFromAxisAngle\",\n value: function setFromAxisAngle(axis, angle) {\n // http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm\n // assumes axis is normalized\n var halfAngle = angle / 2,\n s = Math.sin(halfAngle);\n this._x = axis.x * s;\n this._y = axis.y * s;\n this._z = axis.z * s;\n this._w = Math.cos(halfAngle);\n\n this._onChangeCallback();\n\n return this;\n }\n }, {\n key: \"setFromRotationMatrix\",\n value: function setFromRotationMatrix(m) {\n // http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm\n // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n var te = m.elements,\n m11 = te[0],\n m12 = te[4],\n m13 = te[8],\n m21 = te[1],\n m22 = te[5],\n m23 = te[9],\n m31 = te[2],\n m32 = te[6],\n m33 = te[10],\n trace = m11 + m22 + m33;\n\n if (trace > 0) {\n var s = 0.5 / Math.sqrt(trace + 1.0);\n this._w = 0.25 / s;\n this._x = (m32 - m23) * s;\n this._y = (m13 - m31) * s;\n this._z = (m21 - m12) * s;\n } else if (m11 > m22 && m11 > m33) {\n var _s = 2.0 * Math.sqrt(1.0 + m11 - m22 - m33);\n\n this._w = (m32 - m23) / _s;\n this._x = 0.25 * _s;\n this._y = (m12 + m21) / _s;\n this._z = (m13 + m31) / _s;\n } else if (m22 > m33) {\n var _s2 = 2.0 * Math.sqrt(1.0 + m22 - m11 - m33);\n\n this._w = (m13 - m31) / _s2;\n this._x = (m12 + m21) / _s2;\n this._y = 0.25 * _s2;\n this._z = (m23 + m32) / _s2;\n } else {\n var _s3 = 2.0 * Math.sqrt(1.0 + m33 - m11 - m22);\n\n this._w = (m21 - m12) / _s3;\n this._x = (m13 + m31) / _s3;\n this._y = (m23 + m32) / _s3;\n this._z = 0.25 * _s3;\n }\n\n this._onChangeCallback();\n\n return this;\n }\n }, {\n key: \"setFromUnitVectors\",\n value: function setFromUnitVectors(vFrom, vTo) {\n // assumes direction vectors vFrom and vTo are normalized\n var r = vFrom.dot(vTo) + 1;\n\n if (r < Number.EPSILON) {\n // vFrom and vTo point in opposite directions\n r = 0;\n\n if (Math.abs(vFrom.x) > Math.abs(vFrom.z)) {\n this._x = -vFrom.y;\n this._y = vFrom.x;\n this._z = 0;\n this._w = r;\n } else {\n this._x = 0;\n this._y = -vFrom.z;\n this._z = vFrom.y;\n this._w = r;\n }\n } else {\n // crossVectors( vFrom, vTo ); // inlined to avoid cyclic dependency on Vector3\n this._x = vFrom.y * vTo.z - vFrom.z * vTo.y;\n this._y = vFrom.z * vTo.x - vFrom.x * vTo.z;\n this._z = vFrom.x * vTo.y - vFrom.y * vTo.x;\n this._w = r;\n }\n\n return this.normalize();\n }\n }, {\n key: \"angleTo\",\n value: function angleTo(q) {\n return 2 * Math.acos(Math.abs(clamp(this.dot(q), -1, 1)));\n }\n }, {\n key: \"rotateTowards\",\n value: function rotateTowards(q, step) {\n var angle = this.angleTo(q);\n if (angle === 0) return this;\n var t = Math.min(1, step / angle);\n this.slerp(q, t);\n return this;\n }\n }, {\n key: \"identity\",\n value: function identity() {\n return this.set(0, 0, 0, 1);\n }\n }, {\n key: \"invert\",\n value: function invert() {\n // quaternion is assumed to have unit length\n return this.conjugate();\n }\n }, {\n key: \"conjugate\",\n value: function conjugate() {\n this._x *= -1;\n this._y *= -1;\n this._z *= -1;\n\n this._onChangeCallback();\n\n return this;\n }\n }, {\n key: \"dot\",\n value: function dot(v) {\n return this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w;\n }\n }, {\n key: \"lengthSq\",\n value: function lengthSq() {\n return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\n }\n }, {\n key: \"length\",\n value: function length() {\n return Math.sqrt(this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w);\n }\n }, {\n key: \"normalize\",\n value: function normalize() {\n var l = this.length();\n\n if (l === 0) {\n this._x = 0;\n this._y = 0;\n this._z = 0;\n this._w = 1;\n } else {\n l = 1 / l;\n this._x = this._x * l;\n this._y = this._y * l;\n this._z = this._z * l;\n this._w = this._w * l;\n }\n\n this._onChangeCallback();\n\n return this;\n }\n }, {\n key: \"multiply\",\n value: function multiply(q) {\n return this.multiplyQuaternions(this, q);\n }\n }, {\n key: \"premultiply\",\n value: function premultiply(q) {\n return this.multiplyQuaternions(q, this);\n }\n }, {\n key: \"multiplyQuaternions\",\n value: function multiplyQuaternions(a, b) {\n // from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm\n var qax = a._x,\n qay = a._y,\n qaz = a._z,\n qaw = a._w;\n var qbx = b._x,\n qby = b._y,\n qbz = b._z,\n qbw = b._w;\n this._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n this._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n this._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n this._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n\n this._onChangeCallback();\n\n return this;\n }\n }, {\n key: \"slerp\",\n value: function slerp(qb, t) {\n if (t === 0) return this;\n if (t === 1) return this.copy(qb);\n var x = this._x,\n y = this._y,\n z = this._z,\n w = this._w; // http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/\n\n var cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z;\n\n if (cosHalfTheta < 0) {\n this._w = -qb._w;\n this._x = -qb._x;\n this._y = -qb._y;\n this._z = -qb._z;\n cosHalfTheta = -cosHalfTheta;\n } else {\n this.copy(qb);\n }\n\n if (cosHalfTheta >= 1.0) {\n this._w = w;\n this._x = x;\n this._y = y;\n this._z = z;\n return this;\n }\n\n var sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta;\n\n if (sqrSinHalfTheta <= Number.EPSILON) {\n var s = 1 - t;\n this._w = s * w + t * this._w;\n this._x = s * x + t * this._x;\n this._y = s * y + t * this._y;\n this._z = s * z + t * this._z;\n this.normalize();\n\n this._onChangeCallback();\n\n return this;\n }\n\n var sinHalfTheta = Math.sqrt(sqrSinHalfTheta);\n var halfTheta = Math.atan2(sinHalfTheta, cosHalfTheta);\n var ratioA = Math.sin((1 - t) * halfTheta) / sinHalfTheta,\n ratioB = Math.sin(t * halfTheta) / sinHalfTheta;\n this._w = w * ratioA + this._w * ratioB;\n this._x = x * ratioA + this._x * ratioB;\n this._y = y * ratioA + this._y * ratioB;\n this._z = z * ratioA + this._z * ratioB;\n\n this._onChangeCallback();\n\n return this;\n }\n }, {\n key: \"slerpQuaternions\",\n value: function slerpQuaternions(qa, qb, t) {\n return this.copy(qa).slerp(qb, t);\n }\n }, {\n key: \"random\",\n value: function random() {\n // Derived from http://planning.cs.uiuc.edu/node198.html\n // Note, this source uses w, x, y, z ordering,\n // so we swap the order below.\n var u1 = Math.random();\n var sqrt1u1 = Math.sqrt(1 - u1);\n var sqrtu1 = Math.sqrt(u1);\n var u2 = 2 * Math.PI * Math.random();\n var u3 = 2 * Math.PI * Math.random();\n return this.set(sqrt1u1 * Math.cos(u2), sqrtu1 * Math.sin(u3), sqrtu1 * Math.cos(u3), sqrt1u1 * Math.sin(u2));\n }\n }, {\n key: \"equals\",\n value: function equals(quaternion) {\n return quaternion._x === this._x && quaternion._y === this._y && quaternion._z === this._z && quaternion._w === this._w;\n }\n }, {\n key: \"fromArray\",\n value: function fromArray(array) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n this._x = array[offset];\n this._y = array[offset + 1];\n this._z = array[offset + 2];\n this._w = array[offset + 3];\n\n this._onChangeCallback();\n\n return this;\n }\n }, {\n key: \"toArray\",\n value: function toArray() {\n var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n array[offset] = this._x;\n array[offset + 1] = this._y;\n array[offset + 2] = this._z;\n array[offset + 3] = this._w;\n return array;\n }\n }, {\n key: \"fromBufferAttribute\",\n value: function fromBufferAttribute(attribute, index) {\n this._x = attribute.getX(index);\n this._y = attribute.getY(index);\n this._z = attribute.getZ(index);\n this._w = attribute.getW(index);\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.toArray();\n }\n }, {\n key: \"_onChange\",\n value: function _onChange(callback) {\n this._onChangeCallback = callback;\n return this;\n }\n }, {\n key: \"_onChangeCallback\",\n value: function _onChangeCallback() {}\n }, {\n key: _Symbol$iterator3,\n value: /*#__PURE__*/_regeneratorRuntime().mark(function value() {\n return _regeneratorRuntime().wrap(function value$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return this._x;\n\n case 2:\n _context4.next = 4;\n return this._y;\n\n case 4:\n _context4.next = 6;\n return this._z;\n\n case 6:\n _context4.next = 8;\n return this._w;\n\n case 8:\n case \"end\":\n return _context4.stop();\n }\n }\n }, value, this);\n })\n }], [{\n key: \"slerpFlat\",\n value: function slerpFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t) {\n // fuzz-free, array-based Quaternion SLERP operation\n var x0 = src0[srcOffset0 + 0],\n y0 = src0[srcOffset0 + 1],\n z0 = src0[srcOffset0 + 2],\n w0 = src0[srcOffset0 + 3];\n var x1 = src1[srcOffset1 + 0],\n y1 = src1[srcOffset1 + 1],\n z1 = src1[srcOffset1 + 2],\n w1 = src1[srcOffset1 + 3];\n\n if (t === 0) {\n dst[dstOffset + 0] = x0;\n dst[dstOffset + 1] = y0;\n dst[dstOffset + 2] = z0;\n dst[dstOffset + 3] = w0;\n return;\n }\n\n if (t === 1) {\n dst[dstOffset + 0] = x1;\n dst[dstOffset + 1] = y1;\n dst[dstOffset + 2] = z1;\n dst[dstOffset + 3] = w1;\n return;\n }\n\n if (w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1) {\n var s = 1 - t;\n var cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1,\n dir = cos >= 0 ? 1 : -1,\n sqrSin = 1 - cos * cos; // Skip the Slerp for tiny steps to avoid numeric problems:\n\n if (sqrSin > Number.EPSILON) {\n var sin = Math.sqrt(sqrSin),\n len = Math.atan2(sin, cos * dir);\n s = Math.sin(s * len) / sin;\n t = Math.sin(t * len) / sin;\n }\n\n var tDir = t * dir;\n x0 = x0 * s + x1 * tDir;\n y0 = y0 * s + y1 * tDir;\n z0 = z0 * s + z1 * tDir;\n w0 = w0 * s + w1 * tDir; // Normalize in case we just did a lerp:\n\n if (s === 1 - t) {\n var f = 1 / Math.sqrt(x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0);\n x0 *= f;\n y0 *= f;\n z0 *= f;\n w0 *= f;\n }\n }\n\n dst[dstOffset] = x0;\n dst[dstOffset + 1] = y0;\n dst[dstOffset + 2] = z0;\n dst[dstOffset + 3] = w0;\n }\n }, {\n key: \"multiplyQuaternionsFlat\",\n value: function multiplyQuaternionsFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1) {\n var x0 = src0[srcOffset0];\n var y0 = src0[srcOffset0 + 1];\n var z0 = src0[srcOffset0 + 2];\n var w0 = src0[srcOffset0 + 3];\n var x1 = src1[srcOffset1];\n var y1 = src1[srcOffset1 + 1];\n var z1 = src1[srcOffset1 + 2];\n var w1 = src1[srcOffset1 + 3];\n dst[dstOffset] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1;\n dst[dstOffset + 1] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1;\n dst[dstOffset + 2] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1;\n dst[dstOffset + 3] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1;\n return dst;\n }\n }]);\n\n return Quaternion;\n}(Symbol.iterator);\n\nvar Vector3 = /*#__PURE__*/function (_Symbol$iterator4) {\n function Vector3() {\n var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n _classCallCheck(this, Vector3);\n\n Vector3.prototype.isVector3 = true;\n this.x = x;\n this.y = y;\n this.z = z;\n }\n\n _createClass(Vector3, [{\n key: \"set\",\n value: function set(x, y, z) {\n if (z === undefined) z = this.z; // sprite.scale.set(x,y)\n\n this.x = x;\n this.y = y;\n this.z = z;\n return this;\n }\n }, {\n key: \"setScalar\",\n value: function setScalar(scalar) {\n this.x = scalar;\n this.y = scalar;\n this.z = scalar;\n return this;\n }\n }, {\n key: \"setX\",\n value: function setX(x) {\n this.x = x;\n return this;\n }\n }, {\n key: \"setY\",\n value: function setY(y) {\n this.y = y;\n return this;\n }\n }, {\n key: \"setZ\",\n value: function setZ(z) {\n this.z = z;\n return this;\n }\n }, {\n key: \"setComponent\",\n value: function setComponent(index, value) {\n switch (index) {\n case 0:\n this.x = value;\n break;\n\n case 1:\n this.y = value;\n break;\n\n case 2:\n this.z = value;\n break;\n\n default:\n throw new Error('index is out of range: ' + index);\n }\n\n return this;\n }\n }, {\n key: \"getComponent\",\n value: function getComponent(index) {\n switch (index) {\n case 0:\n return this.x;\n\n case 1:\n return this.y;\n\n case 2:\n return this.z;\n\n default:\n throw new Error('index is out of range: ' + index);\n }\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor(this.x, this.y, this.z);\n }\n }, {\n key: \"copy\",\n value: function copy(v) {\n this.x = v.x;\n this.y = v.y;\n this.z = v.z;\n return this;\n }\n }, {\n key: \"add\",\n value: function add(v) {\n this.x += v.x;\n this.y += v.y;\n this.z += v.z;\n return this;\n }\n }, {\n key: \"addScalar\",\n value: function addScalar(s) {\n this.x += s;\n this.y += s;\n this.z += s;\n return this;\n }\n }, {\n key: \"addVectors\",\n value: function addVectors(a, b) {\n this.x = a.x + b.x;\n this.y = a.y + b.y;\n this.z = a.z + b.z;\n return this;\n }\n }, {\n key: \"addScaledVector\",\n value: function addScaledVector(v, s) {\n this.x += v.x * s;\n this.y += v.y * s;\n this.z += v.z * s;\n return this;\n }\n }, {\n key: \"sub\",\n value: function sub(v) {\n this.x -= v.x;\n this.y -= v.y;\n this.z -= v.z;\n return this;\n }\n }, {\n key: \"subScalar\",\n value: function subScalar(s) {\n this.x -= s;\n this.y -= s;\n this.z -= s;\n return this;\n }\n }, {\n key: \"subVectors\",\n value: function subVectors(a, b) {\n this.x = a.x - b.x;\n this.y = a.y - b.y;\n this.z = a.z - b.z;\n return this;\n }\n }, {\n key: \"multiply\",\n value: function multiply(v) {\n this.x *= v.x;\n this.y *= v.y;\n this.z *= v.z;\n return this;\n }\n }, {\n key: \"multiplyScalar\",\n value: function multiplyScalar(scalar) {\n this.x *= scalar;\n this.y *= scalar;\n this.z *= scalar;\n return this;\n }\n }, {\n key: \"multiplyVectors\",\n value: function multiplyVectors(a, b) {\n this.x = a.x * b.x;\n this.y = a.y * b.y;\n this.z = a.z * b.z;\n return this;\n }\n }, {\n key: \"applyEuler\",\n value: function applyEuler(euler) {\n return this.applyQuaternion(_quaternion$4.setFromEuler(euler));\n }\n }, {\n key: \"applyAxisAngle\",\n value: function applyAxisAngle(axis, angle) {\n return this.applyQuaternion(_quaternion$4.setFromAxisAngle(axis, angle));\n }\n }, {\n key: \"applyMatrix3\",\n value: function applyMatrix3(m) {\n var x = this.x,\n y = this.y,\n z = this.z;\n var e = m.elements;\n this.x = e[0] * x + e[3] * y + e[6] * z;\n this.y = e[1] * x + e[4] * y + e[7] * z;\n this.z = e[2] * x + e[5] * y + e[8] * z;\n return this;\n }\n }, {\n key: \"applyNormalMatrix\",\n value: function applyNormalMatrix(m) {\n return this.applyMatrix3(m).normalize();\n }\n }, {\n key: \"applyMatrix4\",\n value: function applyMatrix4(m) {\n var x = this.x,\n y = this.y,\n z = this.z;\n var e = m.elements;\n var w = 1 / (e[3] * x + e[7] * y + e[11] * z + e[15]);\n this.x = (e[0] * x + e[4] * y + e[8] * z + e[12]) * w;\n this.y = (e[1] * x + e[5] * y + e[9] * z + e[13]) * w;\n this.z = (e[2] * x + e[6] * y + e[10] * z + e[14]) * w;\n return this;\n }\n }, {\n key: \"applyQuaternion\",\n value: function applyQuaternion(q) {\n var x = this.x,\n y = this.y,\n z = this.z;\n var qx = q.x,\n qy = q.y,\n qz = q.z,\n qw = q.w; // calculate quat * vector\n\n var ix = qw * x + qy * z - qz * y;\n var iy = qw * y + qz * x - qx * z;\n var iz = qw * z + qx * y - qy * x;\n var iw = -qx * x - qy * y - qz * z; // calculate result * inverse quat\n\n this.x = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n this.y = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n this.z = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n return this;\n }\n }, {\n key: \"project\",\n value: function project(camera) {\n return this.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(camera.projectionMatrix);\n }\n }, {\n key: \"unproject\",\n value: function unproject(camera) {\n return this.applyMatrix4(camera.projectionMatrixInverse).applyMatrix4(camera.matrixWorld);\n }\n }, {\n key: \"transformDirection\",\n value: function transformDirection(m) {\n // input: THREE.Matrix4 affine matrix\n // vector interpreted as a direction\n var x = this.x,\n y = this.y,\n z = this.z;\n var e = m.elements;\n this.x = e[0] * x + e[4] * y + e[8] * z;\n this.y = e[1] * x + e[5] * y + e[9] * z;\n this.z = e[2] * x + e[6] * y + e[10] * z;\n return this.normalize();\n }\n }, {\n key: \"divide\",\n value: function divide(v) {\n this.x /= v.x;\n this.y /= v.y;\n this.z /= v.z;\n return this;\n }\n }, {\n key: \"divideScalar\",\n value: function divideScalar(scalar) {\n return this.multiplyScalar(1 / scalar);\n }\n }, {\n key: \"min\",\n value: function min(v) {\n this.x = Math.min(this.x, v.x);\n this.y = Math.min(this.y, v.y);\n this.z = Math.min(this.z, v.z);\n return this;\n }\n }, {\n key: \"max\",\n value: function max(v) {\n this.x = Math.max(this.x, v.x);\n this.y = Math.max(this.y, v.y);\n this.z = Math.max(this.z, v.z);\n return this;\n }\n }, {\n key: \"clamp\",\n value: function clamp(min, max) {\n // assumes min < max, componentwise\n this.x = Math.max(min.x, Math.min(max.x, this.x));\n this.y = Math.max(min.y, Math.min(max.y, this.y));\n this.z = Math.max(min.z, Math.min(max.z, this.z));\n return this;\n }\n }, {\n key: \"clampScalar\",\n value: function clampScalar(minVal, maxVal) {\n this.x = Math.max(minVal, Math.min(maxVal, this.x));\n this.y = Math.max(minVal, Math.min(maxVal, this.y));\n this.z = Math.max(minVal, Math.min(maxVal, this.z));\n return this;\n }\n }, {\n key: \"clampLength\",\n value: function clampLength(min, max) {\n var length = this.length();\n return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\n }\n }, {\n key: \"floor\",\n value: function floor() {\n this.x = Math.floor(this.x);\n this.y = Math.floor(this.y);\n this.z = Math.floor(this.z);\n return this;\n }\n }, {\n key: \"ceil\",\n value: function ceil() {\n this.x = Math.ceil(this.x);\n this.y = Math.ceil(this.y);\n this.z = Math.ceil(this.z);\n return this;\n }\n }, {\n key: \"round\",\n value: function round() {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n this.z = Math.round(this.z);\n return this;\n }\n }, {\n key: \"roundToZero\",\n value: function roundToZero() {\n this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x);\n this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y);\n this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z);\n return this;\n }\n }, {\n key: \"negate\",\n value: function negate() {\n this.x = -this.x;\n this.y = -this.y;\n this.z = -this.z;\n return this;\n }\n }, {\n key: \"dot\",\n value: function dot(v) {\n return this.x * v.x + this.y * v.y + this.z * v.z;\n } // TODO lengthSquared?\n\n }, {\n key: \"lengthSq\",\n value: function lengthSq() {\n return this.x * this.x + this.y * this.y + this.z * this.z;\n }\n }, {\n key: \"length\",\n value: function length() {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\n }\n }, {\n key: \"manhattanLength\",\n value: function manhattanLength() {\n return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z);\n }\n }, {\n key: \"normalize\",\n value: function normalize() {\n return this.divideScalar(this.length() || 1);\n }\n }, {\n key: \"setLength\",\n value: function setLength(length) {\n return this.normalize().multiplyScalar(length);\n }\n }, {\n key: \"lerp\",\n value: function lerp(v, alpha) {\n this.x += (v.x - this.x) * alpha;\n this.y += (v.y - this.y) * alpha;\n this.z += (v.z - this.z) * alpha;\n return this;\n }\n }, {\n key: \"lerpVectors\",\n value: function lerpVectors(v1, v2, alpha) {\n this.x = v1.x + (v2.x - v1.x) * alpha;\n this.y = v1.y + (v2.y - v1.y) * alpha;\n this.z = v1.z + (v2.z - v1.z) * alpha;\n return this;\n }\n }, {\n key: \"cross\",\n value: function cross(v) {\n return this.crossVectors(this, v);\n }\n }, {\n key: \"crossVectors\",\n value: function crossVectors(a, b) {\n var ax = a.x,\n ay = a.y,\n az = a.z;\n var bx = b.x,\n by = b.y,\n bz = b.z;\n this.x = ay * bz - az * by;\n this.y = az * bx - ax * bz;\n this.z = ax * by - ay * bx;\n return this;\n }\n }, {\n key: \"projectOnVector\",\n value: function projectOnVector(v) {\n var denominator = v.lengthSq();\n if (denominator === 0) return this.set(0, 0, 0);\n var scalar = v.dot(this) / denominator;\n return this.copy(v).multiplyScalar(scalar);\n }\n }, {\n key: \"projectOnPlane\",\n value: function projectOnPlane(planeNormal) {\n _vector$b.copy(this).projectOnVector(planeNormal);\n\n return this.sub(_vector$b);\n }\n }, {\n key: \"reflect\",\n value: function reflect(normal) {\n // reflect incident vector off plane orthogonal to normal\n // normal is assumed to have unit length\n return this.sub(_vector$b.copy(normal).multiplyScalar(2 * this.dot(normal)));\n }\n }, {\n key: \"angleTo\",\n value: function angleTo(v) {\n var denominator = Math.sqrt(this.lengthSq() * v.lengthSq());\n if (denominator === 0) return Math.PI / 2;\n var theta = this.dot(v) / denominator; // clamp, to handle numerical problems\n\n return Math.acos(clamp(theta, -1, 1));\n }\n }, {\n key: \"distanceTo\",\n value: function distanceTo(v) {\n return Math.sqrt(this.distanceToSquared(v));\n }\n }, {\n key: \"distanceToSquared\",\n value: function distanceToSquared(v) {\n var dx = this.x - v.x,\n dy = this.y - v.y,\n dz = this.z - v.z;\n return dx * dx + dy * dy + dz * dz;\n }\n }, {\n key: \"manhattanDistanceTo\",\n value: function manhattanDistanceTo(v) {\n return Math.abs(this.x - v.x) + Math.abs(this.y - v.y) + Math.abs(this.z - v.z);\n }\n }, {\n key: \"setFromSpherical\",\n value: function setFromSpherical(s) {\n return this.setFromSphericalCoords(s.radius, s.phi, s.theta);\n }\n }, {\n key: \"setFromSphericalCoords\",\n value: function setFromSphericalCoords(radius, phi, theta) {\n var sinPhiRadius = Math.sin(phi) * radius;\n this.x = sinPhiRadius * Math.sin(theta);\n this.y = Math.cos(phi) * radius;\n this.z = sinPhiRadius * Math.cos(theta);\n return this;\n }\n }, {\n key: \"setFromCylindrical\",\n value: function setFromCylindrical(c) {\n return this.setFromCylindricalCoords(c.radius, c.theta, c.y);\n }\n }, {\n key: \"setFromCylindricalCoords\",\n value: function setFromCylindricalCoords(radius, theta, y) {\n this.x = radius * Math.sin(theta);\n this.y = y;\n this.z = radius * Math.cos(theta);\n return this;\n }\n }, {\n key: \"setFromMatrixPosition\",\n value: function setFromMatrixPosition(m) {\n var e = m.elements;\n this.x = e[12];\n this.y = e[13];\n this.z = e[14];\n return this;\n }\n }, {\n key: \"setFromMatrixScale\",\n value: function setFromMatrixScale(m) {\n var sx = this.setFromMatrixColumn(m, 0).length();\n var sy = this.setFromMatrixColumn(m, 1).length();\n var sz = this.setFromMatrixColumn(m, 2).length();\n this.x = sx;\n this.y = sy;\n this.z = sz;\n return this;\n }\n }, {\n key: \"setFromMatrixColumn\",\n value: function setFromMatrixColumn(m, index) {\n return this.fromArray(m.elements, index * 4);\n }\n }, {\n key: \"setFromMatrix3Column\",\n value: function setFromMatrix3Column(m, index) {\n return this.fromArray(m.elements, index * 3);\n }\n }, {\n key: \"setFromEuler\",\n value: function setFromEuler(e) {\n this.x = e._x;\n this.y = e._y;\n this.z = e._z;\n return this;\n }\n }, {\n key: \"setFromColor\",\n value: function setFromColor(c) {\n this.x = c.r;\n this.y = c.g;\n this.z = c.b;\n return this;\n }\n }, {\n key: \"equals\",\n value: function equals(v) {\n return v.x === this.x && v.y === this.y && v.z === this.z;\n }\n }, {\n key: \"fromArray\",\n value: function fromArray(array) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n this.x = array[offset];\n this.y = array[offset + 1];\n this.z = array[offset + 2];\n return this;\n }\n }, {\n key: \"toArray\",\n value: function toArray() {\n var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n array[offset] = this.x;\n array[offset + 1] = this.y;\n array[offset + 2] = this.z;\n return array;\n }\n }, {\n key: \"fromBufferAttribute\",\n value: function fromBufferAttribute(attribute, index) {\n this.x = attribute.getX(index);\n this.y = attribute.getY(index);\n this.z = attribute.getZ(index);\n return this;\n }\n }, {\n key: \"random\",\n value: function random() {\n this.x = Math.random();\n this.y = Math.random();\n this.z = Math.random();\n return this;\n }\n }, {\n key: \"randomDirection\",\n value: function randomDirection() {\n // Derived from https://mathworld.wolfram.com/SpherePointPicking.html\n var u = (Math.random() - 0.5) * 2;\n var t = Math.random() * Math.PI * 2;\n var f = Math.sqrt(1 - Math.pow(u, 2));\n this.x = f * Math.cos(t);\n this.y = f * Math.sin(t);\n this.z = u;\n return this;\n }\n }, {\n key: _Symbol$iterator4,\n value: /*#__PURE__*/_regeneratorRuntime().mark(function value() {\n return _regeneratorRuntime().wrap(function value$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return this.x;\n\n case 2:\n _context5.next = 4;\n return this.y;\n\n case 4:\n _context5.next = 6;\n return this.z;\n\n case 6:\n case \"end\":\n return _context5.stop();\n }\n }\n }, value, this);\n })\n }]);\n\n return Vector3;\n}(Symbol.iterator);\n\nvar _vector$b = /*@__PURE__*/new Vector3();\n\nvar _quaternion$4 = /*@__PURE__*/new Quaternion();\n\nvar Box3 = /*#__PURE__*/function () {\n function Box3() {\n var min = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Vector3(+Infinity, +Infinity, +Infinity);\n var max = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector3(-Infinity, -Infinity, -Infinity);\n\n _classCallCheck(this, Box3);\n\n this.isBox3 = true;\n this.min = min;\n this.max = max;\n }\n\n _createClass(Box3, [{\n key: \"set\",\n value: function set(min, max) {\n this.min.copy(min);\n this.max.copy(max);\n return this;\n }\n }, {\n key: \"setFromArray\",\n value: function setFromArray(array) {\n this.makeEmpty();\n\n for (var i = 0, il = array.length; i < il; i += 3) {\n this.expandByPoint(_vector$a.fromArray(array, i));\n }\n\n return this;\n }\n }, {\n key: \"setFromBufferAttribute\",\n value: function setFromBufferAttribute(attribute) {\n this.makeEmpty();\n\n for (var i = 0, il = attribute.count; i < il; i++) {\n this.expandByPoint(_vector$a.fromBufferAttribute(attribute, i));\n }\n\n return this;\n }\n }, {\n key: \"setFromPoints\",\n value: function setFromPoints(points) {\n this.makeEmpty();\n\n for (var i = 0, il = points.length; i < il; i++) {\n this.expandByPoint(points[i]);\n }\n\n return this;\n }\n }, {\n key: \"setFromCenterAndSize\",\n value: function setFromCenterAndSize(center, size) {\n var halfSize = _vector$a.copy(size).multiplyScalar(0.5);\n\n this.min.copy(center).sub(halfSize);\n this.max.copy(center).add(halfSize);\n return this;\n }\n }, {\n key: \"setFromObject\",\n value: function setFromObject(object) {\n var precise = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.makeEmpty();\n return this.expandByObject(object, precise);\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n }\n }, {\n key: \"copy\",\n value: function copy(box) {\n this.min.copy(box.min);\n this.max.copy(box.max);\n return this;\n }\n }, {\n key: \"makeEmpty\",\n value: function makeEmpty() {\n this.min.x = this.min.y = this.min.z = +Infinity;\n this.max.x = this.max.y = this.max.z = -Infinity;\n return this;\n }\n }, {\n key: \"isEmpty\",\n value: function isEmpty() {\n // this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\n return this.max.x < this.min.x || this.max.y < this.min.y || this.max.z < this.min.z;\n }\n }, {\n key: \"getCenter\",\n value: function getCenter(target) {\n return this.isEmpty() ? target.set(0, 0, 0) : target.addVectors(this.min, this.max).multiplyScalar(0.5);\n }\n }, {\n key: \"getSize\",\n value: function getSize(target) {\n return this.isEmpty() ? target.set(0, 0, 0) : target.subVectors(this.max, this.min);\n }\n }, {\n key: \"expandByPoint\",\n value: function expandByPoint(point) {\n this.min.min(point);\n this.max.max(point);\n return this;\n }\n }, {\n key: \"expandByVector\",\n value: function expandByVector(vector) {\n this.min.sub(vector);\n this.max.add(vector);\n return this;\n }\n }, {\n key: \"expandByScalar\",\n value: function expandByScalar(scalar) {\n this.min.addScalar(-scalar);\n this.max.addScalar(scalar);\n return this;\n }\n }, {\n key: \"expandByObject\",\n value: function expandByObject(object) {\n var precise = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n // Computes the world-axis-aligned bounding box of an object (including its children),\n // accounting for both the object's, and children's, world transforms\n object.updateWorldMatrix(false, false);\n\n if (object.boundingBox !== undefined) {\n if (object.boundingBox === null) {\n object.computeBoundingBox();\n }\n\n _box$3.copy(object.boundingBox);\n\n _box$3.applyMatrix4(object.matrixWorld);\n\n this.union(_box$3);\n } else {\n var geometry = object.geometry;\n\n if (geometry !== undefined) {\n if (precise && geometry.attributes !== undefined && geometry.attributes.position !== undefined) {\n var position = geometry.attributes.position;\n\n for (var i = 0, l = position.count; i < l; i++) {\n _vector$a.fromBufferAttribute(position, i).applyMatrix4(object.matrixWorld);\n\n this.expandByPoint(_vector$a);\n }\n } else {\n if (geometry.boundingBox === null) {\n geometry.computeBoundingBox();\n }\n\n _box$3.copy(geometry.boundingBox);\n\n _box$3.applyMatrix4(object.matrixWorld);\n\n this.union(_box$3);\n }\n }\n }\n\n var children = object.children;\n\n for (var _i2 = 0, _l = children.length; _i2 < _l; _i2++) {\n this.expandByObject(children[_i2], precise);\n }\n\n return this;\n }\n }, {\n key: \"containsPoint\",\n value: function containsPoint(point) {\n return point.x < this.min.x || point.x > this.max.x || point.y < this.min.y || point.y > this.max.y || point.z < this.min.z || point.z > this.max.z ? false : true;\n }\n }, {\n key: \"containsBox\",\n value: function containsBox(box) {\n return this.min.x <= box.min.x && box.max.x <= this.max.x && this.min.y <= box.min.y && box.max.y <= this.max.y && this.min.z <= box.min.z && box.max.z <= this.max.z;\n }\n }, {\n key: \"getParameter\",\n value: function getParameter(point, target) {\n // This can potentially have a divide by zero if the box\n // has a size dimension of 0.\n return target.set((point.x - this.min.x) / (this.max.x - this.min.x), (point.y - this.min.y) / (this.max.y - this.min.y), (point.z - this.min.z) / (this.max.z - this.min.z));\n }\n }, {\n key: \"intersectsBox\",\n value: function intersectsBox(box) {\n // using 6 splitting planes to rule out intersections.\n return box.max.x < this.min.x || box.min.x > this.max.x || box.max.y < this.min.y || box.min.y > this.max.y || box.max.z < this.min.z || box.min.z > this.max.z ? false : true;\n }\n }, {\n key: \"intersectsSphere\",\n value: function intersectsSphere(sphere) {\n // Find the point on the AABB closest to the sphere center.\n this.clampPoint(sphere.center, _vector$a); // If that point is inside the sphere, the AABB and sphere intersect.\n\n return _vector$a.distanceToSquared(sphere.center) <= sphere.radius * sphere.radius;\n }\n }, {\n key: \"intersectsPlane\",\n value: function intersectsPlane(plane) {\n // We compute the minimum and maximum dot product values. If those values\n // are on the same side (back or front) of the plane, then there is no intersection.\n var min, max;\n\n if (plane.normal.x > 0) {\n min = plane.normal.x * this.min.x;\n max = plane.normal.x * this.max.x;\n } else {\n min = plane.normal.x * this.max.x;\n max = plane.normal.x * this.min.x;\n }\n\n if (plane.normal.y > 0) {\n min += plane.normal.y * this.min.y;\n max += plane.normal.y * this.max.y;\n } else {\n min += plane.normal.y * this.max.y;\n max += plane.normal.y * this.min.y;\n }\n\n if (plane.normal.z > 0) {\n min += plane.normal.z * this.min.z;\n max += plane.normal.z * this.max.z;\n } else {\n min += plane.normal.z * this.max.z;\n max += plane.normal.z * this.min.z;\n }\n\n return min <= -plane.constant && max >= -plane.constant;\n }\n }, {\n key: \"intersectsTriangle\",\n value: function intersectsTriangle(triangle) {\n if (this.isEmpty()) {\n return false;\n } // compute box center and extents\n\n\n this.getCenter(_center);\n\n _extents.subVectors(this.max, _center); // translate triangle to aabb origin\n\n\n _v0$2.subVectors(triangle.a, _center);\n\n _v1$7.subVectors(triangle.b, _center);\n\n _v2$4.subVectors(triangle.c, _center); // compute edge vectors for triangle\n\n\n _f0.subVectors(_v1$7, _v0$2);\n\n _f1.subVectors(_v2$4, _v1$7);\n\n _f2.subVectors(_v0$2, _v2$4); // test against axes that are given by cross product combinations of the edges of the triangle and the edges of the aabb\n // make an axis testing of each of the 3 sides of the aabb against each of the 3 sides of the triangle = 9 axis of separation\n // axis_ij = u_i x f_j (u0, u1, u2 = face normals of aabb = x,y,z axes vectors since aabb is axis aligned)\n\n\n var axes = [0, -_f0.z, _f0.y, 0, -_f1.z, _f1.y, 0, -_f2.z, _f2.y, _f0.z, 0, -_f0.x, _f1.z, 0, -_f1.x, _f2.z, 0, -_f2.x, -_f0.y, _f0.x, 0, -_f1.y, _f1.x, 0, -_f2.y, _f2.x, 0];\n\n if (!satForAxes(axes, _v0$2, _v1$7, _v2$4, _extents)) {\n return false;\n } // test 3 face normals from the aabb\n\n\n axes = [1, 0, 0, 0, 1, 0, 0, 0, 1];\n\n if (!satForAxes(axes, _v0$2, _v1$7, _v2$4, _extents)) {\n return false;\n } // finally testing the face normal of the triangle\n // use already existing triangle edge vectors here\n\n\n _triangleNormal.crossVectors(_f0, _f1);\n\n axes = [_triangleNormal.x, _triangleNormal.y, _triangleNormal.z];\n return satForAxes(axes, _v0$2, _v1$7, _v2$4, _extents);\n }\n }, {\n key: \"clampPoint\",\n value: function clampPoint(point, target) {\n return target.copy(point).clamp(this.min, this.max);\n }\n }, {\n key: \"distanceToPoint\",\n value: function distanceToPoint(point) {\n return this.clampPoint(point, _vector$a).distanceTo(point);\n }\n }, {\n key: \"getBoundingSphere\",\n value: function getBoundingSphere(target) {\n if (this.isEmpty()) {\n target.makeEmpty();\n } else {\n this.getCenter(target.center);\n target.radius = this.getSize(_vector$a).length() * 0.5;\n }\n\n return target;\n }\n }, {\n key: \"intersect\",\n value: function intersect(box) {\n this.min.max(box.min);\n this.max.min(box.max); // ensure that if there is no overlap, the result is fully empty, not slightly empty with non-inf/+inf values that will cause subsequence intersects to erroneously return valid values.\n\n if (this.isEmpty()) this.makeEmpty();\n return this;\n }\n }, {\n key: \"union\",\n value: function union(box) {\n this.min.min(box.min);\n this.max.max(box.max);\n return this;\n }\n }, {\n key: \"applyMatrix4\",\n value: function applyMatrix4(matrix) {\n // transform of empty box is an empty box.\n if (this.isEmpty()) return this; // NOTE: I am using a binary pattern to specify all 2^3 combinations below\n\n _points[0].set(this.min.x, this.min.y, this.min.z).applyMatrix4(matrix); // 000\n\n\n _points[1].set(this.min.x, this.min.y, this.max.z).applyMatrix4(matrix); // 001\n\n\n _points[2].set(this.min.x, this.max.y, this.min.z).applyMatrix4(matrix); // 010\n\n\n _points[3].set(this.min.x, this.max.y, this.max.z).applyMatrix4(matrix); // 011\n\n\n _points[4].set(this.max.x, this.min.y, this.min.z).applyMatrix4(matrix); // 100\n\n\n _points[5].set(this.max.x, this.min.y, this.max.z).applyMatrix4(matrix); // 101\n\n\n _points[6].set(this.max.x, this.max.y, this.min.z).applyMatrix4(matrix); // 110\n\n\n _points[7].set(this.max.x, this.max.y, this.max.z).applyMatrix4(matrix); // 111\n\n\n this.setFromPoints(_points);\n return this;\n }\n }, {\n key: \"translate\",\n value: function translate(offset) {\n this.min.add(offset);\n this.max.add(offset);\n return this;\n }\n }, {\n key: \"equals\",\n value: function equals(box) {\n return box.min.equals(this.min) && box.max.equals(this.max);\n }\n }]);\n\n return Box3;\n}();\n\nvar _points = [/*@__PURE__*/new Vector3(), /*@__PURE__*/new Vector3(), /*@__PURE__*/new Vector3(), /*@__PURE__*/new Vector3(), /*@__PURE__*/new Vector3(), /*@__PURE__*/new Vector3(), /*@__PURE__*/new Vector3(), /*@__PURE__*/new Vector3()];\n\nvar _vector$a = /*@__PURE__*/new Vector3();\n\nvar _box$3 = /*@__PURE__*/new Box3(); // triangle centered vertices\n\n\nvar _v0$2 = /*@__PURE__*/new Vector3();\n\nvar _v1$7 = /*@__PURE__*/new Vector3();\n\nvar _v2$4 = /*@__PURE__*/new Vector3(); // triangle edge vectors\n\n\nvar _f0 = /*@__PURE__*/new Vector3();\n\nvar _f1 = /*@__PURE__*/new Vector3();\n\nvar _f2 = /*@__PURE__*/new Vector3();\n\nvar _center = /*@__PURE__*/new Vector3();\n\nvar _extents = /*@__PURE__*/new Vector3();\n\nvar _triangleNormal = /*@__PURE__*/new Vector3();\n\nvar _testAxis = /*@__PURE__*/new Vector3();\n\nfunction satForAxes(axes, v0, v1, v2, extents) {\n for (var i = 0, j = axes.length - 3; i <= j; i += 3) {\n _testAxis.fromArray(axes, i); // project the aabb onto the separating axis\n\n\n var r = extents.x * Math.abs(_testAxis.x) + extents.y * Math.abs(_testAxis.y) + extents.z * Math.abs(_testAxis.z); // project all 3 vertices of the triangle onto the separating axis\n\n var p0 = v0.dot(_testAxis);\n var p1 = v1.dot(_testAxis);\n var p2 = v2.dot(_testAxis); // actual test, basically see if either of the most extreme of the triangle points intersects r\n\n if (Math.max(-Math.max(p0, p1, p2), Math.min(p0, p1, p2)) > r) {\n // points of the projected triangle are outside the projected half-length of the aabb\n // the axis is separating and we can exit\n return false;\n }\n }\n\n return true;\n}\n\nvar _box$2 = /*@__PURE__*/new Box3();\n\nvar _v1$6 = /*@__PURE__*/new Vector3();\n\nvar _v2$3 = /*@__PURE__*/new Vector3();\n\nvar Sphere = /*#__PURE__*/function () {\n function Sphere() {\n var center = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Vector3();\n var radius = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;\n\n _classCallCheck(this, Sphere);\n\n this.center = center;\n this.radius = radius;\n }\n\n _createClass(Sphere, [{\n key: \"set\",\n value: function set(center, radius) {\n this.center.copy(center);\n this.radius = radius;\n return this;\n }\n }, {\n key: \"setFromPoints\",\n value: function setFromPoints(points, optionalCenter) {\n var center = this.center;\n\n if (optionalCenter !== undefined) {\n center.copy(optionalCenter);\n } else {\n _box$2.setFromPoints(points).getCenter(center);\n }\n\n var maxRadiusSq = 0;\n\n for (var i = 0, il = points.length; i < il; i++) {\n maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(points[i]));\n }\n\n this.radius = Math.sqrt(maxRadiusSq);\n return this;\n }\n }, {\n key: \"copy\",\n value: function copy(sphere) {\n this.center.copy(sphere.center);\n this.radius = sphere.radius;\n return this;\n }\n }, {\n key: \"isEmpty\",\n value: function isEmpty() {\n return this.radius < 0;\n }\n }, {\n key: \"makeEmpty\",\n value: function makeEmpty() {\n this.center.set(0, 0, 0);\n this.radius = -1;\n return this;\n }\n }, {\n key: \"containsPoint\",\n value: function containsPoint(point) {\n return point.distanceToSquared(this.center) <= this.radius * this.radius;\n }\n }, {\n key: \"distanceToPoint\",\n value: function distanceToPoint(point) {\n return point.distanceTo(this.center) - this.radius;\n }\n }, {\n key: \"intersectsSphere\",\n value: function intersectsSphere(sphere) {\n var radiusSum = this.radius + sphere.radius;\n return sphere.center.distanceToSquared(this.center) <= radiusSum * radiusSum;\n }\n }, {\n key: \"intersectsBox\",\n value: function intersectsBox(box) {\n return box.intersectsSphere(this);\n }\n }, {\n key: \"intersectsPlane\",\n value: function intersectsPlane(plane) {\n return Math.abs(plane.distanceToPoint(this.center)) <= this.radius;\n }\n }, {\n key: \"clampPoint\",\n value: function clampPoint(point, target) {\n var deltaLengthSq = this.center.distanceToSquared(point);\n target.copy(point);\n\n if (deltaLengthSq > this.radius * this.radius) {\n target.sub(this.center).normalize();\n target.multiplyScalar(this.radius).add(this.center);\n }\n\n return target;\n }\n }, {\n key: \"getBoundingBox\",\n value: function getBoundingBox(target) {\n if (this.isEmpty()) {\n // Empty sphere produces empty bounding box\n target.makeEmpty();\n return target;\n }\n\n target.set(this.center, this.center);\n target.expandByScalar(this.radius);\n return target;\n }\n }, {\n key: \"applyMatrix4\",\n value: function applyMatrix4(matrix) {\n this.center.applyMatrix4(matrix);\n this.radius = this.radius * matrix.getMaxScaleOnAxis();\n return this;\n }\n }, {\n key: \"translate\",\n value: function translate(offset) {\n this.center.add(offset);\n return this;\n }\n }, {\n key: \"expandByPoint\",\n value: function expandByPoint(point) {\n if (this.isEmpty()) {\n this.center.copy(point);\n this.radius = 0;\n return this;\n }\n\n _v1$6.subVectors(point, this.center);\n\n var lengthSq = _v1$6.lengthSq();\n\n if (lengthSq > this.radius * this.radius) {\n // calculate the minimal sphere\n var length = Math.sqrt(lengthSq);\n var delta = (length - this.radius) * 0.5;\n this.center.addScaledVector(_v1$6, delta / length);\n this.radius += delta;\n }\n\n return this;\n }\n }, {\n key: \"union\",\n value: function union(sphere) {\n if (sphere.isEmpty()) {\n return this;\n }\n\n if (this.isEmpty()) {\n this.copy(sphere);\n return this;\n }\n\n if (this.center.equals(sphere.center) === true) {\n this.radius = Math.max(this.radius, sphere.radius);\n } else {\n _v2$3.subVectors(sphere.center, this.center).setLength(sphere.radius);\n\n this.expandByPoint(_v1$6.copy(sphere.center).add(_v2$3));\n this.expandByPoint(_v1$6.copy(sphere.center).sub(_v2$3));\n }\n\n return this;\n }\n }, {\n key: \"equals\",\n value: function equals(sphere) {\n return sphere.center.equals(this.center) && sphere.radius === this.radius;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n }\n }]);\n\n return Sphere;\n}();\n\nvar _vector$9 = /*@__PURE__*/new Vector3();\n\nvar _segCenter = /*@__PURE__*/new Vector3();\n\nvar _segDir = /*@__PURE__*/new Vector3();\n\nvar _diff = /*@__PURE__*/new Vector3();\n\nvar _edge1 = /*@__PURE__*/new Vector3();\n\nvar _edge2 = /*@__PURE__*/new Vector3();\n\nvar _normal$1 = /*@__PURE__*/new Vector3();\n\nvar Ray = /*#__PURE__*/function () {\n function Ray() {\n var origin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Vector3();\n var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector3(0, 0, -1);\n\n _classCallCheck(this, Ray);\n\n this.origin = origin;\n this.direction = direction;\n }\n\n _createClass(Ray, [{\n key: \"set\",\n value: function set(origin, direction) {\n this.origin.copy(origin);\n this.direction.copy(direction);\n return this;\n }\n }, {\n key: \"copy\",\n value: function copy(ray) {\n this.origin.copy(ray.origin);\n this.direction.copy(ray.direction);\n return this;\n }\n }, {\n key: \"at\",\n value: function at(t, target) {\n return target.copy(this.origin).addScaledVector(this.direction, t);\n }\n }, {\n key: \"lookAt\",\n value: function lookAt(v) {\n this.direction.copy(v).sub(this.origin).normalize();\n return this;\n }\n }, {\n key: \"recast\",\n value: function recast(t) {\n this.origin.copy(this.at(t, _vector$9));\n return this;\n }\n }, {\n key: \"closestPointToPoint\",\n value: function closestPointToPoint(point, target) {\n target.subVectors(point, this.origin);\n var directionDistance = target.dot(this.direction);\n\n if (directionDistance < 0) {\n return target.copy(this.origin);\n }\n\n return target.copy(this.origin).addScaledVector(this.direction, directionDistance);\n }\n }, {\n key: \"distanceToPoint\",\n value: function distanceToPoint(point) {\n return Math.sqrt(this.distanceSqToPoint(point));\n }\n }, {\n key: \"distanceSqToPoint\",\n value: function distanceSqToPoint(point) {\n var directionDistance = _vector$9.subVectors(point, this.origin).dot(this.direction); // point behind the ray\n\n\n if (directionDistance < 0) {\n return this.origin.distanceToSquared(point);\n }\n\n _vector$9.copy(this.origin).addScaledVector(this.direction, directionDistance);\n\n return _vector$9.distanceToSquared(point);\n }\n }, {\n key: \"distanceSqToSegment\",\n value: function distanceSqToSegment(v0, v1, optionalPointOnRay, optionalPointOnSegment) {\n // from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteDistRaySegment.h\n // It returns the min distance between the ray and the segment\n // defined by v0 and v1\n // It can also set two optional targets :\n // - The closest point on the ray\n // - The closest point on the segment\n _segCenter.copy(v0).add(v1).multiplyScalar(0.5);\n\n _segDir.copy(v1).sub(v0).normalize();\n\n _diff.copy(this.origin).sub(_segCenter);\n\n var segExtent = v0.distanceTo(v1) * 0.5;\n var a01 = -this.direction.dot(_segDir);\n\n var b0 = _diff.dot(this.direction);\n\n var b1 = -_diff.dot(_segDir);\n\n var c = _diff.lengthSq();\n\n var det = Math.abs(1 - a01 * a01);\n var s0, s1, sqrDist, extDet;\n\n if (det > 0) {\n // The ray and segment are not parallel.\n s0 = a01 * b1 - b0;\n s1 = a01 * b0 - b1;\n extDet = segExtent * det;\n\n if (s0 >= 0) {\n if (s1 >= -extDet) {\n if (s1 <= extDet) {\n // region 0\n // Minimum at interior points of ray and segment.\n var invDet = 1 / det;\n s0 *= invDet;\n s1 *= invDet;\n sqrDist = s0 * (s0 + a01 * s1 + 2 * b0) + s1 * (a01 * s0 + s1 + 2 * b1) + c;\n } else {\n // region 1\n s1 = segExtent;\n s0 = Math.max(0, -(a01 * s1 + b0));\n sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n }\n } else {\n // region 5\n s1 = -segExtent;\n s0 = Math.max(0, -(a01 * s1 + b0));\n sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n }\n } else {\n if (s1 <= -extDet) {\n // region 4\n s0 = Math.max(0, -(-a01 * segExtent + b0));\n s1 = s0 > 0 ? -segExtent : Math.min(Math.max(-segExtent, -b1), segExtent);\n sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n } else if (s1 <= extDet) {\n // region 3\n s0 = 0;\n s1 = Math.min(Math.max(-segExtent, -b1), segExtent);\n sqrDist = s1 * (s1 + 2 * b1) + c;\n } else {\n // region 2\n s0 = Math.max(0, -(a01 * segExtent + b0));\n s1 = s0 > 0 ? segExtent : Math.min(Math.max(-segExtent, -b1), segExtent);\n sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n }\n }\n } else {\n // Ray and segment are parallel.\n s1 = a01 > 0 ? -segExtent : segExtent;\n s0 = Math.max(0, -(a01 * s1 + b0));\n sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n }\n\n if (optionalPointOnRay) {\n optionalPointOnRay.copy(this.origin).addScaledVector(this.direction, s0);\n }\n\n if (optionalPointOnSegment) {\n optionalPointOnSegment.copy(_segCenter).addScaledVector(_segDir, s1);\n }\n\n return sqrDist;\n }\n }, {\n key: \"intersectSphere\",\n value: function intersectSphere(sphere, target) {\n _vector$9.subVectors(sphere.center, this.origin);\n\n var tca = _vector$9.dot(this.direction);\n\n var d2 = _vector$9.dot(_vector$9) - tca * tca;\n var radius2 = sphere.radius * sphere.radius;\n if (d2 > radius2) return null;\n var thc = Math.sqrt(radius2 - d2); // t0 = first intersect point - entrance on front of sphere\n\n var t0 = tca - thc; // t1 = second intersect point - exit point on back of sphere\n\n var t1 = tca + thc; // test to see if t1 is behind the ray - if so, return null\n\n if (t1 < 0) return null; // test to see if t0 is behind the ray:\n // if it is, the ray is inside the sphere, so return the second exit point scaled by t1,\n // in order to always return an intersect point that is in front of the ray.\n\n if (t0 < 0) return this.at(t1, target); // else t0 is in front of the ray, so return the first collision point scaled by t0\n\n return this.at(t0, target);\n }\n }, {\n key: \"intersectsSphere\",\n value: function intersectsSphere(sphere) {\n return this.distanceSqToPoint(sphere.center) <= sphere.radius * sphere.radius;\n }\n }, {\n key: \"distanceToPlane\",\n value: function distanceToPlane(plane) {\n var denominator = plane.normal.dot(this.direction);\n\n if (denominator === 0) {\n // line is coplanar, return origin\n if (plane.distanceToPoint(this.origin) === 0) {\n return 0;\n } // Null is preferable to undefined since undefined means.... it is undefined\n\n\n return null;\n }\n\n var t = -(this.origin.dot(plane.normal) + plane.constant) / denominator; // Return if the ray never intersects the plane\n\n return t >= 0 ? t : null;\n }\n }, {\n key: \"intersectPlane\",\n value: function intersectPlane(plane, target) {\n var t = this.distanceToPlane(plane);\n\n if (t === null) {\n return null;\n }\n\n return this.at(t, target);\n }\n }, {\n key: \"intersectsPlane\",\n value: function intersectsPlane(plane) {\n // check if the ray lies on the plane first\n var distToPoint = plane.distanceToPoint(this.origin);\n\n if (distToPoint === 0) {\n return true;\n }\n\n var denominator = plane.normal.dot(this.direction);\n\n if (denominator * distToPoint < 0) {\n return true;\n } // ray origin is behind the plane (and is pointing behind it)\n\n\n return false;\n }\n }, {\n key: \"intersectBox\",\n value: function intersectBox(box, target) {\n var tmin, tmax, tymin, tymax, tzmin, tzmax;\n var invdirx = 1 / this.direction.x,\n invdiry = 1 / this.direction.y,\n invdirz = 1 / this.direction.z;\n var origin = this.origin;\n\n if (invdirx >= 0) {\n tmin = (box.min.x - origin.x) * invdirx;\n tmax = (box.max.x - origin.x) * invdirx;\n } else {\n tmin = (box.max.x - origin.x) * invdirx;\n tmax = (box.min.x - origin.x) * invdirx;\n }\n\n if (invdiry >= 0) {\n tymin = (box.min.y - origin.y) * invdiry;\n tymax = (box.max.y - origin.y) * invdiry;\n } else {\n tymin = (box.max.y - origin.y) * invdiry;\n tymax = (box.min.y - origin.y) * invdiry;\n }\n\n if (tmin > tymax || tymin > tmax) return null;\n if (tymin > tmin || isNaN(tmin)) tmin = tymin;\n if (tymax < tmax || isNaN(tmax)) tmax = tymax;\n\n if (invdirz >= 0) {\n tzmin = (box.min.z - origin.z) * invdirz;\n tzmax = (box.max.z - origin.z) * invdirz;\n } else {\n tzmin = (box.max.z - origin.z) * invdirz;\n tzmax = (box.min.z - origin.z) * invdirz;\n }\n\n if (tmin > tzmax || tzmin > tmax) return null;\n if (tzmin > tmin || tmin !== tmin) tmin = tzmin;\n if (tzmax < tmax || tmax !== tmax) tmax = tzmax; //return point closest to the ray (positive side)\n\n if (tmax < 0) return null;\n return this.at(tmin >= 0 ? tmin : tmax, target);\n }\n }, {\n key: \"intersectsBox\",\n value: function intersectsBox(box) {\n return this.intersectBox(box, _vector$9) !== null;\n }\n }, {\n key: \"intersectTriangle\",\n value: function intersectTriangle(a, b, c, backfaceCulling, target) {\n // Compute the offset origin, edges, and normal.\n // from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteIntrRay3Triangle3.h\n _edge1.subVectors(b, a);\n\n _edge2.subVectors(c, a);\n\n _normal$1.crossVectors(_edge1, _edge2); // Solve Q + t*D = b1*E1 + b2*E2 (Q = kDiff, D = ray direction,\n // E1 = kEdge1, E2 = kEdge2, N = Cross(E1,E2)) by\n // |Dot(D,N)|*b1 = sign(Dot(D,N))*Dot(D,Cross(Q,E2))\n // |Dot(D,N)|*b2 = sign(Dot(D,N))*Dot(D,Cross(E1,Q))\n // |Dot(D,N)|*t = -sign(Dot(D,N))*Dot(Q,N)\n\n\n var DdN = this.direction.dot(_normal$1);\n var sign;\n\n if (DdN > 0) {\n if (backfaceCulling) return null;\n sign = 1;\n } else if (DdN < 0) {\n sign = -1;\n DdN = -DdN;\n } else {\n return null;\n }\n\n _diff.subVectors(this.origin, a);\n\n var DdQxE2 = sign * this.direction.dot(_edge2.crossVectors(_diff, _edge2)); // b1 < 0, no intersection\n\n if (DdQxE2 < 0) {\n return null;\n }\n\n var DdE1xQ = sign * this.direction.dot(_edge1.cross(_diff)); // b2 < 0, no intersection\n\n if (DdE1xQ < 0) {\n return null;\n } // b1+b2 > 1, no intersection\n\n\n if (DdQxE2 + DdE1xQ > DdN) {\n return null;\n } // Line intersects triangle, check if ray does.\n\n\n var QdN = -sign * _diff.dot(_normal$1); // t < 0, no intersection\n\n\n if (QdN < 0) {\n return null;\n } // Ray intersects triangle.\n\n\n return this.at(QdN / DdN, target);\n }\n }, {\n key: \"applyMatrix4\",\n value: function applyMatrix4(matrix4) {\n this.origin.applyMatrix4(matrix4);\n this.direction.transformDirection(matrix4);\n return this;\n }\n }, {\n key: \"equals\",\n value: function equals(ray) {\n return ray.origin.equals(this.origin) && ray.direction.equals(this.direction);\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n }\n }]);\n\n return Ray;\n}();\n\nvar Matrix4 = /*#__PURE__*/function () {\n function Matrix4() {\n _classCallCheck(this, Matrix4);\n\n Matrix4.prototype.isMatrix4 = true;\n this.elements = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n }\n\n _createClass(Matrix4, [{\n key: \"set\",\n value: function set(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44) {\n var te = this.elements;\n te[0] = n11;\n te[4] = n12;\n te[8] = n13;\n te[12] = n14;\n te[1] = n21;\n te[5] = n22;\n te[9] = n23;\n te[13] = n24;\n te[2] = n31;\n te[6] = n32;\n te[10] = n33;\n te[14] = n34;\n te[3] = n41;\n te[7] = n42;\n te[11] = n43;\n te[15] = n44;\n return this;\n }\n }, {\n key: \"identity\",\n value: function identity() {\n this.set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n return this;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new Matrix4().fromArray(this.elements);\n }\n }, {\n key: \"copy\",\n value: function copy(m) {\n var te = this.elements;\n var me = m.elements;\n te[0] = me[0];\n te[1] = me[1];\n te[2] = me[2];\n te[3] = me[3];\n te[4] = me[4];\n te[5] = me[5];\n te[6] = me[6];\n te[7] = me[7];\n te[8] = me[8];\n te[9] = me[9];\n te[10] = me[10];\n te[11] = me[11];\n te[12] = me[12];\n te[13] = me[13];\n te[14] = me[14];\n te[15] = me[15];\n return this;\n }\n }, {\n key: \"copyPosition\",\n value: function copyPosition(m) {\n var te = this.elements,\n me = m.elements;\n te[12] = me[12];\n te[13] = me[13];\n te[14] = me[14];\n return this;\n }\n }, {\n key: \"setFromMatrix3\",\n value: function setFromMatrix3(m) {\n var me = m.elements;\n this.set(me[0], me[3], me[6], 0, me[1], me[4], me[7], 0, me[2], me[5], me[8], 0, 0, 0, 0, 1);\n return this;\n }\n }, {\n key: \"extractBasis\",\n value: function extractBasis(xAxis, yAxis, zAxis) {\n xAxis.setFromMatrixColumn(this, 0);\n yAxis.setFromMatrixColumn(this, 1);\n zAxis.setFromMatrixColumn(this, 2);\n return this;\n }\n }, {\n key: \"makeBasis\",\n value: function makeBasis(xAxis, yAxis, zAxis) {\n this.set(xAxis.x, yAxis.x, zAxis.x, 0, xAxis.y, yAxis.y, zAxis.y, 0, xAxis.z, yAxis.z, zAxis.z, 0, 0, 0, 0, 1);\n return this;\n }\n }, {\n key: \"extractRotation\",\n value: function extractRotation(m) {\n // this method does not support reflection matrices\n var te = this.elements;\n var me = m.elements;\n\n var scaleX = 1 / _v1$5.setFromMatrixColumn(m, 0).length();\n\n var scaleY = 1 / _v1$5.setFromMatrixColumn(m, 1).length();\n\n var scaleZ = 1 / _v1$5.setFromMatrixColumn(m, 2).length();\n\n te[0] = me[0] * scaleX;\n te[1] = me[1] * scaleX;\n te[2] = me[2] * scaleX;\n te[3] = 0;\n te[4] = me[4] * scaleY;\n te[5] = me[5] * scaleY;\n te[6] = me[6] * scaleY;\n te[7] = 0;\n te[8] = me[8] * scaleZ;\n te[9] = me[9] * scaleZ;\n te[10] = me[10] * scaleZ;\n te[11] = 0;\n te[12] = 0;\n te[13] = 0;\n te[14] = 0;\n te[15] = 1;\n return this;\n }\n }, {\n key: \"makeRotationFromEuler\",\n value: function makeRotationFromEuler(euler) {\n var te = this.elements;\n var x = euler.x,\n y = euler.y,\n z = euler.z;\n var a = Math.cos(x),\n b = Math.sin(x);\n var c = Math.cos(y),\n d = Math.sin(y);\n var e = Math.cos(z),\n f = Math.sin(z);\n\n if (euler.order === 'XYZ') {\n var ae = a * e,\n af = a * f,\n be = b * e,\n bf = b * f;\n te[0] = c * e;\n te[4] = -c * f;\n te[8] = d;\n te[1] = af + be * d;\n te[5] = ae - bf * d;\n te[9] = -b * c;\n te[2] = bf - ae * d;\n te[6] = be + af * d;\n te[10] = a * c;\n } else if (euler.order === 'YXZ') {\n var ce = c * e,\n cf = c * f,\n de = d * e,\n df = d * f;\n te[0] = ce + df * b;\n te[4] = de * b - cf;\n te[8] = a * d;\n te[1] = a * f;\n te[5] = a * e;\n te[9] = -b;\n te[2] = cf * b - de;\n te[6] = df + ce * b;\n te[10] = a * c;\n } else if (euler.order === 'ZXY') {\n var _ce = c * e,\n _cf = c * f,\n _de = d * e,\n _df = d * f;\n\n te[0] = _ce - _df * b;\n te[4] = -a * f;\n te[8] = _de + _cf * b;\n te[1] = _cf + _de * b;\n te[5] = a * e;\n te[9] = _df - _ce * b;\n te[2] = -a * d;\n te[6] = b;\n te[10] = a * c;\n } else if (euler.order === 'ZYX') {\n var _ae = a * e,\n _af = a * f,\n _be = b * e,\n _bf = b * f;\n\n te[0] = c * e;\n te[4] = _be * d - _af;\n te[8] = _ae * d + _bf;\n te[1] = c * f;\n te[5] = _bf * d + _ae;\n te[9] = _af * d - _be;\n te[2] = -d;\n te[6] = b * c;\n te[10] = a * c;\n } else if (euler.order === 'YZX') {\n var ac = a * c,\n ad = a * d,\n bc = b * c,\n bd = b * d;\n te[0] = c * e;\n te[4] = bd - ac * f;\n te[8] = bc * f + ad;\n te[1] = f;\n te[5] = a * e;\n te[9] = -b * e;\n te[2] = -d * e;\n te[6] = ad * f + bc;\n te[10] = ac - bd * f;\n } else if (euler.order === 'XZY') {\n var _ac = a * c,\n _ad = a * d,\n _bc = b * c,\n _bd = b * d;\n\n te[0] = c * e;\n te[4] = -f;\n te[8] = d * e;\n te[1] = _ac * f + _bd;\n te[5] = a * e;\n te[9] = _ad * f - _bc;\n te[2] = _bc * f - _ad;\n te[6] = b * e;\n te[10] = _bd * f + _ac;\n } // bottom row\n\n\n te[3] = 0;\n te[7] = 0;\n te[11] = 0; // last column\n\n te[12] = 0;\n te[13] = 0;\n te[14] = 0;\n te[15] = 1;\n return this;\n }\n }, {\n key: \"makeRotationFromQuaternion\",\n value: function makeRotationFromQuaternion(q) {\n return this.compose(_zero, q, _one);\n }\n }, {\n key: \"lookAt\",\n value: function lookAt(eye, target, up) {\n var te = this.elements;\n\n _z.subVectors(eye, target);\n\n if (_z.lengthSq() === 0) {\n // eye and target are in the same position\n _z.z = 1;\n }\n\n _z.normalize();\n\n _x.crossVectors(up, _z);\n\n if (_x.lengthSq() === 0) {\n // up and z are parallel\n if (Math.abs(up.z) === 1) {\n _z.x += 0.0001;\n } else {\n _z.z += 0.0001;\n }\n\n _z.normalize();\n\n _x.crossVectors(up, _z);\n }\n\n _x.normalize();\n\n _y.crossVectors(_z, _x);\n\n te[0] = _x.x;\n te[4] = _y.x;\n te[8] = _z.x;\n te[1] = _x.y;\n te[5] = _y.y;\n te[9] = _z.y;\n te[2] = _x.z;\n te[6] = _y.z;\n te[10] = _z.z;\n return this;\n }\n }, {\n key: \"multiply\",\n value: function multiply(m) {\n return this.multiplyMatrices(this, m);\n }\n }, {\n key: \"premultiply\",\n value: function premultiply(m) {\n return this.multiplyMatrices(m, this);\n }\n }, {\n key: \"multiplyMatrices\",\n value: function multiplyMatrices(a, b) {\n var ae = a.elements;\n var be = b.elements;\n var te = this.elements;\n var a11 = ae[0],\n a12 = ae[4],\n a13 = ae[8],\n a14 = ae[12];\n var a21 = ae[1],\n a22 = ae[5],\n a23 = ae[9],\n a24 = ae[13];\n var a31 = ae[2],\n a32 = ae[6],\n a33 = ae[10],\n a34 = ae[14];\n var a41 = ae[3],\n a42 = ae[7],\n a43 = ae[11],\n a44 = ae[15];\n var b11 = be[0],\n b12 = be[4],\n b13 = be[8],\n b14 = be[12];\n var b21 = be[1],\n b22 = be[5],\n b23 = be[9],\n b24 = be[13];\n var b31 = be[2],\n b32 = be[6],\n b33 = be[10],\n b34 = be[14];\n var b41 = be[3],\n b42 = be[7],\n b43 = be[11],\n b44 = be[15];\n te[0] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\n te[4] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\n te[8] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\n te[12] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\n te[1] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\n te[5] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\n te[9] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\n te[13] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\n te[2] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\n te[6] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\n te[10] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\n te[14] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\n te[3] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\n te[7] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\n te[11] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\n te[15] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\n return this;\n }\n }, {\n key: \"multiplyScalar\",\n value: function multiplyScalar(s) {\n var te = this.elements;\n te[0] *= s;\n te[4] *= s;\n te[8] *= s;\n te[12] *= s;\n te[1] *= s;\n te[5] *= s;\n te[9] *= s;\n te[13] *= s;\n te[2] *= s;\n te[6] *= s;\n te[10] *= s;\n te[14] *= s;\n te[3] *= s;\n te[7] *= s;\n te[11] *= s;\n te[15] *= s;\n return this;\n }\n }, {\n key: \"determinant\",\n value: function determinant() {\n var te = this.elements;\n var n11 = te[0],\n n12 = te[4],\n n13 = te[8],\n n14 = te[12];\n var n21 = te[1],\n n22 = te[5],\n n23 = te[9],\n n24 = te[13];\n var n31 = te[2],\n n32 = te[6],\n n33 = te[10],\n n34 = te[14];\n var n41 = te[3],\n n42 = te[7],\n n43 = te[11],\n n44 = te[15]; //TODO: make this more efficient\n //( based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm )\n\n return n41 * (+n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34) + n42 * (+n11 * n23 * n34 - n11 * n24 * n33 + n14 * n21 * n33 - n13 * n21 * n34 + n13 * n24 * n31 - n14 * n23 * n31) + n43 * (+n11 * n24 * n32 - n11 * n22 * n34 - n14 * n21 * n32 + n12 * n21 * n34 + n14 * n22 * n31 - n12 * n24 * n31) + n44 * (-n13 * n22 * n31 - n11 * n23 * n32 + n11 * n22 * n33 + n13 * n21 * n32 - n12 * n21 * n33 + n12 * n23 * n31);\n }\n }, {\n key: \"transpose\",\n value: function transpose() {\n var te = this.elements;\n var tmp;\n tmp = te[1];\n te[1] = te[4];\n te[4] = tmp;\n tmp = te[2];\n te[2] = te[8];\n te[8] = tmp;\n tmp = te[6];\n te[6] = te[9];\n te[9] = tmp;\n tmp = te[3];\n te[3] = te[12];\n te[12] = tmp;\n tmp = te[7];\n te[7] = te[13];\n te[13] = tmp;\n tmp = te[11];\n te[11] = te[14];\n te[14] = tmp;\n return this;\n }\n }, {\n key: \"setPosition\",\n value: function setPosition(x, y, z) {\n var te = this.elements;\n\n if (x.isVector3) {\n te[12] = x.x;\n te[13] = x.y;\n te[14] = x.z;\n } else {\n te[12] = x;\n te[13] = y;\n te[14] = z;\n }\n\n return this;\n }\n }, {\n key: \"invert\",\n value: function invert() {\n // based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm\n var te = this.elements,\n n11 = te[0],\n n21 = te[1],\n n31 = te[2],\n n41 = te[3],\n n12 = te[4],\n n22 = te[5],\n n32 = te[6],\n n42 = te[7],\n n13 = te[8],\n n23 = te[9],\n n33 = te[10],\n n43 = te[11],\n n14 = te[12],\n n24 = te[13],\n n34 = te[14],\n n44 = te[15],\n t11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44,\n t12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44,\n t13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44,\n t14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34;\n var det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14;\n if (det === 0) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n var detInv = 1 / det;\n te[0] = t11 * detInv;\n te[1] = (n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44) * detInv;\n te[2] = (n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44) * detInv;\n te[3] = (n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43) * detInv;\n te[4] = t12 * detInv;\n te[5] = (n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44) * detInv;\n te[6] = (n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44) * detInv;\n te[7] = (n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43) * detInv;\n te[8] = t13 * detInv;\n te[9] = (n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44) * detInv;\n te[10] = (n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44) * detInv;\n te[11] = (n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43) * detInv;\n te[12] = t14 * detInv;\n te[13] = (n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34) * detInv;\n te[14] = (n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34) * detInv;\n te[15] = (n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33) * detInv;\n return this;\n }\n }, {\n key: \"scale\",\n value: function scale(v) {\n var te = this.elements;\n var x = v.x,\n y = v.y,\n z = v.z;\n te[0] *= x;\n te[4] *= y;\n te[8] *= z;\n te[1] *= x;\n te[5] *= y;\n te[9] *= z;\n te[2] *= x;\n te[6] *= y;\n te[10] *= z;\n te[3] *= x;\n te[7] *= y;\n te[11] *= z;\n return this;\n }\n }, {\n key: \"getMaxScaleOnAxis\",\n value: function getMaxScaleOnAxis() {\n var te = this.elements;\n var scaleXSq = te[0] * te[0] + te[1] * te[1] + te[2] * te[2];\n var scaleYSq = te[4] * te[4] + te[5] * te[5] + te[6] * te[6];\n var scaleZSq = te[8] * te[8] + te[9] * te[9] + te[10] * te[10];\n return Math.sqrt(Math.max(scaleXSq, scaleYSq, scaleZSq));\n }\n }, {\n key: \"makeTranslation\",\n value: function makeTranslation(x, y, z) {\n this.set(1, 0, 0, x, 0, 1, 0, y, 0, 0, 1, z, 0, 0, 0, 1);\n return this;\n }\n }, {\n key: \"makeRotationX\",\n value: function makeRotationX(theta) {\n var c = Math.cos(theta),\n s = Math.sin(theta);\n this.set(1, 0, 0, 0, 0, c, -s, 0, 0, s, c, 0, 0, 0, 0, 1);\n return this;\n }\n }, {\n key: \"makeRotationY\",\n value: function makeRotationY(theta) {\n var c = Math.cos(theta),\n s = Math.sin(theta);\n this.set(c, 0, s, 0, 0, 1, 0, 0, -s, 0, c, 0, 0, 0, 0, 1);\n return this;\n }\n }, {\n key: \"makeRotationZ\",\n value: function makeRotationZ(theta) {\n var c = Math.cos(theta),\n s = Math.sin(theta);\n this.set(c, -s, 0, 0, s, c, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n return this;\n }\n }, {\n key: \"makeRotationAxis\",\n value: function makeRotationAxis(axis, angle) {\n // Based on http://www.gamedev.net/reference/articles/article1199.asp\n var c = Math.cos(angle);\n var s = Math.sin(angle);\n var t = 1 - c;\n var x = axis.x,\n y = axis.y,\n z = axis.z;\n var tx = t * x,\n ty = t * y;\n this.set(tx * x + c, tx * y - s * z, tx * z + s * y, 0, tx * y + s * z, ty * y + c, ty * z - s * x, 0, tx * z - s * y, ty * z + s * x, t * z * z + c, 0, 0, 0, 0, 1);\n return this;\n }\n }, {\n key: \"makeScale\",\n value: function makeScale(x, y, z) {\n this.set(x, 0, 0, 0, 0, y, 0, 0, 0, 0, z, 0, 0, 0, 0, 1);\n return this;\n }\n }, {\n key: \"makeShear\",\n value: function makeShear(xy, xz, yx, yz, zx, zy) {\n this.set(1, yx, zx, 0, xy, 1, zy, 0, xz, yz, 1, 0, 0, 0, 0, 1);\n return this;\n }\n }, {\n key: \"compose\",\n value: function compose(position, quaternion, scale) {\n var te = this.elements;\n var x = quaternion._x,\n y = quaternion._y,\n z = quaternion._z,\n w = quaternion._w;\n var x2 = x + x,\n y2 = y + y,\n z2 = z + z;\n var xx = x * x2,\n xy = x * y2,\n xz = x * z2;\n var yy = y * y2,\n yz = y * z2,\n zz = z * z2;\n var wx = w * x2,\n wy = w * y2,\n wz = w * z2;\n var sx = scale.x,\n sy = scale.y,\n sz = scale.z;\n te[0] = (1 - (yy + zz)) * sx;\n te[1] = (xy + wz) * sx;\n te[2] = (xz - wy) * sx;\n te[3] = 0;\n te[4] = (xy - wz) * sy;\n te[5] = (1 - (xx + zz)) * sy;\n te[6] = (yz + wx) * sy;\n te[7] = 0;\n te[8] = (xz + wy) * sz;\n te[9] = (yz - wx) * sz;\n te[10] = (1 - (xx + yy)) * sz;\n te[11] = 0;\n te[12] = position.x;\n te[13] = position.y;\n te[14] = position.z;\n te[15] = 1;\n return this;\n }\n }, {\n key: \"decompose\",\n value: function decompose(position, quaternion, scale) {\n var te = this.elements;\n\n var sx = _v1$5.set(te[0], te[1], te[2]).length();\n\n var sy = _v1$5.set(te[4], te[5], te[6]).length();\n\n var sz = _v1$5.set(te[8], te[9], te[10]).length(); // if determine is negative, we need to invert one scale\n\n\n var det = this.determinant();\n if (det < 0) sx = -sx;\n position.x = te[12];\n position.y = te[13];\n position.z = te[14]; // scale the rotation part\n\n _m1$2.copy(this);\n\n var invSX = 1 / sx;\n var invSY = 1 / sy;\n var invSZ = 1 / sz;\n _m1$2.elements[0] *= invSX;\n _m1$2.elements[1] *= invSX;\n _m1$2.elements[2] *= invSX;\n _m1$2.elements[4] *= invSY;\n _m1$2.elements[5] *= invSY;\n _m1$2.elements[6] *= invSY;\n _m1$2.elements[8] *= invSZ;\n _m1$2.elements[9] *= invSZ;\n _m1$2.elements[10] *= invSZ;\n quaternion.setFromRotationMatrix(_m1$2);\n scale.x = sx;\n scale.y = sy;\n scale.z = sz;\n return this;\n }\n }, {\n key: \"makePerspective\",\n value: function makePerspective(left, right, top, bottom, near, far) {\n var te = this.elements;\n var x = 2 * near / (right - left);\n var y = 2 * near / (top - bottom);\n var a = (right + left) / (right - left);\n var b = (top + bottom) / (top - bottom);\n var c = -(far + near) / (far - near);\n var d = -2 * far * near / (far - near);\n te[0] = x;\n te[4] = 0;\n te[8] = a;\n te[12] = 0;\n te[1] = 0;\n te[5] = y;\n te[9] = b;\n te[13] = 0;\n te[2] = 0;\n te[6] = 0;\n te[10] = c;\n te[14] = d;\n te[3] = 0;\n te[7] = 0;\n te[11] = -1;\n te[15] = 0;\n return this;\n }\n }, {\n key: \"makeOrthographic\",\n value: function makeOrthographic(left, right, top, bottom, near, far) {\n var te = this.elements;\n var w = 1.0 / (right - left);\n var h = 1.0 / (top - bottom);\n var p = 1.0 / (far - near);\n var x = (right + left) * w;\n var y = (top + bottom) * h;\n var z = (far + near) * p;\n te[0] = 2 * w;\n te[4] = 0;\n te[8] = 0;\n te[12] = -x;\n te[1] = 0;\n te[5] = 2 * h;\n te[9] = 0;\n te[13] = -y;\n te[2] = 0;\n te[6] = 0;\n te[10] = -2 * p;\n te[14] = -z;\n te[3] = 0;\n te[7] = 0;\n te[11] = 0;\n te[15] = 1;\n return this;\n }\n }, {\n key: \"equals\",\n value: function equals(matrix) {\n var te = this.elements;\n var me = matrix.elements;\n\n for (var i = 0; i < 16; i++) {\n if (te[i] !== me[i]) return false;\n }\n\n return true;\n }\n }, {\n key: \"fromArray\",\n value: function fromArray(array) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n for (var i = 0; i < 16; i++) {\n this.elements[i] = array[i + offset];\n }\n\n return this;\n }\n }, {\n key: \"toArray\",\n value: function toArray() {\n var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var te = this.elements;\n array[offset] = te[0];\n array[offset + 1] = te[1];\n array[offset + 2] = te[2];\n array[offset + 3] = te[3];\n array[offset + 4] = te[4];\n array[offset + 5] = te[5];\n array[offset + 6] = te[6];\n array[offset + 7] = te[7];\n array[offset + 8] = te[8];\n array[offset + 9] = te[9];\n array[offset + 10] = te[10];\n array[offset + 11] = te[11];\n array[offset + 12] = te[12];\n array[offset + 13] = te[13];\n array[offset + 14] = te[14];\n array[offset + 15] = te[15];\n return array;\n }\n }]);\n\n return Matrix4;\n}();\n\nvar _v1$5 = /*@__PURE__*/new Vector3();\n\nvar _m1$2 = /*@__PURE__*/new Matrix4();\n\nvar _zero = /*@__PURE__*/new Vector3(0, 0, 0);\n\nvar _one = /*@__PURE__*/new Vector3(1, 1, 1);\n\nvar _x = /*@__PURE__*/new Vector3();\n\nvar _y = /*@__PURE__*/new Vector3();\n\nvar _z = /*@__PURE__*/new Vector3();\n\nvar _matrix = /*@__PURE__*/new Matrix4();\n\nvar _quaternion$3 = /*@__PURE__*/new Quaternion();\n\nvar Euler = /*#__PURE__*/function (_Symbol$iterator5) {\n function Euler() {\n var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var order = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Euler.DEFAULT_ORDER;\n\n _classCallCheck(this, Euler);\n\n this.isEuler = true;\n this._x = x;\n this._y = y;\n this._z = z;\n this._order = order;\n }\n\n _createClass(Euler, [{\n key: \"x\",\n get: function get() {\n return this._x;\n },\n set: function set(value) {\n this._x = value;\n\n this._onChangeCallback();\n }\n }, {\n key: \"y\",\n get: function get() {\n return this._y;\n },\n set: function set(value) {\n this._y = value;\n\n this._onChangeCallback();\n }\n }, {\n key: \"z\",\n get: function get() {\n return this._z;\n },\n set: function set(value) {\n this._z = value;\n\n this._onChangeCallback();\n }\n }, {\n key: \"order\",\n get: function get() {\n return this._order;\n },\n set: function set(value) {\n this._order = value;\n\n this._onChangeCallback();\n }\n }, {\n key: \"set\",\n value: function set(x, y, z) {\n var order = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this._order;\n this._x = x;\n this._y = y;\n this._z = z;\n this._order = order;\n\n this._onChangeCallback();\n\n return this;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor(this._x, this._y, this._z, this._order);\n }\n }, {\n key: \"copy\",\n value: function copy(euler) {\n this._x = euler._x;\n this._y = euler._y;\n this._z = euler._z;\n this._order = euler._order;\n\n this._onChangeCallback();\n\n return this;\n }\n }, {\n key: \"setFromRotationMatrix\",\n value: function setFromRotationMatrix(m) {\n var order = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this._order;\n var update = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n var te = m.elements;\n var m11 = te[0],\n m12 = te[4],\n m13 = te[8];\n var m21 = te[1],\n m22 = te[5],\n m23 = te[9];\n var m31 = te[2],\n m32 = te[6],\n m33 = te[10];\n\n switch (order) {\n case 'XYZ':\n this._y = Math.asin(clamp(m13, -1, 1));\n\n if (Math.abs(m13) < 0.9999999) {\n this._x = Math.atan2(-m23, m33);\n this._z = Math.atan2(-m12, m11);\n } else {\n this._x = Math.atan2(m32, m22);\n this._z = 0;\n }\n\n break;\n\n case 'YXZ':\n this._x = Math.asin(-clamp(m23, -1, 1));\n\n if (Math.abs(m23) < 0.9999999) {\n this._y = Math.atan2(m13, m33);\n this._z = Math.atan2(m21, m22);\n } else {\n this._y = Math.atan2(-m31, m11);\n this._z = 0;\n }\n\n break;\n\n case 'ZXY':\n this._x = Math.asin(clamp(m32, -1, 1));\n\n if (Math.abs(m32) < 0.9999999) {\n this._y = Math.atan2(-m31, m33);\n this._z = Math.atan2(-m12, m22);\n } else {\n this._y = 0;\n this._z = Math.atan2(m21, m11);\n }\n\n break;\n\n case 'ZYX':\n this._y = Math.asin(-clamp(m31, -1, 1));\n\n if (Math.abs(m31) < 0.9999999) {\n this._x = Math.atan2(m32, m33);\n this._z = Math.atan2(m21, m11);\n } else {\n this._x = 0;\n this._z = Math.atan2(-m12, m22);\n }\n\n break;\n\n case 'YZX':\n this._z = Math.asin(clamp(m21, -1, 1));\n\n if (Math.abs(m21) < 0.9999999) {\n this._x = Math.atan2(-m23, m22);\n this._y = Math.atan2(-m31, m11);\n } else {\n this._x = 0;\n this._y = Math.atan2(m13, m33);\n }\n\n break;\n\n case 'XZY':\n this._z = Math.asin(-clamp(m12, -1, 1));\n\n if (Math.abs(m12) < 0.9999999) {\n this._x = Math.atan2(m32, m22);\n this._y = Math.atan2(m13, m11);\n } else {\n this._x = Math.atan2(-m23, m33);\n this._y = 0;\n }\n\n break;\n\n default:\n console.warn('THREE.Euler: .setFromRotationMatrix() encountered an unknown order: ' + order);\n }\n\n this._order = order;\n if (update === true) this._onChangeCallback();\n return this;\n }\n }, {\n key: \"setFromQuaternion\",\n value: function setFromQuaternion(q, order, update) {\n _matrix.makeRotationFromQuaternion(q);\n\n return this.setFromRotationMatrix(_matrix, order, update);\n }\n }, {\n key: \"setFromVector3\",\n value: function setFromVector3(v) {\n var order = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this._order;\n return this.set(v.x, v.y, v.z, order);\n }\n }, {\n key: \"reorder\",\n value: function reorder(newOrder) {\n // WARNING: this discards revolution information -bhouston\n _quaternion$3.setFromEuler(this);\n\n return this.setFromQuaternion(_quaternion$3, newOrder);\n }\n }, {\n key: \"equals\",\n value: function equals(euler) {\n return euler._x === this._x && euler._y === this._y && euler._z === this._z && euler._order === this._order;\n }\n }, {\n key: \"fromArray\",\n value: function fromArray(array) {\n this._x = array[0];\n this._y = array[1];\n this._z = array[2];\n if (array[3] !== undefined) this._order = array[3];\n\n this._onChangeCallback();\n\n return this;\n }\n }, {\n key: \"toArray\",\n value: function toArray() {\n var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n array[offset] = this._x;\n array[offset + 1] = this._y;\n array[offset + 2] = this._z;\n array[offset + 3] = this._order;\n return array;\n }\n }, {\n key: \"_onChange\",\n value: function _onChange(callback) {\n this._onChangeCallback = callback;\n return this;\n }\n }, {\n key: \"_onChangeCallback\",\n value: function _onChangeCallback() {}\n }, {\n key: _Symbol$iterator5,\n value: /*#__PURE__*/_regeneratorRuntime().mark(function value() {\n return _regeneratorRuntime().wrap(function value$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return this._x;\n\n case 2:\n _context6.next = 4;\n return this._y;\n\n case 4:\n _context6.next = 6;\n return this._z;\n\n case 6:\n _context6.next = 8;\n return this._order;\n\n case 8:\n case \"end\":\n return _context6.stop();\n }\n }\n }, value, this);\n })\n }]);\n\n return Euler;\n}(Symbol.iterator);\n\nEuler.DEFAULT_ORDER = 'XYZ';\n\nvar Layers = /*#__PURE__*/function () {\n function Layers() {\n _classCallCheck(this, Layers);\n\n this.mask = 1 | 0;\n }\n\n _createClass(Layers, [{\n key: \"set\",\n value: function set(channel) {\n this.mask = (1 << channel | 0) >>> 0;\n }\n }, {\n key: \"enable\",\n value: function enable(channel) {\n this.mask |= 1 << channel | 0;\n }\n }, {\n key: \"enableAll\",\n value: function enableAll() {\n this.mask = 0xffffffff | 0;\n }\n }, {\n key: \"toggle\",\n value: function toggle(channel) {\n this.mask ^= 1 << channel | 0;\n }\n }, {\n key: \"disable\",\n value: function disable(channel) {\n this.mask &= ~(1 << channel | 0);\n }\n }, {\n key: \"disableAll\",\n value: function disableAll() {\n this.mask = 0;\n }\n }, {\n key: \"test\",\n value: function test(layers) {\n return (this.mask & layers.mask) !== 0;\n }\n }, {\n key: \"isEnabled\",\n value: function isEnabled(channel) {\n return (this.mask & (1 << channel | 0)) !== 0;\n }\n }]);\n\n return Layers;\n}();\n\nvar _object3DId = 0;\n\nvar _v1$4 = /*@__PURE__*/new Vector3();\n\nvar _q1 = /*@__PURE__*/new Quaternion();\n\nvar _m1$1 = /*@__PURE__*/new Matrix4();\n\nvar _target = /*@__PURE__*/new Vector3();\n\nvar _position$3 = /*@__PURE__*/new Vector3();\n\nvar _scale$2 = /*@__PURE__*/new Vector3();\n\nvar _quaternion$2 = /*@__PURE__*/new Quaternion();\n\nvar _xAxis = /*@__PURE__*/new Vector3(1, 0, 0);\n\nvar _yAxis = /*@__PURE__*/new Vector3(0, 1, 0);\n\nvar _zAxis = /*@__PURE__*/new Vector3(0, 0, 1);\n\nvar _addedEvent = {\n type: 'added'\n};\nvar _removedEvent = {\n type: 'removed'\n};\n\nvar Object3D = /*#__PURE__*/function (_EventDispatcher3) {\n _inherits(Object3D, _EventDispatcher3);\n\n var _super8 = _createSuper(Object3D);\n\n function Object3D() {\n var _this9;\n\n _classCallCheck(this, Object3D);\n\n _this9 = _super8.call(this);\n _this9.isObject3D = true;\n Object.defineProperty(_assertThisInitialized(_this9), 'id', {\n value: _object3DId++\n });\n _this9.uuid = generateUUID();\n _this9.name = '';\n _this9.type = 'Object3D';\n _this9.parent = null;\n _this9.children = [];\n _this9.up = Object3D.DEFAULT_UP.clone();\n var position = new Vector3();\n var rotation = new Euler();\n var quaternion = new Quaternion();\n var scale = new Vector3(1, 1, 1);\n\n function onRotationChange() {\n quaternion.setFromEuler(rotation, false);\n }\n\n function onQuaternionChange() {\n rotation.setFromQuaternion(quaternion, undefined, false);\n }\n\n rotation._onChange(onRotationChange);\n\n quaternion._onChange(onQuaternionChange);\n\n Object.defineProperties(_assertThisInitialized(_this9), {\n position: {\n configurable: true,\n enumerable: true,\n value: position\n },\n rotation: {\n configurable: true,\n enumerable: true,\n value: rotation\n },\n quaternion: {\n configurable: true,\n enumerable: true,\n value: quaternion\n },\n scale: {\n configurable: true,\n enumerable: true,\n value: scale\n },\n modelViewMatrix: {\n value: new Matrix4()\n },\n normalMatrix: {\n value: new Matrix3()\n }\n });\n _this9.matrix = new Matrix4();\n _this9.matrixWorld = new Matrix4();\n _this9.matrixAutoUpdate = Object3D.DEFAULT_MATRIX_AUTO_UPDATE;\n _this9.matrixWorldNeedsUpdate = false;\n _this9.matrixWorldAutoUpdate = Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE; // checked by the renderer\n\n _this9.layers = new Layers();\n _this9.visible = true;\n _this9.castShadow = false;\n _this9.receiveShadow = false;\n _this9.frustumCulled = true;\n _this9.renderOrder = 0;\n _this9.animations = [];\n _this9.userData = {};\n return _this9;\n }\n\n _createClass(Object3D, [{\n key: \"onBeforeRender\",\n value: function\n /* renderer, scene, camera, geometry, material, group */\n onBeforeRender() {}\n }, {\n key: \"onAfterRender\",\n value: function\n /* renderer, scene, camera, geometry, material, group */\n onAfterRender() {}\n }, {\n key: \"applyMatrix4\",\n value: function applyMatrix4(matrix) {\n if (this.matrixAutoUpdate) this.updateMatrix();\n this.matrix.premultiply(matrix);\n this.matrix.decompose(this.position, this.quaternion, this.scale);\n }\n }, {\n key: \"applyQuaternion\",\n value: function applyQuaternion(q) {\n this.quaternion.premultiply(q);\n return this;\n }\n }, {\n key: \"setRotationFromAxisAngle\",\n value: function setRotationFromAxisAngle(axis, angle) {\n // assumes axis is normalized\n this.quaternion.setFromAxisAngle(axis, angle);\n }\n }, {\n key: \"setRotationFromEuler\",\n value: function setRotationFromEuler(euler) {\n this.quaternion.setFromEuler(euler, true);\n }\n }, {\n key: \"setRotationFromMatrix\",\n value: function setRotationFromMatrix(m) {\n // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n this.quaternion.setFromRotationMatrix(m);\n }\n }, {\n key: \"setRotationFromQuaternion\",\n value: function setRotationFromQuaternion(q) {\n // assumes q is normalized\n this.quaternion.copy(q);\n }\n }, {\n key: \"rotateOnAxis\",\n value: function rotateOnAxis(axis, angle) {\n // rotate object on axis in object space\n // axis is assumed to be normalized\n _q1.setFromAxisAngle(axis, angle);\n\n this.quaternion.multiply(_q1);\n return this;\n }\n }, {\n key: \"rotateOnWorldAxis\",\n value: function rotateOnWorldAxis(axis, angle) {\n // rotate object on axis in world space\n // axis is assumed to be normalized\n // method assumes no rotated parent\n _q1.setFromAxisAngle(axis, angle);\n\n this.quaternion.premultiply(_q1);\n return this;\n }\n }, {\n key: \"rotateX\",\n value: function rotateX(angle) {\n return this.rotateOnAxis(_xAxis, angle);\n }\n }, {\n key: \"rotateY\",\n value: function rotateY(angle) {\n return this.rotateOnAxis(_yAxis, angle);\n }\n }, {\n key: \"rotateZ\",\n value: function rotateZ(angle) {\n return this.rotateOnAxis(_zAxis, angle);\n }\n }, {\n key: \"translateOnAxis\",\n value: function translateOnAxis(axis, distance) {\n // translate object by distance along axis in object space\n // axis is assumed to be normalized\n _v1$4.copy(axis).applyQuaternion(this.quaternion);\n\n this.position.add(_v1$4.multiplyScalar(distance));\n return this;\n }\n }, {\n key: \"translateX\",\n value: function translateX(distance) {\n return this.translateOnAxis(_xAxis, distance);\n }\n }, {\n key: \"translateY\",\n value: function translateY(distance) {\n return this.translateOnAxis(_yAxis, distance);\n }\n }, {\n key: \"translateZ\",\n value: function translateZ(distance) {\n return this.translateOnAxis(_zAxis, distance);\n }\n }, {\n key: \"localToWorld\",\n value: function localToWorld(vector) {\n this.updateWorldMatrix(true, false);\n return vector.applyMatrix4(this.matrixWorld);\n }\n }, {\n key: \"worldToLocal\",\n value: function worldToLocal(vector) {\n this.updateWorldMatrix(true, false);\n return vector.applyMatrix4(_m1$1.copy(this.matrixWorld).invert());\n }\n }, {\n key: \"lookAt\",\n value: function lookAt(x, y, z) {\n // This method does not support objects having non-uniformly-scaled parent(s)\n if (x.isVector3) {\n _target.copy(x);\n } else {\n _target.set(x, y, z);\n }\n\n var parent = this.parent;\n this.updateWorldMatrix(true, false);\n\n _position$3.setFromMatrixPosition(this.matrixWorld);\n\n if (this.isCamera || this.isLight) {\n _m1$1.lookAt(_position$3, _target, this.up);\n } else {\n _m1$1.lookAt(_target, _position$3, this.up);\n }\n\n this.quaternion.setFromRotationMatrix(_m1$1);\n\n if (parent) {\n _m1$1.extractRotation(parent.matrixWorld);\n\n _q1.setFromRotationMatrix(_m1$1);\n\n this.quaternion.premultiply(_q1.invert());\n }\n }\n }, {\n key: \"add\",\n value: function add(object) {\n if (arguments.length > 1) {\n for (var i = 0; i < arguments.length; i++) {\n this.add(arguments[i]);\n }\n\n return this;\n }\n\n if (object === this) {\n console.error('THREE.Object3D.add: object can\\'t be added as a child of itself.', object);\n return this;\n }\n\n if (object && object.isObject3D) {\n if (object.parent !== null) {\n object.parent.remove(object);\n }\n\n object.parent = this;\n this.children.push(object);\n object.dispatchEvent(_addedEvent);\n } else {\n console.error('THREE.Object3D.add: object not an instance of THREE.Object3D.', object);\n }\n\n return this;\n }\n }, {\n key: \"remove\",\n value: function remove(object) {\n if (arguments.length > 1) {\n for (var i = 0; i < arguments.length; i++) {\n this.remove(arguments[i]);\n }\n\n return this;\n }\n\n var index = this.children.indexOf(object);\n\n if (index !== -1) {\n object.parent = null;\n this.children.splice(index, 1);\n object.dispatchEvent(_removedEvent);\n }\n\n return this;\n }\n }, {\n key: \"removeFromParent\",\n value: function removeFromParent() {\n var parent = this.parent;\n\n if (parent !== null) {\n parent.remove(this);\n }\n\n return this;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n for (var i = 0; i < this.children.length; i++) {\n var object = this.children[i];\n object.parent = null;\n object.dispatchEvent(_removedEvent);\n }\n\n this.children.length = 0;\n return this;\n }\n }, {\n key: \"attach\",\n value: function attach(object) {\n // adds object as a child of this, while maintaining the object's world transform\n // Note: This method does not support scene graphs having non-uniformly-scaled nodes(s)\n this.updateWorldMatrix(true, false);\n\n _m1$1.copy(this.matrixWorld).invert();\n\n if (object.parent !== null) {\n object.parent.updateWorldMatrix(true, false);\n\n _m1$1.multiply(object.parent.matrixWorld);\n }\n\n object.applyMatrix4(_m1$1);\n this.add(object);\n object.updateWorldMatrix(false, true);\n return this;\n }\n }, {\n key: \"getObjectById\",\n value: function getObjectById(id) {\n return this.getObjectByProperty('id', id);\n }\n }, {\n key: \"getObjectByName\",\n value: function getObjectByName(name) {\n return this.getObjectByProperty('name', name);\n }\n }, {\n key: \"getObjectByProperty\",\n value: function getObjectByProperty(name, value) {\n if (this[name] === value) return this;\n\n for (var i = 0, l = this.children.length; i < l; i++) {\n var child = this.children[i];\n var object = child.getObjectByProperty(name, value);\n\n if (object !== undefined) {\n return object;\n }\n }\n\n return undefined;\n }\n }, {\n key: \"getObjectsByProperty\",\n value: function getObjectsByProperty(name, value) {\n var result = [];\n if (this[name] === value) result.push(this);\n\n for (var i = 0, l = this.children.length; i < l; i++) {\n var childResult = this.children[i].getObjectsByProperty(name, value);\n\n if (childResult.length > 0) {\n result = result.concat(childResult);\n }\n }\n\n return result;\n }\n }, {\n key: \"getWorldPosition\",\n value: function getWorldPosition(target) {\n this.updateWorldMatrix(true, false);\n return target.setFromMatrixPosition(this.matrixWorld);\n }\n }, {\n key: \"getWorldQuaternion\",\n value: function getWorldQuaternion(target) {\n this.updateWorldMatrix(true, false);\n this.matrixWorld.decompose(_position$3, target, _scale$2);\n return target;\n }\n }, {\n key: \"getWorldScale\",\n value: function getWorldScale(target) {\n this.updateWorldMatrix(true, false);\n this.matrixWorld.decompose(_position$3, _quaternion$2, target);\n return target;\n }\n }, {\n key: \"getWorldDirection\",\n value: function getWorldDirection(target) {\n this.updateWorldMatrix(true, false);\n var e = this.matrixWorld.elements;\n return target.set(e[8], e[9], e[10]).normalize();\n }\n }, {\n key: \"raycast\",\n value: function\n /* raycaster, intersects */\n raycast() {}\n }, {\n key: \"traverse\",\n value: function traverse(callback) {\n callback(this);\n var children = this.children;\n\n for (var i = 0, l = children.length; i < l; i++) {\n children[i].traverse(callback);\n }\n }\n }, {\n key: \"traverseVisible\",\n value: function traverseVisible(callback) {\n if (this.visible === false) return;\n callback(this);\n var children = this.children;\n\n for (var i = 0, l = children.length; i < l; i++) {\n children[i].traverseVisible(callback);\n }\n }\n }, {\n key: \"traverseAncestors\",\n value: function traverseAncestors(callback) {\n var parent = this.parent;\n\n if (parent !== null) {\n callback(parent);\n parent.traverseAncestors(callback);\n }\n }\n }, {\n key: \"updateMatrix\",\n value: function updateMatrix() {\n this.matrix.compose(this.position, this.quaternion, this.scale);\n this.matrixWorldNeedsUpdate = true;\n }\n }, {\n key: \"updateMatrixWorld\",\n value: function updateMatrixWorld(force) {\n if (this.matrixAutoUpdate) this.updateMatrix();\n\n if (this.matrixWorldNeedsUpdate || force) {\n if (this.parent === null) {\n this.matrixWorld.copy(this.matrix);\n } else {\n this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix);\n }\n\n this.matrixWorldNeedsUpdate = false;\n force = true;\n } // update children\n\n\n var children = this.children;\n\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n\n if (child.matrixWorldAutoUpdate === true || force === true) {\n child.updateMatrixWorld(force);\n }\n }\n }\n }, {\n key: \"updateWorldMatrix\",\n value: function updateWorldMatrix(updateParents, updateChildren) {\n var parent = this.parent;\n\n if (updateParents === true && parent !== null && parent.matrixWorldAutoUpdate === true) {\n parent.updateWorldMatrix(true, false);\n }\n\n if (this.matrixAutoUpdate) this.updateMatrix();\n\n if (this.parent === null) {\n this.matrixWorld.copy(this.matrix);\n } else {\n this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix);\n } // update children\n\n\n if (updateChildren === true) {\n var children = this.children;\n\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n\n if (child.matrixWorldAutoUpdate === true) {\n child.updateWorldMatrix(false, true);\n }\n }\n }\n }\n }, {\n key: \"toJSON\",\n value: function toJSON(meta) {\n // meta is a string when called from JSON.stringify\n var isRootObject = meta === undefined || typeof meta === 'string';\n var output = {}; // meta is a hash used to collect geometries, materials.\n // not providing it implies that this is the root object\n // being serialized.\n\n if (isRootObject) {\n // initialize meta obj\n meta = {\n geometries: {},\n materials: {},\n textures: {},\n images: {},\n shapes: {},\n skeletons: {},\n animations: {},\n nodes: {}\n };\n output.metadata = {\n version: 4.5,\n type: 'Object',\n generator: 'Object3D.toJSON'\n };\n } // standard Object3D serialization\n\n\n var object = {};\n object.uuid = this.uuid;\n object.type = this.type;\n if (this.name !== '') object.name = this.name;\n if (this.castShadow === true) object.castShadow = true;\n if (this.receiveShadow === true) object.receiveShadow = true;\n if (this.visible === false) object.visible = false;\n if (this.frustumCulled === false) object.frustumCulled = false;\n if (this.renderOrder !== 0) object.renderOrder = this.renderOrder;\n if (Object.keys(this.userData).length > 0) object.userData = this.userData;\n object.layers = this.layers.mask;\n object.matrix = this.matrix.toArray();\n object.up = this.up.toArray();\n if (this.matrixAutoUpdate === false) object.matrixAutoUpdate = false; // object specific properties\n\n if (this.isInstancedMesh) {\n object.type = 'InstancedMesh';\n object.count = this.count;\n object.instanceMatrix = this.instanceMatrix.toJSON();\n if (this.instanceColor !== null) object.instanceColor = this.instanceColor.toJSON();\n } //\n\n\n function serialize(library, element) {\n if (library[element.uuid] === undefined) {\n library[element.uuid] = element.toJSON(meta);\n }\n\n return element.uuid;\n }\n\n if (this.isScene) {\n if (this.background) {\n if (this.background.isColor) {\n object.background = this.background.toJSON();\n } else if (this.background.isTexture) {\n object.background = this.background.toJSON(meta).uuid;\n }\n }\n\n if (this.environment && this.environment.isTexture && this.environment.isRenderTargetTexture !== true) {\n object.environment = this.environment.toJSON(meta).uuid;\n }\n } else if (this.isMesh || this.isLine || this.isPoints) {\n object.geometry = serialize(meta.geometries, this.geometry);\n var parameters = this.geometry.parameters;\n\n if (parameters !== undefined && parameters.shapes !== undefined) {\n var shapes = parameters.shapes;\n\n if (Array.isArray(shapes)) {\n for (var i = 0, l = shapes.length; i < l; i++) {\n var shape = shapes[i];\n serialize(meta.shapes, shape);\n }\n } else {\n serialize(meta.shapes, shapes);\n }\n }\n }\n\n if (this.isSkinnedMesh) {\n object.bindMode = this.bindMode;\n object.bindMatrix = this.bindMatrix.toArray();\n\n if (this.skeleton !== undefined) {\n serialize(meta.skeletons, this.skeleton);\n object.skeleton = this.skeleton.uuid;\n }\n }\n\n if (this.material !== undefined) {\n if (Array.isArray(this.material)) {\n var uuids = [];\n\n for (var _i3 = 0, _l2 = this.material.length; _i3 < _l2; _i3++) {\n uuids.push(serialize(meta.materials, this.material[_i3]));\n }\n\n object.material = uuids;\n } else {\n object.material = serialize(meta.materials, this.material);\n }\n } //\n\n\n if (this.children.length > 0) {\n object.children = [];\n\n for (var _i4 = 0; _i4 < this.children.length; _i4++) {\n object.children.push(this.children[_i4].toJSON(meta).object);\n }\n } //\n\n\n if (this.animations.length > 0) {\n object.animations = [];\n\n for (var _i5 = 0; _i5 < this.animations.length; _i5++) {\n var animation = this.animations[_i5];\n object.animations.push(serialize(meta.animations, animation));\n }\n }\n\n if (isRootObject) {\n var geometries = extractFromCache(meta.geometries);\n var materials = extractFromCache(meta.materials);\n var textures = extractFromCache(meta.textures);\n var images = extractFromCache(meta.images);\n\n var _shapes = extractFromCache(meta.shapes);\n\n var skeletons = extractFromCache(meta.skeletons);\n var animations = extractFromCache(meta.animations);\n var nodes = extractFromCache(meta.nodes);\n if (geometries.length > 0) output.geometries = geometries;\n if (materials.length > 0) output.materials = materials;\n if (textures.length > 0) output.textures = textures;\n if (images.length > 0) output.images = images;\n if (_shapes.length > 0) output.shapes = _shapes;\n if (skeletons.length > 0) output.skeletons = skeletons;\n if (animations.length > 0) output.animations = animations;\n if (nodes.length > 0) output.nodes = nodes;\n }\n\n output.object = object;\n return output; // extract data from the cache hash\n // remove metadata on each item\n // and return as array\n\n function extractFromCache(cache) {\n var values = [];\n\n for (var key in cache) {\n var data = cache[key];\n delete data.metadata;\n values.push(data);\n }\n\n return values;\n }\n }\n }, {\n key: \"clone\",\n value: function clone(recursive) {\n return new this.constructor().copy(this, recursive);\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n var recursive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n this.name = source.name;\n this.up.copy(source.up);\n this.position.copy(source.position);\n this.rotation.order = source.rotation.order;\n this.quaternion.copy(source.quaternion);\n this.scale.copy(source.scale);\n this.matrix.copy(source.matrix);\n this.matrixWorld.copy(source.matrixWorld);\n this.matrixAutoUpdate = source.matrixAutoUpdate;\n this.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate;\n this.matrixWorldAutoUpdate = source.matrixWorldAutoUpdate;\n this.layers.mask = source.layers.mask;\n this.visible = source.visible;\n this.castShadow = source.castShadow;\n this.receiveShadow = source.receiveShadow;\n this.frustumCulled = source.frustumCulled;\n this.renderOrder = source.renderOrder;\n this.animations = source.animations;\n this.userData = JSON.parse(JSON.stringify(source.userData));\n\n if (recursive === true) {\n for (var i = 0; i < source.children.length; i++) {\n var child = source.children[i];\n this.add(child.clone());\n }\n }\n\n return this;\n }\n }]);\n\n return Object3D;\n}(EventDispatcher);\n\nObject3D.DEFAULT_UP = /*@__PURE__*/new Vector3(0, 1, 0);\nObject3D.DEFAULT_MATRIX_AUTO_UPDATE = true;\nObject3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE = true;\n\nvar _v0$1 = /*@__PURE__*/new Vector3();\n\nvar _v1$3 = /*@__PURE__*/new Vector3();\n\nvar _v2$2 = /*@__PURE__*/new Vector3();\n\nvar _v3$1 = /*@__PURE__*/new Vector3();\n\nvar _vab = /*@__PURE__*/new Vector3();\n\nvar _vac = /*@__PURE__*/new Vector3();\n\nvar _vbc = /*@__PURE__*/new Vector3();\n\nvar _vap = /*@__PURE__*/new Vector3();\n\nvar _vbp = /*@__PURE__*/new Vector3();\n\nvar _vcp = /*@__PURE__*/new Vector3();\n\nvar warnedGetUV = false;\n\nvar Triangle = /*#__PURE__*/function () {\n function Triangle() {\n var a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Vector3();\n var b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector3();\n var c = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Vector3();\n\n _classCallCheck(this, Triangle);\n\n this.a = a;\n this.b = b;\n this.c = c;\n }\n\n _createClass(Triangle, [{\n key: \"set\",\n value: function set(a, b, c) {\n this.a.copy(a);\n this.b.copy(b);\n this.c.copy(c);\n return this;\n }\n }, {\n key: \"setFromPointsAndIndices\",\n value: function setFromPointsAndIndices(points, i0, i1, i2) {\n this.a.copy(points[i0]);\n this.b.copy(points[i1]);\n this.c.copy(points[i2]);\n return this;\n }\n }, {\n key: \"setFromAttributeAndIndices\",\n value: function setFromAttributeAndIndices(attribute, i0, i1, i2) {\n this.a.fromBufferAttribute(attribute, i0);\n this.b.fromBufferAttribute(attribute, i1);\n this.c.fromBufferAttribute(attribute, i2);\n return this;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n }\n }, {\n key: \"copy\",\n value: function copy(triangle) {\n this.a.copy(triangle.a);\n this.b.copy(triangle.b);\n this.c.copy(triangle.c);\n return this;\n }\n }, {\n key: \"getArea\",\n value: function getArea() {\n _v0$1.subVectors(this.c, this.b);\n\n _v1$3.subVectors(this.a, this.b);\n\n return _v0$1.cross(_v1$3).length() * 0.5;\n }\n }, {\n key: \"getMidpoint\",\n value: function getMidpoint(target) {\n return target.addVectors(this.a, this.b).add(this.c).multiplyScalar(1 / 3);\n }\n }, {\n key: \"getNormal\",\n value: function getNormal(target) {\n return Triangle.getNormal(this.a, this.b, this.c, target);\n }\n }, {\n key: \"getPlane\",\n value: function getPlane(target) {\n return target.setFromCoplanarPoints(this.a, this.b, this.c);\n }\n }, {\n key: \"getBarycoord\",\n value: function getBarycoord(point, target) {\n return Triangle.getBarycoord(point, this.a, this.b, this.c, target);\n }\n }, {\n key: \"getUV\",\n value: function getUV(point, uv1, uv2, uv3, target) {\n // @deprecated, r151\n if (warnedGetUV === false) {\n console.warn('THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation().');\n warnedGetUV = true;\n }\n\n return Triangle.getInterpolation(point, this.a, this.b, this.c, uv1, uv2, uv3, target);\n }\n }, {\n key: \"getInterpolation\",\n value: function getInterpolation(point, v1, v2, v3, target) {\n return Triangle.getInterpolation(point, this.a, this.b, this.c, v1, v2, v3, target);\n }\n }, {\n key: \"containsPoint\",\n value: function containsPoint(point) {\n return Triangle.containsPoint(point, this.a, this.b, this.c);\n }\n }, {\n key: \"isFrontFacing\",\n value: function isFrontFacing(direction) {\n return Triangle.isFrontFacing(this.a, this.b, this.c, direction);\n }\n }, {\n key: \"intersectsBox\",\n value: function intersectsBox(box) {\n return box.intersectsTriangle(this);\n }\n }, {\n key: \"closestPointToPoint\",\n value: function closestPointToPoint(p, target) {\n var a = this.a,\n b = this.b,\n c = this.c;\n var v, w; // algorithm thanks to Real-Time Collision Detection by Christer Ericson,\n // published by Morgan Kaufmann Publishers, (c) 2005 Elsevier Inc.,\n // under the accompanying license; see chapter 5.1.5 for detailed explanation.\n // basically, we're distinguishing which of the voronoi regions of the triangle\n // the point lies in with the minimum amount of redundant computation.\n\n _vab.subVectors(b, a);\n\n _vac.subVectors(c, a);\n\n _vap.subVectors(p, a);\n\n var d1 = _vab.dot(_vap);\n\n var d2 = _vac.dot(_vap);\n\n if (d1 <= 0 && d2 <= 0) {\n // vertex region of A; barycentric coords (1, 0, 0)\n return target.copy(a);\n }\n\n _vbp.subVectors(p, b);\n\n var d3 = _vab.dot(_vbp);\n\n var d4 = _vac.dot(_vbp);\n\n if (d3 >= 0 && d4 <= d3) {\n // vertex region of B; barycentric coords (0, 1, 0)\n return target.copy(b);\n }\n\n var vc = d1 * d4 - d3 * d2;\n\n if (vc <= 0 && d1 >= 0 && d3 <= 0) {\n v = d1 / (d1 - d3); // edge region of AB; barycentric coords (1-v, v, 0)\n\n return target.copy(a).addScaledVector(_vab, v);\n }\n\n _vcp.subVectors(p, c);\n\n var d5 = _vab.dot(_vcp);\n\n var d6 = _vac.dot(_vcp);\n\n if (d6 >= 0 && d5 <= d6) {\n // vertex region of C; barycentric coords (0, 0, 1)\n return target.copy(c);\n }\n\n var vb = d5 * d2 - d1 * d6;\n\n if (vb <= 0 && d2 >= 0 && d6 <= 0) {\n w = d2 / (d2 - d6); // edge region of AC; barycentric coords (1-w, 0, w)\n\n return target.copy(a).addScaledVector(_vac, w);\n }\n\n var va = d3 * d6 - d5 * d4;\n\n if (va <= 0 && d4 - d3 >= 0 && d5 - d6 >= 0) {\n _vbc.subVectors(c, b);\n\n w = (d4 - d3) / (d4 - d3 + (d5 - d6)); // edge region of BC; barycentric coords (0, 1-w, w)\n\n return target.copy(b).addScaledVector(_vbc, w); // edge region of BC\n } // face region\n\n\n var denom = 1 / (va + vb + vc); // u = va * denom\n\n v = vb * denom;\n w = vc * denom;\n return target.copy(a).addScaledVector(_vab, v).addScaledVector(_vac, w);\n }\n }, {\n key: \"equals\",\n value: function equals(triangle) {\n return triangle.a.equals(this.a) && triangle.b.equals(this.b) && triangle.c.equals(this.c);\n }\n }], [{\n key: \"getNormal\",\n value: function getNormal(a, b, c, target) {\n target.subVectors(c, b);\n\n _v0$1.subVectors(a, b);\n\n target.cross(_v0$1);\n var targetLengthSq = target.lengthSq();\n\n if (targetLengthSq > 0) {\n return target.multiplyScalar(1 / Math.sqrt(targetLengthSq));\n }\n\n return target.set(0, 0, 0);\n } // static/instance method to calculate barycentric coordinates\n // based on: http://www.blackpawn.com/texts/pointinpoly/default.html\n\n }, {\n key: \"getBarycoord\",\n value: function getBarycoord(point, a, b, c, target) {\n _v0$1.subVectors(c, a);\n\n _v1$3.subVectors(b, a);\n\n _v2$2.subVectors(point, a);\n\n var dot00 = _v0$1.dot(_v0$1);\n\n var dot01 = _v0$1.dot(_v1$3);\n\n var dot02 = _v0$1.dot(_v2$2);\n\n var dot11 = _v1$3.dot(_v1$3);\n\n var dot12 = _v1$3.dot(_v2$2);\n\n var denom = dot00 * dot11 - dot01 * dot01; // collinear or singular triangle\n\n if (denom === 0) {\n // arbitrary location outside of triangle?\n // not sure if this is the best idea, maybe should be returning undefined\n return target.set(-2, -1, -1);\n }\n\n var invDenom = 1 / denom;\n var u = (dot11 * dot02 - dot01 * dot12) * invDenom;\n var v = (dot00 * dot12 - dot01 * dot02) * invDenom; // barycentric coordinates must always sum to 1\n\n return target.set(1 - u - v, v, u);\n }\n }, {\n key: \"containsPoint\",\n value: function containsPoint(point, a, b, c) {\n this.getBarycoord(point, a, b, c, _v3$1);\n return _v3$1.x >= 0 && _v3$1.y >= 0 && _v3$1.x + _v3$1.y <= 1;\n }\n }, {\n key: \"getUV\",\n value: function getUV(point, p1, p2, p3, uv1, uv2, uv3, target) {\n // @deprecated, r151\n if (warnedGetUV === false) {\n console.warn('THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation().');\n warnedGetUV = true;\n }\n\n return this.getInterpolation(point, p1, p2, p3, uv1, uv2, uv3, target);\n }\n }, {\n key: \"getInterpolation\",\n value: function getInterpolation(point, p1, p2, p3, v1, v2, v3, target) {\n this.getBarycoord(point, p1, p2, p3, _v3$1);\n target.setScalar(0);\n target.addScaledVector(v1, _v3$1.x);\n target.addScaledVector(v2, _v3$1.y);\n target.addScaledVector(v3, _v3$1.z);\n return target;\n }\n }, {\n key: \"isFrontFacing\",\n value: function isFrontFacing(a, b, c, direction) {\n _v0$1.subVectors(c, b);\n\n _v1$3.subVectors(a, b); // strictly front facing\n\n\n return _v0$1.cross(_v1$3).dot(direction) < 0 ? true : false;\n }\n }]);\n\n return Triangle;\n}();\n\nvar materialId = 0;\n\nvar Material = /*#__PURE__*/function (_EventDispatcher4) {\n _inherits(Material, _EventDispatcher4);\n\n var _super9 = _createSuper(Material);\n\n function Material() {\n var _this10;\n\n _classCallCheck(this, Material);\n\n _this10 = _super9.call(this);\n _this10.isMaterial = true;\n Object.defineProperty(_assertThisInitialized(_this10), 'id', {\n value: materialId++\n });\n _this10.uuid = generateUUID();\n _this10.name = '';\n _this10.type = 'Material';\n _this10.blending = NormalBlending;\n _this10.side = FrontSide;\n _this10.vertexColors = false;\n _this10.opacity = 1;\n _this10.transparent = false;\n _this10.blendSrc = SrcAlphaFactor;\n _this10.blendDst = OneMinusSrcAlphaFactor;\n _this10.blendEquation = AddEquation;\n _this10.blendSrcAlpha = null;\n _this10.blendDstAlpha = null;\n _this10.blendEquationAlpha = null;\n _this10.depthFunc = LessEqualDepth;\n _this10.depthTest = true;\n _this10.depthWrite = true;\n _this10.stencilWriteMask = 0xff;\n _this10.stencilFunc = AlwaysStencilFunc;\n _this10.stencilRef = 0;\n _this10.stencilFuncMask = 0xff;\n _this10.stencilFail = KeepStencilOp;\n _this10.stencilZFail = KeepStencilOp;\n _this10.stencilZPass = KeepStencilOp;\n _this10.stencilWrite = false;\n _this10.clippingPlanes = null;\n _this10.clipIntersection = false;\n _this10.clipShadows = false;\n _this10.shadowSide = null;\n _this10.colorWrite = true;\n _this10.precision = null; // override the renderer's default precision for this material\n\n _this10.polygonOffset = false;\n _this10.polygonOffsetFactor = 0;\n _this10.polygonOffsetUnits = 0;\n _this10.dithering = false;\n _this10.alphaToCoverage = false;\n _this10.premultipliedAlpha = false;\n _this10.forceSinglePass = false;\n _this10.visible = true;\n _this10.toneMapped = true;\n _this10.userData = {};\n _this10.version = 0;\n _this10._alphaTest = 0;\n return _this10;\n }\n\n _createClass(Material, [{\n key: \"alphaTest\",\n get: function get() {\n return this._alphaTest;\n },\n set: function set(value) {\n if (this._alphaTest > 0 !== value > 0) {\n this.version++;\n }\n\n this._alphaTest = value;\n }\n }, {\n key: \"onBuild\",\n value: function\n /* shaderobject, renderer */\n onBuild() {}\n }, {\n key: \"onBeforeRender\",\n value: function\n /* renderer, scene, camera, geometry, object, group */\n onBeforeRender() {}\n }, {\n key: \"onBeforeCompile\",\n value: function\n /* shaderobject, renderer */\n onBeforeCompile() {}\n }, {\n key: \"customProgramCacheKey\",\n value: function customProgramCacheKey() {\n return this.onBeforeCompile.toString();\n }\n }, {\n key: \"setValues\",\n value: function setValues(values) {\n if (values === undefined) return;\n\n for (var key in values) {\n var newValue = values[key];\n\n if (newValue === undefined) {\n console.warn(\"THREE.Material: parameter '\".concat(key, \"' has value of undefined.\"));\n continue;\n }\n\n var currentValue = this[key];\n\n if (currentValue === undefined) {\n console.warn(\"THREE.Material: '\".concat(key, \"' is not a property of THREE.\").concat(this.type, \".\"));\n continue;\n }\n\n if (currentValue && currentValue.isColor) {\n currentValue.set(newValue);\n } else if (currentValue && currentValue.isVector3 && newValue && newValue.isVector3) {\n currentValue.copy(newValue);\n } else {\n this[key] = newValue;\n }\n }\n }\n }, {\n key: \"toJSON\",\n value: function toJSON(meta) {\n var isRootObject = meta === undefined || typeof meta === 'string';\n\n if (isRootObject) {\n meta = {\n textures: {},\n images: {}\n };\n }\n\n var data = {\n metadata: {\n version: 4.5,\n type: 'Material',\n generator: 'Material.toJSON'\n }\n }; // standard Material serialization\n\n data.uuid = this.uuid;\n data.type = this.type;\n if (this.name !== '') data.name = this.name;\n if (this.color && this.color.isColor) data.color = this.color.getHex();\n if (this.roughness !== undefined) data.roughness = this.roughness;\n if (this.metalness !== undefined) data.metalness = this.metalness;\n if (this.sheen !== undefined) data.sheen = this.sheen;\n if (this.sheenColor && this.sheenColor.isColor) data.sheenColor = this.sheenColor.getHex();\n if (this.sheenRoughness !== undefined) data.sheenRoughness = this.sheenRoughness;\n if (this.emissive && this.emissive.isColor) data.emissive = this.emissive.getHex();\n if (this.emissiveIntensity && this.emissiveIntensity !== 1) data.emissiveIntensity = this.emissiveIntensity;\n if (this.specular && this.specular.isColor) data.specular = this.specular.getHex();\n if (this.specularIntensity !== undefined) data.specularIntensity = this.specularIntensity;\n if (this.specularColor && this.specularColor.isColor) data.specularColor = this.specularColor.getHex();\n if (this.shininess !== undefined) data.shininess = this.shininess;\n if (this.clearcoat !== undefined) data.clearcoat = this.clearcoat;\n if (this.clearcoatRoughness !== undefined) data.clearcoatRoughness = this.clearcoatRoughness;\n\n if (this.clearcoatMap && this.clearcoatMap.isTexture) {\n data.clearcoatMap = this.clearcoatMap.toJSON(meta).uuid;\n }\n\n if (this.clearcoatRoughnessMap && this.clearcoatRoughnessMap.isTexture) {\n data.clearcoatRoughnessMap = this.clearcoatRoughnessMap.toJSON(meta).uuid;\n }\n\n if (this.clearcoatNormalMap && this.clearcoatNormalMap.isTexture) {\n data.clearcoatNormalMap = this.clearcoatNormalMap.toJSON(meta).uuid;\n data.clearcoatNormalScale = this.clearcoatNormalScale.toArray();\n }\n\n if (this.iridescence !== undefined) data.iridescence = this.iridescence;\n if (this.iridescenceIOR !== undefined) data.iridescenceIOR = this.iridescenceIOR;\n if (this.iridescenceThicknessRange !== undefined) data.iridescenceThicknessRange = this.iridescenceThicknessRange;\n\n if (this.iridescenceMap && this.iridescenceMap.isTexture) {\n data.iridescenceMap = this.iridescenceMap.toJSON(meta).uuid;\n }\n\n if (this.iridescenceThicknessMap && this.iridescenceThicknessMap.isTexture) {\n data.iridescenceThicknessMap = this.iridescenceThicknessMap.toJSON(meta).uuid;\n }\n\n if (this.map && this.map.isTexture) data.map = this.map.toJSON(meta).uuid;\n if (this.matcap && this.matcap.isTexture) data.matcap = this.matcap.toJSON(meta).uuid;\n if (this.alphaMap && this.alphaMap.isTexture) data.alphaMap = this.alphaMap.toJSON(meta).uuid;\n\n if (this.lightMap && this.lightMap.isTexture) {\n data.lightMap = this.lightMap.toJSON(meta).uuid;\n data.lightMapIntensity = this.lightMapIntensity;\n }\n\n if (this.aoMap && this.aoMap.isTexture) {\n data.aoMap = this.aoMap.toJSON(meta).uuid;\n data.aoMapIntensity = this.aoMapIntensity;\n }\n\n if (this.bumpMap && this.bumpMap.isTexture) {\n data.bumpMap = this.bumpMap.toJSON(meta).uuid;\n data.bumpScale = this.bumpScale;\n }\n\n if (this.normalMap && this.normalMap.isTexture) {\n data.normalMap = this.normalMap.toJSON(meta).uuid;\n data.normalMapType = this.normalMapType;\n data.normalScale = this.normalScale.toArray();\n }\n\n if (this.displacementMap && this.displacementMap.isTexture) {\n data.displacementMap = this.displacementMap.toJSON(meta).uuid;\n data.displacementScale = this.displacementScale;\n data.displacementBias = this.displacementBias;\n }\n\n if (this.roughnessMap && this.roughnessMap.isTexture) data.roughnessMap = this.roughnessMap.toJSON(meta).uuid;\n if (this.metalnessMap && this.metalnessMap.isTexture) data.metalnessMap = this.metalnessMap.toJSON(meta).uuid;\n if (this.emissiveMap && this.emissiveMap.isTexture) data.emissiveMap = this.emissiveMap.toJSON(meta).uuid;\n if (this.specularMap && this.specularMap.isTexture) data.specularMap = this.specularMap.toJSON(meta).uuid;\n if (this.specularIntensityMap && this.specularIntensityMap.isTexture) data.specularIntensityMap = this.specularIntensityMap.toJSON(meta).uuid;\n if (this.specularColorMap && this.specularColorMap.isTexture) data.specularColorMap = this.specularColorMap.toJSON(meta).uuid;\n\n if (this.envMap && this.envMap.isTexture) {\n data.envMap = this.envMap.toJSON(meta).uuid;\n if (this.combine !== undefined) data.combine = this.combine;\n }\n\n if (this.envMapIntensity !== undefined) data.envMapIntensity = this.envMapIntensity;\n if (this.reflectivity !== undefined) data.reflectivity = this.reflectivity;\n if (this.refractionRatio !== undefined) data.refractionRatio = this.refractionRatio;\n\n if (this.gradientMap && this.gradientMap.isTexture) {\n data.gradientMap = this.gradientMap.toJSON(meta).uuid;\n }\n\n if (this.transmission !== undefined) data.transmission = this.transmission;\n if (this.transmissionMap && this.transmissionMap.isTexture) data.transmissionMap = this.transmissionMap.toJSON(meta).uuid;\n if (this.thickness !== undefined) data.thickness = this.thickness;\n if (this.thicknessMap && this.thicknessMap.isTexture) data.thicknessMap = this.thicknessMap.toJSON(meta).uuid;\n if (this.attenuationDistance !== undefined && this.attenuationDistance !== Infinity) data.attenuationDistance = this.attenuationDistance;\n if (this.attenuationColor !== undefined) data.attenuationColor = this.attenuationColor.getHex();\n if (this.size !== undefined) data.size = this.size;\n if (this.shadowSide !== null) data.shadowSide = this.shadowSide;\n if (this.sizeAttenuation !== undefined) data.sizeAttenuation = this.sizeAttenuation;\n if (this.blending !== NormalBlending) data.blending = this.blending;\n if (this.side !== FrontSide) data.side = this.side;\n if (this.vertexColors) data.vertexColors = true;\n if (this.opacity < 1) data.opacity = this.opacity;\n if (this.transparent === true) data.transparent = this.transparent;\n data.depthFunc = this.depthFunc;\n data.depthTest = this.depthTest;\n data.depthWrite = this.depthWrite;\n data.colorWrite = this.colorWrite;\n data.stencilWrite = this.stencilWrite;\n data.stencilWriteMask = this.stencilWriteMask;\n data.stencilFunc = this.stencilFunc;\n data.stencilRef = this.stencilRef;\n data.stencilFuncMask = this.stencilFuncMask;\n data.stencilFail = this.stencilFail;\n data.stencilZFail = this.stencilZFail;\n data.stencilZPass = this.stencilZPass; // rotation (SpriteMaterial)\n\n if (this.rotation !== undefined && this.rotation !== 0) data.rotation = this.rotation;\n if (this.polygonOffset === true) data.polygonOffset = true;\n if (this.polygonOffsetFactor !== 0) data.polygonOffsetFactor = this.polygonOffsetFactor;\n if (this.polygonOffsetUnits !== 0) data.polygonOffsetUnits = this.polygonOffsetUnits;\n if (this.linewidth !== undefined && this.linewidth !== 1) data.linewidth = this.linewidth;\n if (this.dashSize !== undefined) data.dashSize = this.dashSize;\n if (this.gapSize !== undefined) data.gapSize = this.gapSize;\n if (this.scale !== undefined) data.scale = this.scale;\n if (this.dithering === true) data.dithering = true;\n if (this.alphaTest > 0) data.alphaTest = this.alphaTest;\n if (this.alphaToCoverage === true) data.alphaToCoverage = this.alphaToCoverage;\n if (this.premultipliedAlpha === true) data.premultipliedAlpha = this.premultipliedAlpha;\n if (this.forceSinglePass === true) data.forceSinglePass = this.forceSinglePass;\n if (this.wireframe === true) data.wireframe = this.wireframe;\n if (this.wireframeLinewidth > 1) data.wireframeLinewidth = this.wireframeLinewidth;\n if (this.wireframeLinecap !== 'round') data.wireframeLinecap = this.wireframeLinecap;\n if (this.wireframeLinejoin !== 'round') data.wireframeLinejoin = this.wireframeLinejoin;\n if (this.flatShading === true) data.flatShading = this.flatShading;\n if (this.visible === false) data.visible = false;\n if (this.toneMapped === false) data.toneMapped = false;\n if (this.fog === false) data.fog = false;\n if (Object.keys(this.userData).length > 0) data.userData = this.userData; // TODO: Copied from Object3D.toJSON\n\n function extractFromCache(cache) {\n var values = [];\n\n for (var key in cache) {\n var _data2 = cache[key];\n delete _data2.metadata;\n values.push(_data2);\n }\n\n return values;\n }\n\n if (isRootObject) {\n var textures = extractFromCache(meta.textures);\n var images = extractFromCache(meta.images);\n if (textures.length > 0) data.textures = textures;\n if (images.length > 0) data.images = images;\n }\n\n return data;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n this.name = source.name;\n this.blending = source.blending;\n this.side = source.side;\n this.vertexColors = source.vertexColors;\n this.opacity = source.opacity;\n this.transparent = source.transparent;\n this.blendSrc = source.blendSrc;\n this.blendDst = source.blendDst;\n this.blendEquation = source.blendEquation;\n this.blendSrcAlpha = source.blendSrcAlpha;\n this.blendDstAlpha = source.blendDstAlpha;\n this.blendEquationAlpha = source.blendEquationAlpha;\n this.depthFunc = source.depthFunc;\n this.depthTest = source.depthTest;\n this.depthWrite = source.depthWrite;\n this.stencilWriteMask = source.stencilWriteMask;\n this.stencilFunc = source.stencilFunc;\n this.stencilRef = source.stencilRef;\n this.stencilFuncMask = source.stencilFuncMask;\n this.stencilFail = source.stencilFail;\n this.stencilZFail = source.stencilZFail;\n this.stencilZPass = source.stencilZPass;\n this.stencilWrite = source.stencilWrite;\n var srcPlanes = source.clippingPlanes;\n var dstPlanes = null;\n\n if (srcPlanes !== null) {\n var n = srcPlanes.length;\n dstPlanes = new Array(n);\n\n for (var i = 0; i !== n; ++i) {\n dstPlanes[i] = srcPlanes[i].clone();\n }\n }\n\n this.clippingPlanes = dstPlanes;\n this.clipIntersection = source.clipIntersection;\n this.clipShadows = source.clipShadows;\n this.shadowSide = source.shadowSide;\n this.colorWrite = source.colorWrite;\n this.precision = source.precision;\n this.polygonOffset = source.polygonOffset;\n this.polygonOffsetFactor = source.polygonOffsetFactor;\n this.polygonOffsetUnits = source.polygonOffsetUnits;\n this.dithering = source.dithering;\n this.alphaTest = source.alphaTest;\n this.alphaToCoverage = source.alphaToCoverage;\n this.premultipliedAlpha = source.premultipliedAlpha;\n this.forceSinglePass = source.forceSinglePass;\n this.visible = source.visible;\n this.toneMapped = source.toneMapped;\n this.userData = JSON.parse(JSON.stringify(source.userData));\n return this;\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n this.dispatchEvent({\n type: 'dispose'\n });\n }\n }, {\n key: \"needsUpdate\",\n set: function set(value) {\n if (value === true) this.version++;\n }\n }]);\n\n return Material;\n}(EventDispatcher);\n\nvar _colorKeywords = {\n 'aliceblue': 0xF0F8FF,\n 'antiquewhite': 0xFAEBD7,\n 'aqua': 0x00FFFF,\n 'aquamarine': 0x7FFFD4,\n 'azure': 0xF0FFFF,\n 'beige': 0xF5F5DC,\n 'bisque': 0xFFE4C4,\n 'black': 0x000000,\n 'blanchedalmond': 0xFFEBCD,\n 'blue': 0x0000FF,\n 'blueviolet': 0x8A2BE2,\n 'brown': 0xA52A2A,\n 'burlywood': 0xDEB887,\n 'cadetblue': 0x5F9EA0,\n 'chartreuse': 0x7FFF00,\n 'chocolate': 0xD2691E,\n 'coral': 0xFF7F50,\n 'cornflowerblue': 0x6495ED,\n 'cornsilk': 0xFFF8DC,\n 'crimson': 0xDC143C,\n 'cyan': 0x00FFFF,\n 'darkblue': 0x00008B,\n 'darkcyan': 0x008B8B,\n 'darkgoldenrod': 0xB8860B,\n 'darkgray': 0xA9A9A9,\n 'darkgreen': 0x006400,\n 'darkgrey': 0xA9A9A9,\n 'darkkhaki': 0xBDB76B,\n 'darkmagenta': 0x8B008B,\n 'darkolivegreen': 0x556B2F,\n 'darkorange': 0xFF8C00,\n 'darkorchid': 0x9932CC,\n 'darkred': 0x8B0000,\n 'darksalmon': 0xE9967A,\n 'darkseagreen': 0x8FBC8F,\n 'darkslateblue': 0x483D8B,\n 'darkslategray': 0x2F4F4F,\n 'darkslategrey': 0x2F4F4F,\n 'darkturquoise': 0x00CED1,\n 'darkviolet': 0x9400D3,\n 'deeppink': 0xFF1493,\n 'deepskyblue': 0x00BFFF,\n 'dimgray': 0x696969,\n 'dimgrey': 0x696969,\n 'dodgerblue': 0x1E90FF,\n 'firebrick': 0xB22222,\n 'floralwhite': 0xFFFAF0,\n 'forestgreen': 0x228B22,\n 'fuchsia': 0xFF00FF,\n 'gainsboro': 0xDCDCDC,\n 'ghostwhite': 0xF8F8FF,\n 'gold': 0xFFD700,\n 'goldenrod': 0xDAA520,\n 'gray': 0x808080,\n 'green': 0x008000,\n 'greenyellow': 0xADFF2F,\n 'grey': 0x808080,\n 'honeydew': 0xF0FFF0,\n 'hotpink': 0xFF69B4,\n 'indianred': 0xCD5C5C,\n 'indigo': 0x4B0082,\n 'ivory': 0xFFFFF0,\n 'khaki': 0xF0E68C,\n 'lavender': 0xE6E6FA,\n 'lavenderblush': 0xFFF0F5,\n 'lawngreen': 0x7CFC00,\n 'lemonchiffon': 0xFFFACD,\n 'lightblue': 0xADD8E6,\n 'lightcoral': 0xF08080,\n 'lightcyan': 0xE0FFFF,\n 'lightgoldenrodyellow': 0xFAFAD2,\n 'lightgray': 0xD3D3D3,\n 'lightgreen': 0x90EE90,\n 'lightgrey': 0xD3D3D3,\n 'lightpink': 0xFFB6C1,\n 'lightsalmon': 0xFFA07A,\n 'lightseagreen': 0x20B2AA,\n 'lightskyblue': 0x87CEFA,\n 'lightslategray': 0x778899,\n 'lightslategrey': 0x778899,\n 'lightsteelblue': 0xB0C4DE,\n 'lightyellow': 0xFFFFE0,\n 'lime': 0x00FF00,\n 'limegreen': 0x32CD32,\n 'linen': 0xFAF0E6,\n 'magenta': 0xFF00FF,\n 'maroon': 0x800000,\n 'mediumaquamarine': 0x66CDAA,\n 'mediumblue': 0x0000CD,\n 'mediumorchid': 0xBA55D3,\n 'mediumpurple': 0x9370DB,\n 'mediumseagreen': 0x3CB371,\n 'mediumslateblue': 0x7B68EE,\n 'mediumspringgreen': 0x00FA9A,\n 'mediumturquoise': 0x48D1CC,\n 'mediumvioletred': 0xC71585,\n 'midnightblue': 0x191970,\n 'mintcream': 0xF5FFFA,\n 'mistyrose': 0xFFE4E1,\n 'moccasin': 0xFFE4B5,\n 'navajowhite': 0xFFDEAD,\n 'navy': 0x000080,\n 'oldlace': 0xFDF5E6,\n 'olive': 0x808000,\n 'olivedrab': 0x6B8E23,\n 'orange': 0xFFA500,\n 'orangered': 0xFF4500,\n 'orchid': 0xDA70D6,\n 'palegoldenrod': 0xEEE8AA,\n 'palegreen': 0x98FB98,\n 'paleturquoise': 0xAFEEEE,\n 'palevioletred': 0xDB7093,\n 'papayawhip': 0xFFEFD5,\n 'peachpuff': 0xFFDAB9,\n 'peru': 0xCD853F,\n 'pink': 0xFFC0CB,\n 'plum': 0xDDA0DD,\n 'powderblue': 0xB0E0E6,\n 'purple': 0x800080,\n 'rebeccapurple': 0x663399,\n 'red': 0xFF0000,\n 'rosybrown': 0xBC8F8F,\n 'royalblue': 0x4169E1,\n 'saddlebrown': 0x8B4513,\n 'salmon': 0xFA8072,\n 'sandybrown': 0xF4A460,\n 'seagreen': 0x2E8B57,\n 'seashell': 0xFFF5EE,\n 'sienna': 0xA0522D,\n 'silver': 0xC0C0C0,\n 'skyblue': 0x87CEEB,\n 'slateblue': 0x6A5ACD,\n 'slategray': 0x708090,\n 'slategrey': 0x708090,\n 'snow': 0xFFFAFA,\n 'springgreen': 0x00FF7F,\n 'steelblue': 0x4682B4,\n 'tan': 0xD2B48C,\n 'teal': 0x008080,\n 'thistle': 0xD8BFD8,\n 'tomato': 0xFF6347,\n 'turquoise': 0x40E0D0,\n 'violet': 0xEE82EE,\n 'wheat': 0xF5DEB3,\n 'white': 0xFFFFFF,\n 'whitesmoke': 0xF5F5F5,\n 'yellow': 0xFFFF00,\n 'yellowgreen': 0x9ACD32\n};\nvar _hslA = {\n h: 0,\n s: 0,\n l: 0\n};\nvar _hslB = {\n h: 0,\n s: 0,\n l: 0\n};\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * 6 * (2 / 3 - t);\n return p;\n}\n\nvar Color = /*#__PURE__*/function (_Symbol$iterator6) {\n function Color(r, g, b) {\n _classCallCheck(this, Color);\n\n this.isColor = true;\n this.r = 1;\n this.g = 1;\n this.b = 1;\n\n if (g === undefined && b === undefined) {\n // r is THREE.Color, hex or string\n return this.set(r);\n }\n\n return this.setRGB(r, g, b);\n }\n\n _createClass(Color, [{\n key: \"set\",\n value: function set(value) {\n if (value && value.isColor) {\n this.copy(value);\n } else if (typeof value === 'number') {\n this.setHex(value);\n } else if (typeof value === 'string') {\n this.setStyle(value);\n }\n\n return this;\n }\n }, {\n key: \"setScalar\",\n value: function setScalar(scalar) {\n this.r = scalar;\n this.g = scalar;\n this.b = scalar;\n return this;\n }\n }, {\n key: \"setHex\",\n value: function setHex(hex) {\n var colorSpace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : SRGBColorSpace;\n hex = Math.floor(hex);\n this.r = (hex >> 16 & 255) / 255;\n this.g = (hex >> 8 & 255) / 255;\n this.b = (hex & 255) / 255;\n ColorManagement.toWorkingColorSpace(this, colorSpace);\n return this;\n }\n }, {\n key: \"setRGB\",\n value: function setRGB(r, g, b) {\n var colorSpace = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ColorManagement.workingColorSpace;\n this.r = r;\n this.g = g;\n this.b = b;\n ColorManagement.toWorkingColorSpace(this, colorSpace);\n return this;\n }\n }, {\n key: \"setHSL\",\n value: function setHSL(h, s, l) {\n var colorSpace = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ColorManagement.workingColorSpace;\n // h,s,l ranges are in 0.0 - 1.0\n h = euclideanModulo(h, 1);\n s = clamp(s, 0, 1);\n l = clamp(l, 0, 1);\n\n if (s === 0) {\n this.r = this.g = this.b = l;\n } else {\n var p = l <= 0.5 ? l * (1 + s) : l + s - l * s;\n var q = 2 * l - p;\n this.r = hue2rgb(q, p, h + 1 / 3);\n this.g = hue2rgb(q, p, h);\n this.b = hue2rgb(q, p, h - 1 / 3);\n }\n\n ColorManagement.toWorkingColorSpace(this, colorSpace);\n return this;\n }\n }, {\n key: \"setStyle\",\n value: function setStyle(style) {\n var colorSpace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : SRGBColorSpace;\n\n function handleAlpha(string) {\n if (string === undefined) return;\n\n if (parseFloat(string) < 1) {\n console.warn('THREE.Color: Alpha component of ' + style + ' will be ignored.');\n }\n }\n\n var m;\n\n if (m = /^(\\w+)\\(([^\\)]*)\\)/.exec(style)) {\n // rgb / hsl\n var color;\n var name = m[1];\n var components = m[2];\n\n switch (name) {\n case 'rgb':\n case 'rgba':\n if (color = /^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(components)) {\n // rgb(255,0,0) rgba(255,0,0,0.5)\n handleAlpha(color[4]);\n return this.setRGB(Math.min(255, parseInt(color[1], 10)) / 255, Math.min(255, parseInt(color[2], 10)) / 255, Math.min(255, parseInt(color[3], 10)) / 255, colorSpace);\n }\n\n if (color = /^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(components)) {\n // rgb(100%,0%,0%) rgba(100%,0%,0%,0.5)\n handleAlpha(color[4]);\n return this.setRGB(Math.min(100, parseInt(color[1], 10)) / 100, Math.min(100, parseInt(color[2], 10)) / 100, Math.min(100, parseInt(color[3], 10)) / 100, colorSpace);\n }\n\n break;\n\n case 'hsl':\n case 'hsla':\n if (color = /^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(components)) {\n // hsl(120,50%,50%) hsla(120,50%,50%,0.5)\n handleAlpha(color[4]);\n return this.setHSL(parseFloat(color[1]) / 360, parseFloat(color[2]) / 100, parseFloat(color[3]) / 100, colorSpace);\n }\n\n break;\n\n default:\n console.warn('THREE.Color: Unknown color model ' + style);\n }\n } else if (m = /^\\#([A-Fa-f\\d]+)$/.exec(style)) {\n // hex color\n var hex = m[1];\n var size = hex.length;\n\n if (size === 3) {\n // #ff0\n return this.setRGB(parseInt(hex.charAt(0), 16) / 15, parseInt(hex.charAt(1), 16) / 15, parseInt(hex.charAt(2), 16) / 15, colorSpace);\n } else if (size === 6) {\n // #ff0000\n return this.setHex(parseInt(hex, 16), colorSpace);\n } else {\n console.warn('THREE.Color: Invalid hex color ' + style);\n }\n } else if (style && style.length > 0) {\n return this.setColorName(style, colorSpace);\n }\n\n return this;\n }\n }, {\n key: \"setColorName\",\n value: function setColorName(style) {\n var colorSpace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : SRGBColorSpace;\n\n // color keywords\n var hex = _colorKeywords[style.toLowerCase()];\n\n if (hex !== undefined) {\n // red\n this.setHex(hex, colorSpace);\n } else {\n // unknown color\n console.warn('THREE.Color: Unknown color ' + style);\n }\n\n return this;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor(this.r, this.g, this.b);\n }\n }, {\n key: \"copy\",\n value: function copy(color) {\n this.r = color.r;\n this.g = color.g;\n this.b = color.b;\n return this;\n }\n }, {\n key: \"copySRGBToLinear\",\n value: function copySRGBToLinear(color) {\n this.r = SRGBToLinear(color.r);\n this.g = SRGBToLinear(color.g);\n this.b = SRGBToLinear(color.b);\n return this;\n }\n }, {\n key: \"copyLinearToSRGB\",\n value: function copyLinearToSRGB(color) {\n this.r = LinearToSRGB(color.r);\n this.g = LinearToSRGB(color.g);\n this.b = LinearToSRGB(color.b);\n return this;\n }\n }, {\n key: \"convertSRGBToLinear\",\n value: function convertSRGBToLinear() {\n this.copySRGBToLinear(this);\n return this;\n }\n }, {\n key: \"convertLinearToSRGB\",\n value: function convertLinearToSRGB() {\n this.copyLinearToSRGB(this);\n return this;\n }\n }, {\n key: \"getHex\",\n value: function getHex() {\n var colorSpace = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SRGBColorSpace;\n ColorManagement.fromWorkingColorSpace(_color.copy(this), colorSpace);\n return Math.round(clamp(_color.r * 255, 0, 255)) * 65536 + Math.round(clamp(_color.g * 255, 0, 255)) * 256 + Math.round(clamp(_color.b * 255, 0, 255));\n }\n }, {\n key: \"getHexString\",\n value: function getHexString() {\n var colorSpace = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SRGBColorSpace;\n return ('000000' + this.getHex(colorSpace).toString(16)).slice(-6);\n }\n }, {\n key: \"getHSL\",\n value: function getHSL(target) {\n var colorSpace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ColorManagement.workingColorSpace;\n // h,s,l ranges are in 0.0 - 1.0\n ColorManagement.fromWorkingColorSpace(_color.copy(this), colorSpace);\n var r = _color.r,\n g = _color.g,\n b = _color.b;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var hue, saturation;\n var lightness = (min + max) / 2.0;\n\n if (min === max) {\n hue = 0;\n saturation = 0;\n } else {\n var delta = max - min;\n saturation = lightness <= 0.5 ? delta / (max + min) : delta / (2 - max - min);\n\n switch (max) {\n case r:\n hue = (g - b) / delta + (g < b ? 6 : 0);\n break;\n\n case g:\n hue = (b - r) / delta + 2;\n break;\n\n case b:\n hue = (r - g) / delta + 4;\n break;\n }\n\n hue /= 6;\n }\n\n target.h = hue;\n target.s = saturation;\n target.l = lightness;\n return target;\n }\n }, {\n key: \"getRGB\",\n value: function getRGB(target) {\n var colorSpace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ColorManagement.workingColorSpace;\n ColorManagement.fromWorkingColorSpace(_color.copy(this), colorSpace);\n target.r = _color.r;\n target.g = _color.g;\n target.b = _color.b;\n return target;\n }\n }, {\n key: \"getStyle\",\n value: function getStyle() {\n var colorSpace = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SRGBColorSpace;\n ColorManagement.fromWorkingColorSpace(_color.copy(this), colorSpace);\n var r = _color.r,\n g = _color.g,\n b = _color.b;\n\n if (colorSpace !== SRGBColorSpace) {\n // Requires CSS Color Module Level 4 (https://www.w3.org/TR/css-color-4/).\n return \"color(\".concat(colorSpace, \" \").concat(r.toFixed(3), \" \").concat(g.toFixed(3), \" \").concat(b.toFixed(3), \")\");\n }\n\n return \"rgb(\".concat(Math.round(r * 255), \",\").concat(Math.round(g * 255), \",\").concat(Math.round(b * 255), \")\");\n }\n }, {\n key: \"offsetHSL\",\n value: function offsetHSL(h, s, l) {\n this.getHSL(_hslA);\n _hslA.h += h;\n _hslA.s += s;\n _hslA.l += l;\n this.setHSL(_hslA.h, _hslA.s, _hslA.l);\n return this;\n }\n }, {\n key: \"add\",\n value: function add(color) {\n this.r += color.r;\n this.g += color.g;\n this.b += color.b;\n return this;\n }\n }, {\n key: \"addColors\",\n value: function addColors(color1, color2) {\n this.r = color1.r + color2.r;\n this.g = color1.g + color2.g;\n this.b = color1.b + color2.b;\n return this;\n }\n }, {\n key: \"addScalar\",\n value: function addScalar(s) {\n this.r += s;\n this.g += s;\n this.b += s;\n return this;\n }\n }, {\n key: \"sub\",\n value: function sub(color) {\n this.r = Math.max(0, this.r - color.r);\n this.g = Math.max(0, this.g - color.g);\n this.b = Math.max(0, this.b - color.b);\n return this;\n }\n }, {\n key: \"multiply\",\n value: function multiply(color) {\n this.r *= color.r;\n this.g *= color.g;\n this.b *= color.b;\n return this;\n }\n }, {\n key: \"multiplyScalar\",\n value: function multiplyScalar(s) {\n this.r *= s;\n this.g *= s;\n this.b *= s;\n return this;\n }\n }, {\n key: \"lerp\",\n value: function lerp(color, alpha) {\n this.r += (color.r - this.r) * alpha;\n this.g += (color.g - this.g) * alpha;\n this.b += (color.b - this.b) * alpha;\n return this;\n }\n }, {\n key: \"lerpColors\",\n value: function lerpColors(color1, color2, alpha) {\n this.r = color1.r + (color2.r - color1.r) * alpha;\n this.g = color1.g + (color2.g - color1.g) * alpha;\n this.b = color1.b + (color2.b - color1.b) * alpha;\n return this;\n }\n }, {\n key: \"lerpHSL\",\n value: function lerpHSL(color, alpha) {\n this.getHSL(_hslA);\n color.getHSL(_hslB);\n var h = lerp(_hslA.h, _hslB.h, alpha);\n var s = lerp(_hslA.s, _hslB.s, alpha);\n var l = lerp(_hslA.l, _hslB.l, alpha);\n this.setHSL(h, s, l);\n return this;\n }\n }, {\n key: \"setFromVector3\",\n value: function setFromVector3(v) {\n this.r = v.x;\n this.g = v.y;\n this.b = v.z;\n return this;\n }\n }, {\n key: \"applyMatrix3\",\n value: function applyMatrix3(m) {\n var r = this.r,\n g = this.g,\n b = this.b;\n var e = m.elements;\n this.r = e[0] * r + e[3] * g + e[6] * b;\n this.g = e[1] * r + e[4] * g + e[7] * b;\n this.b = e[2] * r + e[5] * g + e[8] * b;\n return this;\n }\n }, {\n key: \"equals\",\n value: function equals(c) {\n return c.r === this.r && c.g === this.g && c.b === this.b;\n }\n }, {\n key: \"fromArray\",\n value: function fromArray(array) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n this.r = array[offset];\n this.g = array[offset + 1];\n this.b = array[offset + 2];\n return this;\n }\n }, {\n key: \"toArray\",\n value: function toArray() {\n var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n array[offset] = this.r;\n array[offset + 1] = this.g;\n array[offset + 2] = this.b;\n return array;\n }\n }, {\n key: \"fromBufferAttribute\",\n value: function fromBufferAttribute(attribute, index) {\n this.r = attribute.getX(index);\n this.g = attribute.getY(index);\n this.b = attribute.getZ(index);\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.getHex();\n }\n }, {\n key: _Symbol$iterator6,\n value: /*#__PURE__*/_regeneratorRuntime().mark(function value() {\n return _regeneratorRuntime().wrap(function value$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n _context7.next = 2;\n return this.r;\n\n case 2:\n _context7.next = 4;\n return this.g;\n\n case 4:\n _context7.next = 6;\n return this.b;\n\n case 6:\n case \"end\":\n return _context7.stop();\n }\n }\n }, value, this);\n })\n }]);\n\n return Color;\n}(Symbol.iterator);\n\nvar _color = /*@__PURE__*/new Color();\n\nColor.NAMES = _colorKeywords;\n\nvar MeshBasicMaterial = /*#__PURE__*/function (_Material) {\n _inherits(MeshBasicMaterial, _Material);\n\n var _super10 = _createSuper(MeshBasicMaterial);\n\n function MeshBasicMaterial(parameters) {\n var _this11;\n\n _classCallCheck(this, MeshBasicMaterial);\n\n _this11 = _super10.call(this);\n _this11.isMeshBasicMaterial = true;\n _this11.type = 'MeshBasicMaterial';\n _this11.color = new Color(0xffffff); // emissive\n\n _this11.map = null;\n _this11.lightMap = null;\n _this11.lightMapIntensity = 1.0;\n _this11.aoMap = null;\n _this11.aoMapIntensity = 1.0;\n _this11.specularMap = null;\n _this11.alphaMap = null;\n _this11.envMap = null;\n _this11.combine = MultiplyOperation;\n _this11.reflectivity = 1;\n _this11.refractionRatio = 0.98;\n _this11.wireframe = false;\n _this11.wireframeLinewidth = 1;\n _this11.wireframeLinecap = 'round';\n _this11.wireframeLinejoin = 'round';\n _this11.fog = true;\n\n _this11.setValues(parameters);\n\n return _this11;\n }\n\n _createClass(MeshBasicMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(MeshBasicMaterial.prototype), \"copy\", this).call(this, source);\n\n this.color.copy(source.color);\n this.map = source.map;\n this.lightMap = source.lightMap;\n this.lightMapIntensity = source.lightMapIntensity;\n this.aoMap = source.aoMap;\n this.aoMapIntensity = source.aoMapIntensity;\n this.specularMap = source.specularMap;\n this.alphaMap = source.alphaMap;\n this.envMap = source.envMap;\n this.combine = source.combine;\n this.reflectivity = source.reflectivity;\n this.refractionRatio = source.refractionRatio;\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n this.wireframeLinecap = source.wireframeLinecap;\n this.wireframeLinejoin = source.wireframeLinejoin;\n this.fog = source.fog;\n return this;\n }\n }]);\n\n return MeshBasicMaterial;\n}(Material); // Fast Half Float Conversions, http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n\n\nvar _tables = /*@__PURE__*/_generateTables();\n\nfunction _generateTables() {\n // float32 to float16 helpers\n var buffer = new ArrayBuffer(4);\n var floatView = new Float32Array(buffer);\n var uint32View = new Uint32Array(buffer);\n var baseTable = new Uint32Array(512);\n var shiftTable = new Uint32Array(512);\n\n for (var i = 0; i < 256; ++i) {\n var e = i - 127; // very small number (0, -0)\n\n if (e < -27) {\n baseTable[i] = 0x0000;\n baseTable[i | 0x100] = 0x8000;\n shiftTable[i] = 24;\n shiftTable[i | 0x100] = 24; // small number (denorm)\n } else if (e < -14) {\n baseTable[i] = 0x0400 >> -e - 14;\n baseTable[i | 0x100] = 0x0400 >> -e - 14 | 0x8000;\n shiftTable[i] = -e - 1;\n shiftTable[i | 0x100] = -e - 1; // normal number\n } else if (e <= 15) {\n baseTable[i] = e + 15 << 10;\n baseTable[i | 0x100] = e + 15 << 10 | 0x8000;\n shiftTable[i] = 13;\n shiftTable[i | 0x100] = 13; // large number (Infinity, -Infinity)\n } else if (e < 128) {\n baseTable[i] = 0x7c00;\n baseTable[i | 0x100] = 0xfc00;\n shiftTable[i] = 24;\n shiftTable[i | 0x100] = 24; // stay (NaN, Infinity, -Infinity)\n } else {\n baseTable[i] = 0x7c00;\n baseTable[i | 0x100] = 0xfc00;\n shiftTable[i] = 13;\n shiftTable[i | 0x100] = 13;\n }\n } // float16 to float32 helpers\n\n\n var mantissaTable = new Uint32Array(2048);\n var exponentTable = new Uint32Array(64);\n var offsetTable = new Uint32Array(64);\n\n for (var _i6 = 1; _i6 < 1024; ++_i6) {\n var m = _i6 << 13; // zero pad mantissa bits\n\n var _e = 0; // zero exponent\n // normalized\n\n while ((m & 0x00800000) === 0) {\n m <<= 1;\n _e -= 0x00800000; // decrement exponent\n }\n\n m &= ~0x00800000; // clear leading 1 bit\n\n _e += 0x38800000; // adjust bias\n\n mantissaTable[_i6] = m | _e;\n }\n\n for (var _i7 = 1024; _i7 < 2048; ++_i7) {\n mantissaTable[_i7] = 0x38000000 + (_i7 - 1024 << 13);\n }\n\n for (var _i8 = 1; _i8 < 31; ++_i8) {\n exponentTable[_i8] = _i8 << 23;\n }\n\n exponentTable[31] = 0x47800000;\n exponentTable[32] = 0x80000000;\n\n for (var _i9 = 33; _i9 < 63; ++_i9) {\n exponentTable[_i9] = 0x80000000 + (_i9 - 32 << 23);\n }\n\n exponentTable[63] = 0xc7800000;\n\n for (var _i10 = 1; _i10 < 64; ++_i10) {\n if (_i10 !== 32) {\n offsetTable[_i10] = 1024;\n }\n }\n\n return {\n floatView: floatView,\n uint32View: uint32View,\n baseTable: baseTable,\n shiftTable: shiftTable,\n mantissaTable: mantissaTable,\n exponentTable: exponentTable,\n offsetTable: offsetTable\n };\n} // float32 to float16\n\n\nfunction toHalfFloat(val) {\n if (Math.abs(val) > 65504) console.warn('THREE.DataUtils.toHalfFloat(): Value out of range.');\n val = clamp(val, -65504, 65504);\n _tables.floatView[0] = val;\n var f = _tables.uint32View[0];\n var e = f >> 23 & 0x1ff;\n return _tables.baseTable[e] + ((f & 0x007fffff) >> _tables.shiftTable[e]);\n} // float16 to float32\n\n\nfunction fromHalfFloat(val) {\n var m = val >> 10;\n _tables.uint32View[0] = _tables.mantissaTable[_tables.offsetTable[m] + (val & 0x3ff)] + _tables.exponentTable[m];\n return _tables.floatView[0];\n}\n\nvar DataUtils = {\n toHalfFloat: toHalfFloat,\n fromHalfFloat: fromHalfFloat\n};\n\nvar _vector$8 = /*@__PURE__*/new Vector3();\n\nvar _vector2$1 = /*@__PURE__*/new Vector2();\n\nvar BufferAttribute = /*#__PURE__*/function () {\n function BufferAttribute(array, itemSize) {\n var normalized = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n _classCallCheck(this, BufferAttribute);\n\n if (Array.isArray(array)) {\n throw new TypeError('THREE.BufferAttribute: array should be a Typed Array.');\n }\n\n this.isBufferAttribute = true;\n this.name = '';\n this.array = array;\n this.itemSize = itemSize;\n this.count = array !== undefined ? array.length / itemSize : 0;\n this.normalized = normalized;\n this.usage = StaticDrawUsage;\n this.updateRange = {\n offset: 0,\n count: -1\n };\n this.version = 0;\n }\n\n _createClass(BufferAttribute, [{\n key: \"onUploadCallback\",\n value: function onUploadCallback() {}\n }, {\n key: \"needsUpdate\",\n set: function set(value) {\n if (value === true) this.version++;\n }\n }, {\n key: \"setUsage\",\n value: function setUsage(value) {\n this.usage = value;\n return this;\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n this.name = source.name;\n this.array = new source.array.constructor(source.array);\n this.itemSize = source.itemSize;\n this.count = source.count;\n this.normalized = source.normalized;\n this.usage = source.usage;\n return this;\n }\n }, {\n key: \"copyAt\",\n value: function copyAt(index1, attribute, index2) {\n index1 *= this.itemSize;\n index2 *= attribute.itemSize;\n\n for (var i = 0, l = this.itemSize; i < l; i++) {\n this.array[index1 + i] = attribute.array[index2 + i];\n }\n\n return this;\n }\n }, {\n key: \"copyArray\",\n value: function copyArray(array) {\n this.array.set(array);\n return this;\n }\n }, {\n key: \"applyMatrix3\",\n value: function applyMatrix3(m) {\n if (this.itemSize === 2) {\n for (var i = 0, l = this.count; i < l; i++) {\n _vector2$1.fromBufferAttribute(this, i);\n\n _vector2$1.applyMatrix3(m);\n\n this.setXY(i, _vector2$1.x, _vector2$1.y);\n }\n } else if (this.itemSize === 3) {\n for (var _i11 = 0, _l3 = this.count; _i11 < _l3; _i11++) {\n _vector$8.fromBufferAttribute(this, _i11);\n\n _vector$8.applyMatrix3(m);\n\n this.setXYZ(_i11, _vector$8.x, _vector$8.y, _vector$8.z);\n }\n }\n\n return this;\n }\n }, {\n key: \"applyMatrix4\",\n value: function applyMatrix4(m) {\n for (var i = 0, l = this.count; i < l; i++) {\n _vector$8.fromBufferAttribute(this, i);\n\n _vector$8.applyMatrix4(m);\n\n this.setXYZ(i, _vector$8.x, _vector$8.y, _vector$8.z);\n }\n\n return this;\n }\n }, {\n key: \"applyNormalMatrix\",\n value: function applyNormalMatrix(m) {\n for (var i = 0, l = this.count; i < l; i++) {\n _vector$8.fromBufferAttribute(this, i);\n\n _vector$8.applyNormalMatrix(m);\n\n this.setXYZ(i, _vector$8.x, _vector$8.y, _vector$8.z);\n }\n\n return this;\n }\n }, {\n key: \"transformDirection\",\n value: function transformDirection(m) {\n for (var i = 0, l = this.count; i < l; i++) {\n _vector$8.fromBufferAttribute(this, i);\n\n _vector$8.transformDirection(m);\n\n this.setXYZ(i, _vector$8.x, _vector$8.y, _vector$8.z);\n }\n\n return this;\n }\n }, {\n key: \"set\",\n value: function set(value) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Matching BufferAttribute constructor, do not normalize the array.\n this.array.set(value, offset);\n return this;\n }\n }, {\n key: \"getX\",\n value: function getX(index) {\n var x = this.array[index * this.itemSize];\n if (this.normalized) x = denormalize(x, this.array);\n return x;\n }\n }, {\n key: \"setX\",\n value: function setX(index, x) {\n if (this.normalized) x = normalize(x, this.array);\n this.array[index * this.itemSize] = x;\n return this;\n }\n }, {\n key: \"getY\",\n value: function getY(index) {\n var y = this.array[index * this.itemSize + 1];\n if (this.normalized) y = denormalize(y, this.array);\n return y;\n }\n }, {\n key: \"setY\",\n value: function setY(index, y) {\n if (this.normalized) y = normalize(y, this.array);\n this.array[index * this.itemSize + 1] = y;\n return this;\n }\n }, {\n key: \"getZ\",\n value: function getZ(index) {\n var z = this.array[index * this.itemSize + 2];\n if (this.normalized) z = denormalize(z, this.array);\n return z;\n }\n }, {\n key: \"setZ\",\n value: function setZ(index, z) {\n if (this.normalized) z = normalize(z, this.array);\n this.array[index * this.itemSize + 2] = z;\n return this;\n }\n }, {\n key: \"getW\",\n value: function getW(index) {\n var w = this.array[index * this.itemSize + 3];\n if (this.normalized) w = denormalize(w, this.array);\n return w;\n }\n }, {\n key: \"setW\",\n value: function setW(index, w) {\n if (this.normalized) w = normalize(w, this.array);\n this.array[index * this.itemSize + 3] = w;\n return this;\n }\n }, {\n key: \"setXY\",\n value: function setXY(index, x, y) {\n index *= this.itemSize;\n\n if (this.normalized) {\n x = normalize(x, this.array);\n y = normalize(y, this.array);\n }\n\n this.array[index + 0] = x;\n this.array[index + 1] = y;\n return this;\n }\n }, {\n key: \"setXYZ\",\n value: function setXYZ(index, x, y, z) {\n index *= this.itemSize;\n\n if (this.normalized) {\n x = normalize(x, this.array);\n y = normalize(y, this.array);\n z = normalize(z, this.array);\n }\n\n this.array[index + 0] = x;\n this.array[index + 1] = y;\n this.array[index + 2] = z;\n return this;\n }\n }, {\n key: \"setXYZW\",\n value: function setXYZW(index, x, y, z, w) {\n index *= this.itemSize;\n\n if (this.normalized) {\n x = normalize(x, this.array);\n y = normalize(y, this.array);\n z = normalize(z, this.array);\n w = normalize(w, this.array);\n }\n\n this.array[index + 0] = x;\n this.array[index + 1] = y;\n this.array[index + 2] = z;\n this.array[index + 3] = w;\n return this;\n }\n }, {\n key: \"onUpload\",\n value: function onUpload(callback) {\n this.onUploadCallback = callback;\n return this;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor(this.array, this.itemSize).copy(this);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var data = {\n itemSize: this.itemSize,\n type: this.array.constructor.name,\n array: Array.from(this.array),\n normalized: this.normalized\n };\n if (this.name !== '') data.name = this.name;\n if (this.usage !== StaticDrawUsage) data.usage = this.usage;\n if (this.updateRange.offset !== 0 || this.updateRange.count !== -1) data.updateRange = this.updateRange;\n return data;\n }\n }, {\n key: \"copyColorsArray\",\n value: function copyColorsArray() {\n // @deprecated, r144\n console.error('THREE.BufferAttribute: copyColorsArray() was removed in r144.');\n }\n }, {\n key: \"copyVector2sArray\",\n value: function copyVector2sArray() {\n // @deprecated, r144\n console.error('THREE.BufferAttribute: copyVector2sArray() was removed in r144.');\n }\n }, {\n key: \"copyVector3sArray\",\n value: function copyVector3sArray() {\n // @deprecated, r144\n console.error('THREE.BufferAttribute: copyVector3sArray() was removed in r144.');\n }\n }, {\n key: \"copyVector4sArray\",\n value: function copyVector4sArray() {\n // @deprecated, r144\n console.error('THREE.BufferAttribute: copyVector4sArray() was removed in r144.');\n }\n }]);\n\n return BufferAttribute;\n}(); //\n\n\nvar Int8BufferAttribute = /*#__PURE__*/function (_BufferAttribute) {\n _inherits(Int8BufferAttribute, _BufferAttribute);\n\n var _super11 = _createSuper(Int8BufferAttribute);\n\n function Int8BufferAttribute(array, itemSize, normalized) {\n _classCallCheck(this, Int8BufferAttribute);\n\n return _super11.call(this, new Int8Array(array), itemSize, normalized);\n }\n\n return _createClass(Int8BufferAttribute);\n}(BufferAttribute);\n\nvar Uint8BufferAttribute = /*#__PURE__*/function (_BufferAttribute2) {\n _inherits(Uint8BufferAttribute, _BufferAttribute2);\n\n var _super12 = _createSuper(Uint8BufferAttribute);\n\n function Uint8BufferAttribute(array, itemSize, normalized) {\n _classCallCheck(this, Uint8BufferAttribute);\n\n return _super12.call(this, new Uint8Array(array), itemSize, normalized);\n }\n\n return _createClass(Uint8BufferAttribute);\n}(BufferAttribute);\n\nvar Uint8ClampedBufferAttribute = /*#__PURE__*/function (_BufferAttribute3) {\n _inherits(Uint8ClampedBufferAttribute, _BufferAttribute3);\n\n var _super13 = _createSuper(Uint8ClampedBufferAttribute);\n\n function Uint8ClampedBufferAttribute(array, itemSize, normalized) {\n _classCallCheck(this, Uint8ClampedBufferAttribute);\n\n return _super13.call(this, new Uint8ClampedArray(array), itemSize, normalized);\n }\n\n return _createClass(Uint8ClampedBufferAttribute);\n}(BufferAttribute);\n\nvar Int16BufferAttribute = /*#__PURE__*/function (_BufferAttribute4) {\n _inherits(Int16BufferAttribute, _BufferAttribute4);\n\n var _super14 = _createSuper(Int16BufferAttribute);\n\n function Int16BufferAttribute(array, itemSize, normalized) {\n _classCallCheck(this, Int16BufferAttribute);\n\n return _super14.call(this, new Int16Array(array), itemSize, normalized);\n }\n\n return _createClass(Int16BufferAttribute);\n}(BufferAttribute);\n\nvar Uint16BufferAttribute = /*#__PURE__*/function (_BufferAttribute5) {\n _inherits(Uint16BufferAttribute, _BufferAttribute5);\n\n var _super15 = _createSuper(Uint16BufferAttribute);\n\n function Uint16BufferAttribute(array, itemSize, normalized) {\n _classCallCheck(this, Uint16BufferAttribute);\n\n return _super15.call(this, new Uint16Array(array), itemSize, normalized);\n }\n\n return _createClass(Uint16BufferAttribute);\n}(BufferAttribute);\n\nvar Int32BufferAttribute = /*#__PURE__*/function (_BufferAttribute6) {\n _inherits(Int32BufferAttribute, _BufferAttribute6);\n\n var _super16 = _createSuper(Int32BufferAttribute);\n\n function Int32BufferAttribute(array, itemSize, normalized) {\n _classCallCheck(this, Int32BufferAttribute);\n\n return _super16.call(this, new Int32Array(array), itemSize, normalized);\n }\n\n return _createClass(Int32BufferAttribute);\n}(BufferAttribute);\n\nvar Uint32BufferAttribute = /*#__PURE__*/function (_BufferAttribute7) {\n _inherits(Uint32BufferAttribute, _BufferAttribute7);\n\n var _super17 = _createSuper(Uint32BufferAttribute);\n\n function Uint32BufferAttribute(array, itemSize, normalized) {\n _classCallCheck(this, Uint32BufferAttribute);\n\n return _super17.call(this, new Uint32Array(array), itemSize, normalized);\n }\n\n return _createClass(Uint32BufferAttribute);\n}(BufferAttribute);\n\nvar Float16BufferAttribute = /*#__PURE__*/function (_BufferAttribute8) {\n _inherits(Float16BufferAttribute, _BufferAttribute8);\n\n var _super18 = _createSuper(Float16BufferAttribute);\n\n function Float16BufferAttribute(array, itemSize, normalized) {\n var _this12;\n\n _classCallCheck(this, Float16BufferAttribute);\n\n _this12 = _super18.call(this, new Uint16Array(array), itemSize, normalized);\n _this12.isFloat16BufferAttribute = true;\n return _this12;\n }\n\n _createClass(Float16BufferAttribute, [{\n key: \"getX\",\n value: function getX(index) {\n var x = fromHalfFloat(this.array[index * this.itemSize]);\n if (this.normalized) x = denormalize(x, this.array);\n return x;\n }\n }, {\n key: \"setX\",\n value: function setX(index, x) {\n if (this.normalized) x = normalize(x, this.array);\n this.array[index * this.itemSize] = toHalfFloat(x);\n return this;\n }\n }, {\n key: \"getY\",\n value: function getY(index) {\n var y = fromHalfFloat(this.array[index * this.itemSize + 1]);\n if (this.normalized) y = denormalize(y, this.array);\n return y;\n }\n }, {\n key: \"setY\",\n value: function setY(index, y) {\n if (this.normalized) y = normalize(y, this.array);\n this.array[index * this.itemSize + 1] = toHalfFloat(y);\n return this;\n }\n }, {\n key: \"getZ\",\n value: function getZ(index) {\n var z = fromHalfFloat(this.array[index * this.itemSize + 2]);\n if (this.normalized) z = denormalize(z, this.array);\n return z;\n }\n }, {\n key: \"setZ\",\n value: function setZ(index, z) {\n if (this.normalized) z = normalize(z, this.array);\n this.array[index * this.itemSize + 2] = toHalfFloat(z);\n return this;\n }\n }, {\n key: \"getW\",\n value: function getW(index) {\n var w = fromHalfFloat(this.array[index * this.itemSize + 3]);\n if (this.normalized) w = denormalize(w, this.array);\n return w;\n }\n }, {\n key: \"setW\",\n value: function setW(index, w) {\n if (this.normalized) w = normalize(w, this.array);\n this.array[index * this.itemSize + 3] = toHalfFloat(w);\n return this;\n }\n }, {\n key: \"setXY\",\n value: function setXY(index, x, y) {\n index *= this.itemSize;\n\n if (this.normalized) {\n x = normalize(x, this.array);\n y = normalize(y, this.array);\n }\n\n this.array[index + 0] = toHalfFloat(x);\n this.array[index + 1] = toHalfFloat(y);\n return this;\n }\n }, {\n key: \"setXYZ\",\n value: function setXYZ(index, x, y, z) {\n index *= this.itemSize;\n\n if (this.normalized) {\n x = normalize(x, this.array);\n y = normalize(y, this.array);\n z = normalize(z, this.array);\n }\n\n this.array[index + 0] = toHalfFloat(x);\n this.array[index + 1] = toHalfFloat(y);\n this.array[index + 2] = toHalfFloat(z);\n return this;\n }\n }, {\n key: \"setXYZW\",\n value: function setXYZW(index, x, y, z, w) {\n index *= this.itemSize;\n\n if (this.normalized) {\n x = normalize(x, this.array);\n y = normalize(y, this.array);\n z = normalize(z, this.array);\n w = normalize(w, this.array);\n }\n\n this.array[index + 0] = toHalfFloat(x);\n this.array[index + 1] = toHalfFloat(y);\n this.array[index + 2] = toHalfFloat(z);\n this.array[index + 3] = toHalfFloat(w);\n return this;\n }\n }]);\n\n return Float16BufferAttribute;\n}(BufferAttribute);\n\nvar Float32BufferAttribute = /*#__PURE__*/function (_BufferAttribute9) {\n _inherits(Float32BufferAttribute, _BufferAttribute9);\n\n var _super19 = _createSuper(Float32BufferAttribute);\n\n function Float32BufferAttribute(array, itemSize, normalized) {\n _classCallCheck(this, Float32BufferAttribute);\n\n return _super19.call(this, new Float32Array(array), itemSize, normalized);\n }\n\n return _createClass(Float32BufferAttribute);\n}(BufferAttribute);\n\nvar Float64BufferAttribute = /*#__PURE__*/function (_BufferAttribute10) {\n _inherits(Float64BufferAttribute, _BufferAttribute10);\n\n var _super20 = _createSuper(Float64BufferAttribute);\n\n function Float64BufferAttribute(array, itemSize, normalized) {\n _classCallCheck(this, Float64BufferAttribute);\n\n return _super20.call(this, new Float64Array(array), itemSize, normalized);\n }\n\n return _createClass(Float64BufferAttribute);\n}(BufferAttribute);\n\nvar _id$1 = 0;\n\nvar _m1 = /*@__PURE__*/new Matrix4();\n\nvar _obj = /*@__PURE__*/new Object3D();\n\nvar _offset = /*@__PURE__*/new Vector3();\n\nvar _box$1 = /*@__PURE__*/new Box3();\n\nvar _boxMorphTargets = /*@__PURE__*/new Box3();\n\nvar _vector$7 = /*@__PURE__*/new Vector3();\n\nvar BufferGeometry = /*#__PURE__*/function (_EventDispatcher5) {\n _inherits(BufferGeometry, _EventDispatcher5);\n\n var _super21 = _createSuper(BufferGeometry);\n\n function BufferGeometry() {\n var _this13;\n\n _classCallCheck(this, BufferGeometry);\n\n _this13 = _super21.call(this);\n _this13.isBufferGeometry = true;\n Object.defineProperty(_assertThisInitialized(_this13), 'id', {\n value: _id$1++\n });\n _this13.uuid = generateUUID();\n _this13.name = '';\n _this13.type = 'BufferGeometry';\n _this13.index = null;\n _this13.attributes = {};\n _this13.morphAttributes = {};\n _this13.morphTargetsRelative = false;\n _this13.groups = [];\n _this13.boundingBox = null;\n _this13.boundingSphere = null;\n _this13.drawRange = {\n start: 0,\n count: Infinity\n };\n _this13.userData = {};\n return _this13;\n }\n\n _createClass(BufferGeometry, [{\n key: \"getIndex\",\n value: function getIndex() {\n return this.index;\n }\n }, {\n key: \"setIndex\",\n value: function setIndex(index) {\n if (Array.isArray(index)) {\n this.index = new (arrayNeedsUint32(index) ? Uint32BufferAttribute : Uint16BufferAttribute)(index, 1);\n } else {\n this.index = index;\n }\n\n return this;\n }\n }, {\n key: \"getAttribute\",\n value: function getAttribute(name) {\n return this.attributes[name];\n }\n }, {\n key: \"setAttribute\",\n value: function setAttribute(name, attribute) {\n this.attributes[name] = attribute;\n return this;\n }\n }, {\n key: \"deleteAttribute\",\n value: function deleteAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n }, {\n key: \"hasAttribute\",\n value: function hasAttribute(name) {\n return this.attributes[name] !== undefined;\n }\n }, {\n key: \"addGroup\",\n value: function addGroup(start, count) {\n var materialIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n this.groups.push({\n start: start,\n count: count,\n materialIndex: materialIndex\n });\n }\n }, {\n key: \"clearGroups\",\n value: function clearGroups() {\n this.groups = [];\n }\n }, {\n key: \"setDrawRange\",\n value: function setDrawRange(start, count) {\n this.drawRange.start = start;\n this.drawRange.count = count;\n }\n }, {\n key: \"applyMatrix4\",\n value: function applyMatrix4(matrix) {\n var position = this.attributes.position;\n\n if (position !== undefined) {\n position.applyMatrix4(matrix);\n position.needsUpdate = true;\n }\n\n var normal = this.attributes.normal;\n\n if (normal !== undefined) {\n var normalMatrix = new Matrix3().getNormalMatrix(matrix);\n normal.applyNormalMatrix(normalMatrix);\n normal.needsUpdate = true;\n }\n\n var tangent = this.attributes.tangent;\n\n if (tangent !== undefined) {\n tangent.transformDirection(matrix);\n tangent.needsUpdate = true;\n }\n\n if (this.boundingBox !== null) {\n this.computeBoundingBox();\n }\n\n if (this.boundingSphere !== null) {\n this.computeBoundingSphere();\n }\n\n return this;\n }\n }, {\n key: \"applyQuaternion\",\n value: function applyQuaternion(q) {\n _m1.makeRotationFromQuaternion(q);\n\n this.applyMatrix4(_m1);\n return this;\n }\n }, {\n key: \"rotateX\",\n value: function rotateX(angle) {\n // rotate geometry around world x-axis\n _m1.makeRotationX(angle);\n\n this.applyMatrix4(_m1);\n return this;\n }\n }, {\n key: \"rotateY\",\n value: function rotateY(angle) {\n // rotate geometry around world y-axis\n _m1.makeRotationY(angle);\n\n this.applyMatrix4(_m1);\n return this;\n }\n }, {\n key: \"rotateZ\",\n value: function rotateZ(angle) {\n // rotate geometry around world z-axis\n _m1.makeRotationZ(angle);\n\n this.applyMatrix4(_m1);\n return this;\n }\n }, {\n key: \"translate\",\n value: function translate(x, y, z) {\n // translate geometry\n _m1.makeTranslation(x, y, z);\n\n this.applyMatrix4(_m1);\n return this;\n }\n }, {\n key: \"scale\",\n value: function scale(x, y, z) {\n // scale geometry\n _m1.makeScale(x, y, z);\n\n this.applyMatrix4(_m1);\n return this;\n }\n }, {\n key: \"lookAt\",\n value: function lookAt(vector) {\n _obj.lookAt(vector);\n\n _obj.updateMatrix();\n\n this.applyMatrix4(_obj.matrix);\n return this;\n }\n }, {\n key: \"center\",\n value: function center() {\n this.computeBoundingBox();\n this.boundingBox.getCenter(_offset).negate();\n this.translate(_offset.x, _offset.y, _offset.z);\n return this;\n }\n }, {\n key: \"setFromPoints\",\n value: function setFromPoints(points) {\n var position = [];\n\n for (var i = 0, l = points.length; i < l; i++) {\n var point = points[i];\n position.push(point.x, point.y, point.z || 0);\n }\n\n this.setAttribute('position', new Float32BufferAttribute(position, 3));\n return this;\n }\n }, {\n key: \"computeBoundingBox\",\n value: function computeBoundingBox() {\n if (this.boundingBox === null) {\n this.boundingBox = new Box3();\n }\n\n var position = this.attributes.position;\n var morphAttributesPosition = this.morphAttributes.position;\n\n if (position && position.isGLBufferAttribute) {\n console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set \"mesh.frustumCulled\" to \"false\".', this);\n this.boundingBox.set(new Vector3(-Infinity, -Infinity, -Infinity), new Vector3(+Infinity, +Infinity, +Infinity));\n return;\n }\n\n if (position !== undefined) {\n this.boundingBox.setFromBufferAttribute(position); // process morph attributes if present\n\n if (morphAttributesPosition) {\n for (var i = 0, il = morphAttributesPosition.length; i < il; i++) {\n var morphAttribute = morphAttributesPosition[i];\n\n _box$1.setFromBufferAttribute(morphAttribute);\n\n if (this.morphTargetsRelative) {\n _vector$7.addVectors(this.boundingBox.min, _box$1.min);\n\n this.boundingBox.expandByPoint(_vector$7);\n\n _vector$7.addVectors(this.boundingBox.max, _box$1.max);\n\n this.boundingBox.expandByPoint(_vector$7);\n } else {\n this.boundingBox.expandByPoint(_box$1.min);\n this.boundingBox.expandByPoint(_box$1.max);\n }\n }\n }\n } else {\n this.boundingBox.makeEmpty();\n }\n\n if (isNaN(this.boundingBox.min.x) || isNaN(this.boundingBox.min.y) || isNaN(this.boundingBox.min.z)) {\n console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.', this);\n }\n }\n }, {\n key: \"computeBoundingSphere\",\n value: function computeBoundingSphere() {\n if (this.boundingSphere === null) {\n this.boundingSphere = new Sphere();\n }\n\n var position = this.attributes.position;\n var morphAttributesPosition = this.morphAttributes.position;\n\n if (position && position.isGLBufferAttribute) {\n console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set \"mesh.frustumCulled\" to \"false\".', this);\n this.boundingSphere.set(new Vector3(), Infinity);\n return;\n }\n\n if (position) {\n // first, find the center of the bounding sphere\n var center = this.boundingSphere.center;\n\n _box$1.setFromBufferAttribute(position); // process morph attributes if present\n\n\n if (morphAttributesPosition) {\n for (var i = 0, il = morphAttributesPosition.length; i < il; i++) {\n var morphAttribute = morphAttributesPosition[i];\n\n _boxMorphTargets.setFromBufferAttribute(morphAttribute);\n\n if (this.morphTargetsRelative) {\n _vector$7.addVectors(_box$1.min, _boxMorphTargets.min);\n\n _box$1.expandByPoint(_vector$7);\n\n _vector$7.addVectors(_box$1.max, _boxMorphTargets.max);\n\n _box$1.expandByPoint(_vector$7);\n } else {\n _box$1.expandByPoint(_boxMorphTargets.min);\n\n _box$1.expandByPoint(_boxMorphTargets.max);\n }\n }\n }\n\n _box$1.getCenter(center); // second, try to find a boundingSphere with a radius smaller than the\n // boundingSphere of the boundingBox: sqrt(3) smaller in the best case\n\n\n var maxRadiusSq = 0;\n\n for (var _i12 = 0, _il = position.count; _i12 < _il; _i12++) {\n _vector$7.fromBufferAttribute(position, _i12);\n\n maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_vector$7));\n } // process morph attributes if present\n\n\n if (morphAttributesPosition) {\n for (var _i13 = 0, _il2 = morphAttributesPosition.length; _i13 < _il2; _i13++) {\n var _morphAttribute = morphAttributesPosition[_i13];\n var morphTargetsRelative = this.morphTargetsRelative;\n\n for (var j = 0, jl = _morphAttribute.count; j < jl; j++) {\n _vector$7.fromBufferAttribute(_morphAttribute, j);\n\n if (morphTargetsRelative) {\n _offset.fromBufferAttribute(position, j);\n\n _vector$7.add(_offset);\n }\n\n maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_vector$7));\n }\n }\n }\n\n this.boundingSphere.radius = Math.sqrt(maxRadiusSq);\n\n if (isNaN(this.boundingSphere.radius)) {\n console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.', this);\n }\n }\n }\n }, {\n key: \"computeTangents\",\n value: function computeTangents() {\n var index = this.index;\n var attributes = this.attributes; // based on http://www.terathon.com/code/tangent.html\n // (per vertex tangents)\n\n if (index === null || attributes.position === undefined || attributes.normal === undefined || attributes.uv === undefined) {\n console.error('THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)');\n return;\n }\n\n var indices = index.array;\n var positions = attributes.position.array;\n var normals = attributes.normal.array;\n var uvs = attributes.uv.array;\n var nVertices = positions.length / 3;\n\n if (this.hasAttribute('tangent') === false) {\n this.setAttribute('tangent', new BufferAttribute(new Float32Array(4 * nVertices), 4));\n }\n\n var tangents = this.getAttribute('tangent').array;\n var tan1 = [],\n tan2 = [];\n\n for (var i = 0; i < nVertices; i++) {\n tan1[i] = new Vector3();\n tan2[i] = new Vector3();\n }\n\n var vA = new Vector3(),\n vB = new Vector3(),\n vC = new Vector3(),\n uvA = new Vector2(),\n uvB = new Vector2(),\n uvC = new Vector2(),\n sdir = new Vector3(),\n tdir = new Vector3();\n\n function handleTriangle(a, b, c) {\n vA.fromArray(positions, a * 3);\n vB.fromArray(positions, b * 3);\n vC.fromArray(positions, c * 3);\n uvA.fromArray(uvs, a * 2);\n uvB.fromArray(uvs, b * 2);\n uvC.fromArray(uvs, c * 2);\n vB.sub(vA);\n vC.sub(vA);\n uvB.sub(uvA);\n uvC.sub(uvA);\n var r = 1.0 / (uvB.x * uvC.y - uvC.x * uvB.y); // silently ignore degenerate uv triangles having coincident or colinear vertices\n\n if (!isFinite(r)) return;\n sdir.copy(vB).multiplyScalar(uvC.y).addScaledVector(vC, -uvB.y).multiplyScalar(r);\n tdir.copy(vC).multiplyScalar(uvB.x).addScaledVector(vB, -uvC.x).multiplyScalar(r);\n tan1[a].add(sdir);\n tan1[b].add(sdir);\n tan1[c].add(sdir);\n tan2[a].add(tdir);\n tan2[b].add(tdir);\n tan2[c].add(tdir);\n }\n\n var groups = this.groups;\n\n if (groups.length === 0) {\n groups = [{\n start: 0,\n count: indices.length\n }];\n }\n\n for (var _i14 = 0, il = groups.length; _i14 < il; ++_i14) {\n var group = groups[_i14];\n var start = group.start;\n var count = group.count;\n\n for (var j = start, jl = start + count; j < jl; j += 3) {\n handleTriangle(indices[j + 0], indices[j + 1], indices[j + 2]);\n }\n }\n\n var tmp = new Vector3(),\n tmp2 = new Vector3();\n var n = new Vector3(),\n n2 = new Vector3();\n\n function handleVertex(v) {\n n.fromArray(normals, v * 3);\n n2.copy(n);\n var t = tan1[v]; // Gram-Schmidt orthogonalize\n\n tmp.copy(t);\n tmp.sub(n.multiplyScalar(n.dot(t))).normalize(); // Calculate handedness\n\n tmp2.crossVectors(n2, t);\n var test = tmp2.dot(tan2[v]);\n var w = test < 0.0 ? -1.0 : 1.0;\n tangents[v * 4] = tmp.x;\n tangents[v * 4 + 1] = tmp.y;\n tangents[v * 4 + 2] = tmp.z;\n tangents[v * 4 + 3] = w;\n }\n\n for (var _i15 = 0, _il3 = groups.length; _i15 < _il3; ++_i15) {\n var _group = groups[_i15];\n var _start2 = _group.start;\n var _count = _group.count;\n\n for (var _j = _start2, _jl = _start2 + _count; _j < _jl; _j += 3) {\n handleVertex(indices[_j + 0]);\n handleVertex(indices[_j + 1]);\n handleVertex(indices[_j + 2]);\n }\n }\n }\n }, {\n key: \"computeVertexNormals\",\n value: function computeVertexNormals() {\n var index = this.index;\n var positionAttribute = this.getAttribute('position');\n\n if (positionAttribute !== undefined) {\n var normalAttribute = this.getAttribute('normal');\n\n if (normalAttribute === undefined) {\n normalAttribute = new BufferAttribute(new Float32Array(positionAttribute.count * 3), 3);\n this.setAttribute('normal', normalAttribute);\n } else {\n // reset existing normals to zero\n for (var i = 0, il = normalAttribute.count; i < il; i++) {\n normalAttribute.setXYZ(i, 0, 0, 0);\n }\n }\n\n var pA = new Vector3(),\n pB = new Vector3(),\n pC = new Vector3();\n var nA = new Vector3(),\n nB = new Vector3(),\n nC = new Vector3();\n var cb = new Vector3(),\n ab = new Vector3(); // indexed elements\n\n if (index) {\n for (var _i16 = 0, _il4 = index.count; _i16 < _il4; _i16 += 3) {\n var vA = index.getX(_i16 + 0);\n var vB = index.getX(_i16 + 1);\n var vC = index.getX(_i16 + 2);\n pA.fromBufferAttribute(positionAttribute, vA);\n pB.fromBufferAttribute(positionAttribute, vB);\n pC.fromBufferAttribute(positionAttribute, vC);\n cb.subVectors(pC, pB);\n ab.subVectors(pA, pB);\n cb.cross(ab);\n nA.fromBufferAttribute(normalAttribute, vA);\n nB.fromBufferAttribute(normalAttribute, vB);\n nC.fromBufferAttribute(normalAttribute, vC);\n nA.add(cb);\n nB.add(cb);\n nC.add(cb);\n normalAttribute.setXYZ(vA, nA.x, nA.y, nA.z);\n normalAttribute.setXYZ(vB, nB.x, nB.y, nB.z);\n normalAttribute.setXYZ(vC, nC.x, nC.y, nC.z);\n }\n } else {\n // non-indexed elements (unconnected triangle soup)\n for (var _i17 = 0, _il5 = positionAttribute.count; _i17 < _il5; _i17 += 3) {\n pA.fromBufferAttribute(positionAttribute, _i17 + 0);\n pB.fromBufferAttribute(positionAttribute, _i17 + 1);\n pC.fromBufferAttribute(positionAttribute, _i17 + 2);\n cb.subVectors(pC, pB);\n ab.subVectors(pA, pB);\n cb.cross(ab);\n normalAttribute.setXYZ(_i17 + 0, cb.x, cb.y, cb.z);\n normalAttribute.setXYZ(_i17 + 1, cb.x, cb.y, cb.z);\n normalAttribute.setXYZ(_i17 + 2, cb.x, cb.y, cb.z);\n }\n }\n\n this.normalizeNormals();\n normalAttribute.needsUpdate = true;\n }\n }\n }, {\n key: \"merge\",\n value: function merge() {\n // @deprecated, r144\n console.error('THREE.BufferGeometry.merge() has been removed. Use THREE.BufferGeometryUtils.mergeGeometries() instead.');\n return this;\n }\n }, {\n key: \"normalizeNormals\",\n value: function normalizeNormals() {\n var normals = this.attributes.normal;\n\n for (var i = 0, il = normals.count; i < il; i++) {\n _vector$7.fromBufferAttribute(normals, i);\n\n _vector$7.normalize();\n\n normals.setXYZ(i, _vector$7.x, _vector$7.y, _vector$7.z);\n }\n }\n }, {\n key: \"toNonIndexed\",\n value: function toNonIndexed() {\n function convertBufferAttribute(attribute, indices) {\n var array = attribute.array;\n var itemSize = attribute.itemSize;\n var normalized = attribute.normalized;\n var array2 = new array.constructor(indices.length * itemSize);\n var index = 0,\n index2 = 0;\n\n for (var i = 0, l = indices.length; i < l; i++) {\n if (attribute.isInterleavedBufferAttribute) {\n index = indices[i] * attribute.data.stride + attribute.offset;\n } else {\n index = indices[i] * itemSize;\n }\n\n for (var j = 0; j < itemSize; j++) {\n array2[index2++] = array[index++];\n }\n }\n\n return new BufferAttribute(array2, itemSize, normalized);\n } //\n\n\n if (this.index === null) {\n console.warn('THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.');\n return this;\n }\n\n var geometry2 = new BufferGeometry();\n var indices = this.index.array;\n var attributes = this.attributes; // attributes\n\n for (var name in attributes) {\n var attribute = attributes[name];\n var newAttribute = convertBufferAttribute(attribute, indices);\n geometry2.setAttribute(name, newAttribute);\n } // morph attributes\n\n\n var morphAttributes = this.morphAttributes;\n\n for (var _name in morphAttributes) {\n var morphArray = [];\n var morphAttribute = morphAttributes[_name]; // morphAttribute: array of Float32BufferAttributes\n\n for (var i = 0, il = morphAttribute.length; i < il; i++) {\n var _attribute = morphAttribute[i];\n\n var _newAttribute = convertBufferAttribute(_attribute, indices);\n\n morphArray.push(_newAttribute);\n }\n\n geometry2.morphAttributes[_name] = morphArray;\n }\n\n geometry2.morphTargetsRelative = this.morphTargetsRelative; // groups\n\n var groups = this.groups;\n\n for (var _i18 = 0, l = groups.length; _i18 < l; _i18++) {\n var group = groups[_i18];\n geometry2.addGroup(group.start, group.count, group.materialIndex);\n }\n\n return geometry2;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var data = {\n metadata: {\n version: 4.5,\n type: 'BufferGeometry',\n generator: 'BufferGeometry.toJSON'\n }\n }; // standard BufferGeometry serialization\n\n data.uuid = this.uuid;\n data.type = this.type;\n if (this.name !== '') data.name = this.name;\n if (Object.keys(this.userData).length > 0) data.userData = this.userData;\n\n if (this.parameters !== undefined) {\n var parameters = this.parameters;\n\n for (var key in parameters) {\n if (parameters[key] !== undefined) data[key] = parameters[key];\n }\n\n return data;\n } // for simplicity the code assumes attributes are not shared across geometries, see #15811\n\n\n data.data = {\n attributes: {}\n };\n var index = this.index;\n\n if (index !== null) {\n data.data.index = {\n type: index.array.constructor.name,\n array: Array.prototype.slice.call(index.array)\n };\n }\n\n var attributes = this.attributes;\n\n for (var _key in attributes) {\n var attribute = attributes[_key];\n data.data.attributes[_key] = attribute.toJSON(data.data);\n }\n\n var morphAttributes = {};\n var hasMorphAttributes = false;\n\n for (var _key2 in this.morphAttributes) {\n var attributeArray = this.morphAttributes[_key2];\n var array = [];\n\n for (var i = 0, il = attributeArray.length; i < il; i++) {\n var _attribute2 = attributeArray[i];\n array.push(_attribute2.toJSON(data.data));\n }\n\n if (array.length > 0) {\n morphAttributes[_key2] = array;\n hasMorphAttributes = true;\n }\n }\n\n if (hasMorphAttributes) {\n data.data.morphAttributes = morphAttributes;\n data.data.morphTargetsRelative = this.morphTargetsRelative;\n }\n\n var groups = this.groups;\n\n if (groups.length > 0) {\n data.data.groups = JSON.parse(JSON.stringify(groups));\n }\n\n var boundingSphere = this.boundingSphere;\n\n if (boundingSphere !== null) {\n data.data.boundingSphere = {\n center: boundingSphere.center.toArray(),\n radius: boundingSphere.radius\n };\n }\n\n return data;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n // reset\n this.index = null;\n this.attributes = {};\n this.morphAttributes = {};\n this.groups = [];\n this.boundingBox = null;\n this.boundingSphere = null; // used for storing cloned, shared data\n\n var data = {}; // name\n\n this.name = source.name; // index\n\n var index = source.index;\n\n if (index !== null) {\n this.setIndex(index.clone(data));\n } // attributes\n\n\n var attributes = source.attributes;\n\n for (var name in attributes) {\n var attribute = attributes[name];\n this.setAttribute(name, attribute.clone(data));\n } // morph attributes\n\n\n var morphAttributes = source.morphAttributes;\n\n for (var _name2 in morphAttributes) {\n var array = [];\n var morphAttribute = morphAttributes[_name2]; // morphAttribute: array of Float32BufferAttributes\n\n for (var i = 0, l = morphAttribute.length; i < l; i++) {\n array.push(morphAttribute[i].clone(data));\n }\n\n this.morphAttributes[_name2] = array;\n }\n\n this.morphTargetsRelative = source.morphTargetsRelative; // groups\n\n var groups = source.groups;\n\n for (var _i19 = 0, _l4 = groups.length; _i19 < _l4; _i19++) {\n var group = groups[_i19];\n this.addGroup(group.start, group.count, group.materialIndex);\n } // bounding box\n\n\n var boundingBox = source.boundingBox;\n\n if (boundingBox !== null) {\n this.boundingBox = boundingBox.clone();\n } // bounding sphere\n\n\n var boundingSphere = source.boundingSphere;\n\n if (boundingSphere !== null) {\n this.boundingSphere = boundingSphere.clone();\n } // draw range\n\n\n this.drawRange.start = source.drawRange.start;\n this.drawRange.count = source.drawRange.count; // user data\n\n this.userData = source.userData;\n return this;\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n this.dispatchEvent({\n type: 'dispose'\n });\n }\n }]);\n\n return BufferGeometry;\n}(EventDispatcher);\n\nvar _inverseMatrix$2 = /*@__PURE__*/new Matrix4();\n\nvar _ray$2 = /*@__PURE__*/new Ray();\n\nvar _sphere$4 = /*@__PURE__*/new Sphere();\n\nvar _sphereHitAt = /*@__PURE__*/new Vector3();\n\nvar _vA$1 = /*@__PURE__*/new Vector3();\n\nvar _vB$1 = /*@__PURE__*/new Vector3();\n\nvar _vC$1 = /*@__PURE__*/new Vector3();\n\nvar _tempA = /*@__PURE__*/new Vector3();\n\nvar _morphA = /*@__PURE__*/new Vector3();\n\nvar _uvA$1 = /*@__PURE__*/new Vector2();\n\nvar _uvB$1 = /*@__PURE__*/new Vector2();\n\nvar _uvC$1 = /*@__PURE__*/new Vector2();\n\nvar _normalA = /*@__PURE__*/new Vector3();\n\nvar _normalB = /*@__PURE__*/new Vector3();\n\nvar _normalC = /*@__PURE__*/new Vector3();\n\nvar _intersectionPoint = /*@__PURE__*/new Vector3();\n\nvar _intersectionPointWorld = /*@__PURE__*/new Vector3();\n\nvar Mesh = /*#__PURE__*/function (_Object3D) {\n _inherits(Mesh, _Object3D);\n\n var _super22 = _createSuper(Mesh);\n\n function Mesh() {\n var _this14;\n\n var geometry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new BufferGeometry();\n var material = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new MeshBasicMaterial();\n\n _classCallCheck(this, Mesh);\n\n _this14 = _super22.call(this);\n _this14.isMesh = true;\n _this14.type = 'Mesh';\n _this14.geometry = geometry;\n _this14.material = material;\n\n _this14.updateMorphTargets();\n\n return _this14;\n }\n\n _createClass(Mesh, [{\n key: \"copy\",\n value: function copy(source, recursive) {\n _get(_getPrototypeOf(Mesh.prototype), \"copy\", this).call(this, source, recursive);\n\n if (source.morphTargetInfluences !== undefined) {\n this.morphTargetInfluences = source.morphTargetInfluences.slice();\n }\n\n if (source.morphTargetDictionary !== undefined) {\n this.morphTargetDictionary = Object.assign({}, source.morphTargetDictionary);\n }\n\n this.material = source.material;\n this.geometry = source.geometry;\n return this;\n }\n }, {\n key: \"updateMorphTargets\",\n value: function updateMorphTargets() {\n var geometry = this.geometry;\n var morphAttributes = geometry.morphAttributes;\n var keys = Object.keys(morphAttributes);\n\n if (keys.length > 0) {\n var morphAttribute = morphAttributes[keys[0]];\n\n if (morphAttribute !== undefined) {\n this.morphTargetInfluences = [];\n this.morphTargetDictionary = {};\n\n for (var m = 0, ml = morphAttribute.length; m < ml; m++) {\n var name = morphAttribute[m].name || String(m);\n this.morphTargetInfluences.push(0);\n this.morphTargetDictionary[name] = m;\n }\n }\n }\n }\n }, {\n key: \"getVertexPosition\",\n value: function getVertexPosition(index, target) {\n var geometry = this.geometry;\n var position = geometry.attributes.position;\n var morphPosition = geometry.morphAttributes.position;\n var morphTargetsRelative = geometry.morphTargetsRelative;\n target.fromBufferAttribute(position, index);\n var morphInfluences = this.morphTargetInfluences;\n\n if (morphPosition && morphInfluences) {\n _morphA.set(0, 0, 0);\n\n for (var i = 0, il = morphPosition.length; i < il; i++) {\n var influence = morphInfluences[i];\n var morphAttribute = morphPosition[i];\n if (influence === 0) continue;\n\n _tempA.fromBufferAttribute(morphAttribute, index);\n\n if (morphTargetsRelative) {\n _morphA.addScaledVector(_tempA, influence);\n } else {\n _morphA.addScaledVector(_tempA.sub(target), influence);\n }\n }\n\n target.add(_morphA);\n }\n\n return target;\n }\n }, {\n key: \"raycast\",\n value: function raycast(raycaster, intersects) {\n var geometry = this.geometry;\n var material = this.material;\n var matrixWorld = this.matrixWorld;\n if (material === undefined) return; // Checking boundingSphere distance to ray\n\n if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n\n _sphere$4.copy(geometry.boundingSphere);\n\n _sphere$4.applyMatrix4(matrixWorld);\n\n _ray$2.copy(raycaster.ray).recast(raycaster.near);\n\n if (_sphere$4.containsPoint(_ray$2.origin) === false) {\n if (_ray$2.intersectSphere(_sphere$4, _sphereHitAt) === null) return;\n if (_ray$2.origin.distanceToSquared(_sphereHitAt) > Math.pow(raycaster.far - raycaster.near, 2)) return;\n } //\n\n\n _inverseMatrix$2.copy(matrixWorld).invert();\n\n _ray$2.copy(raycaster.ray).applyMatrix4(_inverseMatrix$2); // Check boundingBox before continuing\n\n\n if (geometry.boundingBox !== null) {\n if (_ray$2.intersectsBox(geometry.boundingBox) === false) return;\n }\n\n this._computeIntersections(raycaster, intersects);\n }\n }, {\n key: \"_computeIntersections\",\n value: function _computeIntersections(raycaster, intersects) {\n var intersection;\n var geometry = this.geometry;\n var material = this.material;\n var index = geometry.index;\n var position = geometry.attributes.position;\n var uv = geometry.attributes.uv;\n var uv1 = geometry.attributes.uv1;\n var normal = geometry.attributes.normal;\n var groups = geometry.groups;\n var drawRange = geometry.drawRange;\n\n if (index !== null) {\n // indexed buffer geometry\n if (Array.isArray(material)) {\n for (var i = 0, il = groups.length; i < il; i++) {\n var group = groups[i];\n var groupMaterial = material[group.materialIndex];\n var start = Math.max(group.start, drawRange.start);\n var end = Math.min(index.count, Math.min(group.start + group.count, drawRange.start + drawRange.count));\n\n for (var j = start, jl = end; j < jl; j += 3) {\n var a = index.getX(j);\n var b = index.getX(j + 1);\n var c = index.getX(j + 2);\n intersection = checkGeometryIntersection(this, groupMaterial, raycaster, _ray$2, uv, uv1, normal, a, b, c);\n\n if (intersection) {\n intersection.faceIndex = Math.floor(j / 3); // triangle number in indexed buffer semantics\n\n intersection.face.materialIndex = group.materialIndex;\n intersects.push(intersection);\n }\n }\n }\n } else {\n var _start3 = Math.max(0, drawRange.start);\n\n var _end2 = Math.min(index.count, drawRange.start + drawRange.count);\n\n for (var _i20 = _start3, _il6 = _end2; _i20 < _il6; _i20 += 3) {\n var _a = index.getX(_i20);\n\n var _b = index.getX(_i20 + 1);\n\n var _c = index.getX(_i20 + 2);\n\n intersection = checkGeometryIntersection(this, material, raycaster, _ray$2, uv, uv1, normal, _a, _b, _c);\n\n if (intersection) {\n intersection.faceIndex = Math.floor(_i20 / 3); // triangle number in indexed buffer semantics\n\n intersects.push(intersection);\n }\n }\n }\n } else if (position !== undefined) {\n // non-indexed buffer geometry\n if (Array.isArray(material)) {\n for (var _i21 = 0, _il7 = groups.length; _i21 < _il7; _i21++) {\n var _group2 = groups[_i21];\n var _groupMaterial = material[_group2.materialIndex];\n\n var _start4 = Math.max(_group2.start, drawRange.start);\n\n var _end3 = Math.min(position.count, Math.min(_group2.start + _group2.count, drawRange.start + drawRange.count));\n\n for (var _j2 = _start4, _jl2 = _end3; _j2 < _jl2; _j2 += 3) {\n var _a2 = _j2;\n\n var _b2 = _j2 + 1;\n\n var _c2 = _j2 + 2;\n\n intersection = checkGeometryIntersection(this, _groupMaterial, raycaster, _ray$2, uv, uv1, normal, _a2, _b2, _c2);\n\n if (intersection) {\n intersection.faceIndex = Math.floor(_j2 / 3); // triangle number in non-indexed buffer semantics\n\n intersection.face.materialIndex = _group2.materialIndex;\n intersects.push(intersection);\n }\n }\n }\n } else {\n var _start5 = Math.max(0, drawRange.start);\n\n var _end4 = Math.min(position.count, drawRange.start + drawRange.count);\n\n for (var _i22 = _start5, _il8 = _end4; _i22 < _il8; _i22 += 3) {\n var _a3 = _i22;\n\n var _b3 = _i22 + 1;\n\n var _c3 = _i22 + 2;\n\n intersection = checkGeometryIntersection(this, material, raycaster, _ray$2, uv, uv1, normal, _a3, _b3, _c3);\n\n if (intersection) {\n intersection.faceIndex = Math.floor(_i22 / 3); // triangle number in non-indexed buffer semantics\n\n intersects.push(intersection);\n }\n }\n }\n }\n }\n }]);\n\n return Mesh;\n}(Object3D);\n\nfunction checkIntersection(object, material, raycaster, ray, pA, pB, pC, point) {\n var intersect;\n\n if (material.side === BackSide) {\n intersect = ray.intersectTriangle(pC, pB, pA, true, point);\n } else {\n intersect = ray.intersectTriangle(pA, pB, pC, material.side === FrontSide, point);\n }\n\n if (intersect === null) return null;\n\n _intersectionPointWorld.copy(point);\n\n _intersectionPointWorld.applyMatrix4(object.matrixWorld);\n\n var distance = raycaster.ray.origin.distanceTo(_intersectionPointWorld);\n if (distance < raycaster.near || distance > raycaster.far) return null;\n return {\n distance: distance,\n point: _intersectionPointWorld.clone(),\n object: object\n };\n}\n\nfunction checkGeometryIntersection(object, material, raycaster, ray, uv, uv1, normal, a, b, c) {\n object.getVertexPosition(a, _vA$1);\n object.getVertexPosition(b, _vB$1);\n object.getVertexPosition(c, _vC$1);\n var intersection = checkIntersection(object, material, raycaster, ray, _vA$1, _vB$1, _vC$1, _intersectionPoint);\n\n if (intersection) {\n if (uv) {\n _uvA$1.fromBufferAttribute(uv, a);\n\n _uvB$1.fromBufferAttribute(uv, b);\n\n _uvC$1.fromBufferAttribute(uv, c);\n\n intersection.uv = Triangle.getInterpolation(_intersectionPoint, _vA$1, _vB$1, _vC$1, _uvA$1, _uvB$1, _uvC$1, new Vector2());\n }\n\n if (uv1) {\n _uvA$1.fromBufferAttribute(uv1, a);\n\n _uvB$1.fromBufferAttribute(uv1, b);\n\n _uvC$1.fromBufferAttribute(uv1, c);\n\n intersection.uv1 = Triangle.getInterpolation(_intersectionPoint, _vA$1, _vB$1, _vC$1, _uvA$1, _uvB$1, _uvC$1, new Vector2());\n intersection.uv2 = intersection.uv1; // Backwards compatibility\n }\n\n if (normal) {\n _normalA.fromBufferAttribute(normal, a);\n\n _normalB.fromBufferAttribute(normal, b);\n\n _normalC.fromBufferAttribute(normal, c);\n\n intersection.normal = Triangle.getInterpolation(_intersectionPoint, _vA$1, _vB$1, _vC$1, _normalA, _normalB, _normalC, new Vector3());\n\n if (intersection.normal.dot(ray.direction) > 0) {\n intersection.normal.multiplyScalar(-1);\n }\n }\n\n var face = {\n a: a,\n b: b,\n c: c,\n normal: new Vector3(),\n materialIndex: 0\n };\n Triangle.getNormal(_vA$1, _vB$1, _vC$1, face.normal);\n intersection.face = face;\n }\n\n return intersection;\n}\n\nvar BoxGeometry = /*#__PURE__*/function (_BufferGeometry) {\n _inherits(BoxGeometry, _BufferGeometry);\n\n var _super23 = _createSuper(BoxGeometry);\n\n function BoxGeometry() {\n var _this15;\n\n var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var widthSegments = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n var heightSegments = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var depthSegments = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\n\n _classCallCheck(this, BoxGeometry);\n\n _this15 = _super23.call(this);\n _this15.type = 'BoxGeometry';\n _this15.parameters = {\n width: width,\n height: height,\n depth: depth,\n widthSegments: widthSegments,\n heightSegments: heightSegments,\n depthSegments: depthSegments\n };\n\n var scope = _assertThisInitialized(_this15); // segments\n\n\n widthSegments = Math.floor(widthSegments);\n heightSegments = Math.floor(heightSegments);\n depthSegments = Math.floor(depthSegments); // buffers\n\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = []; // helper variables\n\n var numberOfVertices = 0;\n var groupStart = 0; // build each side of the box geometry\n\n buildPlane('z', 'y', 'x', -1, -1, depth, height, width, depthSegments, heightSegments, 0); // px\n\n buildPlane('z', 'y', 'x', 1, -1, depth, height, -width, depthSegments, heightSegments, 1); // nx\n\n buildPlane('x', 'z', 'y', 1, 1, width, depth, height, widthSegments, depthSegments, 2); // py\n\n buildPlane('x', 'z', 'y', 1, -1, width, depth, -height, widthSegments, depthSegments, 3); // ny\n\n buildPlane('x', 'y', 'z', 1, -1, width, height, depth, widthSegments, heightSegments, 4); // pz\n\n buildPlane('x', 'y', 'z', -1, -1, width, height, -depth, widthSegments, heightSegments, 5); // nz\n // build geometry\n\n _this15.setIndex(indices);\n\n _this15.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n\n _this15.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n\n _this15.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\n\n function buildPlane(u, v, w, udir, vdir, width, height, depth, gridX, gridY, materialIndex) {\n var segmentWidth = width / gridX;\n var segmentHeight = height / gridY;\n var widthHalf = width / 2;\n var heightHalf = height / 2;\n var depthHalf = depth / 2;\n var gridX1 = gridX + 1;\n var gridY1 = gridY + 1;\n var vertexCounter = 0;\n var groupCount = 0;\n var vector = new Vector3(); // generate vertices, normals and uvs\n\n for (var iy = 0; iy < gridY1; iy++) {\n var y = iy * segmentHeight - heightHalf;\n\n for (var ix = 0; ix < gridX1; ix++) {\n var x = ix * segmentWidth - widthHalf; // set values to correct vector component\n\n vector[u] = x * udir;\n vector[v] = y * vdir;\n vector[w] = depthHalf; // now apply vector to vertex buffer\n\n vertices.push(vector.x, vector.y, vector.z); // set values to correct vector component\n\n vector[u] = 0;\n vector[v] = 0;\n vector[w] = depth > 0 ? 1 : -1; // now apply vector to normal buffer\n\n normals.push(vector.x, vector.y, vector.z); // uvs\n\n uvs.push(ix / gridX);\n uvs.push(1 - iy / gridY); // counters\n\n vertexCounter += 1;\n }\n } // indices\n // 1. you need three indices to draw a single face\n // 2. a single segment consists of two faces\n // 3. so we need to generate six (2*3) indices per segment\n\n\n for (var _iy = 0; _iy < gridY; _iy++) {\n for (var _ix = 0; _ix < gridX; _ix++) {\n var a = numberOfVertices + _ix + gridX1 * _iy;\n var b = numberOfVertices + _ix + gridX1 * (_iy + 1);\n var c = numberOfVertices + (_ix + 1) + gridX1 * (_iy + 1);\n var d = numberOfVertices + (_ix + 1) + gridX1 * _iy; // faces\n\n indices.push(a, b, d);\n indices.push(b, c, d); // increase counter\n\n groupCount += 6;\n }\n } // add a group to the geometry. this will ensure multi material support\n\n\n scope.addGroup(groupStart, groupCount, materialIndex); // calculate new start value for groups\n\n groupStart += groupCount; // update total number of vertices\n\n numberOfVertices += vertexCounter;\n }\n\n return _this15;\n }\n\n _createClass(BoxGeometry, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(BoxGeometry.prototype), \"copy\", this).call(this, source);\n\n this.parameters = Object.assign({}, source.parameters);\n return this;\n }\n }], [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new BoxGeometry(data.width, data.height, data.depth, data.widthSegments, data.heightSegments, data.depthSegments);\n }\n }]);\n\n return BoxGeometry;\n}(BufferGeometry);\n/**\n * Uniform Utilities\n */\n\n\nfunction cloneUniforms(src) {\n var dst = {};\n\n for (var u in src) {\n dst[u] = {};\n\n for (var p in src[u]) {\n var property = src[u][p];\n\n if (property && (property.isColor || property.isMatrix3 || property.isMatrix4 || property.isVector2 || property.isVector3 || property.isVector4 || property.isTexture || property.isQuaternion)) {\n if (property.isRenderTargetTexture) {\n console.warn('UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms().');\n dst[u][p] = null;\n } else {\n dst[u][p] = property.clone();\n }\n } else if (Array.isArray(property)) {\n dst[u][p] = property.slice();\n } else {\n dst[u][p] = property;\n }\n }\n }\n\n return dst;\n}\n\nfunction mergeUniforms(uniforms) {\n var merged = {};\n\n for (var u = 0; u < uniforms.length; u++) {\n var _tmp = cloneUniforms(uniforms[u]);\n\n for (var p in _tmp) {\n merged[p] = _tmp[p];\n }\n }\n\n return merged;\n}\n\nfunction cloneUniformsGroups(src) {\n var dst = [];\n\n for (var u = 0; u < src.length; u++) {\n dst.push(src[u].clone());\n }\n\n return dst;\n}\n\nfunction getUnlitUniformColorSpace(renderer) {\n if (renderer.getRenderTarget() === null) {\n // https://github.com/mrdoob/three.js/pull/23937#issuecomment-1111067398\n return renderer.outputColorSpace;\n }\n\n return LinearSRGBColorSpace;\n} // Legacy\n\n\nvar UniformsUtils = {\n clone: cloneUniforms,\n merge: mergeUniforms\n};\nvar default_vertex = \"void main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\";\nvar default_fragment = \"void main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\";\n\nvar ShaderMaterial = /*#__PURE__*/function (_Material2) {\n _inherits(ShaderMaterial, _Material2);\n\n var _super24 = _createSuper(ShaderMaterial);\n\n function ShaderMaterial(parameters) {\n var _this16;\n\n _classCallCheck(this, ShaderMaterial);\n\n _this16 = _super24.call(this);\n _this16.isShaderMaterial = true;\n _this16.type = 'ShaderMaterial';\n _this16.defines = {};\n _this16.uniforms = {};\n _this16.uniformsGroups = [];\n _this16.vertexShader = default_vertex;\n _this16.fragmentShader = default_fragment;\n _this16.linewidth = 1;\n _this16.wireframe = false;\n _this16.wireframeLinewidth = 1;\n _this16.fog = false; // set to use scene fog\n\n _this16.lights = false; // set to use scene lights\n\n _this16.clipping = false; // set to use user-defined clipping planes\n\n _this16.forceSinglePass = true;\n _this16.extensions = {\n derivatives: false,\n // set to use derivatives\n fragDepth: false,\n // set to use fragment depth values\n drawBuffers: false,\n // set to use draw buffers\n shaderTextureLOD: false // set to use shader texture LOD\n\n }; // When rendered geometry doesn't include these attributes but the material does,\n // use these default values in WebGL. This avoids errors when buffer data is missing.\n\n _this16.defaultAttributeValues = {\n 'color': [1, 1, 1],\n 'uv': [0, 0],\n 'uv1': [0, 0]\n };\n _this16.index0AttributeName = undefined;\n _this16.uniformsNeedUpdate = false;\n _this16.glslVersion = null;\n\n if (parameters !== undefined) {\n _this16.setValues(parameters);\n }\n\n return _this16;\n }\n\n _createClass(ShaderMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(ShaderMaterial.prototype), \"copy\", this).call(this, source);\n\n this.fragmentShader = source.fragmentShader;\n this.vertexShader = source.vertexShader;\n this.uniforms = cloneUniforms(source.uniforms);\n this.uniformsGroups = cloneUniformsGroups(source.uniformsGroups);\n this.defines = Object.assign({}, source.defines);\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n this.fog = source.fog;\n this.lights = source.lights;\n this.clipping = source.clipping;\n this.extensions = Object.assign({}, source.extensions);\n this.glslVersion = source.glslVersion;\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON(meta) {\n var data = _get(_getPrototypeOf(ShaderMaterial.prototype), \"toJSON\", this).call(this, meta);\n\n data.glslVersion = this.glslVersion;\n data.uniforms = {};\n\n for (var name in this.uniforms) {\n var uniform = this.uniforms[name];\n var _value = uniform.value;\n\n if (_value && _value.isTexture) {\n data.uniforms[name] = {\n type: 't',\n value: _value.toJSON(meta).uuid\n };\n } else if (_value && _value.isColor) {\n data.uniforms[name] = {\n type: 'c',\n value: _value.getHex()\n };\n } else if (_value && _value.isVector2) {\n data.uniforms[name] = {\n type: 'v2',\n value: _value.toArray()\n };\n } else if (_value && _value.isVector3) {\n data.uniforms[name] = {\n type: 'v3',\n value: _value.toArray()\n };\n } else if (_value && _value.isVector4) {\n data.uniforms[name] = {\n type: 'v4',\n value: _value.toArray()\n };\n } else if (_value && _value.isMatrix3) {\n data.uniforms[name] = {\n type: 'm3',\n value: _value.toArray()\n };\n } else if (_value && _value.isMatrix4) {\n data.uniforms[name] = {\n type: 'm4',\n value: _value.toArray()\n };\n } else {\n data.uniforms[name] = {\n value: _value\n }; // note: the array variants v2v, v3v, v4v, m4v and tv are not supported so far\n }\n }\n\n if (Object.keys(this.defines).length > 0) data.defines = this.defines;\n data.vertexShader = this.vertexShader;\n data.fragmentShader = this.fragmentShader;\n data.lights = this.lights;\n data.clipping = this.clipping;\n var extensions = {};\n\n for (var key in this.extensions) {\n if (this.extensions[key] === true) extensions[key] = true;\n }\n\n if (Object.keys(extensions).length > 0) data.extensions = extensions;\n return data;\n }\n }]);\n\n return ShaderMaterial;\n}(Material);\n\nvar Camera = /*#__PURE__*/function (_Object3D2) {\n _inherits(Camera, _Object3D2);\n\n var _super25 = _createSuper(Camera);\n\n function Camera() {\n var _this17;\n\n _classCallCheck(this, Camera);\n\n _this17 = _super25.call(this);\n _this17.isCamera = true;\n _this17.type = 'Camera';\n _this17.matrixWorldInverse = new Matrix4();\n _this17.projectionMatrix = new Matrix4();\n _this17.projectionMatrixInverse = new Matrix4();\n return _this17;\n }\n\n _createClass(Camera, [{\n key: \"copy\",\n value: function copy(source, recursive) {\n _get(_getPrototypeOf(Camera.prototype), \"copy\", this).call(this, source, recursive);\n\n this.matrixWorldInverse.copy(source.matrixWorldInverse);\n this.projectionMatrix.copy(source.projectionMatrix);\n this.projectionMatrixInverse.copy(source.projectionMatrixInverse);\n return this;\n }\n }, {\n key: \"getWorldDirection\",\n value: function getWorldDirection(target) {\n this.updateWorldMatrix(true, false);\n var e = this.matrixWorld.elements;\n return target.set(-e[8], -e[9], -e[10]).normalize();\n }\n }, {\n key: \"updateMatrixWorld\",\n value: function updateMatrixWorld(force) {\n _get(_getPrototypeOf(Camera.prototype), \"updateMatrixWorld\", this).call(this, force);\n\n this.matrixWorldInverse.copy(this.matrixWorld).invert();\n }\n }, {\n key: \"updateWorldMatrix\",\n value: function updateWorldMatrix(updateParents, updateChildren) {\n _get(_getPrototypeOf(Camera.prototype), \"updateWorldMatrix\", this).call(this, updateParents, updateChildren);\n\n this.matrixWorldInverse.copy(this.matrixWorld).invert();\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n }\n }]);\n\n return Camera;\n}(Object3D);\n\nvar PerspectiveCamera = /*#__PURE__*/function (_Camera) {\n _inherits(PerspectiveCamera, _Camera);\n\n var _super26 = _createSuper(PerspectiveCamera);\n\n function PerspectiveCamera() {\n var _this18;\n\n var fov = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 50;\n var aspect = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var near = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.1;\n var far = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 2000;\n\n _classCallCheck(this, PerspectiveCamera);\n\n _this18 = _super26.call(this);\n _this18.isPerspectiveCamera = true;\n _this18.type = 'PerspectiveCamera';\n _this18.fov = fov;\n _this18.zoom = 1;\n _this18.near = near;\n _this18.far = far;\n _this18.focus = 10;\n _this18.aspect = aspect;\n _this18.view = null;\n _this18.filmGauge = 35; // width of the film (default in millimeters)\n\n _this18.filmOffset = 0; // horizontal film offset (same unit as gauge)\n\n _this18.updateProjectionMatrix();\n\n return _this18;\n }\n\n _createClass(PerspectiveCamera, [{\n key: \"copy\",\n value: function copy(source, recursive) {\n _get(_getPrototypeOf(PerspectiveCamera.prototype), \"copy\", this).call(this, source, recursive);\n\n this.fov = source.fov;\n this.zoom = source.zoom;\n this.near = source.near;\n this.far = source.far;\n this.focus = source.focus;\n this.aspect = source.aspect;\n this.view = source.view === null ? null : Object.assign({}, source.view);\n this.filmGauge = source.filmGauge;\n this.filmOffset = source.filmOffset;\n return this;\n }\n /**\n * Sets the FOV by focal length in respect to the current .filmGauge.\n *\n * The default film gauge is 35, so that the focal length can be specified for\n * a 35mm (full frame) camera.\n *\n * Values for focal length and film gauge must have the same unit.\n */\n\n }, {\n key: \"setFocalLength\",\n value: function setFocalLength(focalLength) {\n /** see {@link http://www.bobatkins.com/photography/technical/field_of_view.html} */\n var vExtentSlope = 0.5 * this.getFilmHeight() / focalLength;\n this.fov = RAD2DEG * 2 * Math.atan(vExtentSlope);\n this.updateProjectionMatrix();\n }\n /**\n * Calculates the focal length from the current .fov and .filmGauge.\n */\n\n }, {\n key: \"getFocalLength\",\n value: function getFocalLength() {\n var vExtentSlope = Math.tan(DEG2RAD * 0.5 * this.fov);\n return 0.5 * this.getFilmHeight() / vExtentSlope;\n }\n }, {\n key: \"getEffectiveFOV\",\n value: function getEffectiveFOV() {\n return RAD2DEG * 2 * Math.atan(Math.tan(DEG2RAD * 0.5 * this.fov) / this.zoom);\n }\n }, {\n key: \"getFilmWidth\",\n value: function getFilmWidth() {\n // film not completely covered in portrait format (aspect < 1)\n return this.filmGauge * Math.min(this.aspect, 1);\n }\n }, {\n key: \"getFilmHeight\",\n value: function getFilmHeight() {\n // film not completely covered in landscape format (aspect > 1)\n return this.filmGauge / Math.max(this.aspect, 1);\n }\n /**\n * Sets an offset in a larger frustum. This is useful for multi-window or\n * multi-monitor/multi-machine setups.\n *\n * For example, if you have 3x2 monitors and each monitor is 1920x1080 and\n * the monitors are in grid like this\n *\n * +---+---+---+\n * | A | B | C |\n * +---+---+---+\n * | D | E | F |\n * +---+---+---+\n *\n * then for each monitor you would call it like this\n *\n * const w = 1920;\n * const h = 1080;\n * const fullWidth = w * 3;\n * const fullHeight = h * 2;\n *\n * --A--\n * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );\n * --B--\n * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );\n * --C--\n * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );\n * --D--\n * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );\n * --E--\n * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );\n * --F--\n * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );\n *\n * Note there is no reason monitors have to be the same size or in a grid.\n */\n\n }, {\n key: \"setViewOffset\",\n value: function setViewOffset(fullWidth, fullHeight, x, y, width, height) {\n this.aspect = fullWidth / fullHeight;\n\n if (this.view === null) {\n this.view = {\n enabled: true,\n fullWidth: 1,\n fullHeight: 1,\n offsetX: 0,\n offsetY: 0,\n width: 1,\n height: 1\n };\n }\n\n this.view.enabled = true;\n this.view.fullWidth = fullWidth;\n this.view.fullHeight = fullHeight;\n this.view.offsetX = x;\n this.view.offsetY = y;\n this.view.width = width;\n this.view.height = height;\n this.updateProjectionMatrix();\n }\n }, {\n key: \"clearViewOffset\",\n value: function clearViewOffset() {\n if (this.view !== null) {\n this.view.enabled = false;\n }\n\n this.updateProjectionMatrix();\n }\n }, {\n key: \"updateProjectionMatrix\",\n value: function updateProjectionMatrix() {\n var near = this.near;\n var top = near * Math.tan(DEG2RAD * 0.5 * this.fov) / this.zoom;\n var height = 2 * top;\n var width = this.aspect * height;\n var left = -0.5 * width;\n var view = this.view;\n\n if (this.view !== null && this.view.enabled) {\n var fullWidth = view.fullWidth,\n fullHeight = view.fullHeight;\n left += view.offsetX * width / fullWidth;\n top -= view.offsetY * height / fullHeight;\n width *= view.width / fullWidth;\n height *= view.height / fullHeight;\n }\n\n var skew = this.filmOffset;\n if (skew !== 0) left += near * skew / this.getFilmWidth();\n this.projectionMatrix.makePerspective(left, left + width, top, top - height, near, this.far);\n this.projectionMatrixInverse.copy(this.projectionMatrix).invert();\n }\n }, {\n key: \"toJSON\",\n value: function toJSON(meta) {\n var data = _get(_getPrototypeOf(PerspectiveCamera.prototype), \"toJSON\", this).call(this, meta);\n\n data.object.fov = this.fov;\n data.object.zoom = this.zoom;\n data.object.near = this.near;\n data.object.far = this.far;\n data.object.focus = this.focus;\n data.object.aspect = this.aspect;\n if (this.view !== null) data.object.view = Object.assign({}, this.view);\n data.object.filmGauge = this.filmGauge;\n data.object.filmOffset = this.filmOffset;\n return data;\n }\n }]);\n\n return PerspectiveCamera;\n}(Camera);\n\nvar fov = -90; // negative fov is not an error\n\nvar aspect = 1;\n\nvar CubeCamera = /*#__PURE__*/function (_Object3D3) {\n _inherits(CubeCamera, _Object3D3);\n\n var _super27 = _createSuper(CubeCamera);\n\n function CubeCamera(near, far, renderTarget) {\n var _this19;\n\n _classCallCheck(this, CubeCamera);\n\n _this19 = _super27.call(this);\n _this19.type = 'CubeCamera';\n _this19.renderTarget = renderTarget;\n var cameraPX = new PerspectiveCamera(fov, aspect, near, far);\n cameraPX.layers = _this19.layers;\n cameraPX.up.set(0, 1, 0);\n cameraPX.lookAt(1, 0, 0);\n\n _this19.add(cameraPX);\n\n var cameraNX = new PerspectiveCamera(fov, aspect, near, far);\n cameraNX.layers = _this19.layers;\n cameraNX.up.set(0, 1, 0);\n cameraNX.lookAt(-1, 0, 0);\n\n _this19.add(cameraNX);\n\n var cameraPY = new PerspectiveCamera(fov, aspect, near, far);\n cameraPY.layers = _this19.layers;\n cameraPY.up.set(0, 0, -1);\n cameraPY.lookAt(0, 1, 0);\n\n _this19.add(cameraPY);\n\n var cameraNY = new PerspectiveCamera(fov, aspect, near, far);\n cameraNY.layers = _this19.layers;\n cameraNY.up.set(0, 0, 1);\n cameraNY.lookAt(0, -1, 0);\n\n _this19.add(cameraNY);\n\n var cameraPZ = new PerspectiveCamera(fov, aspect, near, far);\n cameraPZ.layers = _this19.layers;\n cameraPZ.up.set(0, 1, 0);\n cameraPZ.lookAt(0, 0, 1);\n\n _this19.add(cameraPZ);\n\n var cameraNZ = new PerspectiveCamera(fov, aspect, near, far);\n cameraNZ.layers = _this19.layers;\n cameraNZ.up.set(0, 1, 0);\n cameraNZ.lookAt(0, 0, -1);\n\n _this19.add(cameraNZ);\n\n return _this19;\n }\n\n _createClass(CubeCamera, [{\n key: \"update\",\n value: function update(renderer, scene) {\n if (this.parent === null) this.updateMatrixWorld();\n var renderTarget = this.renderTarget;\n\n var _this$children = _slicedToArray(this.children, 6),\n cameraPX = _this$children[0],\n cameraNX = _this$children[1],\n cameraPY = _this$children[2],\n cameraNY = _this$children[3],\n cameraPZ = _this$children[4],\n cameraNZ = _this$children[5];\n\n var currentRenderTarget = renderer.getRenderTarget();\n var currentToneMapping = renderer.toneMapping;\n var currentXrEnabled = renderer.xr.enabled;\n renderer.toneMapping = NoToneMapping;\n renderer.xr.enabled = false;\n var generateMipmaps = renderTarget.texture.generateMipmaps;\n renderTarget.texture.generateMipmaps = false;\n renderer.setRenderTarget(renderTarget, 0);\n renderer.render(scene, cameraPX);\n renderer.setRenderTarget(renderTarget, 1);\n renderer.render(scene, cameraNX);\n renderer.setRenderTarget(renderTarget, 2);\n renderer.render(scene, cameraPY);\n renderer.setRenderTarget(renderTarget, 3);\n renderer.render(scene, cameraNY);\n renderer.setRenderTarget(renderTarget, 4);\n renderer.render(scene, cameraPZ);\n renderTarget.texture.generateMipmaps = generateMipmaps;\n renderer.setRenderTarget(renderTarget, 5);\n renderer.render(scene, cameraNZ);\n renderer.setRenderTarget(currentRenderTarget);\n renderer.toneMapping = currentToneMapping;\n renderer.xr.enabled = currentXrEnabled;\n renderTarget.texture.needsPMREMUpdate = true;\n }\n }]);\n\n return CubeCamera;\n}(Object3D);\n\nvar CubeTexture = /*#__PURE__*/function (_Texture3) {\n _inherits(CubeTexture, _Texture3);\n\n var _super28 = _createSuper(CubeTexture);\n\n function CubeTexture(images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace) {\n var _this20;\n\n _classCallCheck(this, CubeTexture);\n\n images = images !== undefined ? images : [];\n mapping = mapping !== undefined ? mapping : CubeReflectionMapping;\n _this20 = _super28.call(this, images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace);\n _this20.isCubeTexture = true;\n _this20.flipY = false;\n return _this20;\n }\n\n _createClass(CubeTexture, [{\n key: \"images\",\n get: function get() {\n return this.image;\n },\n set: function set(value) {\n this.image = value;\n }\n }]);\n\n return CubeTexture;\n}(Texture);\n\nvar WebGLCubeRenderTarget = /*#__PURE__*/function (_WebGLRenderTarget4) {\n _inherits(WebGLCubeRenderTarget, _WebGLRenderTarget4);\n\n var _super29 = _createSuper(WebGLCubeRenderTarget);\n\n function WebGLCubeRenderTarget() {\n var _this21;\n\n var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, WebGLCubeRenderTarget);\n\n _this21 = _super29.call(this, size, size, options);\n _this21.isWebGLCubeRenderTarget = true;\n var image = {\n width: size,\n height: size,\n depth: 1\n };\n var images = [image, image, image, image, image, image];\n\n if (options.encoding !== undefined) {\n // @deprecated, r152\n warnOnce('THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace.');\n options.colorSpace = options.encoding === sRGBEncoding ? SRGBColorSpace : NoColorSpace;\n }\n\n _this21.texture = new CubeTexture(images, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace); // By convention -- likely based on the RenderMan spec from the 1990's -- cube maps are specified by WebGL (and three.js)\n // in a coordinate system in which positive-x is to the right when looking up the positive-z axis -- in other words,\n // in a left-handed coordinate system. By continuing this convention, preexisting cube maps continued to render correctly.\n // three.js uses a right-handed coordinate system. So environment maps used in three.js appear to have px and nx swapped\n // and the flag isRenderTargetTexture controls this conversion. The flip is not required when using WebGLCubeRenderTarget.texture\n // as a cube texture (this is detected when isRenderTargetTexture is set to true for cube textures).\n\n _this21.texture.isRenderTargetTexture = true;\n _this21.texture.generateMipmaps = options.generateMipmaps !== undefined ? options.generateMipmaps : false;\n _this21.texture.minFilter = options.minFilter !== undefined ? options.minFilter : LinearFilter;\n return _this21;\n }\n\n _createClass(WebGLCubeRenderTarget, [{\n key: \"fromEquirectangularTexture\",\n value: function fromEquirectangularTexture(renderer, texture) {\n this.texture.type = texture.type;\n this.texture.colorSpace = texture.colorSpace;\n this.texture.generateMipmaps = texture.generateMipmaps;\n this.texture.minFilter = texture.minFilter;\n this.texture.magFilter = texture.magFilter;\n var shader = {\n uniforms: {\n tEquirect: {\n value: null\n }\n },\n vertexShader:\n /* glsl */\n \"\\n\\n\\t\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\t\\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\n\\t\\t\\t\\t\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\n\\t\\t\\t\\t\\t#include \\n\\t\\t\\t\\t\\t#include \\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t\",\n fragmentShader:\n /* glsl */\n \"\\n\\n\\t\\t\\t\\tuniform sampler2D tEquirect;\\n\\n\\t\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\t\\t#include \\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tvec3 direction = normalize( vWorldDirection );\\n\\n\\t\\t\\t\\t\\tvec2 sampleUV = equirectUv( direction );\\n\\n\\t\\t\\t\\t\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t\"\n };\n var geometry = new BoxGeometry(5, 5, 5);\n var material = new ShaderMaterial({\n name: 'CubemapFromEquirect',\n uniforms: cloneUniforms(shader.uniforms),\n vertexShader: shader.vertexShader,\n fragmentShader: shader.fragmentShader,\n side: BackSide,\n blending: NoBlending\n });\n material.uniforms.tEquirect.value = texture;\n var mesh = new Mesh(geometry, material);\n var currentMinFilter = texture.minFilter; // Avoid blurred poles\n\n if (texture.minFilter === LinearMipmapLinearFilter) texture.minFilter = LinearFilter;\n var camera = new CubeCamera(1, 10, this);\n camera.update(renderer, mesh);\n texture.minFilter = currentMinFilter;\n mesh.geometry.dispose();\n mesh.material.dispose();\n return this;\n }\n }, {\n key: \"clear\",\n value: function clear(renderer, color, depth, stencil) {\n var currentRenderTarget = renderer.getRenderTarget();\n\n for (var i = 0; i < 6; i++) {\n renderer.setRenderTarget(this, i);\n renderer.clear(color, depth, stencil);\n }\n\n renderer.setRenderTarget(currentRenderTarget);\n }\n }]);\n\n return WebGLCubeRenderTarget;\n}(WebGLRenderTarget);\n\nvar _vector1 = /*@__PURE__*/new Vector3();\n\nvar _vector2 = /*@__PURE__*/new Vector3();\n\nvar _normalMatrix = /*@__PURE__*/new Matrix3();\n\nvar Plane = /*#__PURE__*/function () {\n function Plane() {\n var normal = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Vector3(1, 0, 0);\n var constant = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Plane);\n\n this.isPlane = true; // normal is assumed to be normalized\n\n this.normal = normal;\n this.constant = constant;\n }\n\n _createClass(Plane, [{\n key: \"set\",\n value: function set(normal, constant) {\n this.normal.copy(normal);\n this.constant = constant;\n return this;\n }\n }, {\n key: \"setComponents\",\n value: function setComponents(x, y, z, w) {\n this.normal.set(x, y, z);\n this.constant = w;\n return this;\n }\n }, {\n key: \"setFromNormalAndCoplanarPoint\",\n value: function setFromNormalAndCoplanarPoint(normal, point) {\n this.normal.copy(normal);\n this.constant = -point.dot(this.normal);\n return this;\n }\n }, {\n key: \"setFromCoplanarPoints\",\n value: function setFromCoplanarPoints(a, b, c) {\n var normal = _vector1.subVectors(c, b).cross(_vector2.subVectors(a, b)).normalize(); // Q: should an error be thrown if normal is zero (e.g. degenerate plane)?\n\n\n this.setFromNormalAndCoplanarPoint(normal, a);\n return this;\n }\n }, {\n key: \"copy\",\n value: function copy(plane) {\n this.normal.copy(plane.normal);\n this.constant = plane.constant;\n return this;\n }\n }, {\n key: \"normalize\",\n value: function normalize() {\n // Note: will lead to a divide by zero if the plane is invalid.\n var inverseNormalLength = 1.0 / this.normal.length();\n this.normal.multiplyScalar(inverseNormalLength);\n this.constant *= inverseNormalLength;\n return this;\n }\n }, {\n key: \"negate\",\n value: function negate() {\n this.constant *= -1;\n this.normal.negate();\n return this;\n }\n }, {\n key: \"distanceToPoint\",\n value: function distanceToPoint(point) {\n return this.normal.dot(point) + this.constant;\n }\n }, {\n key: \"distanceToSphere\",\n value: function distanceToSphere(sphere) {\n return this.distanceToPoint(sphere.center) - sphere.radius;\n }\n }, {\n key: \"projectPoint\",\n value: function projectPoint(point, target) {\n return target.copy(point).addScaledVector(this.normal, -this.distanceToPoint(point));\n }\n }, {\n key: \"intersectLine\",\n value: function intersectLine(line, target) {\n var direction = line.delta(_vector1);\n var denominator = this.normal.dot(direction);\n\n if (denominator === 0) {\n // line is coplanar, return origin\n if (this.distanceToPoint(line.start) === 0) {\n return target.copy(line.start);\n } // Unsure if this is the correct method to handle this case.\n\n\n return null;\n }\n\n var t = -(line.start.dot(this.normal) + this.constant) / denominator;\n\n if (t < 0 || t > 1) {\n return null;\n }\n\n return target.copy(line.start).addScaledVector(direction, t);\n }\n }, {\n key: \"intersectsLine\",\n value: function intersectsLine(line) {\n // Note: this tests if a line intersects the plane, not whether it (or its end-points) are coplanar with it.\n var startSign = this.distanceToPoint(line.start);\n var endSign = this.distanceToPoint(line.end);\n return startSign < 0 && endSign > 0 || endSign < 0 && startSign > 0;\n }\n }, {\n key: \"intersectsBox\",\n value: function intersectsBox(box) {\n return box.intersectsPlane(this);\n }\n }, {\n key: \"intersectsSphere\",\n value: function intersectsSphere(sphere) {\n return sphere.intersectsPlane(this);\n }\n }, {\n key: \"coplanarPoint\",\n value: function coplanarPoint(target) {\n return target.copy(this.normal).multiplyScalar(-this.constant);\n }\n }, {\n key: \"applyMatrix4\",\n value: function applyMatrix4(matrix, optionalNormalMatrix) {\n var normalMatrix = optionalNormalMatrix || _normalMatrix.getNormalMatrix(matrix);\n\n var referencePoint = this.coplanarPoint(_vector1).applyMatrix4(matrix);\n var normal = this.normal.applyMatrix3(normalMatrix).normalize();\n this.constant = -referencePoint.dot(normal);\n return this;\n }\n }, {\n key: \"translate\",\n value: function translate(offset) {\n this.constant -= offset.dot(this.normal);\n return this;\n }\n }, {\n key: \"equals\",\n value: function equals(plane) {\n return plane.normal.equals(this.normal) && plane.constant === this.constant;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n }\n }]);\n\n return Plane;\n}();\n\nvar _sphere$3 = /*@__PURE__*/new Sphere();\n\nvar _vector$6 = /*@__PURE__*/new Vector3();\n\nvar Frustum = /*#__PURE__*/function () {\n function Frustum() {\n var p0 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Plane();\n var p1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Plane();\n var p2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Plane();\n var p3 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : new Plane();\n var p4 = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : new Plane();\n var p5 = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : new Plane();\n\n _classCallCheck(this, Frustum);\n\n this.planes = [p0, p1, p2, p3, p4, p5];\n }\n\n _createClass(Frustum, [{\n key: \"set\",\n value: function set(p0, p1, p2, p3, p4, p5) {\n var planes = this.planes;\n planes[0].copy(p0);\n planes[1].copy(p1);\n planes[2].copy(p2);\n planes[3].copy(p3);\n planes[4].copy(p4);\n planes[5].copy(p5);\n return this;\n }\n }, {\n key: \"copy\",\n value: function copy(frustum) {\n var planes = this.planes;\n\n for (var i = 0; i < 6; i++) {\n planes[i].copy(frustum.planes[i]);\n }\n\n return this;\n }\n }, {\n key: \"setFromProjectionMatrix\",\n value: function setFromProjectionMatrix(m) {\n var planes = this.planes;\n var me = m.elements;\n var me0 = me[0],\n me1 = me[1],\n me2 = me[2],\n me3 = me[3];\n var me4 = me[4],\n me5 = me[5],\n me6 = me[6],\n me7 = me[7];\n var me8 = me[8],\n me9 = me[9],\n me10 = me[10],\n me11 = me[11];\n var me12 = me[12],\n me13 = me[13],\n me14 = me[14],\n me15 = me[15];\n planes[0].setComponents(me3 - me0, me7 - me4, me11 - me8, me15 - me12).normalize();\n planes[1].setComponents(me3 + me0, me7 + me4, me11 + me8, me15 + me12).normalize();\n planes[2].setComponents(me3 + me1, me7 + me5, me11 + me9, me15 + me13).normalize();\n planes[3].setComponents(me3 - me1, me7 - me5, me11 - me9, me15 - me13).normalize();\n planes[4].setComponents(me3 - me2, me7 - me6, me11 - me10, me15 - me14).normalize();\n planes[5].setComponents(me3 + me2, me7 + me6, me11 + me10, me15 + me14).normalize();\n return this;\n }\n }, {\n key: \"intersectsObject\",\n value: function intersectsObject(object) {\n if (object.boundingSphere !== undefined) {\n if (object.boundingSphere === null) object.computeBoundingSphere();\n\n _sphere$3.copy(object.boundingSphere).applyMatrix4(object.matrixWorld);\n } else {\n var geometry = object.geometry;\n if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n\n _sphere$3.copy(geometry.boundingSphere).applyMatrix4(object.matrixWorld);\n }\n\n return this.intersectsSphere(_sphere$3);\n }\n }, {\n key: \"intersectsSprite\",\n value: function intersectsSprite(sprite) {\n _sphere$3.center.set(0, 0, 0);\n\n _sphere$3.radius = 0.7071067811865476;\n\n _sphere$3.applyMatrix4(sprite.matrixWorld);\n\n return this.intersectsSphere(_sphere$3);\n }\n }, {\n key: \"intersectsSphere\",\n value: function intersectsSphere(sphere) {\n var planes = this.planes;\n var center = sphere.center;\n var negRadius = -sphere.radius;\n\n for (var i = 0; i < 6; i++) {\n var distance = planes[i].distanceToPoint(center);\n\n if (distance < negRadius) {\n return false;\n }\n }\n\n return true;\n }\n }, {\n key: \"intersectsBox\",\n value: function intersectsBox(box) {\n var planes = this.planes;\n\n for (var i = 0; i < 6; i++) {\n var plane = planes[i]; // corner at max distance\n\n _vector$6.x = plane.normal.x > 0 ? box.max.x : box.min.x;\n _vector$6.y = plane.normal.y > 0 ? box.max.y : box.min.y;\n _vector$6.z = plane.normal.z > 0 ? box.max.z : box.min.z;\n\n if (plane.distanceToPoint(_vector$6) < 0) {\n return false;\n }\n }\n\n return true;\n }\n }, {\n key: \"containsPoint\",\n value: function containsPoint(point) {\n var planes = this.planes;\n\n for (var i = 0; i < 6; i++) {\n if (planes[i].distanceToPoint(point) < 0) {\n return false;\n }\n }\n\n return true;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n }\n }]);\n\n return Frustum;\n}();\n\nfunction WebGLAnimation() {\n var context = null;\n var isAnimating = false;\n var animationLoop = null;\n var requestId = null;\n\n function onAnimationFrame(time, frame) {\n animationLoop(time, frame);\n requestId = context.requestAnimationFrame(onAnimationFrame);\n }\n\n return {\n start: function start() {\n if (isAnimating === true) return;\n if (animationLoop === null) return;\n requestId = context.requestAnimationFrame(onAnimationFrame);\n isAnimating = true;\n },\n stop: function stop() {\n context.cancelAnimationFrame(requestId);\n isAnimating = false;\n },\n setAnimationLoop: function setAnimationLoop(callback) {\n animationLoop = callback;\n },\n setContext: function setContext(value) {\n context = value;\n }\n };\n}\n\nfunction WebGLAttributes(gl, capabilities) {\n var isWebGL2 = capabilities.isWebGL2;\n var buffers = new WeakMap();\n\n function createBuffer(attribute, bufferType) {\n var array = attribute.array;\n var usage = attribute.usage;\n var buffer = gl.createBuffer();\n gl.bindBuffer(bufferType, buffer);\n gl.bufferData(bufferType, array, usage);\n attribute.onUploadCallback();\n var type;\n\n if (array instanceof Float32Array) {\n type = gl.FLOAT;\n } else if (array instanceof Uint16Array) {\n if (attribute.isFloat16BufferAttribute) {\n if (isWebGL2) {\n type = gl.HALF_FLOAT;\n } else {\n throw new Error('THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.');\n }\n } else {\n type = gl.UNSIGNED_SHORT;\n }\n } else if (array instanceof Int16Array) {\n type = gl.SHORT;\n } else if (array instanceof Uint32Array) {\n type = gl.UNSIGNED_INT;\n } else if (array instanceof Int32Array) {\n type = gl.INT;\n } else if (array instanceof Int8Array) {\n type = gl.BYTE;\n } else if (array instanceof Uint8Array) {\n type = gl.UNSIGNED_BYTE;\n } else if (array instanceof Uint8ClampedArray) {\n type = gl.UNSIGNED_BYTE;\n } else {\n throw new Error('THREE.WebGLAttributes: Unsupported buffer data format: ' + array);\n }\n\n return {\n buffer: buffer,\n type: type,\n bytesPerElement: array.BYTES_PER_ELEMENT,\n version: attribute.version\n };\n }\n\n function updateBuffer(buffer, attribute, bufferType) {\n var array = attribute.array;\n var updateRange = attribute.updateRange;\n gl.bindBuffer(bufferType, buffer);\n\n if (updateRange.count === -1) {\n // Not using update ranges\n gl.bufferSubData(bufferType, 0, array);\n } else {\n if (isWebGL2) {\n gl.bufferSubData(bufferType, updateRange.offset * array.BYTES_PER_ELEMENT, array, updateRange.offset, updateRange.count);\n } else {\n gl.bufferSubData(bufferType, updateRange.offset * array.BYTES_PER_ELEMENT, array.subarray(updateRange.offset, updateRange.offset + updateRange.count));\n }\n\n updateRange.count = -1; // reset range\n }\n\n attribute.onUploadCallback();\n } //\n\n\n function get(attribute) {\n if (attribute.isInterleavedBufferAttribute) attribute = attribute.data;\n return buffers.get(attribute);\n }\n\n function remove(attribute) {\n if (attribute.isInterleavedBufferAttribute) attribute = attribute.data;\n var data = buffers.get(attribute);\n\n if (data) {\n gl.deleteBuffer(data.buffer);\n buffers.delete(attribute);\n }\n }\n\n function update(attribute, bufferType) {\n if (attribute.isGLBufferAttribute) {\n var cached = buffers.get(attribute);\n\n if (!cached || cached.version < attribute.version) {\n buffers.set(attribute, {\n buffer: attribute.buffer,\n type: attribute.type,\n bytesPerElement: attribute.elementSize,\n version: attribute.version\n });\n }\n\n return;\n }\n\n if (attribute.isInterleavedBufferAttribute) attribute = attribute.data;\n var data = buffers.get(attribute);\n\n if (data === undefined) {\n buffers.set(attribute, createBuffer(attribute, bufferType));\n } else if (data.version < attribute.version) {\n updateBuffer(data.buffer, attribute, bufferType);\n data.version = attribute.version;\n }\n }\n\n return {\n get: get,\n remove: remove,\n update: update\n };\n}\n\nvar PlaneGeometry = /*#__PURE__*/function (_BufferGeometry2) {\n _inherits(PlaneGeometry, _BufferGeometry2);\n\n var _super30 = _createSuper(PlaneGeometry);\n\n function PlaneGeometry() {\n var _this22;\n\n var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var widthSegments = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var heightSegments = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n\n _classCallCheck(this, PlaneGeometry);\n\n _this22 = _super30.call(this);\n _this22.type = 'PlaneGeometry';\n _this22.parameters = {\n width: width,\n height: height,\n widthSegments: widthSegments,\n heightSegments: heightSegments\n };\n var width_half = width / 2;\n var height_half = height / 2;\n var gridX = Math.floor(widthSegments);\n var gridY = Math.floor(heightSegments);\n var gridX1 = gridX + 1;\n var gridY1 = gridY + 1;\n var segment_width = width / gridX;\n var segment_height = height / gridY; //\n\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = [];\n\n for (var iy = 0; iy < gridY1; iy++) {\n var y = iy * segment_height - height_half;\n\n for (var ix = 0; ix < gridX1; ix++) {\n var x = ix * segment_width - width_half;\n vertices.push(x, -y, 0);\n normals.push(0, 0, 1);\n uvs.push(ix / gridX);\n uvs.push(1 - iy / gridY);\n }\n }\n\n for (var _iy2 = 0; _iy2 < gridY; _iy2++) {\n for (var _ix2 = 0; _ix2 < gridX; _ix2++) {\n var a = _ix2 + gridX1 * _iy2;\n var b = _ix2 + gridX1 * (_iy2 + 1);\n var c = _ix2 + 1 + gridX1 * (_iy2 + 1);\n var d = _ix2 + 1 + gridX1 * _iy2;\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n }\n\n _this22.setIndex(indices);\n\n _this22.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n\n _this22.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n\n _this22.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\n\n return _this22;\n }\n\n _createClass(PlaneGeometry, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(PlaneGeometry.prototype), \"copy\", this).call(this, source);\n\n this.parameters = Object.assign({}, source.parameters);\n return this;\n }\n }], [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new PlaneGeometry(data.width, data.height, data.widthSegments, data.heightSegments);\n }\n }]);\n\n return PlaneGeometry;\n}(BufferGeometry);\n\nvar alphamap_fragment = \"#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\\n#endif\";\nvar alphamap_pars_fragment = \"#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\nvar alphatest_fragment = \"#ifdef USE_ALPHATEST\\n\\tif ( diffuseColor.a < alphaTest ) discard;\\n#endif\";\nvar alphatest_pars_fragment = \"#ifdef USE_ALPHATEST\\n\\tuniform float alphaTest;\\n#endif\";\nvar aomap_fragment = \"#ifdef USE_AOMAP\\n\\tfloat ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\n\\t\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\t\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\\n\\t#endif\\n#endif\";\nvar aomap_pars_fragment = \"#ifdef USE_AOMAP\\n\\tuniform sampler2D aoMap;\\n\\tuniform float aoMapIntensity;\\n#endif\";\nvar begin_vertex = \"vec3 transformed = vec3( position );\";\nvar beginnormal_vertex = \"vec3 objectNormal = vec3( normal );\\n#ifdef USE_TANGENT\\n\\tvec3 objectTangent = vec3( tangent.xyz );\\n#endif\";\nvar bsdfs = \"float G_BlinnPhong_Implicit( ) {\\n\\treturn 0.25;\\n}\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n}\\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\treturn F * ( G * D );\\n} // validated\";\nvar iridescence_fragment = \"#ifdef USE_IRIDESCENCE\\n\\tconst mat3 XYZ_TO_REC709 = mat3(\\n\\t\\t 3.2404542, -0.9692660, 0.0556434,\\n\\t\\t-1.5371385, 1.8760108, -0.2040259,\\n\\t\\t-0.4985314, 0.0415560, 1.0572252\\n\\t);\\n\\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\\n\\t\\tvec3 sqrtF0 = sqrt( fresnel0 );\\n\\t\\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\\n\\t}\\n\\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\\n\\t\\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\\n\\t}\\n\\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\\n\\t\\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\\n\\t}\\n\\tvec3 evalSensitivity( float OPD, vec3 shift ) {\\n\\t\\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\\n\\t\\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\\n\\t\\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\\n\\t\\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\\n\\t\\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\\n\\t\\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\\n\\t\\txyz /= 1.0685e-7;\\n\\t\\tvec3 rgb = XYZ_TO_REC709 * xyz;\\n\\t\\treturn rgb;\\n\\t}\\n\\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\\n\\t\\tvec3 I;\\n\\t\\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\\n\\t\\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\\n\\t\\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\\n\\t\\tif ( cosTheta2Sq < 0.0 ) {\\n\\t\\t\\t return vec3( 1.0 );\\n\\t\\t}\\n\\t\\tfloat cosTheta2 = sqrt( cosTheta2Sq );\\n\\t\\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\\n\\t\\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\\n\\t\\tfloat R21 = R12;\\n\\t\\tfloat T121 = 1.0 - R12;\\n\\t\\tfloat phi12 = 0.0;\\n\\t\\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\\n\\t\\tfloat phi21 = PI - phi12;\\n\\t\\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\\t\\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\\n\\t\\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\\n\\t\\tvec3 phi23 = vec3( 0.0 );\\n\\t\\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\\n\\t\\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\\n\\t\\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\\n\\t\\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\\n\\t\\tvec3 phi = vec3( phi21 ) + phi23;\\n\\t\\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\\n\\t\\tvec3 r123 = sqrt( R123 );\\n\\t\\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\\n\\t\\tvec3 C0 = R12 + Rs;\\n\\t\\tI = C0;\\n\\t\\tvec3 Cm = Rs - T121;\\n\\t\\tfor ( int m = 1; m <= 2; ++ m ) {\\n\\t\\t\\tCm *= r123;\\n\\t\\t\\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\\n\\t\\t\\tI += Cm * Sm;\\n\\t\\t}\\n\\t\\treturn max( I, vec3( 0.0 ) );\\n\\t}\\n#endif\";\nvar bumpmap_pars_fragment = \"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vBumpMapUv );\\n\\t\\tvec2 dSTdy = dFdy( vBumpMapUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\\n\\t\\tvec3 vSigmaX = dFdx( surf_pos.xyz );\\n\\t\\tvec3 vSigmaY = dFdy( surf_pos.xyz );\\n\\t\\tvec3 vN = surf_norm;\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\t\\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\t}\\n#endif\";\nvar clipping_planes_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvec4 plane;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\tplane = clippingPlanes[ i ];\\n\\t\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\tbool clipped = true;\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\tif ( clipped ) discard;\\n\\t#endif\\n#endif\";\nvar clipping_planes_pars_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\";\nvar clipping_planes_pars_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n#endif\";\nvar clipping_planes_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvClipPosition = - mvPosition.xyz;\\n#endif\";\nvar color_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\\tdiffuseColor *= vColor;\\n#elif defined( USE_COLOR )\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\";\nvar color_pars_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";\nvar color_pars_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";\nvar color_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\\tvColor = vec4( 1.0 );\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvColor = vec3( 1.0 );\\n#endif\\n#ifdef USE_COLOR\\n\\tvColor *= color;\\n#endif\\n#ifdef USE_INSTANCING_COLOR\\n\\tvColor.xyz *= instanceColor.xyz;\\n#endif\";\nvar common = \"#define PI 3.141592653589793\\n#define PI2 6.283185307179586\\n#define PI_HALF 1.5707963267948966\\n#define RECIPROCAL_PI 0.3183098861837907\\n#define RECIPROCAL_PI2 0.15915494309189535\\n#define EPSILON 1e-6\\n#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float x ) { return x*x; }\\nvec3 pow2( const in vec3 x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\\nhighp float rand( const in vec2 uv ) {\\n\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\treturn fract( sin( sn ) * c );\\n}\\n#ifdef HIGH_PRECISION\\n\\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\n#else\\n\\tfloat precisionSafeLength( vec3 v ) {\\n\\t\\tfloat maxComponent = max3( abs( v ) );\\n\\t\\treturn length( v / maxComponent ) * maxComponent;\\n\\t}\\n#endif\\nstruct IncidentLight {\\n\\tvec3 color;\\n\\tvec3 direction;\\n\\tbool visible;\\n};\\nstruct ReflectedLight {\\n\\tvec3 directDiffuse;\\n\\tvec3 directSpecular;\\n\\tvec3 indirectDiffuse;\\n\\tvec3 indirectSpecular;\\n};\\nstruct GeometricContext {\\n\\tvec3 position;\\n\\tvec3 normal;\\n\\tvec3 viewDir;\\n#ifdef USE_CLEARCOAT\\n\\tvec3 clearcoatNormal;\\n#endif\\n};\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n}\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n}\\nmat3 transposeMat3( const in mat3 m ) {\\n\\tmat3 tmp;\\n\\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\n\\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\n\\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\n\\treturn tmp;\\n}\\nfloat luminance( const in vec3 rgb ) {\\n\\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\\n\\treturn dot( weights, rgb );\\n}\\nbool isPerspectiveMatrix( mat4 m ) {\\n\\treturn m[ 2 ][ 3 ] == - 1.0;\\n}\\nvec2 equirectUv( in vec3 dir ) {\\n\\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\treturn vec2( u, v );\\n}\\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n}\\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n} // validated\";\nvar cube_uv_reflection_fragment = \"#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t#define cubeUV_minMipLevel 4.0\\n\\t#define cubeUV_minTileSize 16.0\\n\\tfloat getFace( vec3 direction ) {\\n\\t\\tvec3 absDirection = abs( direction );\\n\\t\\tfloat face = - 1.0;\\n\\t\\tif ( absDirection.x > absDirection.z ) {\\n\\t\\t\\tif ( absDirection.x > absDirection.y )\\n\\t\\t\\t\\tface = direction.x > 0.0 ? 0.0 : 3.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t} else {\\n\\t\\t\\tif ( absDirection.z > absDirection.y )\\n\\t\\t\\t\\tface = direction.z > 0.0 ? 2.0 : 5.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t}\\n\\t\\treturn face;\\n\\t}\\n\\tvec2 getUV( vec3 direction, float face ) {\\n\\t\\tvec2 uv;\\n\\t\\tif ( face == 0.0 ) {\\n\\t\\t\\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 1.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\\n\\t\\t} else if ( face == 2.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\\n\\t\\t} else if ( face == 3.0 ) {\\n\\t\\t\\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 4.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\\n\\t\\t} else {\\n\\t\\t\\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\\n\\t\\t}\\n\\t\\treturn 0.5 * ( uv + 1.0 );\\n\\t}\\n\\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\n\\t\\tfloat face = getFace( direction );\\n\\t\\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\n\\t\\tmipInt = max( mipInt, cubeUV_minMipLevel );\\n\\t\\tfloat faceSize = exp2( mipInt );\\n\\t\\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\\n\\t\\tif ( face > 2.0 ) {\\n\\t\\t\\tuv.y += faceSize;\\n\\t\\t\\tface -= 3.0;\\n\\t\\t}\\n\\t\\tuv.x += face * faceSize;\\n\\t\\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\\n\\t\\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\\n\\t\\tuv.x *= CUBEUV_TEXEL_WIDTH;\\n\\t\\tuv.y *= CUBEUV_TEXEL_HEIGHT;\\n\\t\\t#ifdef texture2DGradEXT\\n\\t\\t\\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\\n\\t\\t#else\\n\\t\\t\\treturn texture2D( envMap, uv ).rgb;\\n\\t\\t#endif\\n\\t}\\n\\t#define cubeUV_r0 1.0\\n\\t#define cubeUV_v0 0.339\\n\\t#define cubeUV_m0 - 2.0\\n\\t#define cubeUV_r1 0.8\\n\\t#define cubeUV_v1 0.276\\n\\t#define cubeUV_m1 - 1.0\\n\\t#define cubeUV_r4 0.4\\n\\t#define cubeUV_v4 0.046\\n\\t#define cubeUV_m4 2.0\\n\\t#define cubeUV_r5 0.305\\n\\t#define cubeUV_v5 0.016\\n\\t#define cubeUV_m5 3.0\\n\\t#define cubeUV_r6 0.21\\n\\t#define cubeUV_v6 0.0038\\n\\t#define cubeUV_m6 4.0\\n\\tfloat roughnessToMip( float roughness ) {\\n\\t\\tfloat mip = 0.0;\\n\\t\\tif ( roughness >= cubeUV_r1 ) {\\n\\t\\t\\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\\n\\t\\t} else if ( roughness >= cubeUV_r4 ) {\\n\\t\\t\\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\\n\\t\\t} else if ( roughness >= cubeUV_r5 ) {\\n\\t\\t\\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\\n\\t\\t} else if ( roughness >= cubeUV_r6 ) {\\n\\t\\t\\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\\n\\t\\t} else {\\n\\t\\t\\tmip = - 2.0 * log2( 1.16 * roughness );\\t\\t}\\n\\t\\treturn mip;\\n\\t}\\n\\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\n\\t\\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\\n\\t\\tfloat mipF = fract( mip );\\n\\t\\tfloat mipInt = floor( mip );\\n\\t\\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\n\\t\\tif ( mipF == 0.0 ) {\\n\\t\\t\\treturn vec4( color0, 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\n\\t\\t\\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\n\\t\\t}\\n\\t}\\n#endif\";\nvar defaultnormal_vertex = \"vec3 transformedNormal = objectNormal;\\n#ifdef USE_INSTANCING\\n\\tmat3 m = mat3( instanceMatrix );\\n\\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\\n\\ttransformedNormal = m * transformedNormal;\\n#endif\\ntransformedNormal = normalMatrix * transformedNormal;\\n#ifdef FLIP_SIDED\\n\\ttransformedNormal = - transformedNormal;\\n#endif\\n#ifdef USE_TANGENT\\n\\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#ifdef FLIP_SIDED\\n\\t\\ttransformedTangent = - transformedTangent;\\n\\t#endif\\n#endif\";\nvar displacementmap_pars_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\";\nvar displacementmap_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\\n#endif\";\nvar emissivemap_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\";\nvar emissivemap_pars_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\";\nvar encodings_fragment = \"gl_FragColor = linearToOutputTexel( gl_FragColor );\";\nvar encodings_pars_fragment = \"vec4 LinearToLinear( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 LinearTosRGB( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\\n}\";\nvar envmap_fragment = \"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvec3 cameraToFrag;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#else\\n\\t\\tvec3 reflectVec = vReflect;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\t#endif\\n#endif\";\nvar envmap_common_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float envMapIntensity;\\n\\tuniform float flipEnvMap;\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\t\\n#endif\";\nvar envmap_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float reflectivity;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n#endif\";\nvar envmap_pars_vertex = \"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\t\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n#endif\";\nvar envmap_vertex = \"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\nvar fog_vertex = \"#ifdef USE_FOG\\n\\tvFogDepth = - mvPosition.z;\\n#endif\";\nvar fog_pars_vertex = \"#ifdef USE_FOG\\n\\tvarying float vFogDepth;\\n#endif\";\nvar fog_fragment = \"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\\n\\t#endif\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\";\nvar fog_pars_fragment = \"#ifdef USE_FOG\\n\\tuniform vec3 fogColor;\\n\\tvarying float vFogDepth;\\n\\t#ifdef FOG_EXP2\\n\\t\\tuniform float fogDensity;\\n\\t#else\\n\\t\\tuniform float fogNear;\\n\\t\\tuniform float fogFar;\\n\\t#endif\\n#endif\";\nvar gradientmap_pars_fragment = \"#ifdef USE_GRADIENTMAP\\n\\tuniform sampler2D gradientMap;\\n#endif\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\\tfloat dotNL = dot( normal, lightDirection );\\n\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\\t#ifdef USE_GRADIENTMAP\\n\\t\\treturn vec3( texture2D( gradientMap, coord ).r );\\n\\t#else\\n\\t\\tvec2 fw = fwidth( coord ) * 0.5;\\n\\t\\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\\n\\t#endif\\n}\";\nvar lightmap_fragment = \"#ifdef USE_LIGHTMAP\\n\\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\\n\\treflectedLight.indirectDiffuse += lightMapIrradiance;\\n#endif\";\nvar lightmap_pars_fragment = \"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\";\nvar lights_lambert_fragment = \"LambertMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularStrength = specularStrength;\";\nvar lights_lambert_pars_fragment = \"varying vec3 vViewPosition;\\nstruct LambertMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Lambert\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Lambert\";\nvar lights_pars_begin = \"uniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\nuniform vec3 lightProbe[ 9 ];\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\n\\tfloat x = normal.x, y = normal.y, z = normal.z;\\n\\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\n\\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\n\\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\n\\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\n\\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\n\\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\n\\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\n\\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\n\\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\n\\treturn result;\\n}\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\\n\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\\treturn irradiance;\\n}\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\treturn irradiance;\\n}\\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\n\\t#if defined ( LEGACY_LIGHTS )\\n\\t\\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\\n\\t\\t\\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\\n\\t\\t}\\n\\t\\treturn 1.0;\\n\\t#else\\n\\t\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\t\\tif ( cutoffDistance > 0.0 ) {\\n\\t\\t\\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\t\\t}\\n\\t\\treturn distanceFalloff;\\n\\t#endif\\n}\\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\\n\\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t};\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\\n\\t\\tlight.color = directionalLight.color;\\n\\t\\tlight.direction = directionalLight.direction;\\n\\t\\tlight.visible = true;\\n\\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t};\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\\n\\t\\tvec3 lVector = pointLight.position - geometry.position;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tlight.color = pointLight.color;\\n\\t\\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t};\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\\n\\t\\tvec3 lVector = spotLight.position - geometry.position;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat angleCos = dot( light.direction, spotLight.direction );\\n\\t\\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\tif ( spotAttenuation > 0.0 ) {\\n\\t\\t\\tfloat lightDistance = length( lVector );\\n\\t\\t\\tlight.color = spotLight.color * spotAttenuation;\\n\\t\\t\\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\t\\t} else {\\n\\t\\t\\tlight.color = vec3( 0.0 );\\n\\t\\t\\tlight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tstruct RectAreaLight {\\n\\t\\tvec3 color;\\n\\t\\tvec3 position;\\n\\t\\tvec3 halfWidth;\\n\\t\\tvec3 halfHeight;\\n\\t};\\n\\tuniform sampler2D ltc_1;\\tuniform sampler2D ltc_2;\\n\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\\n\\t\\tfloat dotNL = dot( normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\";\nvar envmap_physical_pars_fragment = \"#if defined( USE_ENVMAP )\\n\\tvec3 getIBLIrradiance( const in vec3 normal ) {\\n\\t\\t#if defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\\n\\t\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n\\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\\n\\t\\t#if defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 reflectVec = reflect( - viewDir, normal );\\n\\t\\t\\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\\t\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\\n\\t\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n#endif\";\nvar lights_toon_fragment = \"ToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\";\nvar lights_toon_pars_fragment = \"varying vec3 vViewPosition;\\nstruct ToonMaterial {\\n\\tvec3 diffuseColor;\\n};\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Toon\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Toon\";\nvar lights_phong_fragment = \"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\";\nvar lights_phong_pars_fragment = \"varying vec3 vViewPosition;\\nstruct BlinnPhongMaterial {\\n\\tvec3 diffuseColor;\\n\\tvec3 specularColor;\\n\\tfloat specularShininess;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\";\nvar lights_physical_fragment = \"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\\nmaterial.roughness = min( material.roughness, 1.0 );\\n#ifdef IOR\\n\\tmaterial.ior = ior;\\n\\t#ifdef USE_SPECULAR\\n\\t\\tfloat specularIntensityFactor = specularIntensity;\\n\\t\\tvec3 specularColorFactor = specularColor;\\n\\t\\t#ifdef USE_SPECULAR_COLORMAP\\n\\t\\t\\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\\n\\t\\t#endif\\n\\t\\t#ifdef USE_SPECULAR_INTENSITYMAP\\n\\t\\t\\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\\n\\t\\t#endif\\n\\t\\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\\n\\t#else\\n\\t\\tfloat specularIntensityFactor = 1.0;\\n\\t\\tvec3 specularColorFactor = vec3( 1.0 );\\n\\t\\tmaterial.specularF90 = 1.0;\\n\\t#endif\\n\\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\\n\\tmaterial.specularF90 = 1.0;\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tmaterial.clearcoat = clearcoat;\\n\\tmaterial.clearcoatRoughness = clearcoatRoughness;\\n\\tmaterial.clearcoatF0 = vec3( 0.04 );\\n\\tmaterial.clearcoatF90 = 1.0;\\n\\t#ifdef USE_CLEARCOATMAP\\n\\t\\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\t\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\\n\\t#endif\\n\\tmaterial.clearcoat = saturate( material.clearcoat );\\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\n\\tmaterial.clearcoatRoughness += geometryRoughness;\\n\\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tmaterial.iridescence = iridescence;\\n\\tmaterial.iridescenceIOR = iridescenceIOR;\\n\\t#ifdef USE_IRIDESCENCEMAP\\n\\t\\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\\n\\t#endif\\n\\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\t\\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\\n\\t#else\\n\\t\\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\\n\\t#endif\\n#endif\\n#ifdef USE_SHEEN\\n\\tmaterial.sheenColor = sheenColor;\\n\\t#ifdef USE_SHEEN_COLORMAP\\n\\t\\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\\n\\t#endif\\n\\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\\n\\t#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\t\\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\\n\\t#endif\\n#endif\";\nvar lights_physical_pars_fragment = \"struct PhysicalMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat roughness;\\n\\tvec3 specularColor;\\n\\tfloat specularF90;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat clearcoat;\\n\\t\\tfloat clearcoatRoughness;\\n\\t\\tvec3 clearcoatF0;\\n\\t\\tfloat clearcoatF90;\\n\\t#endif\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tfloat iridescence;\\n\\t\\tfloat iridescenceIOR;\\n\\t\\tfloat iridescenceThickness;\\n\\t\\tvec3 iridescenceFresnel;\\n\\t\\tvec3 iridescenceF0;\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tvec3 sheenColor;\\n\\t\\tfloat sheenRoughness;\\n\\t#endif\\n\\t#ifdef IOR\\n\\t\\tfloat ior;\\n\\t#endif\\n\\t#ifdef USE_TRANSMISSION\\n\\t\\tfloat transmission;\\n\\t\\tfloat transmissionAlpha;\\n\\t\\tfloat thickness;\\n\\t\\tfloat attenuationDistance;\\n\\t\\tvec3 attenuationColor;\\n\\t#endif\\n};\\nvec3 clearcoatSpecular = vec3( 0.0 );\\nvec3 sheenSpecular = vec3( 0.0 );\\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\\n float x2 = x * x;\\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\\n}\\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\n#ifdef USE_CLEARCOAT\\n\\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\\n\\t\\tvec3 f0 = material.clearcoatF0;\\n\\t\\tfloat f90 = material.clearcoatF90;\\n\\t\\tfloat roughness = material.clearcoatRoughness;\\n\\t\\tfloat alpha = pow2( roughness );\\n\\t\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\t\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\t\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\t\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\t\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\t\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\t\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\t\\tfloat D = D_GGX( alpha, dotNH );\\n\\t\\treturn F * ( V * D );\\n\\t}\\n#endif\\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\\n\\tvec3 f0 = material.specularColor;\\n\\tfloat f90 = material.specularF90;\\n\\tfloat roughness = material.roughness;\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tF = mix( F, material.iridescenceFresnel, material.iridescence );\\n\\t#endif\\n\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\tfloat D = D_GGX( alpha, dotNH );\\n\\treturn F * ( V * D );\\n}\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\n\\tconst float LUT_SIZE = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\tfloat dotNV = saturate( dot( N, V ) );\\n\\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\treturn uv;\\n}\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\\tfloat l = length( f );\\n\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n}\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\\tfloat x = dot( v1, v2 );\\n\\tfloat y = abs( x );\\n\\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\n\\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\n\\tfloat v = a / b;\\n\\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\n\\treturn cross( v1, v2 ) * theta_sintheta;\\n}\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\\tvec3 lightNormal = cross( v1, v2 );\\n\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\\tvec3 T1, T2;\\n\\tT1 = normalize( V - N * dot( V, N ) );\\n\\tT2 = - cross( N, T1 );\\n\\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\n\\tvec3 coords[ 4 ];\\n\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\\tvec3 vectorFormFactor = vec3( 0.0 );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\n\\treturn vec3( result );\\n}\\n#if defined( USE_SHEEN )\\nfloat D_Charlie( float roughness, float dotNH ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tfloat invAlpha = 1.0 / alpha;\\n\\tfloat cos2h = dotNH * dotNH;\\n\\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\\n\\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\\n}\\nfloat V_Neubelt( float dotNV, float dotNL ) {\\n\\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\\n}\\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat D = D_Charlie( sheenRoughness, dotNH );\\n\\tfloat V = V_Neubelt( dotNV, dotNL );\\n\\treturn sheenColor * ( D * V );\\n}\\n#endif\\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat r2 = roughness * roughness;\\n\\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\\n\\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\\n\\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\\n\\treturn saturate( DG * RECIPROCAL_PI );\\n}\\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\tvec4 r = roughness * c0 + c1;\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\\n\\treturn fab;\\n}\\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\treturn specularColor * fab.x + specularF90 * fab.y;\\n}\\n#ifdef USE_IRIDESCENCE\\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#else\\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#endif\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\\n\\t#else\\n\\t\\tvec3 Fr = specularColor;\\n\\t#endif\\n\\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\\n\\tfloat Ess = fab.x + fab.y;\\n\\tfloat Ems = 1.0 - Ess;\\n\\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\n\\tsingleScatter += FssEss;\\n\\tmultiScatter += Fms * Ems;\\n}\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 normal = geometry.normal;\\n\\t\\tvec3 viewDir = geometry.viewDir;\\n\\t\\tvec3 position = geometry.position;\\n\\t\\tvec3 lightPos = rectAreaLight.position;\\n\\t\\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\\t\\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = material.roughness;\\n\\t\\tvec3 rectCoords[ 4 ];\\n\\t\\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\\t\\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\n\\t\\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\n\\t\\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\n\\t\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\\t\\tvec4 t1 = texture2D( ltc_1, uv );\\n\\t\\tvec4 t2 = texture2D( ltc_2, uv );\\n\\t\\tmat3 mInv = mat3(\\n\\t\\t\\tvec3( t1.x, 0, t1.y ),\\n\\t\\t\\tvec3( 0, 1, 0 ),\\n\\t\\t\\tvec3( t1.z, 0, t1.w )\\n\\t\\t);\\n\\t\\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\n\\t\\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\\t\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\n\\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\\n\\t\\tvec3 ccIrradiance = dotNLcc * directLight.color;\\n\\t\\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\\n\\t#endif\\n\\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\\n\\t#endif\\n\\tvec3 singleScattering = vec3( 0.0 );\\n\\tvec3 multiScattering = vec3( 0.0 );\\n\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\\n\\t#else\\n\\t\\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\\n\\t#endif\\n\\tvec3 totalScattering = singleScattering + multiScattering;\\n\\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\\n\\treflectedLight.indirectSpecular += radiance * singleScattering;\\n\\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\n\\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Physical\\n#define RE_Direct_RectArea\\t\\tRE_Direct_RectArea_Physical\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\\t\\tRE_IndirectSpecular_Physical\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n}\";\nvar lights_fragment_begin = \"\\nGeometricContext geometry;\\ngeometry.position = - vViewPosition;\\ngeometry.normal = normal;\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\n#ifdef USE_CLEARCOAT\\n\\tgeometry.clearcoatNormal = clearcoatNormal;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\\n\\tif ( material.iridescenceThickness == 0.0 ) {\\n\\t\\tmaterial.iridescence = 0.0;\\n\\t} else {\\n\\t\\tmaterial.iridescence = saturate( material.iridescence );\\n\\t}\\n\\tif ( material.iridescence > 0.0 ) {\\n\\t\\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\\n\\t\\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\\n\\t}\\n#endif\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointLightInfo( pointLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\\t\\tpointLightShadow = pointLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\tvec4 spotColor;\\n\\tvec3 spotLightCoord;\\n\\tbool inSpotLightMap;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotLightInfo( spotLight, geometry, directLight );\\n\\t\\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\\n\\t\\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\\n\\t\\t#else\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\\t\\t#endif\\n\\t\\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\\n\\t\\t\\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\\n\\t\\t\\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\\n\\t\\t\\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\\n\\t\\t\\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\\n\\t\\t#endif\\n\\t\\t#undef SPOT_LIGHT_MAP_INDEX\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\tspotLightShadow = spotLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\\t\\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\tRectAreaLight rectAreaLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 iblIrradiance = vec3( 0.0 );\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tvec3 radiance = vec3( 0.0 );\\n\\tvec3 clearcoatRadiance = vec3( 0.0 );\\n#endif\";\nvar lights_fragment_maps = \"#if defined( RE_IndirectDiffuse )\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\\t\\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tiblIrradiance += getIBLIrradiance( geometry.normal );\\n\\t#endif\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\\n\\t#endif\\n#endif\";\nvar lights_fragment_end = \"#if defined( RE_IndirectDiffuse )\\n\\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\\n#endif\";\nvar logdepthbuf_fragment = \"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\";\nvar logdepthbuf_pars_fragment = \"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tuniform float logDepthBufFC;\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\";\nvar logdepthbuf_pars_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t\\tvarying float vIsPerspective;\\n\\t#else\\n\\t\\tuniform float logDepthBufFC;\\n\\t#endif\\n#endif\";\nvar logdepthbuf_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvFragDepth = 1.0 + gl_Position.w;\\n\\t\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n\\t#else\\n\\t\\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\\n\\t\\t\\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\\n\\t\\t\\tgl_Position.z *= gl_Position.w;\\n\\t\\t}\\n\\t#endif\\n#endif\";\nvar map_fragment = \"#ifdef USE_MAP\\n\\tdiffuseColor *= texture2D( map, vMapUv );\\n#endif\";\nvar map_pars_fragment = \"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\";\nvar map_particle_fragment = \"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\t#if defined( USE_POINTS_UV )\\n\\t\\tvec2 uv = vUv;\\n\\t#else\\n\\t\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n\\t#endif\\n#endif\\n#ifdef USE_MAP\\n\\tdiffuseColor *= texture2D( map, uv );\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n#endif\";\nvar map_particle_pars_fragment = \"#if defined( USE_POINTS_UV )\\n\\tvarying vec2 vUv;\\n#else\\n\\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\t\\tuniform mat3 uvTransform;\\n\\t#endif\\n#endif\\n#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\nvar metalnessmap_fragment = \"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\";\nvar metalnessmap_pars_fragment = \"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\";\nvar morphcolor_vertex = \"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\\n\\tvColor *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t#if defined( USE_COLOR_ALPHA )\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\\n\\t\\t#elif defined( USE_COLOR )\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\\n\\t\\t#endif\\n\\t}\\n#endif\";\nvar morphnormal_vertex = \"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal *= morphTargetBaseInfluence;\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\t\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\\n\\t\\t}\\n\\t#else\\n\\t\\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\\n\\t\\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\\n\\t\\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\\n\\t\\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\\n\\t#endif\\n#endif\";\nvar morphtarget_pars_vertex = \"#ifdef USE_MORPHTARGETS\\n\\tuniform float morphTargetBaseInfluence;\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\t\\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\\t\\tuniform sampler2DArray morphTargetsTexture;\\n\\t\\tuniform ivec2 morphTargetsTextureSize;\\n\\t\\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\\n\\t\\t\\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\\n\\t\\t\\tint y = texelIndex / morphTargetsTextureSize.x;\\n\\t\\t\\tint x = texelIndex - y * morphTargetsTextureSize.x;\\n\\t\\t\\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\\n\\t\\t\\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\\n\\t\\t}\\n\\t#else\\n\\t\\t#ifndef USE_MORPHNORMALS\\n\\t\\t\\tuniform float morphTargetInfluences[ 8 ];\\n\\t\\t#else\\n\\t\\t\\tuniform float morphTargetInfluences[ 4 ];\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\nvar morphtarget_vertex = \"#ifdef USE_MORPHTARGETS\\n\\ttransformed *= morphTargetBaseInfluence;\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\t\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\\n\\t\\t}\\n\\t#else\\n\\t\\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\\n\\t\\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\\n\\t\\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\\n\\t\\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\\n\\t\\t#ifndef USE_MORPHNORMALS\\n\\t\\t\\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\\n\\t\\t\\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\\n\\t\\t\\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\\n\\t\\t\\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\nvar normal_fragment_begin = \"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\n#ifdef FLAT_SHADED\\n\\tvec3 fdx = dFdx( vViewPosition );\\n\\tvec3 fdy = dFdy( vViewPosition );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal *= faceDirection;\\n\\t#endif\\n#endif\\n#ifdef USE_NORMALMAP_TANGENTSPACE\\n\\t#ifdef USE_TANGENT\\n\\t\\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\\t#else\\n\\t\\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\\n\\t#endif\\n\\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\\t\\ttbn[0] *= faceDirection;\\n\\t\\ttbn[1] *= faceDirection;\\n\\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\t#ifdef USE_TANGENT\\n\\t\\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\\t#else\\n\\t\\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\\n\\t#endif\\n\\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\\t\\ttbn2[0] *= faceDirection;\\n\\t\\ttbn2[1] *= faceDirection;\\n\\t#endif\\n#endif\\nvec3 geometryNormal = normal;\";\nvar normal_fragment_maps = \"#ifdef USE_NORMALMAP_OBJECTSPACE\\n\\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\\n\\t#ifdef FLIP_SIDED\\n\\t\\tnormal = - normal;\\n\\t#endif\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * faceDirection;\\n\\t#endif\\n\\tnormal = normalize( normalMatrix * normal );\\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\\n\\tmapN.xy *= normalScale;\\n\\tnormal = normalize( tbn * mapN );\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\\n#endif\";\nvar normal_pars_fragment = \"#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\";\nvar normal_pars_vertex = \"#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\";\nvar normal_vertex = \"#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n\\t#ifdef USE_TANGENT\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\t#endif\\n#endif\";\nvar normalmap_pars_fragment = \"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n#endif\\n#ifdef USE_NORMALMAP_OBJECTSPACE\\n\\tuniform mat3 normalMatrix;\\n#endif\\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\\n\\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\\n\\t\\tvec3 q0 = dFdx( eye_pos.xyz );\\n\\t\\tvec3 q1 = dFdy( eye_pos.xyz );\\n\\t\\tvec2 st0 = dFdx( uv.st );\\n\\t\\tvec2 st1 = dFdy( uv.st );\\n\\t\\tvec3 N = surf_norm;\\n\\t\\tvec3 q1perp = cross( q1, N );\\n\\t\\tvec3 q0perp = cross( N, q0 );\\n\\t\\tvec3 T = q1perp * st0.x + q0perp * st1.x;\\n\\t\\tvec3 B = q1perp * st0.y + q0perp * st1.y;\\n\\t\\tfloat det = max( dot( T, T ), dot( B, B ) );\\n\\t\\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\\n\\t\\treturn mat3( T * scale, B * scale, N );\\n\\t}\\n#endif\";\nvar clearcoat_normal_fragment_begin = \"#ifdef USE_CLEARCOAT\\n\\tvec3 clearcoatNormal = geometryNormal;\\n#endif\";\nvar clearcoat_normal_fragment_maps = \"#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\\n\\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\\n#endif\";\nvar clearcoat_pars_fragment = \"#ifdef USE_CLEARCOATMAP\\n\\tuniform sampler2D clearcoatMap;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform sampler2D clearcoatNormalMap;\\n\\tuniform vec2 clearcoatNormalScale;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform sampler2D clearcoatRoughnessMap;\\n#endif\";\nvar iridescence_pars_fragment = \"#ifdef USE_IRIDESCENCEMAP\\n\\tuniform sampler2D iridescenceMap;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tuniform sampler2D iridescenceThicknessMap;\\n#endif\";\nvar output_fragment = \"#ifdef OPAQUE\\ndiffuseColor.a = 1.0;\\n#endif\\n#ifdef USE_TRANSMISSION\\ndiffuseColor.a *= material.transmissionAlpha + 0.1;\\n#endif\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\";\nvar packing = \"vec3 packNormalToRGB( const in vec3 normal ) {\\n\\treturn normalize( normal ) * 0.5 + 0.5;\\n}\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n\\treturn 2.0 * rgb.xyz - 1.0;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\nconst float ShiftRight8 = 1. / 256.;\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tvec4 r = vec4( fract( v * PackFactors ), v );\\n\\tr.yzw -= r.xyz * ShiftRight8;\\treturn r * PackUpscale;\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors );\\n}\\nvec2 packDepthToRG( in highp float v ) {\\n\\treturn packDepthToRGBA( v ).yx;\\n}\\nfloat unpackRGToDepth( const in highp vec2 v ) {\\n\\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\\n}\\nvec4 pack2HalfToRGBA( vec2 v ) {\\n\\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\\n\\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\\n}\\nvec2 unpackRGBATo2Half( vec4 v ) {\\n\\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\\n\\treturn depth * ( near - far ) - near;\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * depth - far );\\n}\";\nvar premultiplied_alpha_fragment = \"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\";\nvar project_vertex = \"vec4 mvPosition = vec4( transformed, 1.0 );\\n#ifdef USE_INSTANCING\\n\\tmvPosition = instanceMatrix * mvPosition;\\n#endif\\nmvPosition = modelViewMatrix * mvPosition;\\ngl_Position = projectionMatrix * mvPosition;\";\nvar dithering_fragment = \"#ifdef DITHERING\\n\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\";\nvar dithering_pars_fragment = \"#ifdef DITHERING\\n\\tvec3 dithering( vec3 color ) {\\n\\t\\tfloat grid_position = rand( gl_FragCoord.xy );\\n\\t\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\\t\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\\t\\treturn color + dither_shift_RGB;\\n\\t}\\n#endif\";\nvar roughnessmap_fragment = \"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\\n\\troughnessFactor *= texelRoughness.g;\\n#endif\";\nvar roughnessmap_pars_fragment = \"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\";\nvar shadowmap_pars_fragment = \"#if NUM_SPOT_LIGHT_COORDS > 0\\n\\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#if NUM_SPOT_LIGHT_MAPS > 0\\n\\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\\n#endif\\n#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\t}\\n\\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\n\\t\\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\n\\t}\\n\\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\n\\t\\tfloat occlusion = 1.0;\\n\\t\\tvec2 distribution = texture2DDistribution( shadow, uv );\\n\\t\\tfloat hard_shadow = step( compare , distribution.x );\\n\\t\\tif (hard_shadow != 1.0 ) {\\n\\t\\t\\tfloat distance = compare - distribution.x ;\\n\\t\\t\\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\n\\t\\t\\tfloat softness_probability = variance / (variance + distance * distance );\\t\\t\\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\\t\\t\\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\n\\t\\t}\\n\\t\\treturn occlusion;\\n\\t}\\n\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\\n\\t\\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\\n\\t\\tif ( frustumTest ) {\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx2 = dx0 / 2.0;\\n\\t\\t\\tfloat dy2 = dy0 / 2.0;\\n\\t\\t\\tfloat dx3 = dx1 / 2.0;\\n\\t\\t\\tfloat dy3 = dy1 / 2.0;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 17.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx = texelSize.x;\\n\\t\\t\\tfloat dy = texelSize.y;\\n\\t\\t\\tvec2 uv = shadowCoord.xy;\\n\\t\\t\\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\n\\t\\t\\tuv -= f * texelSize;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t f.x ),\\n\\t\\t\\t\\t\\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t f.x ),\\n\\t\\t\\t\\t\\t f.y )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#else\\n\\t\\t\\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn shadow;\\n\\t}\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\t\\tvec3 absV = abs( v );\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\t\\tvec2 planar = v.xy;\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\t\\t}\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\t}\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\\t\\tdp += shadowBias;\\n\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#else\\n\\t\\t\\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t#endif\\n\\t}\\n#endif\";\nvar shadowmap_pars_vertex = \"#if NUM_SPOT_LIGHT_COORDS > 0\\n\\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\\n\\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n#endif\";\nvar shadowmap_vertex = \"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\\n\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\tvec4 shadowWorldPosition;\\n#endif\\n#if defined( USE_SHADOWMAP )\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if NUM_SPOT_LIGHT_COORDS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition;\\n\\t\\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\t\\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\\n\\t\\t#endif\\n\\t\\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\";\nvar shadowmask_pars_fragment = \"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tspotLight = spotLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tpointLight = pointLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\";\nvar skinbase_vertex = \"#ifdef USE_SKINNING\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\";\nvar skinning_pars_vertex = \"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\tuniform highp sampler2D boneTexture;\\n\\tuniform int boneTextureSize;\\n\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\tfloat j = i * 4.0;\\n\\t\\tfloat x = mod( j, float( boneTextureSize ) );\\n\\t\\tfloat y = floor( j / float( boneTextureSize ) );\\n\\t\\tfloat dx = 1.0 / float( boneTextureSize );\\n\\t\\tfloat dy = 1.0 / float( boneTextureSize );\\n\\t\\ty = dy * ( y + 0.5 );\\n\\t\\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\\n\\t\\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\\n\\t\\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\\n\\t\\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\\n\\t\\tmat4 bone = mat4( v1, v2, v3, v4 );\\n\\t\\treturn bone;\\n\\t}\\n#endif\";\nvar skinning_vertex = \"#ifdef USE_SKINNING\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\n#endif\";\nvar skinnormal_vertex = \"#ifdef USE_SKINNING\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n\\t#ifdef USE_TANGENT\\n\\t\\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#endif\\n#endif\";\nvar specularmap_fragment = \"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\";\nvar specularmap_pars_fragment = \"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\";\nvar tonemapping_fragment = \"#if defined( TONE_MAPPING )\\n\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\";\nvar tonemapping_pars_fragment = \"#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\nuniform float toneMappingExposure;\\nvec3 LinearToneMapping( vec3 color ) {\\n\\treturn toneMappingExposure * color;\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\nvec3 RRTAndODTFit( vec3 v ) {\\n\\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\n\\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\n\\treturn a / b;\\n}\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\n\\tconst mat3 ACESInputMat = mat3(\\n\\t\\tvec3( 0.59719, 0.07600, 0.02840 ),\\t\\tvec3( 0.35458, 0.90834, 0.13383 ),\\n\\t\\tvec3( 0.04823, 0.01566, 0.83777 )\\n\\t);\\n\\tconst mat3 ACESOutputMat = mat3(\\n\\t\\tvec3( 1.60475, -0.10208, -0.00327 ),\\t\\tvec3( -0.53108, 1.10813, -0.07276 ),\\n\\t\\tvec3( -0.07367, -0.00605, 1.07602 )\\n\\t);\\n\\tcolor *= toneMappingExposure / 0.6;\\n\\tcolor = ACESInputMat * color;\\n\\tcolor = RRTAndODTFit( color );\\n\\tcolor = ACESOutputMat * color;\\n\\treturn saturate( color );\\n}\\nvec3 CustomToneMapping( vec3 color ) { return color; }\";\nvar transmission_fragment = \"#ifdef USE_TRANSMISSION\\n\\tmaterial.transmission = transmission;\\n\\tmaterial.transmissionAlpha = 1.0;\\n\\tmaterial.thickness = thickness;\\n\\tmaterial.attenuationDistance = attenuationDistance;\\n\\tmaterial.attenuationColor = attenuationColor;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\\n\\t#endif\\n\\tvec3 pos = vWorldPosition;\\n\\tvec3 v = normalize( cameraPosition - pos );\\n\\tvec3 n = inverseTransformDirection( normal, viewMatrix );\\n\\tvec4 transmission = getIBLVolumeRefraction(\\n\\t\\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\\n\\t\\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\\n\\t\\tmaterial.attenuationColor, material.attenuationDistance );\\n\\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission );\\n\\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\\n#endif\";\nvar transmission_pars_fragment = \"#ifdef USE_TRANSMISSION\\n\\tuniform float transmission;\\n\\tuniform float thickness;\\n\\tuniform float attenuationDistance;\\n\\tuniform vec3 attenuationColor;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tuniform sampler2D transmissionMap;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tuniform sampler2D thicknessMap;\\n\\t#endif\\n\\tuniform vec2 transmissionSamplerSize;\\n\\tuniform sampler2D transmissionSamplerMap;\\n\\tuniform mat4 modelMatrix;\\n\\tuniform mat4 projectionMatrix;\\n\\tvarying vec3 vWorldPosition;\\n\\tfloat w0( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\\n\\t}\\n\\tfloat w1( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\\n\\t}\\n\\tfloat w2( float a ){\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\\n\\t}\\n\\tfloat w3( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * a * a );\\n\\t}\\n\\tfloat g0( float a ) {\\n\\t\\treturn w0( a ) + w1( a );\\n\\t}\\n\\tfloat g1( float a ) {\\n\\t\\treturn w2( a ) + w3( a );\\n\\t}\\n\\tfloat h0( float a ) {\\n\\t\\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\\n\\t}\\n\\tfloat h1( float a ) {\\n\\t\\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\\n\\t}\\n\\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\\n\\t\\tuv = uv * texelSize.zw + 0.5;\\n\\t\\tvec2 iuv = floor( uv );\\n\\t\\tvec2 fuv = fract( uv );\\n\\t\\tfloat g0x = g0( fuv.x );\\n\\t\\tfloat g1x = g1( fuv.x );\\n\\t\\tfloat h0x = h0( fuv.x );\\n\\t\\tfloat h1x = h1( fuv.x );\\n\\t\\tfloat h0y = h0( fuv.y );\\n\\t\\tfloat h1y = h1( fuv.y );\\n\\t\\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\\t\\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\\n\\t\\t\\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\\n\\t}\\n\\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\\n\\t\\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\\n\\t\\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\\n\\t\\tvec2 fLodSizeInv = 1.0 / fLodSize;\\n\\t\\tvec2 cLodSizeInv = 1.0 / cLodSize;\\n\\t\\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\\n\\t\\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\\n\\t\\treturn mix( fSample, cSample, fract( lod ) );\\n\\t}\\n\\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\\n\\t\\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\\n\\t\\tvec3 modelScale;\\n\\t\\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\\n\\t\\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\\n\\t\\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\\n\\t\\treturn normalize( refractionVector ) * thickness * modelScale;\\n\\t}\\n\\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\\n\\t\\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\\n\\t}\\n\\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\\n\\t\\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\\n\\t\\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\\n\\t}\\n\\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tif ( isinf( attenuationDistance ) ) {\\n\\t\\t\\treturn radiance;\\n\\t\\t} else {\\n\\t\\t\\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\\n\\t\\t\\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\\t\\t\\treturn transmittance * radiance;\\n\\t\\t}\\n\\t}\\n\\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\\n\\t\\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\\n\\t\\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\\n\\t\\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\\n\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\trefractionCoords += 1.0;\\n\\t\\trefractionCoords /= 2.0;\\n\\t\\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\\n\\t\\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\\n\\t\\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\\n\\t\\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\\n\\t}\\n#endif\";\nvar uv_pars_fragment = \"#ifdef USE_UV\\n\\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tuniform mat3 transmissionMapTransform;\\n\\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tuniform mat3 thicknessMapTransform;\\n\\tvarying vec2 vThicknessMapUv;\\n#endif\";\nvar uv_pars_vertex = \"#ifdef USE_UV\\n\\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\\tuniform mat3 mapTransform;\\n\\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform mat3 alphaMapTransform;\\n\\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tuniform mat3 lightMapTransform;\\n\\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\\tuniform mat3 aoMapTransform;\\n\\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tuniform mat3 bumpMapTransform;\\n\\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tuniform mat3 normalMapTransform;\\n\\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\\tuniform mat3 displacementMapTransform;\\n\\tvarying vec2 vDisplacementMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tuniform mat3 emissiveMapTransform;\\n\\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tuniform mat3 metalnessMapTransform;\\n\\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tuniform mat3 roughnessMapTransform;\\n\\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tuniform mat3 clearcoatMapTransform;\\n\\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform mat3 clearcoatNormalMapTransform;\\n\\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform mat3 clearcoatRoughnessMapTransform;\\n\\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tuniform mat3 sheenColorMapTransform;\\n\\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tuniform mat3 sheenRoughnessMapTransform;\\n\\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tuniform mat3 iridescenceMapTransform;\\n\\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tuniform mat3 iridescenceThicknessMapTransform;\\n\\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tuniform mat3 specularMapTransform;\\n\\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tuniform mat3 specularColorMapTransform;\\n\\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tuniform mat3 specularIntensityMapTransform;\\n\\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tuniform mat3 transmissionMapTransform;\\n\\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tuniform mat3 thicknessMapTransform;\\n\\tvarying vec2 vThicknessMapUv;\\n#endif\";\nvar uv_vertex = \"#ifdef USE_UV\\n\\tvUv = vec3( uv, 1 ).xy;\\n#endif\\n#ifdef USE_MAP\\n\\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_AOMAP\\n\\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\";\nvar worldpos_vertex = \"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\\n\\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\\t#ifdef USE_INSTANCING\\n\\t\\tworldPosition = instanceMatrix * worldPosition;\\n\\t#endif\\n\\tworldPosition = modelMatrix * worldPosition;\\n#endif\";\nvar vertex$h = \"varying vec2 vUv;\\nuniform mat3 uvTransform;\\nvoid main() {\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\n}\";\nvar fragment$h = \"uniform sampler2D t2D;\\nuniform float backgroundIntensity;\\nvarying vec2 vUv;\\nvoid main() {\\n\\tvec4 texColor = texture2D( t2D, vUv );\\n\\ttexColor.rgb *= backgroundIntensity;\\n\\tgl_FragColor = texColor;\\n\\t#include \\n\\t#include \\n}\";\nvar vertex$g = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n\\tgl_Position.z = gl_Position.w;\\n}\";\nvar fragment$g = \"#ifdef ENVMAP_TYPE_CUBE\\n\\tuniform samplerCube envMap;\\n#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\tuniform sampler2D envMap;\\n#endif\\nuniform float flipEnvMap;\\nuniform float backgroundBlurriness;\\nuniform float backgroundIntensity;\\nvarying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\\n\\t#else\\n\\t\\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\t#endif\\n\\ttexColor.rgb *= backgroundIntensity;\\n\\tgl_FragColor = texColor;\\n\\t#include \\n\\t#include \\n}\";\nvar vertex$f = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n\\tgl_Position.z = gl_Position.w;\\n}\";\nvar fragment$f = \"uniform samplerCube tCube;\\nuniform float tFlip;\\nuniform float opacity;\\nvarying vec3 vWorldDirection;\\nvoid main() {\\n\\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\\n\\tgl_FragColor = texColor;\\n\\tgl_FragColor.a *= opacity;\\n\\t#include \\n\\t#include \\n}\";\nvar vertex$e = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvHighPrecisionZW = gl_Position.zw;\\n}\";\nvar fragment$e = \"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\n\\t#endif\\n}\";\nvar vertex$d = \"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvWorldPosition = worldPosition.xyz;\\n}\";\nvar fragment$d = \"#define DISTANCE\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main () {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\tfloat dist = length( vWorldPosition - referencePosition );\\n\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\\tdist = saturate( dist );\\n\\tgl_FragColor = packDepthToRGBA( dist );\\n}\";\nvar vertex$c = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\";\nvar fragment$c = \"uniform sampler2D tEquirect;\\nvarying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvec3 direction = normalize( vWorldDirection );\\n\\tvec2 sampleUV = equirectUv( direction );\\n\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\t#include \\n\\t#include \\n}\";\nvar vertex$b = \"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvLineDistance = scale * lineDistance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar fragment$b = \"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar vertex$a = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar fragment$a = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\\t\\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\t#endif\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar vertex$9 = \"#define LAMBERT\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar fragment$9 = \"#define LAMBERT\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar vertex$8 = \"#define MATCAP\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n}\";\nvar fragment$8 = \"#define MATCAP\\nuniform vec3 diffuse;\\nuniform float opacity;\\nuniform sampler2D matcap;\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 viewDir = normalize( vViewPosition );\\n\\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\\n\\tvec3 y = cross( viewDir, x );\\n\\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\\n\\t#ifdef USE_MATCAP\\n\\t\\tvec4 matcapColor = texture2D( matcap, uv );\\n\\t#else\\n\\t\\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\\n\\t#endif\\n\\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar vertex$7 = \"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\";\nvar fragment$7 = \"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\\n\\t#ifdef OPAQUE\\n\\t\\tgl_FragColor.a = 1.0;\\n\\t#endif\\n}\";\nvar vertex$6 = \"#define PHONG\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar fragment$6 = \"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar vertex$5 = \"#define STANDARD\\nvarying vec3 vViewPosition;\\n#ifdef USE_TRANSMISSION\\n\\tvarying vec3 vWorldPosition;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n#ifdef USE_TRANSMISSION\\n\\tvWorldPosition = worldPosition.xyz;\\n#endif\\n}\";\nvar fragment$5 = \"#define STANDARD\\n#ifdef PHYSICAL\\n\\t#define IOR\\n\\t#define USE_SPECULAR\\n#endif\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifdef IOR\\n\\tuniform float ior;\\n#endif\\n#ifdef USE_SPECULAR\\n\\tuniform float specularIntensity;\\n\\tuniform vec3 specularColor;\\n\\t#ifdef USE_SPECULAR_COLORMAP\\n\\t\\tuniform sampler2D specularColorMap;\\n\\t#endif\\n\\t#ifdef USE_SPECULAR_INTENSITYMAP\\n\\t\\tuniform sampler2D specularIntensityMap;\\n\\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tuniform float clearcoat;\\n\\tuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tuniform float iridescence;\\n\\tuniform float iridescenceIOR;\\n\\tuniform float iridescenceThicknessMinimum;\\n\\tuniform float iridescenceThicknessMaximum;\\n#endif\\n#ifdef USE_SHEEN\\n\\tuniform vec3 sheenColor;\\n\\tuniform float sheenRoughness;\\n\\t#ifdef USE_SHEEN_COLORMAP\\n\\t\\tuniform sampler2D sheenColorMap;\\n\\t#endif\\n\\t#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\t\\tuniform sampler2D sheenRoughnessMap;\\n\\t#endif\\n#endif\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\\n\\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n\\t#include \\n\\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\\n\\t#ifdef USE_SHEEN\\n\\t\\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\\n\\t\\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\\n\\t\\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\\n\\t\\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar vertex$4 = \"#define TOON\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar fragment$4 = \"#define TOON\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar vertex$3 = \"uniform float size;\\nuniform float scale;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#ifdef USE_POINTS_UV\\n\\tvarying vec2 vUv;\\n\\tuniform mat3 uvTransform;\\n#endif\\nvoid main() {\\n\\t#ifdef USE_POINTS_UV\\n\\t\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tgl_PointSize = size;\\n\\t#ifdef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar fragment$3 = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar vertex$2 = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar fragment$2 = \"uniform vec3 color;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar vertex$1 = \"uniform float rotation;\\nuniform vec2 center;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\tvec2 scale;\\n\\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\\n\\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\\n\\t#ifndef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) scale *= - mvPosition.z;\\n\\t#endif\\n\\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\\n\\tvec2 rotatedPosition;\\n\\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\\n\\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\\n\\tmvPosition.xy += rotatedPosition;\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar fragment$1 = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar ShaderChunk = {\n alphamap_fragment: alphamap_fragment,\n alphamap_pars_fragment: alphamap_pars_fragment,\n alphatest_fragment: alphatest_fragment,\n alphatest_pars_fragment: alphatest_pars_fragment,\n aomap_fragment: aomap_fragment,\n aomap_pars_fragment: aomap_pars_fragment,\n begin_vertex: begin_vertex,\n beginnormal_vertex: beginnormal_vertex,\n bsdfs: bsdfs,\n iridescence_fragment: iridescence_fragment,\n bumpmap_pars_fragment: bumpmap_pars_fragment,\n clipping_planes_fragment: clipping_planes_fragment,\n clipping_planes_pars_fragment: clipping_planes_pars_fragment,\n clipping_planes_pars_vertex: clipping_planes_pars_vertex,\n clipping_planes_vertex: clipping_planes_vertex,\n color_fragment: color_fragment,\n color_pars_fragment: color_pars_fragment,\n color_pars_vertex: color_pars_vertex,\n color_vertex: color_vertex,\n common: common,\n cube_uv_reflection_fragment: cube_uv_reflection_fragment,\n defaultnormal_vertex: defaultnormal_vertex,\n displacementmap_pars_vertex: displacementmap_pars_vertex,\n displacementmap_vertex: displacementmap_vertex,\n emissivemap_fragment: emissivemap_fragment,\n emissivemap_pars_fragment: emissivemap_pars_fragment,\n encodings_fragment: encodings_fragment,\n encodings_pars_fragment: encodings_pars_fragment,\n envmap_fragment: envmap_fragment,\n envmap_common_pars_fragment: envmap_common_pars_fragment,\n envmap_pars_fragment: envmap_pars_fragment,\n envmap_pars_vertex: envmap_pars_vertex,\n envmap_physical_pars_fragment: envmap_physical_pars_fragment,\n envmap_vertex: envmap_vertex,\n fog_vertex: fog_vertex,\n fog_pars_vertex: fog_pars_vertex,\n fog_fragment: fog_fragment,\n fog_pars_fragment: fog_pars_fragment,\n gradientmap_pars_fragment: gradientmap_pars_fragment,\n lightmap_fragment: lightmap_fragment,\n lightmap_pars_fragment: lightmap_pars_fragment,\n lights_lambert_fragment: lights_lambert_fragment,\n lights_lambert_pars_fragment: lights_lambert_pars_fragment,\n lights_pars_begin: lights_pars_begin,\n lights_toon_fragment: lights_toon_fragment,\n lights_toon_pars_fragment: lights_toon_pars_fragment,\n lights_phong_fragment: lights_phong_fragment,\n lights_phong_pars_fragment: lights_phong_pars_fragment,\n lights_physical_fragment: lights_physical_fragment,\n lights_physical_pars_fragment: lights_physical_pars_fragment,\n lights_fragment_begin: lights_fragment_begin,\n lights_fragment_maps: lights_fragment_maps,\n lights_fragment_end: lights_fragment_end,\n logdepthbuf_fragment: logdepthbuf_fragment,\n logdepthbuf_pars_fragment: logdepthbuf_pars_fragment,\n logdepthbuf_pars_vertex: logdepthbuf_pars_vertex,\n logdepthbuf_vertex: logdepthbuf_vertex,\n map_fragment: map_fragment,\n map_pars_fragment: map_pars_fragment,\n map_particle_fragment: map_particle_fragment,\n map_particle_pars_fragment: map_particle_pars_fragment,\n metalnessmap_fragment: metalnessmap_fragment,\n metalnessmap_pars_fragment: metalnessmap_pars_fragment,\n morphcolor_vertex: morphcolor_vertex,\n morphnormal_vertex: morphnormal_vertex,\n morphtarget_pars_vertex: morphtarget_pars_vertex,\n morphtarget_vertex: morphtarget_vertex,\n normal_fragment_begin: normal_fragment_begin,\n normal_fragment_maps: normal_fragment_maps,\n normal_pars_fragment: normal_pars_fragment,\n normal_pars_vertex: normal_pars_vertex,\n normal_vertex: normal_vertex,\n normalmap_pars_fragment: normalmap_pars_fragment,\n clearcoat_normal_fragment_begin: clearcoat_normal_fragment_begin,\n clearcoat_normal_fragment_maps: clearcoat_normal_fragment_maps,\n clearcoat_pars_fragment: clearcoat_pars_fragment,\n iridescence_pars_fragment: iridescence_pars_fragment,\n output_fragment: output_fragment,\n packing: packing,\n premultiplied_alpha_fragment: premultiplied_alpha_fragment,\n project_vertex: project_vertex,\n dithering_fragment: dithering_fragment,\n dithering_pars_fragment: dithering_pars_fragment,\n roughnessmap_fragment: roughnessmap_fragment,\n roughnessmap_pars_fragment: roughnessmap_pars_fragment,\n shadowmap_pars_fragment: shadowmap_pars_fragment,\n shadowmap_pars_vertex: shadowmap_pars_vertex,\n shadowmap_vertex: shadowmap_vertex,\n shadowmask_pars_fragment: shadowmask_pars_fragment,\n skinbase_vertex: skinbase_vertex,\n skinning_pars_vertex: skinning_pars_vertex,\n skinning_vertex: skinning_vertex,\n skinnormal_vertex: skinnormal_vertex,\n specularmap_fragment: specularmap_fragment,\n specularmap_pars_fragment: specularmap_pars_fragment,\n tonemapping_fragment: tonemapping_fragment,\n tonemapping_pars_fragment: tonemapping_pars_fragment,\n transmission_fragment: transmission_fragment,\n transmission_pars_fragment: transmission_pars_fragment,\n uv_pars_fragment: uv_pars_fragment,\n uv_pars_vertex: uv_pars_vertex,\n uv_vertex: uv_vertex,\n worldpos_vertex: worldpos_vertex,\n background_vert: vertex$h,\n background_frag: fragment$h,\n backgroundCube_vert: vertex$g,\n backgroundCube_frag: fragment$g,\n cube_vert: vertex$f,\n cube_frag: fragment$f,\n depth_vert: vertex$e,\n depth_frag: fragment$e,\n distanceRGBA_vert: vertex$d,\n distanceRGBA_frag: fragment$d,\n equirect_vert: vertex$c,\n equirect_frag: fragment$c,\n linedashed_vert: vertex$b,\n linedashed_frag: fragment$b,\n meshbasic_vert: vertex$a,\n meshbasic_frag: fragment$a,\n meshlambert_vert: vertex$9,\n meshlambert_frag: fragment$9,\n meshmatcap_vert: vertex$8,\n meshmatcap_frag: fragment$8,\n meshnormal_vert: vertex$7,\n meshnormal_frag: fragment$7,\n meshphong_vert: vertex$6,\n meshphong_frag: fragment$6,\n meshphysical_vert: vertex$5,\n meshphysical_frag: fragment$5,\n meshtoon_vert: vertex$4,\n meshtoon_frag: fragment$4,\n points_vert: vertex$3,\n points_frag: fragment$3,\n shadow_vert: vertex$2,\n shadow_frag: fragment$2,\n sprite_vert: vertex$1,\n sprite_frag: fragment$1\n};\n/**\n * Uniforms library for shared webgl shaders\n */\n\nvar UniformsLib = {\n common: {\n diffuse: {\n value: /*@__PURE__*/new Color(0xffffff)\n },\n opacity: {\n value: 1.0\n },\n map: {\n value: null\n },\n mapTransform: {\n value: /*@__PURE__*/new Matrix3()\n },\n alphaMap: {\n value: null\n },\n alphaMapTransform: {\n value: /*@__PURE__*/new Matrix3()\n },\n alphaTest: {\n value: 0\n }\n },\n specularmap: {\n specularMap: {\n value: null\n },\n specularMapTransform: {\n value: /*@__PURE__*/new Matrix3()\n }\n },\n envmap: {\n envMap: {\n value: null\n },\n flipEnvMap: {\n value: -1\n },\n reflectivity: {\n value: 1.0\n },\n // basic, lambert, phong\n ior: {\n value: 1.5\n },\n // physical\n refractionRatio: {\n value: 0.98\n } // basic, lambert, phong\n\n },\n aomap: {\n aoMap: {\n value: null\n },\n aoMapIntensity: {\n value: 1\n },\n aoMapTransform: {\n value: /*@__PURE__*/new Matrix3()\n }\n },\n lightmap: {\n lightMap: {\n value: null\n },\n lightMapIntensity: {\n value: 1\n },\n lightMapTransform: {\n value: /*@__PURE__*/new Matrix3()\n }\n },\n bumpmap: {\n bumpMap: {\n value: null\n },\n bumpMapTransform: {\n value: /*@__PURE__*/new Matrix3()\n },\n bumpScale: {\n value: 1\n }\n },\n normalmap: {\n normalMap: {\n value: null\n },\n normalMapTransform: {\n value: /*@__PURE__*/new Matrix3()\n },\n normalScale: {\n value: /*@__PURE__*/new Vector2(1, 1)\n }\n },\n displacementmap: {\n displacementMap: {\n value: null\n },\n displacementMapTransform: {\n value: /*@__PURE__*/new Matrix3()\n },\n displacementScale: {\n value: 1\n },\n displacementBias: {\n value: 0\n }\n },\n emissivemap: {\n emissiveMap: {\n value: null\n },\n emissiveMapTransform: {\n value: /*@__PURE__*/new Matrix3()\n }\n },\n metalnessmap: {\n metalnessMap: {\n value: null\n },\n metalnessMapTransform: {\n value: /*@__PURE__*/new Matrix3()\n }\n },\n roughnessmap: {\n roughnessMap: {\n value: null\n },\n roughnessMapTransform: {\n value: /*@__PURE__*/new Matrix3()\n }\n },\n gradientmap: {\n gradientMap: {\n value: null\n }\n },\n fog: {\n fogDensity: {\n value: 0.00025\n },\n fogNear: {\n value: 1\n },\n fogFar: {\n value: 2000\n },\n fogColor: {\n value: /*@__PURE__*/new Color(0xffffff)\n }\n },\n lights: {\n ambientLightColor: {\n value: []\n },\n lightProbe: {\n value: []\n },\n directionalLights: {\n value: [],\n properties: {\n direction: {},\n color: {}\n }\n },\n directionalLightShadows: {\n value: [],\n properties: {\n shadowBias: {},\n shadowNormalBias: {},\n shadowRadius: {},\n shadowMapSize: {}\n }\n },\n directionalShadowMap: {\n value: []\n },\n directionalShadowMatrix: {\n value: []\n },\n spotLights: {\n value: [],\n properties: {\n color: {},\n position: {},\n direction: {},\n distance: {},\n coneCos: {},\n penumbraCos: {},\n decay: {}\n }\n },\n spotLightShadows: {\n value: [],\n properties: {\n shadowBias: {},\n shadowNormalBias: {},\n shadowRadius: {},\n shadowMapSize: {}\n }\n },\n spotLightMap: {\n value: []\n },\n spotShadowMap: {\n value: []\n },\n spotLightMatrix: {\n value: []\n },\n pointLights: {\n value: [],\n properties: {\n color: {},\n position: {},\n decay: {},\n distance: {}\n }\n },\n pointLightShadows: {\n value: [],\n properties: {\n shadowBias: {},\n shadowNormalBias: {},\n shadowRadius: {},\n shadowMapSize: {},\n shadowCameraNear: {},\n shadowCameraFar: {}\n }\n },\n pointShadowMap: {\n value: []\n },\n pointShadowMatrix: {\n value: []\n },\n hemisphereLights: {\n value: [],\n properties: {\n direction: {},\n skyColor: {},\n groundColor: {}\n }\n },\n // TODO (abelnation): RectAreaLight BRDF data needs to be moved from example to main src\n rectAreaLights: {\n value: [],\n properties: {\n color: {},\n position: {},\n width: {},\n height: {}\n }\n },\n ltc_1: {\n value: null\n },\n ltc_2: {\n value: null\n }\n },\n points: {\n diffuse: {\n value: /*@__PURE__*/new Color(0xffffff)\n },\n opacity: {\n value: 1.0\n },\n size: {\n value: 1.0\n },\n scale: {\n value: 1.0\n },\n map: {\n value: null\n },\n alphaMap: {\n value: null\n },\n alphaTest: {\n value: 0\n },\n uvTransform: {\n value: /*@__PURE__*/new Matrix3()\n }\n },\n sprite: {\n diffuse: {\n value: /*@__PURE__*/new Color(0xffffff)\n },\n opacity: {\n value: 1.0\n },\n center: {\n value: /*@__PURE__*/new Vector2(0.5, 0.5)\n },\n rotation: {\n value: 0.0\n },\n map: {\n value: null\n },\n mapTransform: {\n value: /*@__PURE__*/new Matrix3()\n },\n alphaMap: {\n value: null\n },\n alphaTest: {\n value: 0\n }\n }\n};\nvar ShaderLib = {\n basic: {\n uniforms: /*@__PURE__*/mergeUniforms([UniformsLib.common, UniformsLib.specularmap, UniformsLib.envmap, UniformsLib.aomap, UniformsLib.lightmap, UniformsLib.fog]),\n vertexShader: ShaderChunk.meshbasic_vert,\n fragmentShader: ShaderChunk.meshbasic_frag\n },\n lambert: {\n uniforms: /*@__PURE__*/mergeUniforms([UniformsLib.common, UniformsLib.specularmap, UniformsLib.envmap, UniformsLib.aomap, UniformsLib.lightmap, UniformsLib.emissivemap, UniformsLib.bumpmap, UniformsLib.normalmap, UniformsLib.displacementmap, UniformsLib.fog, UniformsLib.lights, {\n emissive: {\n value: /*@__PURE__*/new Color(0x000000)\n }\n }]),\n vertexShader: ShaderChunk.meshlambert_vert,\n fragmentShader: ShaderChunk.meshlambert_frag\n },\n phong: {\n uniforms: /*@__PURE__*/mergeUniforms([UniformsLib.common, UniformsLib.specularmap, UniformsLib.envmap, UniformsLib.aomap, UniformsLib.lightmap, UniformsLib.emissivemap, UniformsLib.bumpmap, UniformsLib.normalmap, UniformsLib.displacementmap, UniformsLib.fog, UniformsLib.lights, {\n emissive: {\n value: /*@__PURE__*/new Color(0x000000)\n },\n specular: {\n value: /*@__PURE__*/new Color(0x111111)\n },\n shininess: {\n value: 30\n }\n }]),\n vertexShader: ShaderChunk.meshphong_vert,\n fragmentShader: ShaderChunk.meshphong_frag\n },\n standard: {\n uniforms: /*@__PURE__*/mergeUniforms([UniformsLib.common, UniformsLib.envmap, UniformsLib.aomap, UniformsLib.lightmap, UniformsLib.emissivemap, UniformsLib.bumpmap, UniformsLib.normalmap, UniformsLib.displacementmap, UniformsLib.roughnessmap, UniformsLib.metalnessmap, UniformsLib.fog, UniformsLib.lights, {\n emissive: {\n value: /*@__PURE__*/new Color(0x000000)\n },\n roughness: {\n value: 1.0\n },\n metalness: {\n value: 0.0\n },\n envMapIntensity: {\n value: 1\n } // temporary\n\n }]),\n vertexShader: ShaderChunk.meshphysical_vert,\n fragmentShader: ShaderChunk.meshphysical_frag\n },\n toon: {\n uniforms: /*@__PURE__*/mergeUniforms([UniformsLib.common, UniformsLib.aomap, UniformsLib.lightmap, UniformsLib.emissivemap, UniformsLib.bumpmap, UniformsLib.normalmap, UniformsLib.displacementmap, UniformsLib.gradientmap, UniformsLib.fog, UniformsLib.lights, {\n emissive: {\n value: /*@__PURE__*/new Color(0x000000)\n }\n }]),\n vertexShader: ShaderChunk.meshtoon_vert,\n fragmentShader: ShaderChunk.meshtoon_frag\n },\n matcap: {\n uniforms: /*@__PURE__*/mergeUniforms([UniformsLib.common, UniformsLib.bumpmap, UniformsLib.normalmap, UniformsLib.displacementmap, UniformsLib.fog, {\n matcap: {\n value: null\n }\n }]),\n vertexShader: ShaderChunk.meshmatcap_vert,\n fragmentShader: ShaderChunk.meshmatcap_frag\n },\n points: {\n uniforms: /*@__PURE__*/mergeUniforms([UniformsLib.points, UniformsLib.fog]),\n vertexShader: ShaderChunk.points_vert,\n fragmentShader: ShaderChunk.points_frag\n },\n dashed: {\n uniforms: /*@__PURE__*/mergeUniforms([UniformsLib.common, UniformsLib.fog, {\n scale: {\n value: 1\n },\n dashSize: {\n value: 1\n },\n totalSize: {\n value: 2\n }\n }]),\n vertexShader: ShaderChunk.linedashed_vert,\n fragmentShader: ShaderChunk.linedashed_frag\n },\n depth: {\n uniforms: /*@__PURE__*/mergeUniforms([UniformsLib.common, UniformsLib.displacementmap]),\n vertexShader: ShaderChunk.depth_vert,\n fragmentShader: ShaderChunk.depth_frag\n },\n normal: {\n uniforms: /*@__PURE__*/mergeUniforms([UniformsLib.common, UniformsLib.bumpmap, UniformsLib.normalmap, UniformsLib.displacementmap, {\n opacity: {\n value: 1.0\n }\n }]),\n vertexShader: ShaderChunk.meshnormal_vert,\n fragmentShader: ShaderChunk.meshnormal_frag\n },\n sprite: {\n uniforms: /*@__PURE__*/mergeUniforms([UniformsLib.sprite, UniformsLib.fog]),\n vertexShader: ShaderChunk.sprite_vert,\n fragmentShader: ShaderChunk.sprite_frag\n },\n background: {\n uniforms: {\n uvTransform: {\n value: /*@__PURE__*/new Matrix3()\n },\n t2D: {\n value: null\n },\n backgroundIntensity: {\n value: 1\n }\n },\n vertexShader: ShaderChunk.background_vert,\n fragmentShader: ShaderChunk.background_frag\n },\n backgroundCube: {\n uniforms: {\n envMap: {\n value: null\n },\n flipEnvMap: {\n value: -1\n },\n backgroundBlurriness: {\n value: 0\n },\n backgroundIntensity: {\n value: 1\n }\n },\n vertexShader: ShaderChunk.backgroundCube_vert,\n fragmentShader: ShaderChunk.backgroundCube_frag\n },\n cube: {\n uniforms: {\n tCube: {\n value: null\n },\n tFlip: {\n value: -1\n },\n opacity: {\n value: 1.0\n }\n },\n vertexShader: ShaderChunk.cube_vert,\n fragmentShader: ShaderChunk.cube_frag\n },\n equirect: {\n uniforms: {\n tEquirect: {\n value: null\n }\n },\n vertexShader: ShaderChunk.equirect_vert,\n fragmentShader: ShaderChunk.equirect_frag\n },\n distanceRGBA: {\n uniforms: /*@__PURE__*/mergeUniforms([UniformsLib.common, UniformsLib.displacementmap, {\n referencePosition: {\n value: /*@__PURE__*/new Vector3()\n },\n nearDistance: {\n value: 1\n },\n farDistance: {\n value: 1000\n }\n }]),\n vertexShader: ShaderChunk.distanceRGBA_vert,\n fragmentShader: ShaderChunk.distanceRGBA_frag\n },\n shadow: {\n uniforms: /*@__PURE__*/mergeUniforms([UniformsLib.lights, UniformsLib.fog, {\n color: {\n value: /*@__PURE__*/new Color(0x00000)\n },\n opacity: {\n value: 1.0\n }\n }]),\n vertexShader: ShaderChunk.shadow_vert,\n fragmentShader: ShaderChunk.shadow_frag\n }\n};\nShaderLib.physical = {\n uniforms: /*@__PURE__*/mergeUniforms([ShaderLib.standard.uniforms, {\n clearcoat: {\n value: 0\n },\n clearcoatMap: {\n value: null\n },\n clearcoatMapTransform: {\n value: /*@__PURE__*/new Matrix3()\n },\n clearcoatNormalMap: {\n value: null\n },\n clearcoatNormalMapTransform: {\n value: /*@__PURE__*/new Matrix3()\n },\n clearcoatNormalScale: {\n value: /*@__PURE__*/new Vector2(1, 1)\n },\n clearcoatRoughness: {\n value: 0\n },\n clearcoatRoughnessMap: {\n value: null\n },\n clearcoatRoughnessMapTransform: {\n value: /*@__PURE__*/new Matrix3()\n },\n iridescence: {\n value: 0\n },\n iridescenceMap: {\n value: null\n },\n iridescenceMapTransform: {\n value: /*@__PURE__*/new Matrix3()\n },\n iridescenceIOR: {\n value: 1.3\n },\n iridescenceThicknessMinimum: {\n value: 100\n },\n iridescenceThicknessMaximum: {\n value: 400\n },\n iridescenceThicknessMap: {\n value: null\n },\n iridescenceThicknessMapTransform: {\n value: /*@__PURE__*/new Matrix3()\n },\n sheen: {\n value: 0\n },\n sheenColor: {\n value: /*@__PURE__*/new Color(0x000000)\n },\n sheenColorMap: {\n value: null\n },\n sheenColorMapTransform: {\n value: /*@__PURE__*/new Matrix3()\n },\n sheenRoughness: {\n value: 1\n },\n sheenRoughnessMap: {\n value: null\n },\n sheenRoughnessMapTransform: {\n value: /*@__PURE__*/new Matrix3()\n },\n transmission: {\n value: 0\n },\n transmissionMap: {\n value: null\n },\n transmissionMapTransform: {\n value: /*@__PURE__*/new Matrix3()\n },\n transmissionSamplerSize: {\n value: /*@__PURE__*/new Vector2()\n },\n transmissionSamplerMap: {\n value: null\n },\n thickness: {\n value: 0\n },\n thicknessMap: {\n value: null\n },\n thicknessMapTransform: {\n value: /*@__PURE__*/new Matrix3()\n },\n attenuationDistance: {\n value: 0\n },\n attenuationColor: {\n value: /*@__PURE__*/new Color(0x000000)\n },\n specularColor: {\n value: /*@__PURE__*/new Color(1, 1, 1)\n },\n specularColorMap: {\n value: null\n },\n specularColorMapTransform: {\n value: /*@__PURE__*/new Matrix3()\n },\n specularIntensity: {\n value: 1\n },\n specularIntensityMap: {\n value: null\n },\n specularIntensityMapTransform: {\n value: /*@__PURE__*/new Matrix3()\n }\n }]),\n vertexShader: ShaderChunk.meshphysical_vert,\n fragmentShader: ShaderChunk.meshphysical_frag\n};\nvar _rgb = {\n r: 0,\n b: 0,\n g: 0\n};\n\nfunction WebGLBackground(renderer, cubemaps, cubeuvmaps, state, objects, alpha, premultipliedAlpha) {\n var clearColor = new Color(0x000000);\n var clearAlpha = alpha === true ? 0 : 1;\n var planeMesh;\n var boxMesh;\n var currentBackground = null;\n var currentBackgroundVersion = 0;\n var currentTonemapping = null;\n\n function render(renderList, scene) {\n var forceClear = false;\n var background = scene.isScene === true ? scene.background : null;\n\n if (background && background.isTexture) {\n var usePMREM = scene.backgroundBlurriness > 0; // use PMREM if the user wants to blur the background\n\n background = (usePMREM ? cubeuvmaps : cubemaps).get(background);\n }\n\n if (background === null) {\n setClear(clearColor, clearAlpha);\n } else if (background && background.isColor) {\n setClear(background, 1);\n forceClear = true;\n }\n\n var xr = renderer.xr;\n var environmentBlendMode = xr.getEnvironmentBlendMode();\n\n switch (environmentBlendMode) {\n case 'opaque':\n forceClear = true;\n break;\n\n case 'additive':\n state.buffers.color.setClear(0, 0, 0, 1, premultipliedAlpha);\n forceClear = true;\n break;\n\n case 'alpha-blend':\n state.buffers.color.setClear(0, 0, 0, 0, premultipliedAlpha);\n forceClear = true;\n break;\n }\n\n if (renderer.autoClear || forceClear) {\n renderer.clear(renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil);\n }\n\n if (background && (background.isCubeTexture || background.mapping === CubeUVReflectionMapping)) {\n if (boxMesh === undefined) {\n boxMesh = new Mesh(new BoxGeometry(1, 1, 1), new ShaderMaterial({\n name: 'BackgroundCubeMaterial',\n uniforms: cloneUniforms(ShaderLib.backgroundCube.uniforms),\n vertexShader: ShaderLib.backgroundCube.vertexShader,\n fragmentShader: ShaderLib.backgroundCube.fragmentShader,\n side: BackSide,\n depthTest: false,\n depthWrite: false,\n fog: false\n }));\n boxMesh.geometry.deleteAttribute('normal');\n boxMesh.geometry.deleteAttribute('uv');\n\n boxMesh.onBeforeRender = function (renderer, scene, camera) {\n this.matrixWorld.copyPosition(camera.matrixWorld);\n }; // add \"envMap\" material property so the renderer can evaluate it like for built-in materials\n\n\n Object.defineProperty(boxMesh.material, 'envMap', {\n get: function get() {\n return this.uniforms.envMap.value;\n }\n });\n objects.update(boxMesh);\n }\n\n boxMesh.material.uniforms.envMap.value = background;\n boxMesh.material.uniforms.flipEnvMap.value = background.isCubeTexture && background.isRenderTargetTexture === false ? -1 : 1;\n boxMesh.material.uniforms.backgroundBlurriness.value = scene.backgroundBlurriness;\n boxMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity;\n boxMesh.material.toneMapped = background.colorSpace === SRGBColorSpace ? false : true;\n\n if (currentBackground !== background || currentBackgroundVersion !== background.version || currentTonemapping !== renderer.toneMapping) {\n boxMesh.material.needsUpdate = true;\n currentBackground = background;\n currentBackgroundVersion = background.version;\n currentTonemapping = renderer.toneMapping;\n }\n\n boxMesh.layers.enableAll(); // push to the pre-sorted opaque render list\n\n renderList.unshift(boxMesh, boxMesh.geometry, boxMesh.material, 0, 0, null);\n } else if (background && background.isTexture) {\n if (planeMesh === undefined) {\n planeMesh = new Mesh(new PlaneGeometry(2, 2), new ShaderMaterial({\n name: 'BackgroundMaterial',\n uniforms: cloneUniforms(ShaderLib.background.uniforms),\n vertexShader: ShaderLib.background.vertexShader,\n fragmentShader: ShaderLib.background.fragmentShader,\n side: FrontSide,\n depthTest: false,\n depthWrite: false,\n fog: false\n }));\n planeMesh.geometry.deleteAttribute('normal'); // add \"map\" material property so the renderer can evaluate it like for built-in materials\n\n Object.defineProperty(planeMesh.material, 'map', {\n get: function get() {\n return this.uniforms.t2D.value;\n }\n });\n objects.update(planeMesh);\n }\n\n planeMesh.material.uniforms.t2D.value = background;\n planeMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity;\n planeMesh.material.toneMapped = background.colorSpace === SRGBColorSpace ? false : true;\n\n if (background.matrixAutoUpdate === true) {\n background.updateMatrix();\n }\n\n planeMesh.material.uniforms.uvTransform.value.copy(background.matrix);\n\n if (currentBackground !== background || currentBackgroundVersion !== background.version || currentTonemapping !== renderer.toneMapping) {\n planeMesh.material.needsUpdate = true;\n currentBackground = background;\n currentBackgroundVersion = background.version;\n currentTonemapping = renderer.toneMapping;\n }\n\n planeMesh.layers.enableAll(); // push to the pre-sorted opaque render list\n\n renderList.unshift(planeMesh, planeMesh.geometry, planeMesh.material, 0, 0, null);\n }\n }\n\n function setClear(color, alpha) {\n color.getRGB(_rgb, getUnlitUniformColorSpace(renderer));\n state.buffers.color.setClear(_rgb.r, _rgb.g, _rgb.b, alpha, premultipliedAlpha);\n }\n\n return {\n getClearColor: function getClearColor() {\n return clearColor;\n },\n setClearColor: function setClearColor(color) {\n var alpha = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n clearColor.set(color);\n clearAlpha = alpha;\n setClear(clearColor, clearAlpha);\n },\n getClearAlpha: function getClearAlpha() {\n return clearAlpha;\n },\n setClearAlpha: function setClearAlpha(alpha) {\n clearAlpha = alpha;\n setClear(clearColor, clearAlpha);\n },\n render: render\n };\n}\n\nfunction WebGLBindingStates(gl, extensions, attributes, capabilities) {\n var maxVertexAttributes = gl.getParameter(gl.MAX_VERTEX_ATTRIBS);\n var extension = capabilities.isWebGL2 ? null : extensions.get('OES_vertex_array_object');\n var vaoAvailable = capabilities.isWebGL2 || extension !== null;\n var bindingStates = {};\n var defaultState = createBindingState(null);\n var currentState = defaultState;\n var forceUpdate = false;\n\n function setup(object, material, program, geometry, index) {\n var updateBuffers = false;\n\n if (vaoAvailable) {\n var state = getBindingState(geometry, program, material);\n\n if (currentState !== state) {\n currentState = state;\n bindVertexArrayObject(currentState.object);\n }\n\n updateBuffers = needsUpdate(object, geometry, program, index);\n if (updateBuffers) saveCache(object, geometry, program, index);\n } else {\n var wireframe = material.wireframe === true;\n\n if (currentState.geometry !== geometry.id || currentState.program !== program.id || currentState.wireframe !== wireframe) {\n currentState.geometry = geometry.id;\n currentState.program = program.id;\n currentState.wireframe = wireframe;\n updateBuffers = true;\n }\n }\n\n if (index !== null) {\n attributes.update(index, gl.ELEMENT_ARRAY_BUFFER);\n }\n\n if (updateBuffers || forceUpdate) {\n forceUpdate = false;\n setupVertexAttributes(object, material, program, geometry);\n\n if (index !== null) {\n gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, attributes.get(index).buffer);\n }\n }\n }\n\n function createVertexArrayObject() {\n if (capabilities.isWebGL2) return gl.createVertexArray();\n return extension.createVertexArrayOES();\n }\n\n function bindVertexArrayObject(vao) {\n if (capabilities.isWebGL2) return gl.bindVertexArray(vao);\n return extension.bindVertexArrayOES(vao);\n }\n\n function deleteVertexArrayObject(vao) {\n if (capabilities.isWebGL2) return gl.deleteVertexArray(vao);\n return extension.deleteVertexArrayOES(vao);\n }\n\n function getBindingState(geometry, program, material) {\n var wireframe = material.wireframe === true;\n var programMap = bindingStates[geometry.id];\n\n if (programMap === undefined) {\n programMap = {};\n bindingStates[geometry.id] = programMap;\n }\n\n var stateMap = programMap[program.id];\n\n if (stateMap === undefined) {\n stateMap = {};\n programMap[program.id] = stateMap;\n }\n\n var state = stateMap[wireframe];\n\n if (state === undefined) {\n state = createBindingState(createVertexArrayObject());\n stateMap[wireframe] = state;\n }\n\n return state;\n }\n\n function createBindingState(vao) {\n var newAttributes = [];\n var enabledAttributes = [];\n var attributeDivisors = [];\n\n for (var i = 0; i < maxVertexAttributes; i++) {\n newAttributes[i] = 0;\n enabledAttributes[i] = 0;\n attributeDivisors[i] = 0;\n }\n\n return {\n // for backward compatibility on non-VAO support browser\n geometry: null,\n program: null,\n wireframe: false,\n newAttributes: newAttributes,\n enabledAttributes: enabledAttributes,\n attributeDivisors: attributeDivisors,\n object: vao,\n attributes: {},\n index: null\n };\n }\n\n function needsUpdate(object, geometry, program, index) {\n var cachedAttributes = currentState.attributes;\n var geometryAttributes = geometry.attributes;\n var attributesNum = 0;\n var programAttributes = program.getAttributes();\n\n for (var name in programAttributes) {\n var programAttribute = programAttributes[name];\n\n if (programAttribute.location >= 0) {\n var cachedAttribute = cachedAttributes[name];\n var geometryAttribute = geometryAttributes[name];\n\n if (geometryAttribute === undefined) {\n if (name === 'instanceMatrix' && object.instanceMatrix) geometryAttribute = object.instanceMatrix;\n if (name === 'instanceColor' && object.instanceColor) geometryAttribute = object.instanceColor;\n }\n\n if (cachedAttribute === undefined) return true;\n if (cachedAttribute.attribute !== geometryAttribute) return true;\n if (geometryAttribute && cachedAttribute.data !== geometryAttribute.data) return true;\n attributesNum++;\n }\n }\n\n if (currentState.attributesNum !== attributesNum) return true;\n if (currentState.index !== index) return true;\n return false;\n }\n\n function saveCache(object, geometry, program, index) {\n var cache = {};\n var attributes = geometry.attributes;\n var attributesNum = 0;\n var programAttributes = program.getAttributes();\n\n for (var name in programAttributes) {\n var programAttribute = programAttributes[name];\n\n if (programAttribute.location >= 0) {\n var attribute = attributes[name];\n\n if (attribute === undefined) {\n if (name === 'instanceMatrix' && object.instanceMatrix) attribute = object.instanceMatrix;\n if (name === 'instanceColor' && object.instanceColor) attribute = object.instanceColor;\n }\n\n var data = {};\n data.attribute = attribute;\n\n if (attribute && attribute.data) {\n data.data = attribute.data;\n }\n\n cache[name] = data;\n attributesNum++;\n }\n }\n\n currentState.attributes = cache;\n currentState.attributesNum = attributesNum;\n currentState.index = index;\n }\n\n function initAttributes() {\n var newAttributes = currentState.newAttributes;\n\n for (var i = 0, il = newAttributes.length; i < il; i++) {\n newAttributes[i] = 0;\n }\n }\n\n function enableAttribute(attribute) {\n enableAttributeAndDivisor(attribute, 0);\n }\n\n function enableAttributeAndDivisor(attribute, meshPerAttribute) {\n var newAttributes = currentState.newAttributes;\n var enabledAttributes = currentState.enabledAttributes;\n var attributeDivisors = currentState.attributeDivisors;\n newAttributes[attribute] = 1;\n\n if (enabledAttributes[attribute] === 0) {\n gl.enableVertexAttribArray(attribute);\n enabledAttributes[attribute] = 1;\n }\n\n if (attributeDivisors[attribute] !== meshPerAttribute) {\n var _extension = capabilities.isWebGL2 ? gl : extensions.get('ANGLE_instanced_arrays');\n\n _extension[capabilities.isWebGL2 ? 'vertexAttribDivisor' : 'vertexAttribDivisorANGLE'](attribute, meshPerAttribute);\n\n attributeDivisors[attribute] = meshPerAttribute;\n }\n }\n\n function disableUnusedAttributes() {\n var newAttributes = currentState.newAttributes;\n var enabledAttributes = currentState.enabledAttributes;\n\n for (var i = 0, il = enabledAttributes.length; i < il; i++) {\n if (enabledAttributes[i] !== newAttributes[i]) {\n gl.disableVertexAttribArray(i);\n enabledAttributes[i] = 0;\n }\n }\n }\n\n function vertexAttribPointer(index, size, type, normalized, stride, offset) {\n if (capabilities.isWebGL2 === true && (type === gl.INT || type === gl.UNSIGNED_INT)) {\n gl.vertexAttribIPointer(index, size, type, stride, offset);\n } else {\n gl.vertexAttribPointer(index, size, type, normalized, stride, offset);\n }\n }\n\n function setupVertexAttributes(object, material, program, geometry) {\n if (capabilities.isWebGL2 === false && (object.isInstancedMesh || geometry.isInstancedBufferGeometry)) {\n if (extensions.get('ANGLE_instanced_arrays') === null) return;\n }\n\n initAttributes();\n var geometryAttributes = geometry.attributes;\n var programAttributes = program.getAttributes();\n var materialDefaultAttributeValues = material.defaultAttributeValues;\n\n for (var name in programAttributes) {\n var programAttribute = programAttributes[name];\n\n if (programAttribute.location >= 0) {\n var geometryAttribute = geometryAttributes[name];\n\n if (geometryAttribute === undefined) {\n if (name === 'instanceMatrix' && object.instanceMatrix) geometryAttribute = object.instanceMatrix;\n if (name === 'instanceColor' && object.instanceColor) geometryAttribute = object.instanceColor;\n }\n\n if (geometryAttribute !== undefined) {\n var normalized = geometryAttribute.normalized;\n var size = geometryAttribute.itemSize;\n var attribute = attributes.get(geometryAttribute); // TODO Attribute may not be available on context restore\n\n if (attribute === undefined) continue;\n var buffer = attribute.buffer;\n var type = attribute.type;\n var bytesPerElement = attribute.bytesPerElement;\n\n if (geometryAttribute.isInterleavedBufferAttribute) {\n var data = geometryAttribute.data;\n var stride = data.stride;\n var offset = geometryAttribute.offset;\n\n if (data.isInstancedInterleavedBuffer) {\n for (var i = 0; i < programAttribute.locationSize; i++) {\n enableAttributeAndDivisor(programAttribute.location + i, data.meshPerAttribute);\n }\n\n if (object.isInstancedMesh !== true && geometry._maxInstanceCount === undefined) {\n geometry._maxInstanceCount = data.meshPerAttribute * data.count;\n }\n } else {\n for (var _i23 = 0; _i23 < programAttribute.locationSize; _i23++) {\n enableAttribute(programAttribute.location + _i23);\n }\n }\n\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n\n for (var _i24 = 0; _i24 < programAttribute.locationSize; _i24++) {\n vertexAttribPointer(programAttribute.location + _i24, size / programAttribute.locationSize, type, normalized, stride * bytesPerElement, (offset + size / programAttribute.locationSize * _i24) * bytesPerElement);\n }\n } else {\n if (geometryAttribute.isInstancedBufferAttribute) {\n for (var _i25 = 0; _i25 < programAttribute.locationSize; _i25++) {\n enableAttributeAndDivisor(programAttribute.location + _i25, geometryAttribute.meshPerAttribute);\n }\n\n if (object.isInstancedMesh !== true && geometry._maxInstanceCount === undefined) {\n geometry._maxInstanceCount = geometryAttribute.meshPerAttribute * geometryAttribute.count;\n }\n } else {\n for (var _i26 = 0; _i26 < programAttribute.locationSize; _i26++) {\n enableAttribute(programAttribute.location + _i26);\n }\n }\n\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n\n for (var _i27 = 0; _i27 < programAttribute.locationSize; _i27++) {\n vertexAttribPointer(programAttribute.location + _i27, size / programAttribute.locationSize, type, normalized, size * bytesPerElement, size / programAttribute.locationSize * _i27 * bytesPerElement);\n }\n }\n } else if (materialDefaultAttributeValues !== undefined) {\n var _value2 = materialDefaultAttributeValues[name];\n\n if (_value2 !== undefined) {\n switch (_value2.length) {\n case 2:\n gl.vertexAttrib2fv(programAttribute.location, _value2);\n break;\n\n case 3:\n gl.vertexAttrib3fv(programAttribute.location, _value2);\n break;\n\n case 4:\n gl.vertexAttrib4fv(programAttribute.location, _value2);\n break;\n\n default:\n gl.vertexAttrib1fv(programAttribute.location, _value2);\n }\n }\n }\n }\n }\n\n disableUnusedAttributes();\n }\n\n function dispose() {\n reset();\n\n for (var geometryId in bindingStates) {\n var programMap = bindingStates[geometryId];\n\n for (var programId in programMap) {\n var stateMap = programMap[programId];\n\n for (var wireframe in stateMap) {\n deleteVertexArrayObject(stateMap[wireframe].object);\n delete stateMap[wireframe];\n }\n\n delete programMap[programId];\n }\n\n delete bindingStates[geometryId];\n }\n }\n\n function releaseStatesOfGeometry(geometry) {\n if (bindingStates[geometry.id] === undefined) return;\n var programMap = bindingStates[geometry.id];\n\n for (var programId in programMap) {\n var stateMap = programMap[programId];\n\n for (var wireframe in stateMap) {\n deleteVertexArrayObject(stateMap[wireframe].object);\n delete stateMap[wireframe];\n }\n\n delete programMap[programId];\n }\n\n delete bindingStates[geometry.id];\n }\n\n function releaseStatesOfProgram(program) {\n for (var geometryId in bindingStates) {\n var programMap = bindingStates[geometryId];\n if (programMap[program.id] === undefined) continue;\n var stateMap = programMap[program.id];\n\n for (var wireframe in stateMap) {\n deleteVertexArrayObject(stateMap[wireframe].object);\n delete stateMap[wireframe];\n }\n\n delete programMap[program.id];\n }\n }\n\n function reset() {\n resetDefaultState();\n forceUpdate = true;\n if (currentState === defaultState) return;\n currentState = defaultState;\n bindVertexArrayObject(currentState.object);\n } // for backward-compatibility\n\n\n function resetDefaultState() {\n defaultState.geometry = null;\n defaultState.program = null;\n defaultState.wireframe = false;\n }\n\n return {\n setup: setup,\n reset: reset,\n resetDefaultState: resetDefaultState,\n dispose: dispose,\n releaseStatesOfGeometry: releaseStatesOfGeometry,\n releaseStatesOfProgram: releaseStatesOfProgram,\n initAttributes: initAttributes,\n enableAttribute: enableAttribute,\n disableUnusedAttributes: disableUnusedAttributes\n };\n}\n\nfunction WebGLBufferRenderer(gl, extensions, info, capabilities) {\n var isWebGL2 = capabilities.isWebGL2;\n var mode;\n\n function setMode(value) {\n mode = value;\n }\n\n function render(start, count) {\n gl.drawArrays(mode, start, count);\n info.update(count, mode, 1);\n }\n\n function renderInstances(start, count, primcount) {\n if (primcount === 0) return;\n var extension, methodName;\n\n if (isWebGL2) {\n extension = gl;\n methodName = 'drawArraysInstanced';\n } else {\n extension = extensions.get('ANGLE_instanced_arrays');\n methodName = 'drawArraysInstancedANGLE';\n\n if (extension === null) {\n console.error('THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.');\n return;\n }\n }\n\n extension[methodName](mode, start, count, primcount);\n info.update(count, mode, primcount);\n } //\n\n\n this.setMode = setMode;\n this.render = render;\n this.renderInstances = renderInstances;\n}\n\nfunction WebGLCapabilities(gl, extensions, parameters) {\n var maxAnisotropy;\n\n function getMaxAnisotropy() {\n if (maxAnisotropy !== undefined) return maxAnisotropy;\n\n if (extensions.has('EXT_texture_filter_anisotropic') === true) {\n var extension = extensions.get('EXT_texture_filter_anisotropic');\n maxAnisotropy = gl.getParameter(extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT);\n } else {\n maxAnisotropy = 0;\n }\n\n return maxAnisotropy;\n }\n\n function getMaxPrecision(precision) {\n if (precision === 'highp') {\n if (gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_FLOAT).precision > 0 && gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT).precision > 0) {\n return 'highp';\n }\n\n precision = 'mediump';\n }\n\n if (precision === 'mediump') {\n if (gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT).precision > 0 && gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT).precision > 0) {\n return 'mediump';\n }\n }\n\n return 'lowp';\n }\n\n var isWebGL2 = typeof WebGL2RenderingContext !== 'undefined' && gl.constructor.name === 'WebGL2RenderingContext';\n var precision = parameters.precision !== undefined ? parameters.precision : 'highp';\n var maxPrecision = getMaxPrecision(precision);\n\n if (maxPrecision !== precision) {\n console.warn('THREE.WebGLRenderer:', precision, 'not supported, using', maxPrecision, 'instead.');\n precision = maxPrecision;\n }\n\n var drawBuffers = isWebGL2 || extensions.has('WEBGL_draw_buffers');\n var logarithmicDepthBuffer = parameters.logarithmicDepthBuffer === true;\n var maxTextures = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS);\n var maxVertexTextures = gl.getParameter(gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS);\n var maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);\n var maxCubemapSize = gl.getParameter(gl.MAX_CUBE_MAP_TEXTURE_SIZE);\n var maxAttributes = gl.getParameter(gl.MAX_VERTEX_ATTRIBS);\n var maxVertexUniforms = gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS);\n var maxVaryings = gl.getParameter(gl.MAX_VARYING_VECTORS);\n var maxFragmentUniforms = gl.getParameter(gl.MAX_FRAGMENT_UNIFORM_VECTORS);\n var vertexTextures = maxVertexTextures > 0;\n var floatFragmentTextures = isWebGL2 || extensions.has('OES_texture_float');\n var floatVertexTextures = vertexTextures && floatFragmentTextures;\n var maxSamples = isWebGL2 ? gl.getParameter(gl.MAX_SAMPLES) : 0;\n return {\n isWebGL2: isWebGL2,\n drawBuffers: drawBuffers,\n getMaxAnisotropy: getMaxAnisotropy,\n getMaxPrecision: getMaxPrecision,\n precision: precision,\n logarithmicDepthBuffer: logarithmicDepthBuffer,\n maxTextures: maxTextures,\n maxVertexTextures: maxVertexTextures,\n maxTextureSize: maxTextureSize,\n maxCubemapSize: maxCubemapSize,\n maxAttributes: maxAttributes,\n maxVertexUniforms: maxVertexUniforms,\n maxVaryings: maxVaryings,\n maxFragmentUniforms: maxFragmentUniforms,\n vertexTextures: vertexTextures,\n floatFragmentTextures: floatFragmentTextures,\n floatVertexTextures: floatVertexTextures,\n maxSamples: maxSamples\n };\n}\n\nfunction WebGLClipping(properties) {\n var scope = this;\n var globalState = null,\n numGlobalPlanes = 0,\n localClippingEnabled = false,\n renderingShadows = false;\n var plane = new Plane(),\n viewNormalMatrix = new Matrix3(),\n uniform = {\n value: null,\n needsUpdate: false\n };\n this.uniform = uniform;\n this.numPlanes = 0;\n this.numIntersection = 0;\n\n this.init = function (planes, enableLocalClipping) {\n var enabled = planes.length !== 0 || enableLocalClipping || // enable state of previous frame - the clipping code has to\n // run another frame in order to reset the state:\n numGlobalPlanes !== 0 || localClippingEnabled;\n localClippingEnabled = enableLocalClipping;\n numGlobalPlanes = planes.length;\n return enabled;\n };\n\n this.beginShadows = function () {\n renderingShadows = true;\n projectPlanes(null);\n };\n\n this.endShadows = function () {\n renderingShadows = false;\n };\n\n this.setGlobalState = function (planes, camera) {\n globalState = projectPlanes(planes, camera, 0);\n };\n\n this.setState = function (material, camera, useCache) {\n var planes = material.clippingPlanes,\n clipIntersection = material.clipIntersection,\n clipShadows = material.clipShadows;\n var materialProperties = properties.get(material);\n\n if (!localClippingEnabled || planes === null || planes.length === 0 || renderingShadows && !clipShadows) {\n // there's no local clipping\n if (renderingShadows) {\n // there's no global clipping\n projectPlanes(null);\n } else {\n resetGlobalState();\n }\n } else {\n var nGlobal = renderingShadows ? 0 : numGlobalPlanes,\n lGlobal = nGlobal * 4;\n var dstArray = materialProperties.clippingState || null;\n uniform.value = dstArray; // ensure unique state\n\n dstArray = projectPlanes(planes, camera, lGlobal, useCache);\n\n for (var i = 0; i !== lGlobal; ++i) {\n dstArray[i] = globalState[i];\n }\n\n materialProperties.clippingState = dstArray;\n this.numIntersection = clipIntersection ? this.numPlanes : 0;\n this.numPlanes += nGlobal;\n }\n };\n\n function resetGlobalState() {\n if (uniform.value !== globalState) {\n uniform.value = globalState;\n uniform.needsUpdate = numGlobalPlanes > 0;\n }\n\n scope.numPlanes = numGlobalPlanes;\n scope.numIntersection = 0;\n }\n\n function projectPlanes(planes, camera, dstOffset, skipTransform) {\n var nPlanes = planes !== null ? planes.length : 0;\n var dstArray = null;\n\n if (nPlanes !== 0) {\n dstArray = uniform.value;\n\n if (skipTransform !== true || dstArray === null) {\n var flatSize = dstOffset + nPlanes * 4,\n viewMatrix = camera.matrixWorldInverse;\n viewNormalMatrix.getNormalMatrix(viewMatrix);\n\n if (dstArray === null || dstArray.length < flatSize) {\n dstArray = new Float32Array(flatSize);\n }\n\n for (var i = 0, i4 = dstOffset; i !== nPlanes; ++i, i4 += 4) {\n plane.copy(planes[i]).applyMatrix4(viewMatrix, viewNormalMatrix);\n plane.normal.toArray(dstArray, i4);\n dstArray[i4 + 3] = plane.constant;\n }\n }\n\n uniform.value = dstArray;\n uniform.needsUpdate = true;\n }\n\n scope.numPlanes = nPlanes;\n scope.numIntersection = 0;\n return dstArray;\n }\n}\n\nfunction WebGLCubeMaps(renderer) {\n var cubemaps = new WeakMap();\n\n function mapTextureMapping(texture, mapping) {\n if (mapping === EquirectangularReflectionMapping) {\n texture.mapping = CubeReflectionMapping;\n } else if (mapping === EquirectangularRefractionMapping) {\n texture.mapping = CubeRefractionMapping;\n }\n\n return texture;\n }\n\n function get(texture) {\n if (texture && texture.isTexture && texture.isRenderTargetTexture === false) {\n var mapping = texture.mapping;\n\n if (mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping) {\n if (cubemaps.has(texture)) {\n var cubemap = cubemaps.get(texture).texture;\n return mapTextureMapping(cubemap, texture.mapping);\n } else {\n var image = texture.image;\n\n if (image && image.height > 0) {\n var renderTarget = new WebGLCubeRenderTarget(image.height / 2);\n renderTarget.fromEquirectangularTexture(renderer, texture);\n cubemaps.set(texture, renderTarget);\n texture.addEventListener('dispose', onTextureDispose);\n return mapTextureMapping(renderTarget.texture, texture.mapping);\n } else {\n // image not yet ready. try the conversion next frame\n return null;\n }\n }\n }\n }\n\n return texture;\n }\n\n function onTextureDispose(event) {\n var texture = event.target;\n texture.removeEventListener('dispose', onTextureDispose);\n var cubemap = cubemaps.get(texture);\n\n if (cubemap !== undefined) {\n cubemaps.delete(texture);\n cubemap.dispose();\n }\n }\n\n function dispose() {\n cubemaps = new WeakMap();\n }\n\n return {\n get: get,\n dispose: dispose\n };\n}\n\nvar OrthographicCamera = /*#__PURE__*/function (_Camera2) {\n _inherits(OrthographicCamera, _Camera2);\n\n var _super31 = _createSuper(OrthographicCamera);\n\n function OrthographicCamera() {\n var _this23;\n\n var left = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n var right = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var top = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var bottom = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n var near = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0.1;\n var far = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 2000;\n\n _classCallCheck(this, OrthographicCamera);\n\n _this23 = _super31.call(this);\n _this23.isOrthographicCamera = true;\n _this23.type = 'OrthographicCamera';\n _this23.zoom = 1;\n _this23.view = null;\n _this23.left = left;\n _this23.right = right;\n _this23.top = top;\n _this23.bottom = bottom;\n _this23.near = near;\n _this23.far = far;\n\n _this23.updateProjectionMatrix();\n\n return _this23;\n }\n\n _createClass(OrthographicCamera, [{\n key: \"copy\",\n value: function copy(source, recursive) {\n _get(_getPrototypeOf(OrthographicCamera.prototype), \"copy\", this).call(this, source, recursive);\n\n this.left = source.left;\n this.right = source.right;\n this.top = source.top;\n this.bottom = source.bottom;\n this.near = source.near;\n this.far = source.far;\n this.zoom = source.zoom;\n this.view = source.view === null ? null : Object.assign({}, source.view);\n return this;\n }\n }, {\n key: \"setViewOffset\",\n value: function setViewOffset(fullWidth, fullHeight, x, y, width, height) {\n if (this.view === null) {\n this.view = {\n enabled: true,\n fullWidth: 1,\n fullHeight: 1,\n offsetX: 0,\n offsetY: 0,\n width: 1,\n height: 1\n };\n }\n\n this.view.enabled = true;\n this.view.fullWidth = fullWidth;\n this.view.fullHeight = fullHeight;\n this.view.offsetX = x;\n this.view.offsetY = y;\n this.view.width = width;\n this.view.height = height;\n this.updateProjectionMatrix();\n }\n }, {\n key: \"clearViewOffset\",\n value: function clearViewOffset() {\n if (this.view !== null) {\n this.view.enabled = false;\n }\n\n this.updateProjectionMatrix();\n }\n }, {\n key: \"updateProjectionMatrix\",\n value: function updateProjectionMatrix() {\n var dx = (this.right - this.left) / (2 * this.zoom);\n var dy = (this.top - this.bottom) / (2 * this.zoom);\n var cx = (this.right + this.left) / 2;\n var cy = (this.top + this.bottom) / 2;\n var left = cx - dx;\n var right = cx + dx;\n var top = cy + dy;\n var bottom = cy - dy;\n\n if (this.view !== null && this.view.enabled) {\n var scaleW = (this.right - this.left) / this.view.fullWidth / this.zoom;\n var scaleH = (this.top - this.bottom) / this.view.fullHeight / this.zoom;\n left += scaleW * this.view.offsetX;\n right = left + scaleW * this.view.width;\n top -= scaleH * this.view.offsetY;\n bottom = top - scaleH * this.view.height;\n }\n\n this.projectionMatrix.makeOrthographic(left, right, top, bottom, this.near, this.far);\n this.projectionMatrixInverse.copy(this.projectionMatrix).invert();\n }\n }, {\n key: \"toJSON\",\n value: function toJSON(meta) {\n var data = _get(_getPrototypeOf(OrthographicCamera.prototype), \"toJSON\", this).call(this, meta);\n\n data.object.zoom = this.zoom;\n data.object.left = this.left;\n data.object.right = this.right;\n data.object.top = this.top;\n data.object.bottom = this.bottom;\n data.object.near = this.near;\n data.object.far = this.far;\n if (this.view !== null) data.object.view = Object.assign({}, this.view);\n return data;\n }\n }]);\n\n return OrthographicCamera;\n}(Camera);\n\nvar LOD_MIN = 4; // The standard deviations (radians) associated with the extra mips. These are\n// chosen to approximate a Trowbridge-Reitz distribution function times the\n// geometric shadowing function. These sigma values squared must match the\n// variance #defines in cube_uv_reflection_fragment.glsl.js.\n\nvar EXTRA_LOD_SIGMA = [0.125, 0.215, 0.35, 0.446, 0.526, 0.582]; // The maximum length of the blur for loop. Smaller sigmas will use fewer\n// samples and exit early, but not recompile the shader.\n\nvar MAX_SAMPLES = 20;\n\nvar _flatCamera = /*@__PURE__*/new OrthographicCamera();\n\nvar _clearColor = /*@__PURE__*/new Color();\n\nvar _oldTarget = null; // Golden Ratio\n\nvar PHI = (1 + Math.sqrt(5)) / 2;\nvar INV_PHI = 1 / PHI; // Vertices of a dodecahedron (except the opposites, which represent the\n// same axis), used as axis directions evenly spread on a sphere.\n\nvar _axisDirections = [/*@__PURE__*/new Vector3(1, 1, 1), /*@__PURE__*/new Vector3(-1, 1, 1), /*@__PURE__*/new Vector3(1, 1, -1), /*@__PURE__*/new Vector3(-1, 1, -1), /*@__PURE__*/new Vector3(0, PHI, INV_PHI), /*@__PURE__*/new Vector3(0, PHI, -INV_PHI), /*@__PURE__*/new Vector3(INV_PHI, 0, PHI), /*@__PURE__*/new Vector3(-INV_PHI, 0, PHI), /*@__PURE__*/new Vector3(PHI, INV_PHI, 0), /*@__PURE__*/new Vector3(-PHI, INV_PHI, 0)];\n/**\n * This class generates a Prefiltered, Mipmapped Radiance Environment Map\n * (PMREM) from a cubeMap environment texture. This allows different levels of\n * blur to be quickly accessed based on material roughness. It is packed into a\n * special CubeUV format that allows us to perform custom interpolation so that\n * we can support nonlinear formats such as RGBE. Unlike a traditional mipmap\n * chain, it only goes down to the LOD_MIN level (above), and then creates extra\n * even more filtered 'mips' at the same LOD_MIN resolution, associated with\n * higher roughness levels. In this way we maintain resolution to smoothly\n * interpolate diffuse lighting while limiting sampling computation.\n *\n * Paper: Fast, Accurate Image-Based Lighting\n * https://drive.google.com/file/d/15y8r_UpKlU9SvV4ILb0C3qCPecS8pvLz/view\n*/\n\nvar PMREMGenerator = /*#__PURE__*/function () {\n function PMREMGenerator(renderer) {\n _classCallCheck(this, PMREMGenerator);\n\n this._renderer = renderer;\n this._pingPongRenderTarget = null;\n this._lodMax = 0;\n this._cubeSize = 0;\n this._lodPlanes = [];\n this._sizeLods = [];\n this._sigmas = [];\n this._blurMaterial = null;\n this._cubemapMaterial = null;\n this._equirectMaterial = null;\n\n this._compileMaterial(this._blurMaterial);\n }\n /**\n * Generates a PMREM from a supplied Scene, which can be faster than using an\n * image if networking bandwidth is low. Optional sigma specifies a blur radius\n * in radians to be applied to the scene before PMREM generation. Optional near\n * and far planes ensure the scene is rendered in its entirety (the cubeCamera\n * is placed at the origin).\n */\n\n\n _createClass(PMREMGenerator, [{\n key: \"fromScene\",\n value: function fromScene(scene) {\n var sigma = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var near = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.1;\n var far = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 100;\n _oldTarget = this._renderer.getRenderTarget();\n\n this._setSize(256);\n\n var cubeUVRenderTarget = this._allocateTargets();\n\n cubeUVRenderTarget.depthBuffer = true;\n\n this._sceneToCubeUV(scene, near, far, cubeUVRenderTarget);\n\n if (sigma > 0) {\n this._blur(cubeUVRenderTarget, 0, 0, sigma);\n }\n\n this._applyPMREM(cubeUVRenderTarget);\n\n this._cleanup(cubeUVRenderTarget);\n\n return cubeUVRenderTarget;\n }\n /**\n * Generates a PMREM from an equirectangular texture, which can be either LDR\n * or HDR. The ideal input image size is 1k (1024 x 512),\n * as this matches best with the 256 x 256 cubemap output.\n */\n\n }, {\n key: \"fromEquirectangular\",\n value: function fromEquirectangular(equirectangular) {\n var renderTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return this._fromTexture(equirectangular, renderTarget);\n }\n /**\n * Generates a PMREM from an cubemap texture, which can be either LDR\n * or HDR. The ideal input cube size is 256 x 256,\n * as this matches best with the 256 x 256 cubemap output.\n */\n\n }, {\n key: \"fromCubemap\",\n value: function fromCubemap(cubemap) {\n var renderTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return this._fromTexture(cubemap, renderTarget);\n }\n /**\n * Pre-compiles the cubemap shader. You can get faster start-up by invoking this method during\n * your texture's network fetch for increased concurrency.\n */\n\n }, {\n key: \"compileCubemapShader\",\n value: function compileCubemapShader() {\n if (this._cubemapMaterial === null) {\n this._cubemapMaterial = _getCubemapMaterial();\n\n this._compileMaterial(this._cubemapMaterial);\n }\n }\n /**\n * Pre-compiles the equirectangular shader. You can get faster start-up by invoking this method during\n * your texture's network fetch for increased concurrency.\n */\n\n }, {\n key: \"compileEquirectangularShader\",\n value: function compileEquirectangularShader() {\n if (this._equirectMaterial === null) {\n this._equirectMaterial = _getEquirectMaterial();\n\n this._compileMaterial(this._equirectMaterial);\n }\n }\n /**\n * Disposes of the PMREMGenerator's internal memory. Note that PMREMGenerator is a static class,\n * so you should not need more than one PMREMGenerator object. If you do, calling dispose() on\n * one of them will cause any others to also become unusable.\n */\n\n }, {\n key: \"dispose\",\n value: function dispose() {\n this._dispose();\n\n if (this._cubemapMaterial !== null) this._cubemapMaterial.dispose();\n if (this._equirectMaterial !== null) this._equirectMaterial.dispose();\n } // private interface\n\n }, {\n key: \"_setSize\",\n value: function _setSize(cubeSize) {\n this._lodMax = Math.floor(Math.log2(cubeSize));\n this._cubeSize = Math.pow(2, this._lodMax);\n }\n }, {\n key: \"_dispose\",\n value: function _dispose() {\n if (this._blurMaterial !== null) this._blurMaterial.dispose();\n if (this._pingPongRenderTarget !== null) this._pingPongRenderTarget.dispose();\n\n for (var i = 0; i < this._lodPlanes.length; i++) {\n this._lodPlanes[i].dispose();\n }\n }\n }, {\n key: \"_cleanup\",\n value: function _cleanup(outputTarget) {\n this._renderer.setRenderTarget(_oldTarget);\n\n outputTarget.scissorTest = false;\n\n _setViewport(outputTarget, 0, 0, outputTarget.width, outputTarget.height);\n }\n }, {\n key: \"_fromTexture\",\n value: function _fromTexture(texture, renderTarget) {\n if (texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping) {\n this._setSize(texture.image.length === 0 ? 16 : texture.image[0].width || texture.image[0].image.width);\n } else {\n // Equirectangular\n this._setSize(texture.image.width / 4);\n }\n\n _oldTarget = this._renderer.getRenderTarget();\n\n var cubeUVRenderTarget = renderTarget || this._allocateTargets();\n\n this._textureToCubeUV(texture, cubeUVRenderTarget);\n\n this._applyPMREM(cubeUVRenderTarget);\n\n this._cleanup(cubeUVRenderTarget);\n\n return cubeUVRenderTarget;\n }\n }, {\n key: \"_allocateTargets\",\n value: function _allocateTargets() {\n var width = 3 * Math.max(this._cubeSize, 16 * 7);\n var height = 4 * this._cubeSize;\n var params = {\n magFilter: LinearFilter,\n minFilter: LinearFilter,\n generateMipmaps: false,\n type: HalfFloatType,\n format: RGBAFormat,\n colorSpace: LinearSRGBColorSpace,\n depthBuffer: false\n };\n\n var cubeUVRenderTarget = _createRenderTarget(width, height, params);\n\n if (this._pingPongRenderTarget === null || this._pingPongRenderTarget.width !== width || this._pingPongRenderTarget.height !== height) {\n if (this._pingPongRenderTarget !== null) {\n this._dispose();\n }\n\n this._pingPongRenderTarget = _createRenderTarget(width, height, params);\n var _lodMax = this._lodMax;\n\n var _createPlanes2 = _createPlanes(_lodMax);\n\n this._sizeLods = _createPlanes2.sizeLods;\n this._lodPlanes = _createPlanes2.lodPlanes;\n this._sigmas = _createPlanes2.sigmas;\n this._blurMaterial = _getBlurShader(_lodMax, width, height);\n }\n\n return cubeUVRenderTarget;\n }\n }, {\n key: \"_compileMaterial\",\n value: function _compileMaterial(material) {\n var tmpMesh = new Mesh(this._lodPlanes[0], material);\n\n this._renderer.compile(tmpMesh, _flatCamera);\n }\n }, {\n key: \"_sceneToCubeUV\",\n value: function _sceneToCubeUV(scene, near, far, cubeUVRenderTarget) {\n var fov = 90;\n var aspect = 1;\n var cubeCamera = new PerspectiveCamera(fov, aspect, near, far);\n var upSign = [1, -1, 1, 1, 1, 1];\n var forwardSign = [1, 1, 1, -1, -1, -1];\n var renderer = this._renderer;\n var originalAutoClear = renderer.autoClear;\n var toneMapping = renderer.toneMapping;\n renderer.getClearColor(_clearColor);\n renderer.toneMapping = NoToneMapping;\n renderer.autoClear = false;\n var backgroundMaterial = new MeshBasicMaterial({\n name: 'PMREM.Background',\n side: BackSide,\n depthWrite: false,\n depthTest: false\n });\n var backgroundBox = new Mesh(new BoxGeometry(), backgroundMaterial);\n var useSolidColor = false;\n var background = scene.background;\n\n if (background) {\n if (background.isColor) {\n backgroundMaterial.color.copy(background);\n scene.background = null;\n useSolidColor = true;\n }\n } else {\n backgroundMaterial.color.copy(_clearColor);\n useSolidColor = true;\n }\n\n for (var i = 0; i < 6; i++) {\n var col = i % 3;\n\n if (col === 0) {\n cubeCamera.up.set(0, upSign[i], 0);\n cubeCamera.lookAt(forwardSign[i], 0, 0);\n } else if (col === 1) {\n cubeCamera.up.set(0, 0, upSign[i]);\n cubeCamera.lookAt(0, forwardSign[i], 0);\n } else {\n cubeCamera.up.set(0, upSign[i], 0);\n cubeCamera.lookAt(0, 0, forwardSign[i]);\n }\n\n var size = this._cubeSize;\n\n _setViewport(cubeUVRenderTarget, col * size, i > 2 ? size : 0, size, size);\n\n renderer.setRenderTarget(cubeUVRenderTarget);\n\n if (useSolidColor) {\n renderer.render(backgroundBox, cubeCamera);\n }\n\n renderer.render(scene, cubeCamera);\n }\n\n backgroundBox.geometry.dispose();\n backgroundBox.material.dispose();\n renderer.toneMapping = toneMapping;\n renderer.autoClear = originalAutoClear;\n scene.background = background;\n }\n }, {\n key: \"_textureToCubeUV\",\n value: function _textureToCubeUV(texture, cubeUVRenderTarget) {\n var renderer = this._renderer;\n var isCubeTexture = texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping;\n\n if (isCubeTexture) {\n if (this._cubemapMaterial === null) {\n this._cubemapMaterial = _getCubemapMaterial();\n }\n\n this._cubemapMaterial.uniforms.flipEnvMap.value = texture.isRenderTargetTexture === false ? -1 : 1;\n } else {\n if (this._equirectMaterial === null) {\n this._equirectMaterial = _getEquirectMaterial();\n }\n }\n\n var material = isCubeTexture ? this._cubemapMaterial : this._equirectMaterial;\n var mesh = new Mesh(this._lodPlanes[0], material);\n var uniforms = material.uniforms;\n uniforms['envMap'].value = texture;\n var size = this._cubeSize;\n\n _setViewport(cubeUVRenderTarget, 0, 0, 3 * size, 2 * size);\n\n renderer.setRenderTarget(cubeUVRenderTarget);\n renderer.render(mesh, _flatCamera);\n }\n }, {\n key: \"_applyPMREM\",\n value: function _applyPMREM(cubeUVRenderTarget) {\n var renderer = this._renderer;\n var autoClear = renderer.autoClear;\n renderer.autoClear = false;\n\n for (var i = 1; i < this._lodPlanes.length; i++) {\n var sigma = Math.sqrt(this._sigmas[i] * this._sigmas[i] - this._sigmas[i - 1] * this._sigmas[i - 1]);\n var poleAxis = _axisDirections[(i - 1) % _axisDirections.length];\n\n this._blur(cubeUVRenderTarget, i - 1, i, sigma, poleAxis);\n }\n\n renderer.autoClear = autoClear;\n }\n /**\n * This is a two-pass Gaussian blur for a cubemap. Normally this is done\n * vertically and horizontally, but this breaks down on a cube. Here we apply\n * the blur latitudinally (around the poles), and then longitudinally (towards\n * the poles) to approximate the orthogonally-separable blur. It is least\n * accurate at the poles, but still does a decent job.\n */\n\n }, {\n key: \"_blur\",\n value: function _blur(cubeUVRenderTarget, lodIn, lodOut, sigma, poleAxis) {\n var pingPongRenderTarget = this._pingPongRenderTarget;\n\n this._halfBlur(cubeUVRenderTarget, pingPongRenderTarget, lodIn, lodOut, sigma, 'latitudinal', poleAxis);\n\n this._halfBlur(pingPongRenderTarget, cubeUVRenderTarget, lodOut, lodOut, sigma, 'longitudinal', poleAxis);\n }\n }, {\n key: \"_halfBlur\",\n value: function _halfBlur(targetIn, targetOut, lodIn, lodOut, sigmaRadians, direction, poleAxis) {\n var renderer = this._renderer;\n var blurMaterial = this._blurMaterial;\n\n if (direction !== 'latitudinal' && direction !== 'longitudinal') {\n console.error('blur direction must be either latitudinal or longitudinal!');\n } // Number of standard deviations at which to cut off the discrete approximation.\n\n\n var STANDARD_DEVIATIONS = 3;\n var blurMesh = new Mesh(this._lodPlanes[lodOut], blurMaterial);\n var blurUniforms = blurMaterial.uniforms;\n var pixels = this._sizeLods[lodIn] - 1;\n var radiansPerPixel = isFinite(sigmaRadians) ? Math.PI / (2 * pixels) : 2 * Math.PI / (2 * MAX_SAMPLES - 1);\n var sigmaPixels = sigmaRadians / radiansPerPixel;\n var samples = isFinite(sigmaRadians) ? 1 + Math.floor(STANDARD_DEVIATIONS * sigmaPixels) : MAX_SAMPLES;\n\n if (samples > MAX_SAMPLES) {\n console.warn(\"sigmaRadians, \".concat(sigmaRadians, \", is too large and will clip, as it requested \").concat(samples, \" samples when the maximum is set to \").concat(MAX_SAMPLES));\n }\n\n var weights = [];\n var sum = 0;\n\n for (var i = 0; i < MAX_SAMPLES; ++i) {\n var _x2 = i / sigmaPixels;\n\n var weight = Math.exp(-_x2 * _x2 / 2);\n weights.push(weight);\n\n if (i === 0) {\n sum += weight;\n } else if (i < samples) {\n sum += 2 * weight;\n }\n }\n\n for (var _i28 = 0; _i28 < weights.length; _i28++) {\n weights[_i28] = weights[_i28] / sum;\n }\n\n blurUniforms['envMap'].value = targetIn.texture;\n blurUniforms['samples'].value = samples;\n blurUniforms['weights'].value = weights;\n blurUniforms['latitudinal'].value = direction === 'latitudinal';\n\n if (poleAxis) {\n blurUniforms['poleAxis'].value = poleAxis;\n }\n\n var _lodMax = this._lodMax;\n blurUniforms['dTheta'].value = radiansPerPixel;\n blurUniforms['mipInt'].value = _lodMax - lodIn;\n var outputSize = this._sizeLods[lodOut];\n var x = 3 * outputSize * (lodOut > _lodMax - LOD_MIN ? lodOut - _lodMax + LOD_MIN : 0);\n var y = 4 * (this._cubeSize - outputSize);\n\n _setViewport(targetOut, x, y, 3 * outputSize, 2 * outputSize);\n\n renderer.setRenderTarget(targetOut);\n renderer.render(blurMesh, _flatCamera);\n }\n }]);\n\n return PMREMGenerator;\n}();\n\nfunction _createPlanes(lodMax) {\n var lodPlanes = [];\n var sizeLods = [];\n var sigmas = [];\n var lod = lodMax;\n var totalLods = lodMax - LOD_MIN + 1 + EXTRA_LOD_SIGMA.length;\n\n for (var i = 0; i < totalLods; i++) {\n var sizeLod = Math.pow(2, lod);\n sizeLods.push(sizeLod);\n var sigma = 1.0 / sizeLod;\n\n if (i > lodMax - LOD_MIN) {\n sigma = EXTRA_LOD_SIGMA[i - lodMax + LOD_MIN - 1];\n } else if (i === 0) {\n sigma = 0;\n }\n\n sigmas.push(sigma);\n var texelSize = 1.0 / (sizeLod - 2);\n var min = -texelSize;\n var max = 1 + texelSize;\n var uv1 = [min, min, max, min, max, max, min, min, max, max, min, max];\n var cubeFaces = 6;\n var vertices = 6;\n var positionSize = 3;\n var uvSize = 2;\n var faceIndexSize = 1;\n var position = new Float32Array(positionSize * vertices * cubeFaces);\n var uv = new Float32Array(uvSize * vertices * cubeFaces);\n var faceIndex = new Float32Array(faceIndexSize * vertices * cubeFaces);\n\n for (var face = 0; face < cubeFaces; face++) {\n var x = face % 3 * 2 / 3 - 1;\n var y = face > 2 ? 0 : -1;\n var coordinates = [x, y, 0, x + 2 / 3, y, 0, x + 2 / 3, y + 1, 0, x, y, 0, x + 2 / 3, y + 1, 0, x, y + 1, 0];\n position.set(coordinates, positionSize * vertices * face);\n uv.set(uv1, uvSize * vertices * face);\n var fill = [face, face, face, face, face, face];\n faceIndex.set(fill, faceIndexSize * vertices * face);\n }\n\n var planes = new BufferGeometry();\n planes.setAttribute('position', new BufferAttribute(position, positionSize));\n planes.setAttribute('uv', new BufferAttribute(uv, uvSize));\n planes.setAttribute('faceIndex', new BufferAttribute(faceIndex, faceIndexSize));\n lodPlanes.push(planes);\n\n if (lod > LOD_MIN) {\n lod--;\n }\n }\n\n return {\n lodPlanes: lodPlanes,\n sizeLods: sizeLods,\n sigmas: sigmas\n };\n}\n\nfunction _createRenderTarget(width, height, params) {\n var cubeUVRenderTarget = new WebGLRenderTarget(width, height, params);\n cubeUVRenderTarget.texture.mapping = CubeUVReflectionMapping;\n cubeUVRenderTarget.texture.name = 'PMREM.cubeUv';\n cubeUVRenderTarget.scissorTest = true;\n return cubeUVRenderTarget;\n}\n\nfunction _setViewport(target, x, y, width, height) {\n target.viewport.set(x, y, width, height);\n target.scissor.set(x, y, width, height);\n}\n\nfunction _getBlurShader(lodMax, width, height) {\n var weights = new Float32Array(MAX_SAMPLES);\n var poleAxis = new Vector3(0, 1, 0);\n var shaderMaterial = new ShaderMaterial({\n name: 'SphericalGaussianBlur',\n defines: {\n 'n': MAX_SAMPLES,\n 'CUBEUV_TEXEL_WIDTH': 1.0 / width,\n 'CUBEUV_TEXEL_HEIGHT': 1.0 / height,\n 'CUBEUV_MAX_MIP': \"\".concat(lodMax, \".0\")\n },\n uniforms: {\n 'envMap': {\n value: null\n },\n 'samples': {\n value: 1\n },\n 'weights': {\n value: weights\n },\n 'latitudinal': {\n value: false\n },\n 'dTheta': {\n value: 0\n },\n 'mipInt': {\n value: 0\n },\n 'poleAxis': {\n value: poleAxis\n }\n },\n vertexShader: _getCommonVertexShader(),\n fragmentShader:\n /* glsl */\n \"\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform sampler2D envMap;\\n\\t\\t\\tuniform int samples;\\n\\t\\t\\tuniform float weights[ n ];\\n\\t\\t\\tuniform bool latitudinal;\\n\\t\\t\\tuniform float dTheta;\\n\\t\\t\\tuniform float mipInt;\\n\\t\\t\\tuniform vec3 poleAxis;\\n\\n\\t\\t\\t#define ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\t#include \\n\\n\\t\\t\\tvec3 getSample( float theta, vec3 axis ) {\\n\\n\\t\\t\\t\\tfloat cosTheta = cos( theta );\\n\\t\\t\\t\\t// Rodrigues' axis-angle rotation\\n\\t\\t\\t\\tvec3 sampleDirection = vOutputDirection * cosTheta\\n\\t\\t\\t\\t\\t+ cross( axis, vOutputDirection ) * sin( theta )\\n\\t\\t\\t\\t\\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\\n\\n\\t\\t\\t\\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\\n\\n\\t\\t\\t}\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\\n\\n\\t\\t\\t\\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\\n\\n\\t\\t\\t\\t\\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\taxis = normalize( axis );\\n\\n\\t\\t\\t\\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\t\\t\\t\\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\\n\\n\\t\\t\\t\\tfor ( int i = 1; i < n; i++ ) {\\n\\n\\t\\t\\t\\t\\tif ( i >= samples ) {\\n\\n\\t\\t\\t\\t\\t\\tbreak;\\n\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\tfloat theta = dTheta * float( i );\\n\\t\\t\\t\\t\\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\\n\\t\\t\\t\\t\\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t}\\n\\t\\t\",\n blending: NoBlending,\n depthTest: false,\n depthWrite: false\n });\n return shaderMaterial;\n}\n\nfunction _getEquirectMaterial() {\n return new ShaderMaterial({\n name: 'EquirectangularToCubeUV',\n uniforms: {\n 'envMap': {\n value: null\n }\n },\n vertexShader: _getCommonVertexShader(),\n fragmentShader:\n /* glsl */\n \"\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform sampler2D envMap;\\n\\n\\t\\t\\t#include \\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tvec3 outputDirection = normalize( vOutputDirection );\\n\\t\\t\\t\\tvec2 uv = equirectUv( outputDirection );\\n\\n\\t\\t\\t\\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\\n\\n\\t\\t\\t}\\n\\t\\t\",\n blending: NoBlending,\n depthTest: false,\n depthWrite: false\n });\n}\n\nfunction _getCubemapMaterial() {\n return new ShaderMaterial({\n name: 'CubemapToCubeUV',\n uniforms: {\n 'envMap': {\n value: null\n },\n 'flipEnvMap': {\n value: -1\n }\n },\n vertexShader: _getCommonVertexShader(),\n fragmentShader:\n /* glsl */\n \"\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tuniform float flipEnvMap;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform samplerCube envMap;\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\\n\\n\\t\\t\\t}\\n\\t\\t\",\n blending: NoBlending,\n depthTest: false,\n depthWrite: false\n });\n}\n\nfunction _getCommonVertexShader() {\n return (\n /* glsl */\n \"\\n\\n\\t\\tprecision mediump float;\\n\\t\\tprecision mediump int;\\n\\n\\t\\tattribute float faceIndex;\\n\\n\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t// RH coordinate system; PMREM face-indexing convention\\n\\t\\tvec3 getDirection( vec2 uv, float face ) {\\n\\n\\t\\t\\tuv = 2.0 * uv - 1.0;\\n\\n\\t\\t\\tvec3 direction = vec3( uv, 1.0 );\\n\\n\\t\\t\\tif ( face == 0.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.zyx; // ( 1, v, u ) pos x\\n\\n\\t\\t\\t} else if ( face == 1.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.xzy;\\n\\t\\t\\t\\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\\n\\n\\t\\t\\t} else if ( face == 2.0 ) {\\n\\n\\t\\t\\t\\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\\n\\n\\t\\t\\t} else if ( face == 3.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.zyx;\\n\\t\\t\\t\\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\\n\\n\\t\\t\\t} else if ( face == 4.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.xzy;\\n\\t\\t\\t\\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\\n\\n\\t\\t\\t} else if ( face == 5.0 ) {\\n\\n\\t\\t\\t\\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\\n\\n\\t\\t\\t}\\n\\n\\t\\t\\treturn direction;\\n\\n\\t\\t}\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvOutputDirection = getDirection( uv, faceIndex );\\n\\t\\t\\tgl_Position = vec4( position, 1.0 );\\n\\n\\t\\t}\\n\\t\"\n );\n}\n\nfunction WebGLCubeUVMaps(renderer) {\n var cubeUVmaps = new WeakMap();\n var pmremGenerator = null;\n\n function get(texture) {\n if (texture && texture.isTexture) {\n var mapping = texture.mapping;\n var isEquirectMap = mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping;\n var isCubeMap = mapping === CubeReflectionMapping || mapping === CubeRefractionMapping; // equirect/cube map to cubeUV conversion\n\n if (isEquirectMap || isCubeMap) {\n if (texture.isRenderTargetTexture && texture.needsPMREMUpdate === true) {\n texture.needsPMREMUpdate = false;\n var renderTarget = cubeUVmaps.get(texture);\n if (pmremGenerator === null) pmremGenerator = new PMREMGenerator(renderer);\n renderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular(texture, renderTarget) : pmremGenerator.fromCubemap(texture, renderTarget);\n cubeUVmaps.set(texture, renderTarget);\n return renderTarget.texture;\n } else {\n if (cubeUVmaps.has(texture)) {\n return cubeUVmaps.get(texture).texture;\n } else {\n var image = texture.image;\n\n if (isEquirectMap && image && image.height > 0 || isCubeMap && image && isCubeTextureComplete(image)) {\n if (pmremGenerator === null) pmremGenerator = new PMREMGenerator(renderer);\n\n var _renderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular(texture) : pmremGenerator.fromCubemap(texture);\n\n cubeUVmaps.set(texture, _renderTarget);\n texture.addEventListener('dispose', onTextureDispose);\n return _renderTarget.texture;\n } else {\n // image not yet ready. try the conversion next frame\n return null;\n }\n }\n }\n }\n }\n\n return texture;\n }\n\n function isCubeTextureComplete(image) {\n var count = 0;\n var length = 6;\n\n for (var i = 0; i < length; i++) {\n if (image[i] !== undefined) count++;\n }\n\n return count === length;\n }\n\n function onTextureDispose(event) {\n var texture = event.target;\n texture.removeEventListener('dispose', onTextureDispose);\n var cubemapUV = cubeUVmaps.get(texture);\n\n if (cubemapUV !== undefined) {\n cubeUVmaps.delete(texture);\n cubemapUV.dispose();\n }\n }\n\n function dispose() {\n cubeUVmaps = new WeakMap();\n\n if (pmremGenerator !== null) {\n pmremGenerator.dispose();\n pmremGenerator = null;\n }\n }\n\n return {\n get: get,\n dispose: dispose\n };\n}\n\nfunction WebGLExtensions(gl) {\n var extensions = {};\n\n function getExtension(name) {\n if (extensions[name] !== undefined) {\n return extensions[name];\n }\n\n var extension;\n\n switch (name) {\n case 'WEBGL_depth_texture':\n extension = gl.getExtension('WEBGL_depth_texture') || gl.getExtension('MOZ_WEBGL_depth_texture') || gl.getExtension('WEBKIT_WEBGL_depth_texture');\n break;\n\n case 'EXT_texture_filter_anisotropic':\n extension = gl.getExtension('EXT_texture_filter_anisotropic') || gl.getExtension('MOZ_EXT_texture_filter_anisotropic') || gl.getExtension('WEBKIT_EXT_texture_filter_anisotropic');\n break;\n\n case 'WEBGL_compressed_texture_s3tc':\n extension = gl.getExtension('WEBGL_compressed_texture_s3tc') || gl.getExtension('MOZ_WEBGL_compressed_texture_s3tc') || gl.getExtension('WEBKIT_WEBGL_compressed_texture_s3tc');\n break;\n\n case 'WEBGL_compressed_texture_pvrtc':\n extension = gl.getExtension('WEBGL_compressed_texture_pvrtc') || gl.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc');\n break;\n\n default:\n extension = gl.getExtension(name);\n }\n\n extensions[name] = extension;\n return extension;\n }\n\n return {\n has: function has(name) {\n return getExtension(name) !== null;\n },\n init: function init(capabilities) {\n if (capabilities.isWebGL2) {\n getExtension('EXT_color_buffer_float');\n } else {\n getExtension('WEBGL_depth_texture');\n getExtension('OES_texture_float');\n getExtension('OES_texture_half_float');\n getExtension('OES_texture_half_float_linear');\n getExtension('OES_standard_derivatives');\n getExtension('OES_element_index_uint');\n getExtension('OES_vertex_array_object');\n getExtension('ANGLE_instanced_arrays');\n }\n\n getExtension('OES_texture_float_linear');\n getExtension('EXT_color_buffer_half_float');\n getExtension('WEBGL_multisampled_render_to_texture');\n },\n get: function get(name) {\n var extension = getExtension(name);\n\n if (extension === null) {\n console.warn('THREE.WebGLRenderer: ' + name + ' extension not supported.');\n }\n\n return extension;\n }\n };\n}\n\nfunction WebGLGeometries(gl, attributes, info, bindingStates) {\n var geometries = {};\n var wireframeAttributes = new WeakMap();\n\n function onGeometryDispose(event) {\n var geometry = event.target;\n\n if (geometry.index !== null) {\n attributes.remove(geometry.index);\n }\n\n for (var name in geometry.attributes) {\n attributes.remove(geometry.attributes[name]);\n }\n\n geometry.removeEventListener('dispose', onGeometryDispose);\n delete geometries[geometry.id];\n var attribute = wireframeAttributes.get(geometry);\n\n if (attribute) {\n attributes.remove(attribute);\n wireframeAttributes.delete(geometry);\n }\n\n bindingStates.releaseStatesOfGeometry(geometry);\n\n if (geometry.isInstancedBufferGeometry === true) {\n delete geometry._maxInstanceCount;\n } //\n\n\n info.memory.geometries--;\n }\n\n function get(object, geometry) {\n if (geometries[geometry.id] === true) return geometry;\n geometry.addEventListener('dispose', onGeometryDispose);\n geometries[geometry.id] = true;\n info.memory.geometries++;\n return geometry;\n }\n\n function update(geometry) {\n var geometryAttributes = geometry.attributes; // Updating index buffer in VAO now. See WebGLBindingStates.\n\n for (var name in geometryAttributes) {\n attributes.update(geometryAttributes[name], gl.ARRAY_BUFFER);\n } // morph targets\n\n\n var morphAttributes = geometry.morphAttributes;\n\n for (var _name3 in morphAttributes) {\n var array = morphAttributes[_name3];\n\n for (var i = 0, l = array.length; i < l; i++) {\n attributes.update(array[i], gl.ARRAY_BUFFER);\n }\n }\n }\n\n function updateWireframeAttribute(geometry) {\n var indices = [];\n var geometryIndex = geometry.index;\n var geometryPosition = geometry.attributes.position;\n var version = 0;\n\n if (geometryIndex !== null) {\n var array = geometryIndex.array;\n version = geometryIndex.version;\n\n for (var i = 0, l = array.length; i < l; i += 3) {\n var a = array[i + 0];\n var b = array[i + 1];\n var c = array[i + 2];\n indices.push(a, b, b, c, c, a);\n }\n } else {\n var _array = geometryPosition.array;\n version = geometryPosition.version;\n\n for (var _i29 = 0, _l5 = _array.length / 3 - 1; _i29 < _l5; _i29 += 3) {\n var _a4 = _i29 + 0;\n\n var _b4 = _i29 + 1;\n\n var _c4 = _i29 + 2;\n\n indices.push(_a4, _b4, _b4, _c4, _c4, _a4);\n }\n }\n\n var attribute = new (arrayNeedsUint32(indices) ? Uint32BufferAttribute : Uint16BufferAttribute)(indices, 1);\n attribute.version = version; // Updating index buffer in VAO now. See WebGLBindingStates\n //\n\n var previousAttribute = wireframeAttributes.get(geometry);\n if (previousAttribute) attributes.remove(previousAttribute); //\n\n wireframeAttributes.set(geometry, attribute);\n }\n\n function getWireframeAttribute(geometry) {\n var currentAttribute = wireframeAttributes.get(geometry);\n\n if (currentAttribute) {\n var geometryIndex = geometry.index;\n\n if (geometryIndex !== null) {\n // if the attribute is obsolete, create a new one\n if (currentAttribute.version < geometryIndex.version) {\n updateWireframeAttribute(geometry);\n }\n }\n } else {\n updateWireframeAttribute(geometry);\n }\n\n return wireframeAttributes.get(geometry);\n }\n\n return {\n get: get,\n update: update,\n getWireframeAttribute: getWireframeAttribute\n };\n}\n\nfunction WebGLIndexedBufferRenderer(gl, extensions, info, capabilities) {\n var isWebGL2 = capabilities.isWebGL2;\n var mode;\n\n function setMode(value) {\n mode = value;\n }\n\n var type, bytesPerElement;\n\n function setIndex(value) {\n type = value.type;\n bytesPerElement = value.bytesPerElement;\n }\n\n function render(start, count) {\n gl.drawElements(mode, count, type, start * bytesPerElement);\n info.update(count, mode, 1);\n }\n\n function renderInstances(start, count, primcount) {\n if (primcount === 0) return;\n var extension, methodName;\n\n if (isWebGL2) {\n extension = gl;\n methodName = 'drawElementsInstanced';\n } else {\n extension = extensions.get('ANGLE_instanced_arrays');\n methodName = 'drawElementsInstancedANGLE';\n\n if (extension === null) {\n console.error('THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.');\n return;\n }\n }\n\n extension[methodName](mode, count, type, start * bytesPerElement, primcount);\n info.update(count, mode, primcount);\n } //\n\n\n this.setMode = setMode;\n this.setIndex = setIndex;\n this.render = render;\n this.renderInstances = renderInstances;\n}\n\nfunction WebGLInfo(gl) {\n var memory = {\n geometries: 0,\n textures: 0\n };\n var render = {\n frame: 0,\n calls: 0,\n triangles: 0,\n points: 0,\n lines: 0\n };\n\n function update(count, mode, instanceCount) {\n render.calls++;\n\n switch (mode) {\n case gl.TRIANGLES:\n render.triangles += instanceCount * (count / 3);\n break;\n\n case gl.LINES:\n render.lines += instanceCount * (count / 2);\n break;\n\n case gl.LINE_STRIP:\n render.lines += instanceCount * (count - 1);\n break;\n\n case gl.LINE_LOOP:\n render.lines += instanceCount * count;\n break;\n\n case gl.POINTS:\n render.points += instanceCount * count;\n break;\n\n default:\n console.error('THREE.WebGLInfo: Unknown draw mode:', mode);\n break;\n }\n }\n\n function reset() {\n render.frame++;\n render.calls = 0;\n render.triangles = 0;\n render.points = 0;\n render.lines = 0;\n }\n\n return {\n memory: memory,\n render: render,\n programs: null,\n autoReset: true,\n reset: reset,\n update: update\n };\n}\n\nfunction numericalSort(a, b) {\n return a[0] - b[0];\n}\n\nfunction absNumericalSort(a, b) {\n return Math.abs(b[1]) - Math.abs(a[1]);\n}\n\nfunction WebGLMorphtargets(gl, capabilities, textures) {\n var influencesList = {};\n var morphInfluences = new Float32Array(8);\n var morphTextures = new WeakMap();\n var morph = new Vector4();\n var workInfluences = [];\n\n for (var i = 0; i < 8; i++) {\n workInfluences[i] = [i, 0];\n }\n\n function update(object, geometry, program) {\n var objectInfluences = object.morphTargetInfluences;\n\n if (capabilities.isWebGL2 === true) {\n // instead of using attributes, the WebGL 2 code path encodes morph targets\n // into an array of data textures. Each layer represents a single morph target.\n var morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n var morphTargetsCount = morphAttribute !== undefined ? morphAttribute.length : 0;\n var entry = morphTextures.get(geometry);\n\n if (entry === undefined || entry.count !== morphTargetsCount) {\n var disposeTexture = function disposeTexture() {\n texture.dispose();\n morphTextures.delete(geometry);\n geometry.removeEventListener('dispose', disposeTexture);\n };\n\n if (entry !== undefined) entry.texture.dispose();\n var hasMorphPosition = geometry.morphAttributes.position !== undefined;\n var hasMorphNormals = geometry.morphAttributes.normal !== undefined;\n var hasMorphColors = geometry.morphAttributes.color !== undefined;\n var morphTargets = geometry.morphAttributes.position || [];\n var morphNormals = geometry.morphAttributes.normal || [];\n var morphColors = geometry.morphAttributes.color || [];\n var vertexDataCount = 0;\n if (hasMorphPosition === true) vertexDataCount = 1;\n if (hasMorphNormals === true) vertexDataCount = 2;\n if (hasMorphColors === true) vertexDataCount = 3;\n var width = geometry.attributes.position.count * vertexDataCount;\n var height = 1;\n\n if (width > capabilities.maxTextureSize) {\n height = Math.ceil(width / capabilities.maxTextureSize);\n width = capabilities.maxTextureSize;\n }\n\n var buffer = new Float32Array(width * height * 4 * morphTargetsCount);\n var texture = new DataArrayTexture(buffer, width, height, morphTargetsCount);\n texture.type = FloatType;\n texture.needsUpdate = true; // fill buffer\n\n var vertexDataStride = vertexDataCount * 4;\n\n for (var _i30 = 0; _i30 < morphTargetsCount; _i30++) {\n var morphTarget = morphTargets[_i30];\n var morphNormal = morphNormals[_i30];\n var morphColor = morphColors[_i30];\n var offset = width * height * 4 * _i30;\n\n for (var j = 0; j < morphTarget.count; j++) {\n var stride = j * vertexDataStride;\n\n if (hasMorphPosition === true) {\n morph.fromBufferAttribute(morphTarget, j);\n buffer[offset + stride + 0] = morph.x;\n buffer[offset + stride + 1] = morph.y;\n buffer[offset + stride + 2] = morph.z;\n buffer[offset + stride + 3] = 0;\n }\n\n if (hasMorphNormals === true) {\n morph.fromBufferAttribute(morphNormal, j);\n buffer[offset + stride + 4] = morph.x;\n buffer[offset + stride + 5] = morph.y;\n buffer[offset + stride + 6] = morph.z;\n buffer[offset + stride + 7] = 0;\n }\n\n if (hasMorphColors === true) {\n morph.fromBufferAttribute(morphColor, j);\n buffer[offset + stride + 8] = morph.x;\n buffer[offset + stride + 9] = morph.y;\n buffer[offset + stride + 10] = morph.z;\n buffer[offset + stride + 11] = morphColor.itemSize === 4 ? morph.w : 1;\n }\n }\n }\n\n entry = {\n count: morphTargetsCount,\n texture: texture,\n size: new Vector2(width, height)\n };\n morphTextures.set(geometry, entry);\n geometry.addEventListener('dispose', disposeTexture);\n } //\n\n\n var morphInfluencesSum = 0;\n\n for (var _i31 = 0; _i31 < objectInfluences.length; _i31++) {\n morphInfluencesSum += objectInfluences[_i31];\n }\n\n var morphBaseInfluence = geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\n program.getUniforms().setValue(gl, 'morphTargetBaseInfluence', morphBaseInfluence);\n program.getUniforms().setValue(gl, 'morphTargetInfluences', objectInfluences);\n program.getUniforms().setValue(gl, 'morphTargetsTexture', entry.texture, textures);\n program.getUniforms().setValue(gl, 'morphTargetsTextureSize', entry.size);\n } else {\n // When object doesn't have morph target influences defined, we treat it as a 0-length array\n // This is important to make sure we set up morphTargetBaseInfluence / morphTargetInfluences\n var length = objectInfluences === undefined ? 0 : objectInfluences.length;\n var influences = influencesList[geometry.id];\n\n if (influences === undefined || influences.length !== length) {\n // initialise list\n influences = [];\n\n for (var _i32 = 0; _i32 < length; _i32++) {\n influences[_i32] = [_i32, 0];\n }\n\n influencesList[geometry.id] = influences;\n } // Collect influences\n\n\n for (var _i33 = 0; _i33 < length; _i33++) {\n var influence = influences[_i33];\n influence[0] = _i33;\n influence[1] = objectInfluences[_i33];\n }\n\n influences.sort(absNumericalSort);\n\n for (var _i34 = 0; _i34 < 8; _i34++) {\n if (_i34 < length && influences[_i34][1]) {\n workInfluences[_i34][0] = influences[_i34][0];\n workInfluences[_i34][1] = influences[_i34][1];\n } else {\n workInfluences[_i34][0] = Number.MAX_SAFE_INTEGER;\n workInfluences[_i34][1] = 0;\n }\n }\n\n workInfluences.sort(numericalSort);\n var _morphTargets = geometry.morphAttributes.position;\n var _morphNormals = geometry.morphAttributes.normal;\n var _morphInfluencesSum = 0;\n\n for (var _i35 = 0; _i35 < 8; _i35++) {\n var _influence = workInfluences[_i35];\n var index = _influence[0];\n var _value3 = _influence[1];\n\n if (index !== Number.MAX_SAFE_INTEGER && _value3) {\n if (_morphTargets && geometry.getAttribute('morphTarget' + _i35) !== _morphTargets[index]) {\n geometry.setAttribute('morphTarget' + _i35, _morphTargets[index]);\n }\n\n if (_morphNormals && geometry.getAttribute('morphNormal' + _i35) !== _morphNormals[index]) {\n geometry.setAttribute('morphNormal' + _i35, _morphNormals[index]);\n }\n\n morphInfluences[_i35] = _value3;\n _morphInfluencesSum += _value3;\n } else {\n if (_morphTargets && geometry.hasAttribute('morphTarget' + _i35) === true) {\n geometry.deleteAttribute('morphTarget' + _i35);\n }\n\n if (_morphNormals && geometry.hasAttribute('morphNormal' + _i35) === true) {\n geometry.deleteAttribute('morphNormal' + _i35);\n }\n\n morphInfluences[_i35] = 0;\n }\n } // GLSL shader uses formula baseinfluence * base + sum(target * influence)\n // This allows us to switch between absolute morphs and relative morphs without changing shader code\n // When baseinfluence = 1 - sum(influence), the above is equivalent to sum((target - base) * influence)\n\n\n var _morphBaseInfluence = geometry.morphTargetsRelative ? 1 : 1 - _morphInfluencesSum;\n\n program.getUniforms().setValue(gl, 'morphTargetBaseInfluence', _morphBaseInfluence);\n program.getUniforms().setValue(gl, 'morphTargetInfluences', morphInfluences);\n }\n }\n\n return {\n update: update\n };\n}\n\nfunction WebGLObjects(gl, geometries, attributes, info) {\n var updateMap = new WeakMap();\n\n function update(object) {\n var frame = info.render.frame;\n var geometry = object.geometry;\n var buffergeometry = geometries.get(object, geometry); // Update once per frame\n\n if (updateMap.get(buffergeometry) !== frame) {\n geometries.update(buffergeometry);\n updateMap.set(buffergeometry, frame);\n }\n\n if (object.isInstancedMesh) {\n if (object.hasEventListener('dispose', onInstancedMeshDispose) === false) {\n object.addEventListener('dispose', onInstancedMeshDispose);\n }\n\n attributes.update(object.instanceMatrix, gl.ARRAY_BUFFER);\n\n if (object.instanceColor !== null) {\n attributes.update(object.instanceColor, gl.ARRAY_BUFFER);\n }\n }\n\n return buffergeometry;\n }\n\n function dispose() {\n updateMap = new WeakMap();\n }\n\n function onInstancedMeshDispose(event) {\n var instancedMesh = event.target;\n instancedMesh.removeEventListener('dispose', onInstancedMeshDispose);\n attributes.remove(instancedMesh.instanceMatrix);\n if (instancedMesh.instanceColor !== null) attributes.remove(instancedMesh.instanceColor);\n }\n\n return {\n update: update,\n dispose: dispose\n };\n}\n/**\n * Uniforms of a program.\n * Those form a tree structure with a special top-level container for the root,\n * which you get by calling 'new WebGLUniforms( gl, program )'.\n *\n *\n * Properties of inner nodes including the top-level container:\n *\n * .seq - array of nested uniforms\n * .map - nested uniforms by name\n *\n *\n * Methods of all nodes except the top-level container:\n *\n * .setValue( gl, value, [textures] )\n *\n * \t\tuploads a uniform value(s)\n * \tthe 'textures' parameter is needed for sampler uniforms\n *\n *\n * Static methods of the top-level container (textures factorizations):\n *\n * .upload( gl, seq, values, textures )\n *\n * \t\tsets uniforms in 'seq' to 'values[id].value'\n *\n * .seqWithValue( seq, values ) : filteredSeq\n *\n * \t\tfilters 'seq' entries with corresponding entry in values\n *\n *\n * Methods of the top-level container (textures factorizations):\n *\n * .setValue( gl, name, value, textures )\n *\n * \t\tsets uniform with name 'name' to 'value'\n *\n * .setOptional( gl, obj, prop )\n *\n * \t\tlike .set for an optional property of the object\n *\n */\n\n\nvar emptyTexture = /*@__PURE__*/new Texture();\nvar emptyArrayTexture = /*@__PURE__*/new DataArrayTexture();\nvar empty3dTexture = /*@__PURE__*/new Data3DTexture();\nvar emptyCubeTexture = /*@__PURE__*/new CubeTexture(); // --- Utilities ---\n// Array Caches (provide typed arrays for temporary by size)\n\nvar arrayCacheF32 = [];\nvar arrayCacheI32 = []; // Float32Array caches used for uploading Matrix uniforms\n\nvar mat4array = new Float32Array(16);\nvar mat3array = new Float32Array(9);\nvar mat2array = new Float32Array(4); // Flattening for arrays of vectors and matrices\n\nfunction flatten(array, nBlocks, blockSize) {\n var firstElem = array[0];\n if (firstElem <= 0 || firstElem > 0) return array; // unoptimized: ! isNaN( firstElem )\n // see http://jacksondunstan.com/articles/983\n\n var n = nBlocks * blockSize;\n var r = arrayCacheF32[n];\n\n if (r === undefined) {\n r = new Float32Array(n);\n arrayCacheF32[n] = r;\n }\n\n if (nBlocks !== 0) {\n firstElem.toArray(r, 0);\n\n for (var i = 1, offset = 0; i !== nBlocks; ++i) {\n offset += blockSize;\n array[i].toArray(r, offset);\n }\n }\n\n return r;\n}\n\nfunction arraysEqual(a, b) {\n if (a.length !== b.length) return false;\n\n for (var i = 0, l = a.length; i < l; i++) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\n}\n\nfunction copyArray(a, b) {\n for (var i = 0, l = b.length; i < l; i++) {\n a[i] = b[i];\n }\n} // Texture unit allocation\n\n\nfunction allocTexUnits(textures, n) {\n var r = arrayCacheI32[n];\n\n if (r === undefined) {\n r = new Int32Array(n);\n arrayCacheI32[n] = r;\n }\n\n for (var i = 0; i !== n; ++i) {\n r[i] = textures.allocateTextureUnit();\n }\n\n return r;\n} // --- Setters ---\n// Note: Defining these methods externally, because they come in a bunch\n// and this way their names minify.\n// Single scalar\n\n\nfunction setValueV1f(gl, v) {\n var cache = this.cache;\n if (cache[0] === v) return;\n gl.uniform1f(this.addr, v);\n cache[0] = v;\n} // Single float vector (from flat array or THREE.VectorN)\n\n\nfunction setValueV2f(gl, v) {\n var cache = this.cache;\n\n if (v.x !== undefined) {\n if (cache[0] !== v.x || cache[1] !== v.y) {\n gl.uniform2f(this.addr, v.x, v.y);\n cache[0] = v.x;\n cache[1] = v.y;\n }\n } else {\n if (arraysEqual(cache, v)) return;\n gl.uniform2fv(this.addr, v);\n copyArray(cache, v);\n }\n}\n\nfunction setValueV3f(gl, v) {\n var cache = this.cache;\n\n if (v.x !== undefined) {\n if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z) {\n gl.uniform3f(this.addr, v.x, v.y, v.z);\n cache[0] = v.x;\n cache[1] = v.y;\n cache[2] = v.z;\n }\n } else if (v.r !== undefined) {\n if (cache[0] !== v.r || cache[1] !== v.g || cache[2] !== v.b) {\n gl.uniform3f(this.addr, v.r, v.g, v.b);\n cache[0] = v.r;\n cache[1] = v.g;\n cache[2] = v.b;\n }\n } else {\n if (arraysEqual(cache, v)) return;\n gl.uniform3fv(this.addr, v);\n copyArray(cache, v);\n }\n}\n\nfunction setValueV4f(gl, v) {\n var cache = this.cache;\n\n if (v.x !== undefined) {\n if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z || cache[3] !== v.w) {\n gl.uniform4f(this.addr, v.x, v.y, v.z, v.w);\n cache[0] = v.x;\n cache[1] = v.y;\n cache[2] = v.z;\n cache[3] = v.w;\n }\n } else {\n if (arraysEqual(cache, v)) return;\n gl.uniform4fv(this.addr, v);\n copyArray(cache, v);\n }\n} // Single matrix (from flat array or THREE.MatrixN)\n\n\nfunction setValueM2(gl, v) {\n var cache = this.cache;\n var elements = v.elements;\n\n if (elements === undefined) {\n if (arraysEqual(cache, v)) return;\n gl.uniformMatrix2fv(this.addr, false, v);\n copyArray(cache, v);\n } else {\n if (arraysEqual(cache, elements)) return;\n mat2array.set(elements);\n gl.uniformMatrix2fv(this.addr, false, mat2array);\n copyArray(cache, elements);\n }\n}\n\nfunction setValueM3(gl, v) {\n var cache = this.cache;\n var elements = v.elements;\n\n if (elements === undefined) {\n if (arraysEqual(cache, v)) return;\n gl.uniformMatrix3fv(this.addr, false, v);\n copyArray(cache, v);\n } else {\n if (arraysEqual(cache, elements)) return;\n mat3array.set(elements);\n gl.uniformMatrix3fv(this.addr, false, mat3array);\n copyArray(cache, elements);\n }\n}\n\nfunction setValueM4(gl, v) {\n var cache = this.cache;\n var elements = v.elements;\n\n if (elements === undefined) {\n if (arraysEqual(cache, v)) return;\n gl.uniformMatrix4fv(this.addr, false, v);\n copyArray(cache, v);\n } else {\n if (arraysEqual(cache, elements)) return;\n mat4array.set(elements);\n gl.uniformMatrix4fv(this.addr, false, mat4array);\n copyArray(cache, elements);\n }\n} // Single integer / boolean\n\n\nfunction setValueV1i(gl, v) {\n var cache = this.cache;\n if (cache[0] === v) return;\n gl.uniform1i(this.addr, v);\n cache[0] = v;\n} // Single integer / boolean vector (from flat array or THREE.VectorN)\n\n\nfunction setValueV2i(gl, v) {\n var cache = this.cache;\n\n if (v.x !== undefined) {\n if (cache[0] !== v.x || cache[1] !== v.y) {\n gl.uniform2i(this.addr, v.x, v.y);\n cache[0] = v.x;\n cache[1] = v.y;\n }\n } else {\n if (arraysEqual(cache, v)) return;\n gl.uniform2iv(this.addr, v);\n copyArray(cache, v);\n }\n}\n\nfunction setValueV3i(gl, v) {\n var cache = this.cache;\n\n if (v.x !== undefined) {\n if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z) {\n gl.uniform3i(this.addr, v.x, v.y, v.z);\n cache[0] = v.x;\n cache[1] = v.y;\n cache[2] = v.z;\n }\n } else {\n if (arraysEqual(cache, v)) return;\n gl.uniform3iv(this.addr, v);\n copyArray(cache, v);\n }\n}\n\nfunction setValueV4i(gl, v) {\n var cache = this.cache;\n\n if (v.x !== undefined) {\n if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z || cache[3] !== v.w) {\n gl.uniform4i(this.addr, v.x, v.y, v.z, v.w);\n cache[0] = v.x;\n cache[1] = v.y;\n cache[2] = v.z;\n cache[3] = v.w;\n }\n } else {\n if (arraysEqual(cache, v)) return;\n gl.uniform4iv(this.addr, v);\n copyArray(cache, v);\n }\n} // Single unsigned integer\n\n\nfunction setValueV1ui(gl, v) {\n var cache = this.cache;\n if (cache[0] === v) return;\n gl.uniform1ui(this.addr, v);\n cache[0] = v;\n} // Single unsigned integer vector (from flat array or THREE.VectorN)\n\n\nfunction setValueV2ui(gl, v) {\n var cache = this.cache;\n\n if (v.x !== undefined) {\n if (cache[0] !== v.x || cache[1] !== v.y) {\n gl.uniform2ui(this.addr, v.x, v.y);\n cache[0] = v.x;\n cache[1] = v.y;\n }\n } else {\n if (arraysEqual(cache, v)) return;\n gl.uniform2uiv(this.addr, v);\n copyArray(cache, v);\n }\n}\n\nfunction setValueV3ui(gl, v) {\n var cache = this.cache;\n\n if (v.x !== undefined) {\n if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z) {\n gl.uniform3ui(this.addr, v.x, v.y, v.z);\n cache[0] = v.x;\n cache[1] = v.y;\n cache[2] = v.z;\n }\n } else {\n if (arraysEqual(cache, v)) return;\n gl.uniform3uiv(this.addr, v);\n copyArray(cache, v);\n }\n}\n\nfunction setValueV4ui(gl, v) {\n var cache = this.cache;\n\n if (v.x !== undefined) {\n if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z || cache[3] !== v.w) {\n gl.uniform4ui(this.addr, v.x, v.y, v.z, v.w);\n cache[0] = v.x;\n cache[1] = v.y;\n cache[2] = v.z;\n cache[3] = v.w;\n }\n } else {\n if (arraysEqual(cache, v)) return;\n gl.uniform4uiv(this.addr, v);\n copyArray(cache, v);\n }\n} // Single texture (2D / Cube)\n\n\nfunction setValueT1(gl, v, textures) {\n var cache = this.cache;\n var unit = textures.allocateTextureUnit();\n\n if (cache[0] !== unit) {\n gl.uniform1i(this.addr, unit);\n cache[0] = unit;\n }\n\n textures.setTexture2D(v || emptyTexture, unit);\n}\n\nfunction setValueT3D1(gl, v, textures) {\n var cache = this.cache;\n var unit = textures.allocateTextureUnit();\n\n if (cache[0] !== unit) {\n gl.uniform1i(this.addr, unit);\n cache[0] = unit;\n }\n\n textures.setTexture3D(v || empty3dTexture, unit);\n}\n\nfunction setValueT6(gl, v, textures) {\n var cache = this.cache;\n var unit = textures.allocateTextureUnit();\n\n if (cache[0] !== unit) {\n gl.uniform1i(this.addr, unit);\n cache[0] = unit;\n }\n\n textures.setTextureCube(v || emptyCubeTexture, unit);\n}\n\nfunction setValueT2DArray1(gl, v, textures) {\n var cache = this.cache;\n var unit = textures.allocateTextureUnit();\n\n if (cache[0] !== unit) {\n gl.uniform1i(this.addr, unit);\n cache[0] = unit;\n }\n\n textures.setTexture2DArray(v || emptyArrayTexture, unit);\n} // Helper to pick the right setter for the singular case\n\n\nfunction getSingularSetter(type) {\n switch (type) {\n case 0x1406:\n return setValueV1f;\n // FLOAT\n\n case 0x8b50:\n return setValueV2f;\n // _VEC2\n\n case 0x8b51:\n return setValueV3f;\n // _VEC3\n\n case 0x8b52:\n return setValueV4f;\n // _VEC4\n\n case 0x8b5a:\n return setValueM2;\n // _MAT2\n\n case 0x8b5b:\n return setValueM3;\n // _MAT3\n\n case 0x8b5c:\n return setValueM4;\n // _MAT4\n\n case 0x1404:\n case 0x8b56:\n return setValueV1i;\n // INT, BOOL\n\n case 0x8b53:\n case 0x8b57:\n return setValueV2i;\n // _VEC2\n\n case 0x8b54:\n case 0x8b58:\n return setValueV3i;\n // _VEC3\n\n case 0x8b55:\n case 0x8b59:\n return setValueV4i;\n // _VEC4\n\n case 0x1405:\n return setValueV1ui;\n // UINT\n\n case 0x8dc6:\n return setValueV2ui;\n // _VEC2\n\n case 0x8dc7:\n return setValueV3ui;\n // _VEC3\n\n case 0x8dc8:\n return setValueV4ui;\n // _VEC4\n\n case 0x8b5e: // SAMPLER_2D\n\n case 0x8d66: // SAMPLER_EXTERNAL_OES\n\n case 0x8dca: // INT_SAMPLER_2D\n\n case 0x8dd2: // UNSIGNED_INT_SAMPLER_2D\n\n case 0x8b62:\n // SAMPLER_2D_SHADOW\n return setValueT1;\n\n case 0x8b5f: // SAMPLER_3D\n\n case 0x8dcb: // INT_SAMPLER_3D\n\n case 0x8dd3:\n // UNSIGNED_INT_SAMPLER_3D\n return setValueT3D1;\n\n case 0x8b60: // SAMPLER_CUBE\n\n case 0x8dcc: // INT_SAMPLER_CUBE\n\n case 0x8dd4: // UNSIGNED_INT_SAMPLER_CUBE\n\n case 0x8dc5:\n // SAMPLER_CUBE_SHADOW\n return setValueT6;\n\n case 0x8dc1: // SAMPLER_2D_ARRAY\n\n case 0x8dcf: // INT_SAMPLER_2D_ARRAY\n\n case 0x8dd7: // UNSIGNED_INT_SAMPLER_2D_ARRAY\n\n case 0x8dc4:\n // SAMPLER_2D_ARRAY_SHADOW\n return setValueT2DArray1;\n }\n} // Array of scalars\n\n\nfunction setValueV1fArray(gl, v) {\n gl.uniform1fv(this.addr, v);\n} // Array of vectors (from flat array or array of THREE.VectorN)\n\n\nfunction setValueV2fArray(gl, v) {\n var data = flatten(v, this.size, 2);\n gl.uniform2fv(this.addr, data);\n}\n\nfunction setValueV3fArray(gl, v) {\n var data = flatten(v, this.size, 3);\n gl.uniform3fv(this.addr, data);\n}\n\nfunction setValueV4fArray(gl, v) {\n var data = flatten(v, this.size, 4);\n gl.uniform4fv(this.addr, data);\n} // Array of matrices (from flat array or array of THREE.MatrixN)\n\n\nfunction setValueM2Array(gl, v) {\n var data = flatten(v, this.size, 4);\n gl.uniformMatrix2fv(this.addr, false, data);\n}\n\nfunction setValueM3Array(gl, v) {\n var data = flatten(v, this.size, 9);\n gl.uniformMatrix3fv(this.addr, false, data);\n}\n\nfunction setValueM4Array(gl, v) {\n var data = flatten(v, this.size, 16);\n gl.uniformMatrix4fv(this.addr, false, data);\n} // Array of integer / boolean\n\n\nfunction setValueV1iArray(gl, v) {\n gl.uniform1iv(this.addr, v);\n} // Array of integer / boolean vectors (from flat array)\n\n\nfunction setValueV2iArray(gl, v) {\n gl.uniform2iv(this.addr, v);\n}\n\nfunction setValueV3iArray(gl, v) {\n gl.uniform3iv(this.addr, v);\n}\n\nfunction setValueV4iArray(gl, v) {\n gl.uniform4iv(this.addr, v);\n} // Array of unsigned integer\n\n\nfunction setValueV1uiArray(gl, v) {\n gl.uniform1uiv(this.addr, v);\n} // Array of unsigned integer vectors (from flat array)\n\n\nfunction setValueV2uiArray(gl, v) {\n gl.uniform2uiv(this.addr, v);\n}\n\nfunction setValueV3uiArray(gl, v) {\n gl.uniform3uiv(this.addr, v);\n}\n\nfunction setValueV4uiArray(gl, v) {\n gl.uniform4uiv(this.addr, v);\n} // Array of textures (2D / 3D / Cube / 2DArray)\n\n\nfunction setValueT1Array(gl, v, textures) {\n var cache = this.cache;\n var n = v.length;\n var units = allocTexUnits(textures, n);\n\n if (!arraysEqual(cache, units)) {\n gl.uniform1iv(this.addr, units);\n copyArray(cache, units);\n }\n\n for (var i = 0; i !== n; ++i) {\n textures.setTexture2D(v[i] || emptyTexture, units[i]);\n }\n}\n\nfunction setValueT3DArray(gl, v, textures) {\n var cache = this.cache;\n var n = v.length;\n var units = allocTexUnits(textures, n);\n\n if (!arraysEqual(cache, units)) {\n gl.uniform1iv(this.addr, units);\n copyArray(cache, units);\n }\n\n for (var i = 0; i !== n; ++i) {\n textures.setTexture3D(v[i] || empty3dTexture, units[i]);\n }\n}\n\nfunction setValueT6Array(gl, v, textures) {\n var cache = this.cache;\n var n = v.length;\n var units = allocTexUnits(textures, n);\n\n if (!arraysEqual(cache, units)) {\n gl.uniform1iv(this.addr, units);\n copyArray(cache, units);\n }\n\n for (var i = 0; i !== n; ++i) {\n textures.setTextureCube(v[i] || emptyCubeTexture, units[i]);\n }\n}\n\nfunction setValueT2DArrayArray(gl, v, textures) {\n var cache = this.cache;\n var n = v.length;\n var units = allocTexUnits(textures, n);\n\n if (!arraysEqual(cache, units)) {\n gl.uniform1iv(this.addr, units);\n copyArray(cache, units);\n }\n\n for (var i = 0; i !== n; ++i) {\n textures.setTexture2DArray(v[i] || emptyArrayTexture, units[i]);\n }\n} // Helper to pick the right setter for a pure (bottom-level) array\n\n\nfunction getPureArraySetter(type) {\n switch (type) {\n case 0x1406:\n return setValueV1fArray;\n // FLOAT\n\n case 0x8b50:\n return setValueV2fArray;\n // _VEC2\n\n case 0x8b51:\n return setValueV3fArray;\n // _VEC3\n\n case 0x8b52:\n return setValueV4fArray;\n // _VEC4\n\n case 0x8b5a:\n return setValueM2Array;\n // _MAT2\n\n case 0x8b5b:\n return setValueM3Array;\n // _MAT3\n\n case 0x8b5c:\n return setValueM4Array;\n // _MAT4\n\n case 0x1404:\n case 0x8b56:\n return setValueV1iArray;\n // INT, BOOL\n\n case 0x8b53:\n case 0x8b57:\n return setValueV2iArray;\n // _VEC2\n\n case 0x8b54:\n case 0x8b58:\n return setValueV3iArray;\n // _VEC3\n\n case 0x8b55:\n case 0x8b59:\n return setValueV4iArray;\n // _VEC4\n\n case 0x1405:\n return setValueV1uiArray;\n // UINT\n\n case 0x8dc6:\n return setValueV2uiArray;\n // _VEC2\n\n case 0x8dc7:\n return setValueV3uiArray;\n // _VEC3\n\n case 0x8dc8:\n return setValueV4uiArray;\n // _VEC4\n\n case 0x8b5e: // SAMPLER_2D\n\n case 0x8d66: // SAMPLER_EXTERNAL_OES\n\n case 0x8dca: // INT_SAMPLER_2D\n\n case 0x8dd2: // UNSIGNED_INT_SAMPLER_2D\n\n case 0x8b62:\n // SAMPLER_2D_SHADOW\n return setValueT1Array;\n\n case 0x8b5f: // SAMPLER_3D\n\n case 0x8dcb: // INT_SAMPLER_3D\n\n case 0x8dd3:\n // UNSIGNED_INT_SAMPLER_3D\n return setValueT3DArray;\n\n case 0x8b60: // SAMPLER_CUBE\n\n case 0x8dcc: // INT_SAMPLER_CUBE\n\n case 0x8dd4: // UNSIGNED_INT_SAMPLER_CUBE\n\n case 0x8dc5:\n // SAMPLER_CUBE_SHADOW\n return setValueT6Array;\n\n case 0x8dc1: // SAMPLER_2D_ARRAY\n\n case 0x8dcf: // INT_SAMPLER_2D_ARRAY\n\n case 0x8dd7: // UNSIGNED_INT_SAMPLER_2D_ARRAY\n\n case 0x8dc4:\n // SAMPLER_2D_ARRAY_SHADOW\n return setValueT2DArrayArray;\n }\n} // --- Uniform Classes ---\n\n\nvar SingleUniform = /*#__PURE__*/_createClass(function SingleUniform(id, activeInfo, addr) {\n _classCallCheck(this, SingleUniform);\n\n this.id = id;\n this.addr = addr;\n this.cache = [];\n this.setValue = getSingularSetter(activeInfo.type); // this.path = activeInfo.name; // DEBUG\n});\n\nvar PureArrayUniform = /*#__PURE__*/_createClass(function PureArrayUniform(id, activeInfo, addr) {\n _classCallCheck(this, PureArrayUniform);\n\n this.id = id;\n this.addr = addr;\n this.cache = [];\n this.size = activeInfo.size;\n this.setValue = getPureArraySetter(activeInfo.type); // this.path = activeInfo.name; // DEBUG\n});\n\nvar StructuredUniform = /*#__PURE__*/function () {\n function StructuredUniform(id) {\n _classCallCheck(this, StructuredUniform);\n\n this.id = id;\n this.seq = [];\n this.map = {};\n }\n\n _createClass(StructuredUniform, [{\n key: \"setValue\",\n value: function setValue(gl, value, textures) {\n var seq = this.seq;\n\n for (var i = 0, n = seq.length; i !== n; ++i) {\n var u = seq[i];\n u.setValue(gl, value[u.id], textures);\n }\n }\n }]);\n\n return StructuredUniform;\n}(); // --- Top-level ---\n// Parser - builds up the property tree from the path strings\n\n\nvar RePathPart = /(\\w+)(\\])?(\\[|\\.)?/g; // extracts\n// \t- the identifier (member name or array index)\n// - followed by an optional right bracket (found when array index)\n// - followed by an optional left bracket or dot (type of subscript)\n//\n// Note: These portions can be read in a non-overlapping fashion and\n// allow straightforward parsing of the hierarchy that WebGL encodes\n// in the uniform names.\n\nfunction addUniform(container, uniformObject) {\n container.seq.push(uniformObject);\n container.map[uniformObject.id] = uniformObject;\n}\n\nfunction parseUniform(activeInfo, addr, container) {\n var path = activeInfo.name,\n pathLength = path.length; // reset RegExp object, because of the early exit of a previous run\n\n RePathPart.lastIndex = 0;\n\n while (true) {\n var match = RePathPart.exec(path),\n matchEnd = RePathPart.lastIndex;\n var _id2 = match[1];\n var idIsIndex = match[2] === ']',\n subscript = match[3];\n if (idIsIndex) _id2 = _id2 | 0; // convert to integer\n\n if (subscript === undefined || subscript === '[' && matchEnd + 2 === pathLength) {\n // bare name or \"pure\" bottom-level array \"[0]\" suffix\n addUniform(container, subscript === undefined ? new SingleUniform(_id2, activeInfo, addr) : new PureArrayUniform(_id2, activeInfo, addr));\n break;\n } else {\n // step into inner node / create it in case it doesn't exist\n var map = container.map;\n var next = map[_id2];\n\n if (next === undefined) {\n next = new StructuredUniform(_id2);\n addUniform(container, next);\n }\n\n container = next;\n }\n }\n} // Root Container\n\n\nvar WebGLUniforms = /*#__PURE__*/function () {\n function WebGLUniforms(gl, program) {\n _classCallCheck(this, WebGLUniforms);\n\n this.seq = [];\n this.map = {};\n var n = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);\n\n for (var i = 0; i < n; ++i) {\n var info = gl.getActiveUniform(program, i),\n addr = gl.getUniformLocation(program, info.name);\n parseUniform(info, addr, this);\n }\n }\n\n _createClass(WebGLUniforms, [{\n key: \"setValue\",\n value: function setValue(gl, name, value, textures) {\n var u = this.map[name];\n if (u !== undefined) u.setValue(gl, value, textures);\n }\n }, {\n key: \"setOptional\",\n value: function setOptional(gl, object, name) {\n var v = object[name];\n if (v !== undefined) this.setValue(gl, name, v);\n }\n }], [{\n key: \"upload\",\n value: function upload(gl, seq, values, textures) {\n for (var i = 0, n = seq.length; i !== n; ++i) {\n var u = seq[i],\n v = values[u.id];\n\n if (v.needsUpdate !== false) {\n // note: always updating when .needsUpdate is undefined\n u.setValue(gl, v.value, textures);\n }\n }\n }\n }, {\n key: \"seqWithValue\",\n value: function seqWithValue(seq, values) {\n var r = [];\n\n for (var i = 0, n = seq.length; i !== n; ++i) {\n var u = seq[i];\n if (u.id in values) r.push(u);\n }\n\n return r;\n }\n }]);\n\n return WebGLUniforms;\n}();\n\nfunction WebGLShader(gl, type, string) {\n var shader = gl.createShader(type);\n gl.shaderSource(shader, string);\n gl.compileShader(shader);\n return shader;\n}\n\nvar programIdCount = 0;\n\nfunction handleSource(string, errorLine) {\n var lines = string.split('\\n');\n var lines2 = [];\n var from = Math.max(errorLine - 6, 0);\n var to = Math.min(errorLine + 6, lines.length);\n\n for (var i = from; i < to; i++) {\n var line = i + 1;\n lines2.push(\"\".concat(line === errorLine ? '>' : ' ', \" \").concat(line, \": \").concat(lines[i]));\n }\n\n return lines2.join('\\n');\n}\n\nfunction getEncodingComponents(colorSpace) {\n switch (colorSpace) {\n case LinearSRGBColorSpace:\n return ['Linear', '( value )'];\n\n case SRGBColorSpace:\n return ['sRGB', '( value )'];\n\n default:\n console.warn('THREE.WebGLProgram: Unsupported color space:', colorSpace);\n return ['Linear', '( value )'];\n }\n}\n\nfunction getShaderErrors(gl, shader, type) {\n var status = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n var errors = gl.getShaderInfoLog(shader).trim();\n if (status && errors === '') return '';\n var errorMatches = /ERROR: 0:(\\d+)/.exec(errors);\n\n if (errorMatches) {\n // --enable-privileged-webgl-extension\n // console.log( '**' + type + '**', gl.getExtension( 'WEBGL_debug_shaders' ).getTranslatedShaderSource( shader ) );\n var errorLine = parseInt(errorMatches[1]);\n return type.toUpperCase() + '\\n\\n' + errors + '\\n\\n' + handleSource(gl.getShaderSource(shader), errorLine);\n } else {\n return errors;\n }\n}\n\nfunction getTexelEncodingFunction(functionName, colorSpace) {\n var components = getEncodingComponents(colorSpace);\n return 'vec4 ' + functionName + '( vec4 value ) { return LinearTo' + components[0] + components[1] + '; }';\n}\n\nfunction getToneMappingFunction(functionName, toneMapping) {\n var toneMappingName;\n\n switch (toneMapping) {\n case LinearToneMapping:\n toneMappingName = 'Linear';\n break;\n\n case ReinhardToneMapping:\n toneMappingName = 'Reinhard';\n break;\n\n case CineonToneMapping:\n toneMappingName = 'OptimizedCineon';\n break;\n\n case ACESFilmicToneMapping:\n toneMappingName = 'ACESFilmic';\n break;\n\n case CustomToneMapping:\n toneMappingName = 'Custom';\n break;\n\n default:\n console.warn('THREE.WebGLProgram: Unsupported toneMapping:', toneMapping);\n toneMappingName = 'Linear';\n }\n\n return 'vec3 ' + functionName + '( vec3 color ) { return ' + toneMappingName + 'ToneMapping( color ); }';\n}\n\nfunction generateExtensions(parameters) {\n var chunks = [parameters.extensionDerivatives || !!parameters.envMapCubeUVHeight || parameters.bumpMap || parameters.normalMapTangentSpace || parameters.clearcoatNormalMap || parameters.flatShading || parameters.shaderID === 'physical' ? '#extension GL_OES_standard_derivatives : enable' : '', (parameters.extensionFragDepth || parameters.logarithmicDepthBuffer) && parameters.rendererExtensionFragDepth ? '#extension GL_EXT_frag_depth : enable' : '', parameters.extensionDrawBuffers && parameters.rendererExtensionDrawBuffers ? '#extension GL_EXT_draw_buffers : require' : '', (parameters.extensionShaderTextureLOD || parameters.envMap || parameters.transmission) && parameters.rendererExtensionShaderTextureLod ? '#extension GL_EXT_shader_texture_lod : enable' : ''];\n return chunks.filter(filterEmptyLine).join('\\n');\n}\n\nfunction generateDefines(defines) {\n var chunks = [];\n\n for (var name in defines) {\n var _value4 = defines[name];\n if (_value4 === false) continue;\n chunks.push('#define ' + name + ' ' + _value4);\n }\n\n return chunks.join('\\n');\n}\n\nfunction fetchAttributeLocations(gl, program) {\n var attributes = {};\n var n = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);\n\n for (var i = 0; i < n; i++) {\n var info = gl.getActiveAttrib(program, i);\n var name = info.name;\n var locationSize = 1;\n if (info.type === gl.FLOAT_MAT2) locationSize = 2;\n if (info.type === gl.FLOAT_MAT3) locationSize = 3;\n if (info.type === gl.FLOAT_MAT4) locationSize = 4; // console.log( 'THREE.WebGLProgram: ACTIVE VERTEX ATTRIBUTE:', name, i );\n\n attributes[name] = {\n type: info.type,\n location: gl.getAttribLocation(program, name),\n locationSize: locationSize\n };\n }\n\n return attributes;\n}\n\nfunction filterEmptyLine(string) {\n return string !== '';\n}\n\nfunction replaceLightNums(string, parameters) {\n var numSpotLightCoords = parameters.numSpotLightShadows + parameters.numSpotLightMaps - parameters.numSpotLightShadowsWithMaps;\n return string.replace(/NUM_DIR_LIGHTS/g, parameters.numDirLights).replace(/NUM_SPOT_LIGHTS/g, parameters.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g, parameters.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g, numSpotLightCoords).replace(/NUM_RECT_AREA_LIGHTS/g, parameters.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g, parameters.numPointLights).replace(/NUM_HEMI_LIGHTS/g, parameters.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g, parameters.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g, parameters.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g, parameters.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g, parameters.numPointLightShadows);\n}\n\nfunction replaceClippingPlaneNums(string, parameters) {\n return string.replace(/NUM_CLIPPING_PLANES/g, parameters.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g, parameters.numClippingPlanes - parameters.numClipIntersection);\n} // Resolve Includes\n\n\nvar includePattern = /^[ \\t]*#include +<([\\w\\d./]+)>/gm;\n\nfunction resolveIncludes(string) {\n return string.replace(includePattern, includeReplacer);\n}\n\nfunction includeReplacer(match, include) {\n var string = ShaderChunk[include];\n\n if (string === undefined) {\n throw new Error('Can not resolve #include <' + include + '>');\n }\n\n return resolveIncludes(string);\n} // Unroll Loops\n\n\nvar unrollLoopPattern = /#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;\n\nfunction unrollLoops(string) {\n return string.replace(unrollLoopPattern, loopReplacer);\n}\n\nfunction loopReplacer(match, start, end, snippet) {\n var string = '';\n\n for (var i = parseInt(start); i < parseInt(end); i++) {\n string += snippet.replace(/\\[\\s*i\\s*\\]/g, '[ ' + i + ' ]').replace(/UNROLLED_LOOP_INDEX/g, i);\n }\n\n return string;\n} //\n\n\nfunction generatePrecision(parameters) {\n var precisionstring = 'precision ' + parameters.precision + ' float;\\nprecision ' + parameters.precision + ' int;';\n\n if (parameters.precision === 'highp') {\n precisionstring += '\\n#define HIGH_PRECISION';\n } else if (parameters.precision === 'mediump') {\n precisionstring += '\\n#define MEDIUM_PRECISION';\n } else if (parameters.precision === 'lowp') {\n precisionstring += '\\n#define LOW_PRECISION';\n }\n\n return precisionstring;\n}\n\nfunction generateShadowMapTypeDefine(parameters) {\n var shadowMapTypeDefine = 'SHADOWMAP_TYPE_BASIC';\n\n if (parameters.shadowMapType === PCFShadowMap) {\n shadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF';\n } else if (parameters.shadowMapType === PCFSoftShadowMap) {\n shadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF_SOFT';\n } else if (parameters.shadowMapType === VSMShadowMap) {\n shadowMapTypeDefine = 'SHADOWMAP_TYPE_VSM';\n }\n\n return shadowMapTypeDefine;\n}\n\nfunction generateEnvMapTypeDefine(parameters) {\n var envMapTypeDefine = 'ENVMAP_TYPE_CUBE';\n\n if (parameters.envMap) {\n switch (parameters.envMapMode) {\n case CubeReflectionMapping:\n case CubeRefractionMapping:\n envMapTypeDefine = 'ENVMAP_TYPE_CUBE';\n break;\n\n case CubeUVReflectionMapping:\n envMapTypeDefine = 'ENVMAP_TYPE_CUBE_UV';\n break;\n }\n }\n\n return envMapTypeDefine;\n}\n\nfunction generateEnvMapModeDefine(parameters) {\n var envMapModeDefine = 'ENVMAP_MODE_REFLECTION';\n\n if (parameters.envMap) {\n switch (parameters.envMapMode) {\n case CubeRefractionMapping:\n envMapModeDefine = 'ENVMAP_MODE_REFRACTION';\n break;\n }\n }\n\n return envMapModeDefine;\n}\n\nfunction generateEnvMapBlendingDefine(parameters) {\n var envMapBlendingDefine = 'ENVMAP_BLENDING_NONE';\n\n if (parameters.envMap) {\n switch (parameters.combine) {\n case MultiplyOperation:\n envMapBlendingDefine = 'ENVMAP_BLENDING_MULTIPLY';\n break;\n\n case MixOperation:\n envMapBlendingDefine = 'ENVMAP_BLENDING_MIX';\n break;\n\n case AddOperation:\n envMapBlendingDefine = 'ENVMAP_BLENDING_ADD';\n break;\n }\n }\n\n return envMapBlendingDefine;\n}\n\nfunction generateCubeUVSize(parameters) {\n var imageHeight = parameters.envMapCubeUVHeight;\n if (imageHeight === null) return null;\n var maxMip = Math.log2(imageHeight) - 2;\n var texelHeight = 1.0 / imageHeight;\n var texelWidth = 1.0 / (3 * Math.max(Math.pow(2, maxMip), 7 * 16));\n return {\n texelWidth: texelWidth,\n texelHeight: texelHeight,\n maxMip: maxMip\n };\n}\n\nfunction WebGLProgram(renderer, cacheKey, parameters, bindingStates) {\n // TODO Send this event to Three.js DevTools\n // console.log( 'WebGLProgram', cacheKey );\n var gl = renderer.getContext();\n var defines = parameters.defines;\n var vertexShader = parameters.vertexShader;\n var fragmentShader = parameters.fragmentShader;\n var shadowMapTypeDefine = generateShadowMapTypeDefine(parameters);\n var envMapTypeDefine = generateEnvMapTypeDefine(parameters);\n var envMapModeDefine = generateEnvMapModeDefine(parameters);\n var envMapBlendingDefine = generateEnvMapBlendingDefine(parameters);\n var envMapCubeUVSize = generateCubeUVSize(parameters);\n var customExtensions = parameters.isWebGL2 ? '' : generateExtensions(parameters);\n var customDefines = generateDefines(defines);\n var program = gl.createProgram();\n var prefixVertex, prefixFragment;\n var versionString = parameters.glslVersion ? '#version ' + parameters.glslVersion + '\\n' : '';\n\n if (parameters.isRawShaderMaterial) {\n prefixVertex = [customDefines].filter(filterEmptyLine).join('\\n');\n\n if (prefixVertex.length > 0) {\n prefixVertex += '\\n';\n }\n\n prefixFragment = [customExtensions, customDefines].filter(filterEmptyLine).join('\\n');\n\n if (prefixFragment.length > 0) {\n prefixFragment += '\\n';\n }\n } else {\n prefixVertex = [generatePrecision(parameters), '#define SHADER_NAME ' + parameters.shaderName, customDefines, parameters.instancing ? '#define USE_INSTANCING' : '', parameters.instancingColor ? '#define USE_INSTANCING_COLOR' : '', parameters.useFog && parameters.fog ? '#define USE_FOG' : '', parameters.useFog && parameters.fogExp2 ? '#define FOG_EXP2' : '', parameters.map ? '#define USE_MAP' : '', parameters.envMap ? '#define USE_ENVMAP' : '', parameters.envMap ? '#define ' + envMapModeDefine : '', parameters.lightMap ? '#define USE_LIGHTMAP' : '', parameters.aoMap ? '#define USE_AOMAP' : '', parameters.bumpMap ? '#define USE_BUMPMAP' : '', parameters.normalMap ? '#define USE_NORMALMAP' : '', parameters.normalMapObjectSpace ? '#define USE_NORMALMAP_OBJECTSPACE' : '', parameters.normalMapTangentSpace ? '#define USE_NORMALMAP_TANGENTSPACE' : '', parameters.displacementMap ? '#define USE_DISPLACEMENTMAP' : '', parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', parameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '', parameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '', parameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '', parameters.iridescenceMap ? '#define USE_IRIDESCENCEMAP' : '', parameters.iridescenceThicknessMap ? '#define USE_IRIDESCENCE_THICKNESSMAP' : '', parameters.specularMap ? '#define USE_SPECULARMAP' : '', parameters.specularColorMap ? '#define USE_SPECULAR_COLORMAP' : '', parameters.specularIntensityMap ? '#define USE_SPECULAR_INTENSITYMAP' : '', parameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '', parameters.metalnessMap ? '#define USE_METALNESSMAP' : '', parameters.alphaMap ? '#define USE_ALPHAMAP' : '', parameters.transmission ? '#define USE_TRANSMISSION' : '', parameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '', parameters.thicknessMap ? '#define USE_THICKNESSMAP' : '', parameters.sheenColorMap ? '#define USE_SHEEN_COLORMAP' : '', parameters.sheenRoughnessMap ? '#define USE_SHEEN_ROUGHNESSMAP' : '', //\n parameters.mapUv ? '#define MAP_UV ' + parameters.mapUv : '', parameters.alphaMapUv ? '#define ALPHAMAP_UV ' + parameters.alphaMapUv : '', parameters.lightMapUv ? '#define LIGHTMAP_UV ' + parameters.lightMapUv : '', parameters.aoMapUv ? '#define AOMAP_UV ' + parameters.aoMapUv : '', parameters.emissiveMapUv ? '#define EMISSIVEMAP_UV ' + parameters.emissiveMapUv : '', parameters.bumpMapUv ? '#define BUMPMAP_UV ' + parameters.bumpMapUv : '', parameters.normalMapUv ? '#define NORMALMAP_UV ' + parameters.normalMapUv : '', parameters.displacementMapUv ? '#define DISPLACEMENTMAP_UV ' + parameters.displacementMapUv : '', parameters.metalnessMapUv ? '#define METALNESSMAP_UV ' + parameters.metalnessMapUv : '', parameters.roughnessMapUv ? '#define ROUGHNESSMAP_UV ' + parameters.roughnessMapUv : '', parameters.clearcoatMapUv ? '#define CLEARCOATMAP_UV ' + parameters.clearcoatMapUv : '', parameters.clearcoatNormalMapUv ? '#define CLEARCOAT_NORMALMAP_UV ' + parameters.clearcoatNormalMapUv : '', parameters.clearcoatRoughnessMapUv ? '#define CLEARCOAT_ROUGHNESSMAP_UV ' + parameters.clearcoatRoughnessMapUv : '', parameters.iridescenceMapUv ? '#define IRIDESCENCEMAP_UV ' + parameters.iridescenceMapUv : '', parameters.iridescenceThicknessMapUv ? '#define IRIDESCENCE_THICKNESSMAP_UV ' + parameters.iridescenceThicknessMapUv : '', parameters.sheenColorMapUv ? '#define SHEEN_COLORMAP_UV ' + parameters.sheenColorMapUv : '', parameters.sheenRoughnessMapUv ? '#define SHEEN_ROUGHNESSMAP_UV ' + parameters.sheenRoughnessMapUv : '', parameters.specularMapUv ? '#define SPECULARMAP_UV ' + parameters.specularMapUv : '', parameters.specularColorMapUv ? '#define SPECULAR_COLORMAP_UV ' + parameters.specularColorMapUv : '', parameters.specularIntensityMapUv ? '#define SPECULAR_INTENSITYMAP_UV ' + parameters.specularIntensityMapUv : '', parameters.transmissionMapUv ? '#define TRANSMISSIONMAP_UV ' + parameters.transmissionMapUv : '', parameters.thicknessMapUv ? '#define THICKNESSMAP_UV ' + parameters.thicknessMapUv : '', //\n parameters.vertexTangents ? '#define USE_TANGENT' : '', parameters.vertexColors ? '#define USE_COLOR' : '', parameters.vertexAlphas ? '#define USE_COLOR_ALPHA' : '', parameters.vertexUv1s ? '#define USE_UV1' : '', parameters.vertexUv2s ? '#define USE_UV2' : '', parameters.vertexUv3s ? '#define USE_UV3' : '', parameters.pointsUvs ? '#define USE_POINTS_UV' : '', parameters.flatShading ? '#define FLAT_SHADED' : '', parameters.skinning ? '#define USE_SKINNING' : '', parameters.morphTargets ? '#define USE_MORPHTARGETS' : '', parameters.morphNormals && parameters.flatShading === false ? '#define USE_MORPHNORMALS' : '', parameters.morphColors && parameters.isWebGL2 ? '#define USE_MORPHCOLORS' : '', parameters.morphTargetsCount > 0 && parameters.isWebGL2 ? '#define MORPHTARGETS_TEXTURE' : '', parameters.morphTargetsCount > 0 && parameters.isWebGL2 ? '#define MORPHTARGETS_TEXTURE_STRIDE ' + parameters.morphTextureStride : '', parameters.morphTargetsCount > 0 && parameters.isWebGL2 ? '#define MORPHTARGETS_COUNT ' + parameters.morphTargetsCount : '', parameters.doubleSided ? '#define DOUBLE_SIDED' : '', parameters.flipSided ? '#define FLIP_SIDED' : '', parameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '', parameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '', parameters.sizeAttenuation ? '#define USE_SIZEATTENUATION' : '', parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '', parameters.logarithmicDepthBuffer && parameters.rendererExtensionFragDepth ? '#define USE_LOGDEPTHBUF_EXT' : '', 'uniform mat4 modelMatrix;', 'uniform mat4 modelViewMatrix;', 'uniform mat4 projectionMatrix;', 'uniform mat4 viewMatrix;', 'uniform mat3 normalMatrix;', 'uniform vec3 cameraPosition;', 'uniform bool isOrthographic;', '#ifdef USE_INSTANCING', '\tattribute mat4 instanceMatrix;', '#endif', '#ifdef USE_INSTANCING_COLOR', '\tattribute vec3 instanceColor;', '#endif', 'attribute vec3 position;', 'attribute vec3 normal;', 'attribute vec2 uv;', '#ifdef USE_UV1', '\tattribute vec2 uv1;', '#endif', '#ifdef USE_UV2', '\tattribute vec2 uv2;', '#endif', '#ifdef USE_UV3', '\tattribute vec2 uv3;', '#endif', '#ifdef USE_TANGENT', '\tattribute vec4 tangent;', '#endif', '#if defined( USE_COLOR_ALPHA )', '\tattribute vec4 color;', '#elif defined( USE_COLOR )', '\tattribute vec3 color;', '#endif', '#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )', '\tattribute vec3 morphTarget0;', '\tattribute vec3 morphTarget1;', '\tattribute vec3 morphTarget2;', '\tattribute vec3 morphTarget3;', '\t#ifdef USE_MORPHNORMALS', '\t\tattribute vec3 morphNormal0;', '\t\tattribute vec3 morphNormal1;', '\t\tattribute vec3 morphNormal2;', '\t\tattribute vec3 morphNormal3;', '\t#else', '\t\tattribute vec3 morphTarget4;', '\t\tattribute vec3 morphTarget5;', '\t\tattribute vec3 morphTarget6;', '\t\tattribute vec3 morphTarget7;', '\t#endif', '#endif', '#ifdef USE_SKINNING', '\tattribute vec4 skinIndex;', '\tattribute vec4 skinWeight;', '#endif', '\\n'].filter(filterEmptyLine).join('\\n');\n prefixFragment = [customExtensions, generatePrecision(parameters), '#define SHADER_NAME ' + parameters.shaderName, customDefines, parameters.useFog && parameters.fog ? '#define USE_FOG' : '', parameters.useFog && parameters.fogExp2 ? '#define FOG_EXP2' : '', parameters.map ? '#define USE_MAP' : '', parameters.matcap ? '#define USE_MATCAP' : '', parameters.envMap ? '#define USE_ENVMAP' : '', parameters.envMap ? '#define ' + envMapTypeDefine : '', parameters.envMap ? '#define ' + envMapModeDefine : '', parameters.envMap ? '#define ' + envMapBlendingDefine : '', envMapCubeUVSize ? '#define CUBEUV_TEXEL_WIDTH ' + envMapCubeUVSize.texelWidth : '', envMapCubeUVSize ? '#define CUBEUV_TEXEL_HEIGHT ' + envMapCubeUVSize.texelHeight : '', envMapCubeUVSize ? '#define CUBEUV_MAX_MIP ' + envMapCubeUVSize.maxMip + '.0' : '', parameters.lightMap ? '#define USE_LIGHTMAP' : '', parameters.aoMap ? '#define USE_AOMAP' : '', parameters.bumpMap ? '#define USE_BUMPMAP' : '', parameters.normalMap ? '#define USE_NORMALMAP' : '', parameters.normalMapObjectSpace ? '#define USE_NORMALMAP_OBJECTSPACE' : '', parameters.normalMapTangentSpace ? '#define USE_NORMALMAP_TANGENTSPACE' : '', parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', parameters.clearcoat ? '#define USE_CLEARCOAT' : '', parameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '', parameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '', parameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '', parameters.iridescence ? '#define USE_IRIDESCENCE' : '', parameters.iridescenceMap ? '#define USE_IRIDESCENCEMAP' : '', parameters.iridescenceThicknessMap ? '#define USE_IRIDESCENCE_THICKNESSMAP' : '', parameters.specularMap ? '#define USE_SPECULARMAP' : '', parameters.specularColorMap ? '#define USE_SPECULAR_COLORMAP' : '', parameters.specularIntensityMap ? '#define USE_SPECULAR_INTENSITYMAP' : '', parameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '', parameters.metalnessMap ? '#define USE_METALNESSMAP' : '', parameters.alphaMap ? '#define USE_ALPHAMAP' : '', parameters.alphaTest ? '#define USE_ALPHATEST' : '', parameters.sheen ? '#define USE_SHEEN' : '', parameters.sheenColorMap ? '#define USE_SHEEN_COLORMAP' : '', parameters.sheenRoughnessMap ? '#define USE_SHEEN_ROUGHNESSMAP' : '', parameters.transmission ? '#define USE_TRANSMISSION' : '', parameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '', parameters.thicknessMap ? '#define USE_THICKNESSMAP' : '', parameters.vertexTangents ? '#define USE_TANGENT' : '', parameters.vertexColors || parameters.instancingColor ? '#define USE_COLOR' : '', parameters.vertexAlphas ? '#define USE_COLOR_ALPHA' : '', parameters.vertexUv1s ? '#define USE_UV1' : '', parameters.vertexUv2s ? '#define USE_UV2' : '', parameters.vertexUv3s ? '#define USE_UV3' : '', parameters.pointsUvs ? '#define USE_POINTS_UV' : '', parameters.gradientMap ? '#define USE_GRADIENTMAP' : '', parameters.flatShading ? '#define FLAT_SHADED' : '', parameters.doubleSided ? '#define DOUBLE_SIDED' : '', parameters.flipSided ? '#define FLIP_SIDED' : '', parameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '', parameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '', parameters.premultipliedAlpha ? '#define PREMULTIPLIED_ALPHA' : '', parameters.useLegacyLights ? '#define LEGACY_LIGHTS' : '', parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '', parameters.logarithmicDepthBuffer && parameters.rendererExtensionFragDepth ? '#define USE_LOGDEPTHBUF_EXT' : '', 'uniform mat4 viewMatrix;', 'uniform vec3 cameraPosition;', 'uniform bool isOrthographic;', parameters.toneMapping !== NoToneMapping ? '#define TONE_MAPPING' : '', parameters.toneMapping !== NoToneMapping ? ShaderChunk['tonemapping_pars_fragment'] : '', // this code is required here because it is used by the toneMapping() function defined below\n parameters.toneMapping !== NoToneMapping ? getToneMappingFunction('toneMapping', parameters.toneMapping) : '', parameters.dithering ? '#define DITHERING' : '', parameters.opaque ? '#define OPAQUE' : '', ShaderChunk['encodings_pars_fragment'], // this code is required here because it is used by the various encoding/decoding function defined below\n getTexelEncodingFunction('linearToOutputTexel', parameters.outputColorSpace), parameters.useDepthPacking ? '#define DEPTH_PACKING ' + parameters.depthPacking : '', '\\n'].filter(filterEmptyLine).join('\\n');\n }\n\n vertexShader = resolveIncludes(vertexShader);\n vertexShader = replaceLightNums(vertexShader, parameters);\n vertexShader = replaceClippingPlaneNums(vertexShader, parameters);\n fragmentShader = resolveIncludes(fragmentShader);\n fragmentShader = replaceLightNums(fragmentShader, parameters);\n fragmentShader = replaceClippingPlaneNums(fragmentShader, parameters);\n vertexShader = unrollLoops(vertexShader);\n fragmentShader = unrollLoops(fragmentShader);\n\n if (parameters.isWebGL2 && parameters.isRawShaderMaterial !== true) {\n // GLSL 3.0 conversion for built-in materials and ShaderMaterial\n versionString = '#version 300 es\\n';\n prefixVertex = ['precision mediump sampler2DArray;', '#define attribute in', '#define varying out', '#define texture2D texture'].join('\\n') + '\\n' + prefixVertex;\n prefixFragment = ['#define varying in', parameters.glslVersion === GLSL3 ? '' : 'layout(location = 0) out highp vec4 pc_fragColor;', parameters.glslVersion === GLSL3 ? '' : '#define gl_FragColor pc_fragColor', '#define gl_FragDepthEXT gl_FragDepth', '#define texture2D texture', '#define textureCube texture', '#define texture2DProj textureProj', '#define texture2DLodEXT textureLod', '#define texture2DProjLodEXT textureProjLod', '#define textureCubeLodEXT textureLod', '#define texture2DGradEXT textureGrad', '#define texture2DProjGradEXT textureProjGrad', '#define textureCubeGradEXT textureGrad'].join('\\n') + '\\n' + prefixFragment;\n }\n\n var vertexGlsl = versionString + prefixVertex + vertexShader;\n var fragmentGlsl = versionString + prefixFragment + fragmentShader; // console.log( '*VERTEX*', vertexGlsl );\n // console.log( '*FRAGMENT*', fragmentGlsl );\n\n var glVertexShader = WebGLShader(gl, gl.VERTEX_SHADER, vertexGlsl);\n var glFragmentShader = WebGLShader(gl, gl.FRAGMENT_SHADER, fragmentGlsl);\n gl.attachShader(program, glVertexShader);\n gl.attachShader(program, glFragmentShader); // Force a particular attribute to index 0.\n\n if (parameters.index0AttributeName !== undefined) {\n gl.bindAttribLocation(program, 0, parameters.index0AttributeName);\n } else if (parameters.morphTargets === true) {\n // programs with morphTargets displace position out of attribute 0\n gl.bindAttribLocation(program, 0, 'position');\n }\n\n gl.linkProgram(program); // check for link errors\n\n if (renderer.debug.checkShaderErrors) {\n var programLog = gl.getProgramInfoLog(program).trim();\n var vertexLog = gl.getShaderInfoLog(glVertexShader).trim();\n var fragmentLog = gl.getShaderInfoLog(glFragmentShader).trim();\n var runnable = true;\n var haveDiagnostics = true;\n\n if (gl.getProgramParameter(program, gl.LINK_STATUS) === false) {\n runnable = false;\n\n if (typeof renderer.debug.onShaderError === 'function') {\n renderer.debug.onShaderError(gl, program, glVertexShader, glFragmentShader);\n } else {\n // default error reporting\n var vertexErrors = getShaderErrors(gl, glVertexShader, 'vertex');\n var fragmentErrors = getShaderErrors(gl, glFragmentShader, 'fragment');\n console.error('THREE.WebGLProgram: Shader Error ' + gl.getError() + ' - ' + 'VALIDATE_STATUS ' + gl.getProgramParameter(program, gl.VALIDATE_STATUS) + '\\n\\n' + 'Program Info Log: ' + programLog + '\\n' + vertexErrors + '\\n' + fragmentErrors);\n }\n } else if (programLog !== '') {\n console.warn('THREE.WebGLProgram: Program Info Log:', programLog);\n } else if (vertexLog === '' || fragmentLog === '') {\n haveDiagnostics = false;\n }\n\n if (haveDiagnostics) {\n this.diagnostics = {\n runnable: runnable,\n programLog: programLog,\n vertexShader: {\n log: vertexLog,\n prefix: prefixVertex\n },\n fragmentShader: {\n log: fragmentLog,\n prefix: prefixFragment\n }\n };\n }\n } // Clean up\n // Crashes in iOS9 and iOS10. #18402\n // gl.detachShader( program, glVertexShader );\n // gl.detachShader( program, glFragmentShader );\n\n\n gl.deleteShader(glVertexShader);\n gl.deleteShader(glFragmentShader); // set up caching for uniform locations\n\n var cachedUniforms;\n\n this.getUniforms = function () {\n if (cachedUniforms === undefined) {\n cachedUniforms = new WebGLUniforms(gl, program);\n }\n\n return cachedUniforms;\n }; // set up caching for attribute locations\n\n\n var cachedAttributes;\n\n this.getAttributes = function () {\n if (cachedAttributes === undefined) {\n cachedAttributes = fetchAttributeLocations(gl, program);\n }\n\n return cachedAttributes;\n }; // free resource\n\n\n this.destroy = function () {\n bindingStates.releaseStatesOfProgram(this);\n gl.deleteProgram(program);\n this.program = undefined;\n }; //\n\n\n this.name = parameters.shaderName;\n this.id = programIdCount++;\n this.cacheKey = cacheKey;\n this.usedTimes = 1;\n this.program = program;\n this.vertexShader = glVertexShader;\n this.fragmentShader = glFragmentShader;\n return this;\n}\n\nvar _id = 0;\n\nvar WebGLShaderCache = /*#__PURE__*/function () {\n function WebGLShaderCache() {\n _classCallCheck(this, WebGLShaderCache);\n\n this.shaderCache = new Map();\n this.materialCache = new Map();\n }\n\n _createClass(WebGLShaderCache, [{\n key: \"update\",\n value: function update(material) {\n var vertexShader = material.vertexShader;\n var fragmentShader = material.fragmentShader;\n\n var vertexShaderStage = this._getShaderStage(vertexShader);\n\n var fragmentShaderStage = this._getShaderStage(fragmentShader);\n\n var materialShaders = this._getShaderCacheForMaterial(material);\n\n if (materialShaders.has(vertexShaderStage) === false) {\n materialShaders.add(vertexShaderStage);\n vertexShaderStage.usedTimes++;\n }\n\n if (materialShaders.has(fragmentShaderStage) === false) {\n materialShaders.add(fragmentShaderStage);\n fragmentShaderStage.usedTimes++;\n }\n\n return this;\n }\n }, {\n key: \"remove\",\n value: function remove(material) {\n var materialShaders = this.materialCache.get(material);\n\n var _iterator = _createForOfIteratorHelper(materialShaders),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var shaderStage = _step.value;\n shaderStage.usedTimes--;\n if (shaderStage.usedTimes === 0) this.shaderCache.delete(shaderStage.code);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n this.materialCache.delete(material);\n return this;\n }\n }, {\n key: \"getVertexShaderID\",\n value: function getVertexShaderID(material) {\n return this._getShaderStage(material.vertexShader).id;\n }\n }, {\n key: \"getFragmentShaderID\",\n value: function getFragmentShaderID(material) {\n return this._getShaderStage(material.fragmentShader).id;\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n this.shaderCache.clear();\n this.materialCache.clear();\n }\n }, {\n key: \"_getShaderCacheForMaterial\",\n value: function _getShaderCacheForMaterial(material) {\n var cache = this.materialCache;\n var set = cache.get(material);\n\n if (set === undefined) {\n set = new Set();\n cache.set(material, set);\n }\n\n return set;\n }\n }, {\n key: \"_getShaderStage\",\n value: function _getShaderStage(code) {\n var cache = this.shaderCache;\n var stage = cache.get(code);\n\n if (stage === undefined) {\n stage = new WebGLShaderStage(code);\n cache.set(code, stage);\n }\n\n return stage;\n }\n }]);\n\n return WebGLShaderCache;\n}();\n\nvar WebGLShaderStage = /*#__PURE__*/_createClass(function WebGLShaderStage(code) {\n _classCallCheck(this, WebGLShaderStage);\n\n this.id = _id++;\n this.code = code;\n this.usedTimes = 0;\n});\n\nfunction WebGLPrograms(renderer, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping) {\n var _programLayers = new Layers();\n\n var _customShaders = new WebGLShaderCache();\n\n var programs = [];\n var IS_WEBGL2 = capabilities.isWebGL2;\n var logarithmicDepthBuffer = capabilities.logarithmicDepthBuffer;\n var SUPPORTS_VERTEX_TEXTURES = capabilities.vertexTextures;\n var precision = capabilities.precision;\n var shaderIDs = {\n MeshDepthMaterial: 'depth',\n MeshDistanceMaterial: 'distanceRGBA',\n MeshNormalMaterial: 'normal',\n MeshBasicMaterial: 'basic',\n MeshLambertMaterial: 'lambert',\n MeshPhongMaterial: 'phong',\n MeshToonMaterial: 'toon',\n MeshStandardMaterial: 'physical',\n MeshPhysicalMaterial: 'physical',\n MeshMatcapMaterial: 'matcap',\n LineBasicMaterial: 'basic',\n LineDashedMaterial: 'dashed',\n PointsMaterial: 'points',\n ShadowMaterial: 'shadow',\n SpriteMaterial: 'sprite'\n };\n\n function getChannel(value) {\n if (value === 1) return 'uv1';\n if (value === 2) return 'uv2';\n if (value === 3) return 'uv3';\n return 'uv';\n }\n\n function getParameters(material, lights, shadows, scene, object) {\n var fog = scene.fog;\n var geometry = object.geometry;\n var environment = material.isMeshStandardMaterial ? scene.environment : null;\n var envMap = (material.isMeshStandardMaterial ? cubeuvmaps : cubemaps).get(material.envMap || environment);\n var envMapCubeUVHeight = !!envMap && envMap.mapping === CubeUVReflectionMapping ? envMap.image.height : null;\n var shaderID = shaderIDs[material.type]; // heuristics to create shader parameters according to lights in the scene\n // (not to blow over maxLights budget)\n\n if (material.precision !== null) {\n precision = capabilities.getMaxPrecision(material.precision);\n\n if (precision !== material.precision) {\n console.warn('THREE.WebGLProgram.getParameters:', material.precision, 'not supported, using', precision, 'instead.');\n }\n } //\n\n\n var morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n var morphTargetsCount = morphAttribute !== undefined ? morphAttribute.length : 0;\n var morphTextureStride = 0;\n if (geometry.morphAttributes.position !== undefined) morphTextureStride = 1;\n if (geometry.morphAttributes.normal !== undefined) morphTextureStride = 2;\n if (geometry.morphAttributes.color !== undefined) morphTextureStride = 3; //\n\n var vertexShader, fragmentShader;\n var customVertexShaderID, customFragmentShaderID;\n\n if (shaderID) {\n var shader = ShaderLib[shaderID];\n vertexShader = shader.vertexShader;\n fragmentShader = shader.fragmentShader;\n } else {\n vertexShader = material.vertexShader;\n fragmentShader = material.fragmentShader;\n\n _customShaders.update(material);\n\n customVertexShaderID = _customShaders.getVertexShaderID(material);\n customFragmentShaderID = _customShaders.getFragmentShaderID(material);\n }\n\n var currentRenderTarget = renderer.getRenderTarget();\n var IS_INSTANCEDMESH = object.isInstancedMesh === true;\n var HAS_MAP = !!material.map;\n var HAS_MATCAP = !!material.matcap;\n var HAS_ENVMAP = !!envMap;\n var HAS_AOMAP = !!material.aoMap;\n var HAS_LIGHTMAP = !!material.lightMap;\n var HAS_BUMPMAP = !!material.bumpMap;\n var HAS_NORMALMAP = !!material.normalMap;\n var HAS_DISPLACEMENTMAP = !!material.displacementMap;\n var HAS_EMISSIVEMAP = !!material.emissiveMap;\n var HAS_METALNESSMAP = !!material.metalnessMap;\n var HAS_ROUGHNESSMAP = !!material.roughnessMap;\n var HAS_CLEARCOAT = material.clearcoat > 0;\n var HAS_IRIDESCENCE = material.iridescence > 0;\n var HAS_SHEEN = material.sheen > 0;\n var HAS_TRANSMISSION = material.transmission > 0;\n var HAS_CLEARCOATMAP = HAS_CLEARCOAT && !!material.clearcoatMap;\n var HAS_CLEARCOAT_NORMALMAP = HAS_CLEARCOAT && !!material.clearcoatNormalMap;\n var HAS_CLEARCOAT_ROUGHNESSMAP = HAS_CLEARCOAT && !!material.clearcoatRoughnessMap;\n var HAS_IRIDESCENCEMAP = HAS_IRIDESCENCE && !!material.iridescenceMap;\n var HAS_IRIDESCENCE_THICKNESSMAP = HAS_IRIDESCENCE && !!material.iridescenceThicknessMap;\n var HAS_SHEEN_COLORMAP = HAS_SHEEN && !!material.sheenColorMap;\n var HAS_SHEEN_ROUGHNESSMAP = HAS_SHEEN && !!material.sheenRoughnessMap;\n var HAS_SPECULARMAP = !!material.specularMap;\n var HAS_SPECULAR_COLORMAP = !!material.specularColorMap;\n var HAS_SPECULAR_INTENSITYMAP = !!material.specularIntensityMap;\n var HAS_TRANSMISSIONMAP = HAS_TRANSMISSION && !!material.transmissionMap;\n var HAS_THICKNESSMAP = HAS_TRANSMISSION && !!material.thicknessMap;\n var HAS_GRADIENTMAP = !!material.gradientMap;\n var HAS_ALPHAMAP = !!material.alphaMap;\n var HAS_ALPHATEST = material.alphaTest > 0;\n var HAS_EXTENSIONS = !!material.extensions;\n var HAS_ATTRIBUTE_UV1 = !!geometry.attributes.uv1;\n var HAS_ATTRIBUTE_UV2 = !!geometry.attributes.uv2;\n var HAS_ATTRIBUTE_UV3 = !!geometry.attributes.uv3;\n var parameters = {\n isWebGL2: IS_WEBGL2,\n shaderID: shaderID,\n shaderName: material.type,\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n defines: material.defines,\n customVertexShaderID: customVertexShaderID,\n customFragmentShaderID: customFragmentShaderID,\n isRawShaderMaterial: material.isRawShaderMaterial === true,\n glslVersion: material.glslVersion,\n precision: precision,\n instancing: IS_INSTANCEDMESH,\n instancingColor: IS_INSTANCEDMESH && object.instanceColor !== null,\n supportsVertexTextures: SUPPORTS_VERTEX_TEXTURES,\n outputColorSpace: currentRenderTarget === null ? renderer.outputColorSpace : currentRenderTarget.isXRRenderTarget === true ? currentRenderTarget.texture.colorSpace : LinearSRGBColorSpace,\n map: HAS_MAP,\n matcap: HAS_MATCAP,\n envMap: HAS_ENVMAP,\n envMapMode: HAS_ENVMAP && envMap.mapping,\n envMapCubeUVHeight: envMapCubeUVHeight,\n aoMap: HAS_AOMAP,\n lightMap: HAS_LIGHTMAP,\n bumpMap: HAS_BUMPMAP,\n normalMap: HAS_NORMALMAP,\n displacementMap: SUPPORTS_VERTEX_TEXTURES && HAS_DISPLACEMENTMAP,\n emissiveMap: HAS_EMISSIVEMAP,\n normalMapObjectSpace: HAS_NORMALMAP && material.normalMapType === ObjectSpaceNormalMap,\n normalMapTangentSpace: HAS_NORMALMAP && material.normalMapType === TangentSpaceNormalMap,\n metalnessMap: HAS_METALNESSMAP,\n roughnessMap: HAS_ROUGHNESSMAP,\n clearcoat: HAS_CLEARCOAT,\n clearcoatMap: HAS_CLEARCOATMAP,\n clearcoatNormalMap: HAS_CLEARCOAT_NORMALMAP,\n clearcoatRoughnessMap: HAS_CLEARCOAT_ROUGHNESSMAP,\n iridescence: HAS_IRIDESCENCE,\n iridescenceMap: HAS_IRIDESCENCEMAP,\n iridescenceThicknessMap: HAS_IRIDESCENCE_THICKNESSMAP,\n sheen: HAS_SHEEN,\n sheenColorMap: HAS_SHEEN_COLORMAP,\n sheenRoughnessMap: HAS_SHEEN_ROUGHNESSMAP,\n specularMap: HAS_SPECULARMAP,\n specularColorMap: HAS_SPECULAR_COLORMAP,\n specularIntensityMap: HAS_SPECULAR_INTENSITYMAP,\n transmission: HAS_TRANSMISSION,\n transmissionMap: HAS_TRANSMISSIONMAP,\n thicknessMap: HAS_THICKNESSMAP,\n gradientMap: HAS_GRADIENTMAP,\n opaque: material.transparent === false && material.blending === NormalBlending,\n alphaMap: HAS_ALPHAMAP,\n alphaTest: HAS_ALPHATEST,\n combine: material.combine,\n //\n mapUv: HAS_MAP && getChannel(material.map.channel),\n aoMapUv: HAS_AOMAP && getChannel(material.aoMap.channel),\n lightMapUv: HAS_LIGHTMAP && getChannel(material.lightMap.channel),\n bumpMapUv: HAS_BUMPMAP && getChannel(material.bumpMap.channel),\n normalMapUv: HAS_NORMALMAP && getChannel(material.normalMap.channel),\n displacementMapUv: HAS_DISPLACEMENTMAP && getChannel(material.displacementMap.channel),\n emissiveMapUv: HAS_EMISSIVEMAP && getChannel(material.emissiveMap.channel),\n metalnessMapUv: HAS_METALNESSMAP && getChannel(material.metalnessMap.channel),\n roughnessMapUv: HAS_ROUGHNESSMAP && getChannel(material.roughnessMap.channel),\n clearcoatMapUv: HAS_CLEARCOATMAP && getChannel(material.clearcoatMap.channel),\n clearcoatNormalMapUv: HAS_CLEARCOAT_NORMALMAP && getChannel(material.clearcoatNormalMap.channel),\n clearcoatRoughnessMapUv: HAS_CLEARCOAT_ROUGHNESSMAP && getChannel(material.clearcoatRoughnessMap.channel),\n iridescenceMapUv: HAS_IRIDESCENCEMAP && getChannel(material.iridescenceMap.channel),\n iridescenceThicknessMapUv: HAS_IRIDESCENCE_THICKNESSMAP && getChannel(material.iridescenceThicknessMap.channel),\n sheenColorMapUv: HAS_SHEEN_COLORMAP && getChannel(material.sheenColorMap.channel),\n sheenRoughnessMapUv: HAS_SHEEN_ROUGHNESSMAP && getChannel(material.sheenRoughnessMap.channel),\n specularMapUv: HAS_SPECULARMAP && getChannel(material.specularMap.channel),\n specularColorMapUv: HAS_SPECULAR_COLORMAP && getChannel(material.specularColorMap.channel),\n specularIntensityMapUv: HAS_SPECULAR_INTENSITYMAP && getChannel(material.specularIntensityMap.channel),\n transmissionMapUv: HAS_TRANSMISSIONMAP && getChannel(material.transmissionMap.channel),\n thicknessMapUv: HAS_THICKNESSMAP && getChannel(material.thicknessMap.channel),\n alphaMapUv: HAS_ALPHAMAP && getChannel(material.alphaMap.channel),\n //\n vertexTangents: HAS_NORMALMAP && !!geometry.attributes.tangent,\n vertexColors: material.vertexColors,\n vertexAlphas: material.vertexColors === true && !!geometry.attributes.color && geometry.attributes.color.itemSize === 4,\n vertexUv1s: HAS_ATTRIBUTE_UV1,\n vertexUv2s: HAS_ATTRIBUTE_UV2,\n vertexUv3s: HAS_ATTRIBUTE_UV3,\n pointsUvs: object.isPoints === true && !!geometry.attributes.uv && (HAS_MAP || HAS_ALPHAMAP),\n fog: !!fog,\n useFog: material.fog === true,\n fogExp2: fog && fog.isFogExp2,\n flatShading: material.flatShading === true,\n sizeAttenuation: material.sizeAttenuation === true,\n logarithmicDepthBuffer: logarithmicDepthBuffer,\n skinning: object.isSkinnedMesh === true,\n morphTargets: geometry.morphAttributes.position !== undefined,\n morphNormals: geometry.morphAttributes.normal !== undefined,\n morphColors: geometry.morphAttributes.color !== undefined,\n morphTargetsCount: morphTargetsCount,\n morphTextureStride: morphTextureStride,\n numDirLights: lights.directional.length,\n numPointLights: lights.point.length,\n numSpotLights: lights.spot.length,\n numSpotLightMaps: lights.spotLightMap.length,\n numRectAreaLights: lights.rectArea.length,\n numHemiLights: lights.hemi.length,\n numDirLightShadows: lights.directionalShadowMap.length,\n numPointLightShadows: lights.pointShadowMap.length,\n numSpotLightShadows: lights.spotShadowMap.length,\n numSpotLightShadowsWithMaps: lights.numSpotLightShadowsWithMaps,\n numClippingPlanes: clipping.numPlanes,\n numClipIntersection: clipping.numIntersection,\n dithering: material.dithering,\n shadowMapEnabled: renderer.shadowMap.enabled && shadows.length > 0,\n shadowMapType: renderer.shadowMap.type,\n toneMapping: material.toneMapped ? renderer.toneMapping : NoToneMapping,\n useLegacyLights: renderer.useLegacyLights,\n premultipliedAlpha: material.premultipliedAlpha,\n doubleSided: material.side === DoubleSide,\n flipSided: material.side === BackSide,\n useDepthPacking: material.depthPacking >= 0,\n depthPacking: material.depthPacking || 0,\n index0AttributeName: material.index0AttributeName,\n extensionDerivatives: HAS_EXTENSIONS && material.extensions.derivatives === true,\n extensionFragDepth: HAS_EXTENSIONS && material.extensions.fragDepth === true,\n extensionDrawBuffers: HAS_EXTENSIONS && material.extensions.drawBuffers === true,\n extensionShaderTextureLOD: HAS_EXTENSIONS && material.extensions.shaderTextureLOD === true,\n rendererExtensionFragDepth: IS_WEBGL2 || extensions.has('EXT_frag_depth'),\n rendererExtensionDrawBuffers: IS_WEBGL2 || extensions.has('WEBGL_draw_buffers'),\n rendererExtensionShaderTextureLod: IS_WEBGL2 || extensions.has('EXT_shader_texture_lod'),\n customProgramCacheKey: material.customProgramCacheKey()\n };\n return parameters;\n }\n\n function getProgramCacheKey(parameters) {\n var array = [];\n\n if (parameters.shaderID) {\n array.push(parameters.shaderID);\n } else {\n array.push(parameters.customVertexShaderID);\n array.push(parameters.customFragmentShaderID);\n }\n\n if (parameters.defines !== undefined) {\n for (var name in parameters.defines) {\n array.push(name);\n array.push(parameters.defines[name]);\n }\n }\n\n if (parameters.isRawShaderMaterial === false) {\n getProgramCacheKeyParameters(array, parameters);\n getProgramCacheKeyBooleans(array, parameters);\n array.push(renderer.outputColorSpace);\n }\n\n array.push(parameters.customProgramCacheKey);\n return array.join();\n }\n\n function getProgramCacheKeyParameters(array, parameters) {\n array.push(parameters.precision);\n array.push(parameters.outputColorSpace);\n array.push(parameters.envMapMode);\n array.push(parameters.envMapCubeUVHeight);\n array.push(parameters.mapUv);\n array.push(parameters.alphaMapUv);\n array.push(parameters.lightMapUv);\n array.push(parameters.aoMapUv);\n array.push(parameters.bumpMapUv);\n array.push(parameters.normalMapUv);\n array.push(parameters.displacementMapUv);\n array.push(parameters.emissiveMapUv);\n array.push(parameters.metalnessMapUv);\n array.push(parameters.roughnessMapUv);\n array.push(parameters.clearcoatMapUv);\n array.push(parameters.clearcoatNormalMapUv);\n array.push(parameters.clearcoatRoughnessMapUv);\n array.push(parameters.iridescenceMapUv);\n array.push(parameters.iridescenceThicknessMapUv);\n array.push(parameters.sheenColorMapUv);\n array.push(parameters.sheenRoughnessMapUv);\n array.push(parameters.specularMapUv);\n array.push(parameters.specularColorMapUv);\n array.push(parameters.specularIntensityMapUv);\n array.push(parameters.transmissionMapUv);\n array.push(parameters.thicknessMapUv);\n array.push(parameters.combine);\n array.push(parameters.fogExp2);\n array.push(parameters.sizeAttenuation);\n array.push(parameters.morphTargetsCount);\n array.push(parameters.morphAttributeCount);\n array.push(parameters.numDirLights);\n array.push(parameters.numPointLights);\n array.push(parameters.numSpotLights);\n array.push(parameters.numSpotLightMaps);\n array.push(parameters.numHemiLights);\n array.push(parameters.numRectAreaLights);\n array.push(parameters.numDirLightShadows);\n array.push(parameters.numPointLightShadows);\n array.push(parameters.numSpotLightShadows);\n array.push(parameters.numSpotLightShadowsWithMaps);\n array.push(parameters.shadowMapType);\n array.push(parameters.toneMapping);\n array.push(parameters.numClippingPlanes);\n array.push(parameters.numClipIntersection);\n array.push(parameters.depthPacking);\n }\n\n function getProgramCacheKeyBooleans(array, parameters) {\n _programLayers.disableAll();\n\n if (parameters.isWebGL2) _programLayers.enable(0);\n if (parameters.supportsVertexTextures) _programLayers.enable(1);\n if (parameters.instancing) _programLayers.enable(2);\n if (parameters.instancingColor) _programLayers.enable(3);\n if (parameters.matcap) _programLayers.enable(4);\n if (parameters.envMap) _programLayers.enable(5);\n if (parameters.normalMapObjectSpace) _programLayers.enable(6);\n if (parameters.normalMapTangentSpace) _programLayers.enable(7);\n if (parameters.clearcoat) _programLayers.enable(8);\n if (parameters.iridescence) _programLayers.enable(9);\n if (parameters.alphaTest) _programLayers.enable(10);\n if (parameters.vertexColors) _programLayers.enable(11);\n if (parameters.vertexAlphas) _programLayers.enable(12);\n if (parameters.vertexUv1s) _programLayers.enable(13);\n if (parameters.vertexUv2s) _programLayers.enable(14);\n if (parameters.vertexUv3s) _programLayers.enable(15);\n if (parameters.vertexTangents) _programLayers.enable(16);\n array.push(_programLayers.mask);\n\n _programLayers.disableAll();\n\n if (parameters.fog) _programLayers.enable(0);\n if (parameters.useFog) _programLayers.enable(1);\n if (parameters.flatShading) _programLayers.enable(2);\n if (parameters.logarithmicDepthBuffer) _programLayers.enable(3);\n if (parameters.skinning) _programLayers.enable(4);\n if (parameters.morphTargets) _programLayers.enable(5);\n if (parameters.morphNormals) _programLayers.enable(6);\n if (parameters.morphColors) _programLayers.enable(7);\n if (parameters.premultipliedAlpha) _programLayers.enable(8);\n if (parameters.shadowMapEnabled) _programLayers.enable(9);\n if (parameters.useLegacyLights) _programLayers.enable(10);\n if (parameters.doubleSided) _programLayers.enable(11);\n if (parameters.flipSided) _programLayers.enable(12);\n if (parameters.useDepthPacking) _programLayers.enable(13);\n if (parameters.dithering) _programLayers.enable(14);\n if (parameters.transmission) _programLayers.enable(15);\n if (parameters.sheen) _programLayers.enable(16);\n if (parameters.opaque) _programLayers.enable(17);\n if (parameters.pointsUvs) _programLayers.enable(18);\n array.push(_programLayers.mask);\n }\n\n function getUniforms(material) {\n var shaderID = shaderIDs[material.type];\n var uniforms;\n\n if (shaderID) {\n var shader = ShaderLib[shaderID];\n uniforms = UniformsUtils.clone(shader.uniforms);\n } else {\n uniforms = material.uniforms;\n }\n\n return uniforms;\n }\n\n function acquireProgram(parameters, cacheKey) {\n var program; // Check if code has been already compiled\n\n for (var p = 0, pl = programs.length; p < pl; p++) {\n var preexistingProgram = programs[p];\n\n if (preexistingProgram.cacheKey === cacheKey) {\n program = preexistingProgram;\n ++program.usedTimes;\n break;\n }\n }\n\n if (program === undefined) {\n program = new WebGLProgram(renderer, cacheKey, parameters, bindingStates);\n programs.push(program);\n }\n\n return program;\n }\n\n function releaseProgram(program) {\n if (--program.usedTimes === 0) {\n // Remove from unordered set\n var i = programs.indexOf(program);\n programs[i] = programs[programs.length - 1];\n programs.pop(); // Free WebGL resources\n\n program.destroy();\n }\n }\n\n function releaseShaderCache(material) {\n _customShaders.remove(material);\n }\n\n function dispose() {\n _customShaders.dispose();\n }\n\n return {\n getParameters: getParameters,\n getProgramCacheKey: getProgramCacheKey,\n getUniforms: getUniforms,\n acquireProgram: acquireProgram,\n releaseProgram: releaseProgram,\n releaseShaderCache: releaseShaderCache,\n // Exposed for resource monitoring & error feedback via renderer.info:\n programs: programs,\n dispose: dispose\n };\n}\n\nfunction WebGLProperties() {\n var properties = new WeakMap();\n\n function get(object) {\n var map = properties.get(object);\n\n if (map === undefined) {\n map = {};\n properties.set(object, map);\n }\n\n return map;\n }\n\n function remove(object) {\n properties.delete(object);\n }\n\n function update(object, key, value) {\n properties.get(object)[key] = value;\n }\n\n function dispose() {\n properties = new WeakMap();\n }\n\n return {\n get: get,\n remove: remove,\n update: update,\n dispose: dispose\n };\n}\n\nfunction painterSortStable(a, b) {\n if (a.groupOrder !== b.groupOrder) {\n return a.groupOrder - b.groupOrder;\n } else if (a.renderOrder !== b.renderOrder) {\n return a.renderOrder - b.renderOrder;\n } else if (a.material.id !== b.material.id) {\n return a.material.id - b.material.id;\n } else if (a.z !== b.z) {\n return a.z - b.z;\n } else {\n return a.id - b.id;\n }\n}\n\nfunction reversePainterSortStable(a, b) {\n if (a.groupOrder !== b.groupOrder) {\n return a.groupOrder - b.groupOrder;\n } else if (a.renderOrder !== b.renderOrder) {\n return a.renderOrder - b.renderOrder;\n } else if (a.z !== b.z) {\n return b.z - a.z;\n } else {\n return a.id - b.id;\n }\n}\n\nfunction WebGLRenderList() {\n var renderItems = [];\n var renderItemsIndex = 0;\n var opaque = [];\n var transmissive = [];\n var transparent = [];\n\n function init() {\n renderItemsIndex = 0;\n opaque.length = 0;\n transmissive.length = 0;\n transparent.length = 0;\n }\n\n function getNextRenderItem(object, geometry, material, groupOrder, z, group) {\n var renderItem = renderItems[renderItemsIndex];\n\n if (renderItem === undefined) {\n renderItem = {\n id: object.id,\n object: object,\n geometry: geometry,\n material: material,\n groupOrder: groupOrder,\n renderOrder: object.renderOrder,\n z: z,\n group: group\n };\n renderItems[renderItemsIndex] = renderItem;\n } else {\n renderItem.id = object.id;\n renderItem.object = object;\n renderItem.geometry = geometry;\n renderItem.material = material;\n renderItem.groupOrder = groupOrder;\n renderItem.renderOrder = object.renderOrder;\n renderItem.z = z;\n renderItem.group = group;\n }\n\n renderItemsIndex++;\n return renderItem;\n }\n\n function push(object, geometry, material, groupOrder, z, group) {\n var renderItem = getNextRenderItem(object, geometry, material, groupOrder, z, group);\n\n if (material.transmission > 0.0) {\n transmissive.push(renderItem);\n } else if (material.transparent === true) {\n transparent.push(renderItem);\n } else {\n opaque.push(renderItem);\n }\n }\n\n function unshift(object, geometry, material, groupOrder, z, group) {\n var renderItem = getNextRenderItem(object, geometry, material, groupOrder, z, group);\n\n if (material.transmission > 0.0) {\n transmissive.unshift(renderItem);\n } else if (material.transparent === true) {\n transparent.unshift(renderItem);\n } else {\n opaque.unshift(renderItem);\n }\n }\n\n function sort(customOpaqueSort, customTransparentSort) {\n if (opaque.length > 1) opaque.sort(customOpaqueSort || painterSortStable);\n if (transmissive.length > 1) transmissive.sort(customTransparentSort || reversePainterSortStable);\n if (transparent.length > 1) transparent.sort(customTransparentSort || reversePainterSortStable);\n }\n\n function finish() {\n // Clear references from inactive renderItems in the list\n for (var i = renderItemsIndex, il = renderItems.length; i < il; i++) {\n var renderItem = renderItems[i];\n if (renderItem.id === null) break;\n renderItem.id = null;\n renderItem.object = null;\n renderItem.geometry = null;\n renderItem.material = null;\n renderItem.group = null;\n }\n }\n\n return {\n opaque: opaque,\n transmissive: transmissive,\n transparent: transparent,\n init: init,\n push: push,\n unshift: unshift,\n finish: finish,\n sort: sort\n };\n}\n\nfunction WebGLRenderLists() {\n var lists = new WeakMap();\n\n function get(scene, renderCallDepth) {\n var listArray = lists.get(scene);\n var list;\n\n if (listArray === undefined) {\n list = new WebGLRenderList();\n lists.set(scene, [list]);\n } else {\n if (renderCallDepth >= listArray.length) {\n list = new WebGLRenderList();\n listArray.push(list);\n } else {\n list = listArray[renderCallDepth];\n }\n }\n\n return list;\n }\n\n function dispose() {\n lists = new WeakMap();\n }\n\n return {\n get: get,\n dispose: dispose\n };\n}\n\nfunction UniformsCache() {\n var lights = {};\n return {\n get: function get(light) {\n if (lights[light.id] !== undefined) {\n return lights[light.id];\n }\n\n var uniforms;\n\n switch (light.type) {\n case 'DirectionalLight':\n uniforms = {\n direction: new Vector3(),\n color: new Color()\n };\n break;\n\n case 'SpotLight':\n uniforms = {\n position: new Vector3(),\n direction: new Vector3(),\n color: new Color(),\n distance: 0,\n coneCos: 0,\n penumbraCos: 0,\n decay: 0\n };\n break;\n\n case 'PointLight':\n uniforms = {\n position: new Vector3(),\n color: new Color(),\n distance: 0,\n decay: 0\n };\n break;\n\n case 'HemisphereLight':\n uniforms = {\n direction: new Vector3(),\n skyColor: new Color(),\n groundColor: new Color()\n };\n break;\n\n case 'RectAreaLight':\n uniforms = {\n color: new Color(),\n position: new Vector3(),\n halfWidth: new Vector3(),\n halfHeight: new Vector3()\n };\n break;\n }\n\n lights[light.id] = uniforms;\n return uniforms;\n }\n };\n}\n\nfunction ShadowUniformsCache() {\n var lights = {};\n return {\n get: function get(light) {\n if (lights[light.id] !== undefined) {\n return lights[light.id];\n }\n\n var uniforms;\n\n switch (light.type) {\n case 'DirectionalLight':\n uniforms = {\n shadowBias: 0,\n shadowNormalBias: 0,\n shadowRadius: 1,\n shadowMapSize: new Vector2()\n };\n break;\n\n case 'SpotLight':\n uniforms = {\n shadowBias: 0,\n shadowNormalBias: 0,\n shadowRadius: 1,\n shadowMapSize: new Vector2()\n };\n break;\n\n case 'PointLight':\n uniforms = {\n shadowBias: 0,\n shadowNormalBias: 0,\n shadowRadius: 1,\n shadowMapSize: new Vector2(),\n shadowCameraNear: 1,\n shadowCameraFar: 1000\n };\n break;\n // TODO (abelnation): set RectAreaLight shadow uniforms\n }\n\n lights[light.id] = uniforms;\n return uniforms;\n }\n };\n}\n\nvar nextVersion = 0;\n\nfunction shadowCastingAndTexturingLightsFirst(lightA, lightB) {\n return (lightB.castShadow ? 2 : 0) - (lightA.castShadow ? 2 : 0) + (lightB.map ? 1 : 0) - (lightA.map ? 1 : 0);\n}\n\nfunction WebGLLights(extensions, capabilities) {\n var cache = new UniformsCache();\n var shadowCache = ShadowUniformsCache();\n var state = {\n version: 0,\n hash: {\n directionalLength: -1,\n pointLength: -1,\n spotLength: -1,\n rectAreaLength: -1,\n hemiLength: -1,\n numDirectionalShadows: -1,\n numPointShadows: -1,\n numSpotShadows: -1,\n numSpotMaps: -1\n },\n ambient: [0, 0, 0],\n probe: [],\n directional: [],\n directionalShadow: [],\n directionalShadowMap: [],\n directionalShadowMatrix: [],\n spot: [],\n spotLightMap: [],\n spotShadow: [],\n spotShadowMap: [],\n spotLightMatrix: [],\n rectArea: [],\n rectAreaLTC1: null,\n rectAreaLTC2: null,\n point: [],\n pointShadow: [],\n pointShadowMap: [],\n pointShadowMatrix: [],\n hemi: [],\n numSpotLightShadowsWithMaps: 0\n };\n\n for (var i = 0; i < 9; i++) {\n state.probe.push(new Vector3());\n }\n\n var vector3 = new Vector3();\n var matrix4 = new Matrix4();\n var matrix42 = new Matrix4();\n\n function setup(lights, useLegacyLights) {\n var r = 0,\n g = 0,\n b = 0;\n\n for (var _i36 = 0; _i36 < 9; _i36++) {\n state.probe[_i36].set(0, 0, 0);\n }\n\n var directionalLength = 0;\n var pointLength = 0;\n var spotLength = 0;\n var rectAreaLength = 0;\n var hemiLength = 0;\n var numDirectionalShadows = 0;\n var numPointShadows = 0;\n var numSpotShadows = 0;\n var numSpotMaps = 0;\n var numSpotShadowsWithMaps = 0; // ordering : [shadow casting + map texturing, map texturing, shadow casting, none ]\n\n lights.sort(shadowCastingAndTexturingLightsFirst); // artist-friendly light intensity scaling factor\n\n var scaleFactor = useLegacyLights === true ? Math.PI : 1;\n\n for (var _i37 = 0, l = lights.length; _i37 < l; _i37++) {\n var light = lights[_i37];\n var color = light.color;\n var intensity = light.intensity;\n var distance = light.distance;\n var shadowMap = light.shadow && light.shadow.map ? light.shadow.map.texture : null;\n\n if (light.isAmbientLight) {\n r += color.r * intensity * scaleFactor;\n g += color.g * intensity * scaleFactor;\n b += color.b * intensity * scaleFactor;\n } else if (light.isLightProbe) {\n for (var j = 0; j < 9; j++) {\n state.probe[j].addScaledVector(light.sh.coefficients[j], intensity);\n }\n } else if (light.isDirectionalLight) {\n var uniforms = cache.get(light);\n uniforms.color.copy(light.color).multiplyScalar(light.intensity * scaleFactor);\n\n if (light.castShadow) {\n var shadow = light.shadow;\n var shadowUniforms = shadowCache.get(light);\n shadowUniforms.shadowBias = shadow.bias;\n shadowUniforms.shadowNormalBias = shadow.normalBias;\n shadowUniforms.shadowRadius = shadow.radius;\n shadowUniforms.shadowMapSize = shadow.mapSize;\n state.directionalShadow[directionalLength] = shadowUniforms;\n state.directionalShadowMap[directionalLength] = shadowMap;\n state.directionalShadowMatrix[directionalLength] = light.shadow.matrix;\n numDirectionalShadows++;\n }\n\n state.directional[directionalLength] = uniforms;\n directionalLength++;\n } else if (light.isSpotLight) {\n var _uniforms = cache.get(light);\n\n _uniforms.position.setFromMatrixPosition(light.matrixWorld);\n\n _uniforms.color.copy(color).multiplyScalar(intensity * scaleFactor);\n\n _uniforms.distance = distance;\n _uniforms.coneCos = Math.cos(light.angle);\n _uniforms.penumbraCos = Math.cos(light.angle * (1 - light.penumbra));\n _uniforms.decay = light.decay;\n state.spot[spotLength] = _uniforms;\n var _shadow = light.shadow;\n\n if (light.map) {\n state.spotLightMap[numSpotMaps] = light.map;\n numSpotMaps++; // make sure the lightMatrix is up to date\n // TODO : do it if required only\n\n _shadow.updateMatrices(light);\n\n if (light.castShadow) numSpotShadowsWithMaps++;\n }\n\n state.spotLightMatrix[spotLength] = _shadow.matrix;\n\n if (light.castShadow) {\n var _shadowUniforms = shadowCache.get(light);\n\n _shadowUniforms.shadowBias = _shadow.bias;\n _shadowUniforms.shadowNormalBias = _shadow.normalBias;\n _shadowUniforms.shadowRadius = _shadow.radius;\n _shadowUniforms.shadowMapSize = _shadow.mapSize;\n state.spotShadow[spotLength] = _shadowUniforms;\n state.spotShadowMap[spotLength] = shadowMap;\n numSpotShadows++;\n }\n\n spotLength++;\n } else if (light.isRectAreaLight) {\n var _uniforms2 = cache.get(light);\n\n _uniforms2.color.copy(color).multiplyScalar(intensity);\n\n _uniforms2.halfWidth.set(light.width * 0.5, 0.0, 0.0);\n\n _uniforms2.halfHeight.set(0.0, light.height * 0.5, 0.0);\n\n state.rectArea[rectAreaLength] = _uniforms2;\n rectAreaLength++;\n } else if (light.isPointLight) {\n var _uniforms3 = cache.get(light);\n\n _uniforms3.color.copy(light.color).multiplyScalar(light.intensity * scaleFactor);\n\n _uniforms3.distance = light.distance;\n _uniforms3.decay = light.decay;\n\n if (light.castShadow) {\n var _shadow2 = light.shadow;\n\n var _shadowUniforms2 = shadowCache.get(light);\n\n _shadowUniforms2.shadowBias = _shadow2.bias;\n _shadowUniforms2.shadowNormalBias = _shadow2.normalBias;\n _shadowUniforms2.shadowRadius = _shadow2.radius;\n _shadowUniforms2.shadowMapSize = _shadow2.mapSize;\n _shadowUniforms2.shadowCameraNear = _shadow2.camera.near;\n _shadowUniforms2.shadowCameraFar = _shadow2.camera.far;\n state.pointShadow[pointLength] = _shadowUniforms2;\n state.pointShadowMap[pointLength] = shadowMap;\n state.pointShadowMatrix[pointLength] = light.shadow.matrix;\n numPointShadows++;\n }\n\n state.point[pointLength] = _uniforms3;\n pointLength++;\n } else if (light.isHemisphereLight) {\n var _uniforms4 = cache.get(light);\n\n _uniforms4.skyColor.copy(light.color).multiplyScalar(intensity * scaleFactor);\n\n _uniforms4.groundColor.copy(light.groundColor).multiplyScalar(intensity * scaleFactor);\n\n state.hemi[hemiLength] = _uniforms4;\n hemiLength++;\n }\n }\n\n if (rectAreaLength > 0) {\n if (capabilities.isWebGL2) {\n // WebGL 2\n state.rectAreaLTC1 = UniformsLib.LTC_FLOAT_1;\n state.rectAreaLTC2 = UniformsLib.LTC_FLOAT_2;\n } else {\n // WebGL 1\n if (extensions.has('OES_texture_float_linear') === true) {\n state.rectAreaLTC1 = UniformsLib.LTC_FLOAT_1;\n state.rectAreaLTC2 = UniformsLib.LTC_FLOAT_2;\n } else if (extensions.has('OES_texture_half_float_linear') === true) {\n state.rectAreaLTC1 = UniformsLib.LTC_HALF_1;\n state.rectAreaLTC2 = UniformsLib.LTC_HALF_2;\n } else {\n console.error('THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.');\n }\n }\n }\n\n state.ambient[0] = r;\n state.ambient[1] = g;\n state.ambient[2] = b;\n var hash = state.hash;\n\n if (hash.directionalLength !== directionalLength || hash.pointLength !== pointLength || hash.spotLength !== spotLength || hash.rectAreaLength !== rectAreaLength || hash.hemiLength !== hemiLength || hash.numDirectionalShadows !== numDirectionalShadows || hash.numPointShadows !== numPointShadows || hash.numSpotShadows !== numSpotShadows || hash.numSpotMaps !== numSpotMaps) {\n state.directional.length = directionalLength;\n state.spot.length = spotLength;\n state.rectArea.length = rectAreaLength;\n state.point.length = pointLength;\n state.hemi.length = hemiLength;\n state.directionalShadow.length = numDirectionalShadows;\n state.directionalShadowMap.length = numDirectionalShadows;\n state.pointShadow.length = numPointShadows;\n state.pointShadowMap.length = numPointShadows;\n state.spotShadow.length = numSpotShadows;\n state.spotShadowMap.length = numSpotShadows;\n state.directionalShadowMatrix.length = numDirectionalShadows;\n state.pointShadowMatrix.length = numPointShadows;\n state.spotLightMatrix.length = numSpotShadows + numSpotMaps - numSpotShadowsWithMaps;\n state.spotLightMap.length = numSpotMaps;\n state.numSpotLightShadowsWithMaps = numSpotShadowsWithMaps;\n hash.directionalLength = directionalLength;\n hash.pointLength = pointLength;\n hash.spotLength = spotLength;\n hash.rectAreaLength = rectAreaLength;\n hash.hemiLength = hemiLength;\n hash.numDirectionalShadows = numDirectionalShadows;\n hash.numPointShadows = numPointShadows;\n hash.numSpotShadows = numSpotShadows;\n hash.numSpotMaps = numSpotMaps;\n state.version = nextVersion++;\n }\n }\n\n function setupView(lights, camera) {\n var directionalLength = 0;\n var pointLength = 0;\n var spotLength = 0;\n var rectAreaLength = 0;\n var hemiLength = 0;\n var viewMatrix = camera.matrixWorldInverse;\n\n for (var _i38 = 0, l = lights.length; _i38 < l; _i38++) {\n var light = lights[_i38];\n\n if (light.isDirectionalLight) {\n var uniforms = state.directional[directionalLength];\n uniforms.direction.setFromMatrixPosition(light.matrixWorld);\n vector3.setFromMatrixPosition(light.target.matrixWorld);\n uniforms.direction.sub(vector3);\n uniforms.direction.transformDirection(viewMatrix);\n directionalLength++;\n } else if (light.isSpotLight) {\n var _uniforms5 = state.spot[spotLength];\n\n _uniforms5.position.setFromMatrixPosition(light.matrixWorld);\n\n _uniforms5.position.applyMatrix4(viewMatrix);\n\n _uniforms5.direction.setFromMatrixPosition(light.matrixWorld);\n\n vector3.setFromMatrixPosition(light.target.matrixWorld);\n\n _uniforms5.direction.sub(vector3);\n\n _uniforms5.direction.transformDirection(viewMatrix);\n\n spotLength++;\n } else if (light.isRectAreaLight) {\n var _uniforms6 = state.rectArea[rectAreaLength];\n\n _uniforms6.position.setFromMatrixPosition(light.matrixWorld);\n\n _uniforms6.position.applyMatrix4(viewMatrix); // extract local rotation of light to derive width/height half vectors\n\n\n matrix42.identity();\n matrix4.copy(light.matrixWorld);\n matrix4.premultiply(viewMatrix);\n matrix42.extractRotation(matrix4);\n\n _uniforms6.halfWidth.set(light.width * 0.5, 0.0, 0.0);\n\n _uniforms6.halfHeight.set(0.0, light.height * 0.5, 0.0);\n\n _uniforms6.halfWidth.applyMatrix4(matrix42);\n\n _uniforms6.halfHeight.applyMatrix4(matrix42);\n\n rectAreaLength++;\n } else if (light.isPointLight) {\n var _uniforms7 = state.point[pointLength];\n\n _uniforms7.position.setFromMatrixPosition(light.matrixWorld);\n\n _uniforms7.position.applyMatrix4(viewMatrix);\n\n pointLength++;\n } else if (light.isHemisphereLight) {\n var _uniforms8 = state.hemi[hemiLength];\n\n _uniforms8.direction.setFromMatrixPosition(light.matrixWorld);\n\n _uniforms8.direction.transformDirection(viewMatrix);\n\n hemiLength++;\n }\n }\n }\n\n return {\n setup: setup,\n setupView: setupView,\n state: state\n };\n}\n\nfunction WebGLRenderState(extensions, capabilities) {\n var lights = new WebGLLights(extensions, capabilities);\n var lightsArray = [];\n var shadowsArray = [];\n\n function init() {\n lightsArray.length = 0;\n shadowsArray.length = 0;\n }\n\n function pushLight(light) {\n lightsArray.push(light);\n }\n\n function pushShadow(shadowLight) {\n shadowsArray.push(shadowLight);\n }\n\n function setupLights(useLegacyLights) {\n lights.setup(lightsArray, useLegacyLights);\n }\n\n function setupLightsView(camera) {\n lights.setupView(lightsArray, camera);\n }\n\n var state = {\n lightsArray: lightsArray,\n shadowsArray: shadowsArray,\n lights: lights\n };\n return {\n init: init,\n state: state,\n setupLights: setupLights,\n setupLightsView: setupLightsView,\n pushLight: pushLight,\n pushShadow: pushShadow\n };\n}\n\nfunction WebGLRenderStates(extensions, capabilities) {\n var renderStates = new WeakMap();\n\n function get(scene) {\n var renderCallDepth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var renderStateArray = renderStates.get(scene);\n var renderState;\n\n if (renderStateArray === undefined) {\n renderState = new WebGLRenderState(extensions, capabilities);\n renderStates.set(scene, [renderState]);\n } else {\n if (renderCallDepth >= renderStateArray.length) {\n renderState = new WebGLRenderState(extensions, capabilities);\n renderStateArray.push(renderState);\n } else {\n renderState = renderStateArray[renderCallDepth];\n }\n }\n\n return renderState;\n }\n\n function dispose() {\n renderStates = new WeakMap();\n }\n\n return {\n get: get,\n dispose: dispose\n };\n}\n\nvar MeshDepthMaterial = /*#__PURE__*/function (_Material3) {\n _inherits(MeshDepthMaterial, _Material3);\n\n var _super32 = _createSuper(MeshDepthMaterial);\n\n function MeshDepthMaterial(parameters) {\n var _this24;\n\n _classCallCheck(this, MeshDepthMaterial);\n\n _this24 = _super32.call(this);\n _this24.isMeshDepthMaterial = true;\n _this24.type = 'MeshDepthMaterial';\n _this24.depthPacking = BasicDepthPacking;\n _this24.map = null;\n _this24.alphaMap = null;\n _this24.displacementMap = null;\n _this24.displacementScale = 1;\n _this24.displacementBias = 0;\n _this24.wireframe = false;\n _this24.wireframeLinewidth = 1;\n\n _this24.setValues(parameters);\n\n return _this24;\n }\n\n _createClass(MeshDepthMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(MeshDepthMaterial.prototype), \"copy\", this).call(this, source);\n\n this.depthPacking = source.depthPacking;\n this.map = source.map;\n this.alphaMap = source.alphaMap;\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n return this;\n }\n }]);\n\n return MeshDepthMaterial;\n}(Material);\n\nvar MeshDistanceMaterial = /*#__PURE__*/function (_Material4) {\n _inherits(MeshDistanceMaterial, _Material4);\n\n var _super33 = _createSuper(MeshDistanceMaterial);\n\n function MeshDistanceMaterial(parameters) {\n var _this25;\n\n _classCallCheck(this, MeshDistanceMaterial);\n\n _this25 = _super33.call(this);\n _this25.isMeshDistanceMaterial = true;\n _this25.type = 'MeshDistanceMaterial';\n _this25.map = null;\n _this25.alphaMap = null;\n _this25.displacementMap = null;\n _this25.displacementScale = 1;\n _this25.displacementBias = 0;\n\n _this25.setValues(parameters);\n\n return _this25;\n }\n\n _createClass(MeshDistanceMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(MeshDistanceMaterial.prototype), \"copy\", this).call(this, source);\n\n this.map = source.map;\n this.alphaMap = source.alphaMap;\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n return this;\n }\n }]);\n\n return MeshDistanceMaterial;\n}(Material);\n\nvar vertex = \"void main() {\\n\\tgl_Position = vec4( position, 1.0 );\\n}\";\nvar fragment = \"uniform sampler2D shadow_pass;\\nuniform vec2 resolution;\\nuniform float radius;\\n#include \\nvoid main() {\\n\\tconst float samples = float( VSM_SAMPLES );\\n\\tfloat mean = 0.0;\\n\\tfloat squared_mean = 0.0;\\n\\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\\n\\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\\n\\tfor ( float i = 0.0; i < samples; i ++ ) {\\n\\t\\tfloat uvOffset = uvStart + i * uvStride;\\n\\t\\t#ifdef HORIZONTAL_PASS\\n\\t\\t\\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\\n\\t\\t\\tmean += distribution.x;\\n\\t\\t\\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\\n\\t\\t#else\\n\\t\\t\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\\n\\t\\t\\tmean += depth;\\n\\t\\t\\tsquared_mean += depth * depth;\\n\\t\\t#endif\\n\\t}\\n\\tmean = mean / samples;\\n\\tsquared_mean = squared_mean / samples;\\n\\tfloat std_dev = sqrt( squared_mean - mean * mean );\\n\\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\\n}\";\n\nfunction WebGLShadowMap(_renderer, _objects, _capabilities) {\n var _shadowSide;\n\n var _frustum = new Frustum();\n\n var _shadowMapSize = new Vector2(),\n _viewportSize = new Vector2(),\n _viewport = new Vector4(),\n _depthMaterial = new MeshDepthMaterial({\n depthPacking: RGBADepthPacking\n }),\n _distanceMaterial = new MeshDistanceMaterial(),\n _materialCache = {},\n _maxTextureSize = _capabilities.maxTextureSize;\n\n var shadowSide = (_shadowSide = {}, _defineProperty(_shadowSide, FrontSide, BackSide), _defineProperty(_shadowSide, BackSide, FrontSide), _defineProperty(_shadowSide, DoubleSide, DoubleSide), _shadowSide);\n var shadowMaterialVertical = new ShaderMaterial({\n defines: {\n VSM_SAMPLES: 8\n },\n uniforms: {\n shadow_pass: {\n value: null\n },\n resolution: {\n value: new Vector2()\n },\n radius: {\n value: 4.0\n }\n },\n vertexShader: vertex,\n fragmentShader: fragment\n });\n var shadowMaterialHorizontal = shadowMaterialVertical.clone();\n shadowMaterialHorizontal.defines.HORIZONTAL_PASS = 1;\n var fullScreenTri = new BufferGeometry();\n fullScreenTri.setAttribute('position', new BufferAttribute(new Float32Array([-1, -1, 0.5, 3, -1, 0.5, -1, 3, 0.5]), 3));\n var fullScreenMesh = new Mesh(fullScreenTri, shadowMaterialVertical);\n var scope = this;\n this.enabled = false;\n this.autoUpdate = true;\n this.needsUpdate = false;\n this.type = PCFShadowMap;\n var _previousType = this.type;\n\n this.render = function (lights, scene, camera) {\n if (scope.enabled === false) return;\n if (scope.autoUpdate === false && scope.needsUpdate === false) return;\n if (lights.length === 0) return;\n\n var currentRenderTarget = _renderer.getRenderTarget();\n\n var activeCubeFace = _renderer.getActiveCubeFace();\n\n var activeMipmapLevel = _renderer.getActiveMipmapLevel();\n\n var _state = _renderer.state; // Set GL state for depth map.\n\n _state.setBlending(NoBlending);\n\n _state.buffers.color.setClear(1, 1, 1, 1);\n\n _state.buffers.depth.setTest(true);\n\n _state.setScissorTest(false); // check for shadow map type changes\n\n\n var toVSM = _previousType !== VSMShadowMap && this.type === VSMShadowMap;\n var fromVSM = _previousType === VSMShadowMap && this.type !== VSMShadowMap; // render depth map\n\n for (var i = 0, il = lights.length; i < il; i++) {\n var light = lights[i];\n var shadow = light.shadow;\n\n if (shadow === undefined) {\n console.warn('THREE.WebGLShadowMap:', light, 'has no shadow.');\n continue;\n }\n\n if (shadow.autoUpdate === false && shadow.needsUpdate === false) continue;\n\n _shadowMapSize.copy(shadow.mapSize);\n\n var shadowFrameExtents = shadow.getFrameExtents();\n\n _shadowMapSize.multiply(shadowFrameExtents);\n\n _viewportSize.copy(shadow.mapSize);\n\n if (_shadowMapSize.x > _maxTextureSize || _shadowMapSize.y > _maxTextureSize) {\n if (_shadowMapSize.x > _maxTextureSize) {\n _viewportSize.x = Math.floor(_maxTextureSize / shadowFrameExtents.x);\n _shadowMapSize.x = _viewportSize.x * shadowFrameExtents.x;\n shadow.mapSize.x = _viewportSize.x;\n }\n\n if (_shadowMapSize.y > _maxTextureSize) {\n _viewportSize.y = Math.floor(_maxTextureSize / shadowFrameExtents.y);\n _shadowMapSize.y = _viewportSize.y * shadowFrameExtents.y;\n shadow.mapSize.y = _viewportSize.y;\n }\n }\n\n if (shadow.map === null || toVSM === true || fromVSM === true) {\n var pars = this.type !== VSMShadowMap ? {\n minFilter: NearestFilter,\n magFilter: NearestFilter\n } : {};\n\n if (shadow.map !== null) {\n shadow.map.dispose();\n }\n\n shadow.map = new WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y, pars);\n shadow.map.texture.name = light.name + '.shadowMap';\n shadow.camera.updateProjectionMatrix();\n }\n\n _renderer.setRenderTarget(shadow.map);\n\n _renderer.clear();\n\n var viewportCount = shadow.getViewportCount();\n\n for (var vp = 0; vp < viewportCount; vp++) {\n var viewport = shadow.getViewport(vp);\n\n _viewport.set(_viewportSize.x * viewport.x, _viewportSize.y * viewport.y, _viewportSize.x * viewport.z, _viewportSize.y * viewport.w);\n\n _state.viewport(_viewport);\n\n shadow.updateMatrices(light, vp);\n _frustum = shadow.getFrustum();\n renderObject(scene, camera, shadow.camera, light, this.type);\n } // do blur pass for VSM\n\n\n if (shadow.isPointLightShadow !== true && this.type === VSMShadowMap) {\n VSMPass(shadow, camera);\n }\n\n shadow.needsUpdate = false;\n }\n\n _previousType = this.type;\n scope.needsUpdate = false;\n\n _renderer.setRenderTarget(currentRenderTarget, activeCubeFace, activeMipmapLevel);\n };\n\n function VSMPass(shadow, camera) {\n var geometry = _objects.update(fullScreenMesh);\n\n if (shadowMaterialVertical.defines.VSM_SAMPLES !== shadow.blurSamples) {\n shadowMaterialVertical.defines.VSM_SAMPLES = shadow.blurSamples;\n shadowMaterialHorizontal.defines.VSM_SAMPLES = shadow.blurSamples;\n shadowMaterialVertical.needsUpdate = true;\n shadowMaterialHorizontal.needsUpdate = true;\n }\n\n if (shadow.mapPass === null) {\n shadow.mapPass = new WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y);\n } // vertical pass\n\n\n shadowMaterialVertical.uniforms.shadow_pass.value = shadow.map.texture;\n shadowMaterialVertical.uniforms.resolution.value = shadow.mapSize;\n shadowMaterialVertical.uniforms.radius.value = shadow.radius;\n\n _renderer.setRenderTarget(shadow.mapPass);\n\n _renderer.clear();\n\n _renderer.renderBufferDirect(camera, null, geometry, shadowMaterialVertical, fullScreenMesh, null); // horizontal pass\n\n\n shadowMaterialHorizontal.uniforms.shadow_pass.value = shadow.mapPass.texture;\n shadowMaterialHorizontal.uniforms.resolution.value = shadow.mapSize;\n shadowMaterialHorizontal.uniforms.radius.value = shadow.radius;\n\n _renderer.setRenderTarget(shadow.map);\n\n _renderer.clear();\n\n _renderer.renderBufferDirect(camera, null, geometry, shadowMaterialHorizontal, fullScreenMesh, null);\n }\n\n function getDepthMaterial(object, material, light, type) {\n var result = null;\n var customMaterial = light.isPointLight === true ? object.customDistanceMaterial : object.customDepthMaterial;\n\n if (customMaterial !== undefined) {\n result = customMaterial;\n } else {\n result = light.isPointLight === true ? _distanceMaterial : _depthMaterial;\n\n if (_renderer.localClippingEnabled && material.clipShadows === true && Array.isArray(material.clippingPlanes) && material.clippingPlanes.length !== 0 || material.displacementMap && material.displacementScale !== 0 || material.alphaMap && material.alphaTest > 0 || material.map && material.alphaTest > 0) {\n // in this case we need a unique material instance reflecting the\n // appropriate state\n var keyA = result.uuid,\n keyB = material.uuid;\n var materialsForVariant = _materialCache[keyA];\n\n if (materialsForVariant === undefined) {\n materialsForVariant = {};\n _materialCache[keyA] = materialsForVariant;\n }\n\n var cachedMaterial = materialsForVariant[keyB];\n\n if (cachedMaterial === undefined) {\n cachedMaterial = result.clone();\n materialsForVariant[keyB] = cachedMaterial;\n }\n\n result = cachedMaterial;\n }\n }\n\n result.visible = material.visible;\n result.wireframe = material.wireframe;\n\n if (type === VSMShadowMap) {\n result.side = material.shadowSide !== null ? material.shadowSide : material.side;\n } else {\n result.side = material.shadowSide !== null ? material.shadowSide : shadowSide[material.side];\n }\n\n result.alphaMap = material.alphaMap;\n result.alphaTest = material.alphaTest;\n result.map = material.map;\n result.clipShadows = material.clipShadows;\n result.clippingPlanes = material.clippingPlanes;\n result.clipIntersection = material.clipIntersection;\n result.displacementMap = material.displacementMap;\n result.displacementScale = material.displacementScale;\n result.displacementBias = material.displacementBias;\n result.wireframeLinewidth = material.wireframeLinewidth;\n result.linewidth = material.linewidth;\n\n if (light.isPointLight === true && result.isMeshDistanceMaterial === true) {\n var materialProperties = _renderer.properties.get(result);\n\n materialProperties.light = light;\n }\n\n return result;\n }\n\n function renderObject(object, camera, shadowCamera, light, type) {\n if (object.visible === false) return;\n var visible = object.layers.test(camera.layers);\n\n if (visible && (object.isMesh || object.isLine || object.isPoints)) {\n if ((object.castShadow || object.receiveShadow && type === VSMShadowMap) && (!object.frustumCulled || _frustum.intersectsObject(object))) {\n object.modelViewMatrix.multiplyMatrices(shadowCamera.matrixWorldInverse, object.matrixWorld);\n\n var geometry = _objects.update(object);\n\n var material = object.material;\n\n if (Array.isArray(material)) {\n var groups = geometry.groups;\n\n for (var k = 0, kl = groups.length; k < kl; k++) {\n var group = groups[k];\n var groupMaterial = material[group.materialIndex];\n\n if (groupMaterial && groupMaterial.visible) {\n var depthMaterial = getDepthMaterial(object, groupMaterial, light, type);\n\n _renderer.renderBufferDirect(shadowCamera, null, geometry, depthMaterial, object, group);\n }\n }\n } else if (material.visible) {\n var _depthMaterial2 = getDepthMaterial(object, material, light, type);\n\n _renderer.renderBufferDirect(shadowCamera, null, geometry, _depthMaterial2, object, null);\n }\n }\n }\n\n var children = object.children;\n\n for (var i = 0, l = children.length; i < l; i++) {\n renderObject(children[i], camera, shadowCamera, light, type);\n }\n }\n}\n\nfunction WebGLState(gl, extensions, capabilities) {\n var _equationToGL, _factorToGL;\n\n var isWebGL2 = capabilities.isWebGL2;\n\n function ColorBuffer() {\n var locked = false;\n var color = new Vector4();\n var currentColorMask = null;\n var currentColorClear = new Vector4(0, 0, 0, 0);\n return {\n setMask: function setMask(colorMask) {\n if (currentColorMask !== colorMask && !locked) {\n gl.colorMask(colorMask, colorMask, colorMask, colorMask);\n currentColorMask = colorMask;\n }\n },\n setLocked: function setLocked(lock) {\n locked = lock;\n },\n setClear: function setClear(r, g, b, a, premultipliedAlpha) {\n if (premultipliedAlpha === true) {\n r *= a;\n g *= a;\n b *= a;\n }\n\n color.set(r, g, b, a);\n\n if (currentColorClear.equals(color) === false) {\n gl.clearColor(r, g, b, a);\n currentColorClear.copy(color);\n }\n },\n reset: function reset() {\n locked = false;\n currentColorMask = null;\n currentColorClear.set(-1, 0, 0, 0); // set to invalid state\n }\n };\n }\n\n function DepthBuffer() {\n var locked = false;\n var currentDepthMask = null;\n var currentDepthFunc = null;\n var currentDepthClear = null;\n return {\n setTest: function setTest(depthTest) {\n if (depthTest) {\n enable(gl.DEPTH_TEST);\n } else {\n disable(gl.DEPTH_TEST);\n }\n },\n setMask: function setMask(depthMask) {\n if (currentDepthMask !== depthMask && !locked) {\n gl.depthMask(depthMask);\n currentDepthMask = depthMask;\n }\n },\n setFunc: function setFunc(depthFunc) {\n if (currentDepthFunc !== depthFunc) {\n switch (depthFunc) {\n case NeverDepth:\n gl.depthFunc(gl.NEVER);\n break;\n\n case AlwaysDepth:\n gl.depthFunc(gl.ALWAYS);\n break;\n\n case LessDepth:\n gl.depthFunc(gl.LESS);\n break;\n\n case LessEqualDepth:\n gl.depthFunc(gl.LEQUAL);\n break;\n\n case EqualDepth:\n gl.depthFunc(gl.EQUAL);\n break;\n\n case GreaterEqualDepth:\n gl.depthFunc(gl.GEQUAL);\n break;\n\n case GreaterDepth:\n gl.depthFunc(gl.GREATER);\n break;\n\n case NotEqualDepth:\n gl.depthFunc(gl.NOTEQUAL);\n break;\n\n default:\n gl.depthFunc(gl.LEQUAL);\n }\n\n currentDepthFunc = depthFunc;\n }\n },\n setLocked: function setLocked(lock) {\n locked = lock;\n },\n setClear: function setClear(depth) {\n if (currentDepthClear !== depth) {\n gl.clearDepth(depth);\n currentDepthClear = depth;\n }\n },\n reset: function reset() {\n locked = false;\n currentDepthMask = null;\n currentDepthFunc = null;\n currentDepthClear = null;\n }\n };\n }\n\n function StencilBuffer() {\n var locked = false;\n var currentStencilMask = null;\n var currentStencilFunc = null;\n var currentStencilRef = null;\n var currentStencilFuncMask = null;\n var currentStencilFail = null;\n var currentStencilZFail = null;\n var currentStencilZPass = null;\n var currentStencilClear = null;\n return {\n setTest: function setTest(stencilTest) {\n if (!locked) {\n if (stencilTest) {\n enable(gl.STENCIL_TEST);\n } else {\n disable(gl.STENCIL_TEST);\n }\n }\n },\n setMask: function setMask(stencilMask) {\n if (currentStencilMask !== stencilMask && !locked) {\n gl.stencilMask(stencilMask);\n currentStencilMask = stencilMask;\n }\n },\n setFunc: function setFunc(stencilFunc, stencilRef, stencilMask) {\n if (currentStencilFunc !== stencilFunc || currentStencilRef !== stencilRef || currentStencilFuncMask !== stencilMask) {\n gl.stencilFunc(stencilFunc, stencilRef, stencilMask);\n currentStencilFunc = stencilFunc;\n currentStencilRef = stencilRef;\n currentStencilFuncMask = stencilMask;\n }\n },\n setOp: function setOp(stencilFail, stencilZFail, stencilZPass) {\n if (currentStencilFail !== stencilFail || currentStencilZFail !== stencilZFail || currentStencilZPass !== stencilZPass) {\n gl.stencilOp(stencilFail, stencilZFail, stencilZPass);\n currentStencilFail = stencilFail;\n currentStencilZFail = stencilZFail;\n currentStencilZPass = stencilZPass;\n }\n },\n setLocked: function setLocked(lock) {\n locked = lock;\n },\n setClear: function setClear(stencil) {\n if (currentStencilClear !== stencil) {\n gl.clearStencil(stencil);\n currentStencilClear = stencil;\n }\n },\n reset: function reset() {\n locked = false;\n currentStencilMask = null;\n currentStencilFunc = null;\n currentStencilRef = null;\n currentStencilFuncMask = null;\n currentStencilFail = null;\n currentStencilZFail = null;\n currentStencilZPass = null;\n currentStencilClear = null;\n }\n };\n } //\n\n\n var colorBuffer = new ColorBuffer();\n var depthBuffer = new DepthBuffer();\n var stencilBuffer = new StencilBuffer();\n var uboBindings = new WeakMap();\n var uboProgramMap = new WeakMap();\n var enabledCapabilities = {};\n var currentBoundFramebuffers = {};\n var currentDrawbuffers = new WeakMap();\n var defaultDrawbuffers = [];\n var currentProgram = null;\n var currentBlendingEnabled = false;\n var currentBlending = null;\n var currentBlendEquation = null;\n var currentBlendSrc = null;\n var currentBlendDst = null;\n var currentBlendEquationAlpha = null;\n var currentBlendSrcAlpha = null;\n var currentBlendDstAlpha = null;\n var currentPremultipledAlpha = false;\n var currentFlipSided = null;\n var currentCullFace = null;\n var currentLineWidth = null;\n var currentPolygonOffsetFactor = null;\n var currentPolygonOffsetUnits = null;\n var maxTextures = gl.getParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS);\n var lineWidthAvailable = false;\n var version = 0;\n var glVersion = gl.getParameter(gl.VERSION);\n\n if (glVersion.indexOf('WebGL') !== -1) {\n version = parseFloat(/^WebGL (\\d)/.exec(glVersion)[1]);\n lineWidthAvailable = version >= 1.0;\n } else if (glVersion.indexOf('OpenGL ES') !== -1) {\n version = parseFloat(/^OpenGL ES (\\d)/.exec(glVersion)[1]);\n lineWidthAvailable = version >= 2.0;\n }\n\n var currentTextureSlot = null;\n var currentBoundTextures = {};\n var scissorParam = gl.getParameter(gl.SCISSOR_BOX);\n var viewportParam = gl.getParameter(gl.VIEWPORT);\n var currentScissor = new Vector4().fromArray(scissorParam);\n var currentViewport = new Vector4().fromArray(viewportParam);\n\n function createTexture(type, target, count, dimensions) {\n var data = new Uint8Array(4); // 4 is required to match default unpack alignment of 4.\n\n var texture = gl.createTexture();\n gl.bindTexture(type, texture);\n gl.texParameteri(type, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(type, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n\n for (var i = 0; i < count; i++) {\n if (isWebGL2 && (type === gl.TEXTURE_3D || type === gl.TEXTURE_2D_ARRAY)) {\n gl.texImage3D(target, 0, gl.RGBA, 1, 1, dimensions, 0, gl.RGBA, gl.UNSIGNED_BYTE, data);\n } else {\n gl.texImage2D(target + i, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, data);\n }\n }\n\n return texture;\n }\n\n var emptyTextures = {};\n emptyTextures[gl.TEXTURE_2D] = createTexture(gl.TEXTURE_2D, gl.TEXTURE_2D, 1);\n emptyTextures[gl.TEXTURE_CUBE_MAP] = createTexture(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_CUBE_MAP_POSITIVE_X, 6);\n\n if (isWebGL2) {\n emptyTextures[gl.TEXTURE_2D_ARRAY] = createTexture(gl.TEXTURE_2D_ARRAY, gl.TEXTURE_2D_ARRAY, 1, 1);\n emptyTextures[gl.TEXTURE_3D] = createTexture(gl.TEXTURE_3D, gl.TEXTURE_3D, 1, 1);\n } // init\n\n\n colorBuffer.setClear(0, 0, 0, 1);\n depthBuffer.setClear(1);\n stencilBuffer.setClear(0);\n enable(gl.DEPTH_TEST);\n depthBuffer.setFunc(LessEqualDepth);\n setFlipSided(false);\n setCullFace(CullFaceBack);\n enable(gl.CULL_FACE);\n setBlending(NoBlending); //\n\n function enable(id) {\n if (enabledCapabilities[id] !== true) {\n gl.enable(id);\n enabledCapabilities[id] = true;\n }\n }\n\n function disable(id) {\n if (enabledCapabilities[id] !== false) {\n gl.disable(id);\n enabledCapabilities[id] = false;\n }\n }\n\n function bindFramebuffer(target, framebuffer) {\n if (currentBoundFramebuffers[target] !== framebuffer) {\n gl.bindFramebuffer(target, framebuffer);\n currentBoundFramebuffers[target] = framebuffer;\n\n if (isWebGL2) {\n // gl.DRAW_FRAMEBUFFER is equivalent to gl.FRAMEBUFFER\n if (target === gl.DRAW_FRAMEBUFFER) {\n currentBoundFramebuffers[gl.FRAMEBUFFER] = framebuffer;\n }\n\n if (target === gl.FRAMEBUFFER) {\n currentBoundFramebuffers[gl.DRAW_FRAMEBUFFER] = framebuffer;\n }\n }\n\n return true;\n }\n\n return false;\n }\n\n function drawBuffers(renderTarget, framebuffer) {\n var drawBuffers = defaultDrawbuffers;\n var needsUpdate = false;\n\n if (renderTarget) {\n drawBuffers = currentDrawbuffers.get(framebuffer);\n\n if (drawBuffers === undefined) {\n drawBuffers = [];\n currentDrawbuffers.set(framebuffer, drawBuffers);\n }\n\n if (renderTarget.isWebGLMultipleRenderTargets) {\n var textures = renderTarget.texture;\n\n if (drawBuffers.length !== textures.length || drawBuffers[0] !== gl.COLOR_ATTACHMENT0) {\n for (var i = 0, il = textures.length; i < il; i++) {\n drawBuffers[i] = gl.COLOR_ATTACHMENT0 + i;\n }\n\n drawBuffers.length = textures.length;\n needsUpdate = true;\n }\n } else {\n if (drawBuffers[0] !== gl.COLOR_ATTACHMENT0) {\n drawBuffers[0] = gl.COLOR_ATTACHMENT0;\n needsUpdate = true;\n }\n }\n } else {\n if (drawBuffers[0] !== gl.BACK) {\n drawBuffers[0] = gl.BACK;\n needsUpdate = true;\n }\n }\n\n if (needsUpdate) {\n if (capabilities.isWebGL2) {\n gl.drawBuffers(drawBuffers);\n } else {\n extensions.get('WEBGL_draw_buffers').drawBuffersWEBGL(drawBuffers);\n }\n }\n }\n\n function useProgram(program) {\n if (currentProgram !== program) {\n gl.useProgram(program);\n currentProgram = program;\n return true;\n }\n\n return false;\n }\n\n var equationToGL = (_equationToGL = {}, _defineProperty(_equationToGL, AddEquation, gl.FUNC_ADD), _defineProperty(_equationToGL, SubtractEquation, gl.FUNC_SUBTRACT), _defineProperty(_equationToGL, ReverseSubtractEquation, gl.FUNC_REVERSE_SUBTRACT), _equationToGL);\n\n if (isWebGL2) {\n equationToGL[MinEquation] = gl.MIN;\n equationToGL[MaxEquation] = gl.MAX;\n } else {\n var extension = extensions.get('EXT_blend_minmax');\n\n if (extension !== null) {\n equationToGL[MinEquation] = extension.MIN_EXT;\n equationToGL[MaxEquation] = extension.MAX_EXT;\n }\n }\n\n var factorToGL = (_factorToGL = {}, _defineProperty(_factorToGL, ZeroFactor, gl.ZERO), _defineProperty(_factorToGL, OneFactor, gl.ONE), _defineProperty(_factorToGL, SrcColorFactor, gl.SRC_COLOR), _defineProperty(_factorToGL, SrcAlphaFactor, gl.SRC_ALPHA), _defineProperty(_factorToGL, SrcAlphaSaturateFactor, gl.SRC_ALPHA_SATURATE), _defineProperty(_factorToGL, DstColorFactor, gl.DST_COLOR), _defineProperty(_factorToGL, DstAlphaFactor, gl.DST_ALPHA), _defineProperty(_factorToGL, OneMinusSrcColorFactor, gl.ONE_MINUS_SRC_COLOR), _defineProperty(_factorToGL, OneMinusSrcAlphaFactor, gl.ONE_MINUS_SRC_ALPHA), _defineProperty(_factorToGL, OneMinusDstColorFactor, gl.ONE_MINUS_DST_COLOR), _defineProperty(_factorToGL, OneMinusDstAlphaFactor, gl.ONE_MINUS_DST_ALPHA), _factorToGL);\n\n function setBlending(blending, blendEquation, blendSrc, blendDst, blendEquationAlpha, blendSrcAlpha, blendDstAlpha, premultipliedAlpha) {\n if (blending === NoBlending) {\n if (currentBlendingEnabled === true) {\n disable(gl.BLEND);\n currentBlendingEnabled = false;\n }\n\n return;\n }\n\n if (currentBlendingEnabled === false) {\n enable(gl.BLEND);\n currentBlendingEnabled = true;\n }\n\n if (blending !== CustomBlending) {\n if (blending !== currentBlending || premultipliedAlpha !== currentPremultipledAlpha) {\n if (currentBlendEquation !== AddEquation || currentBlendEquationAlpha !== AddEquation) {\n gl.blendEquation(gl.FUNC_ADD);\n currentBlendEquation = AddEquation;\n currentBlendEquationAlpha = AddEquation;\n }\n\n if (premultipliedAlpha) {\n switch (blending) {\n case NormalBlending:\n gl.blendFuncSeparate(gl.ONE, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n break;\n\n case AdditiveBlending:\n gl.blendFunc(gl.ONE, gl.ONE);\n break;\n\n case SubtractiveBlending:\n gl.blendFuncSeparate(gl.ZERO, gl.ONE_MINUS_SRC_COLOR, gl.ZERO, gl.ONE);\n break;\n\n case MultiplyBlending:\n gl.blendFuncSeparate(gl.ZERO, gl.SRC_COLOR, gl.ZERO, gl.SRC_ALPHA);\n break;\n\n default:\n console.error('THREE.WebGLState: Invalid blending: ', blending);\n break;\n }\n } else {\n switch (blending) {\n case NormalBlending:\n gl.blendFuncSeparate(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n break;\n\n case AdditiveBlending:\n gl.blendFunc(gl.SRC_ALPHA, gl.ONE);\n break;\n\n case SubtractiveBlending:\n gl.blendFuncSeparate(gl.ZERO, gl.ONE_MINUS_SRC_COLOR, gl.ZERO, gl.ONE);\n break;\n\n case MultiplyBlending:\n gl.blendFunc(gl.ZERO, gl.SRC_COLOR);\n break;\n\n default:\n console.error('THREE.WebGLState: Invalid blending: ', blending);\n break;\n }\n }\n\n currentBlendSrc = null;\n currentBlendDst = null;\n currentBlendSrcAlpha = null;\n currentBlendDstAlpha = null;\n currentBlending = blending;\n currentPremultipledAlpha = premultipliedAlpha;\n }\n\n return;\n } // custom blending\n\n\n blendEquationAlpha = blendEquationAlpha || blendEquation;\n blendSrcAlpha = blendSrcAlpha || blendSrc;\n blendDstAlpha = blendDstAlpha || blendDst;\n\n if (blendEquation !== currentBlendEquation || blendEquationAlpha !== currentBlendEquationAlpha) {\n gl.blendEquationSeparate(equationToGL[blendEquation], equationToGL[blendEquationAlpha]);\n currentBlendEquation = blendEquation;\n currentBlendEquationAlpha = blendEquationAlpha;\n }\n\n if (blendSrc !== currentBlendSrc || blendDst !== currentBlendDst || blendSrcAlpha !== currentBlendSrcAlpha || blendDstAlpha !== currentBlendDstAlpha) {\n gl.blendFuncSeparate(factorToGL[blendSrc], factorToGL[blendDst], factorToGL[blendSrcAlpha], factorToGL[blendDstAlpha]);\n currentBlendSrc = blendSrc;\n currentBlendDst = blendDst;\n currentBlendSrcAlpha = blendSrcAlpha;\n currentBlendDstAlpha = blendDstAlpha;\n }\n\n currentBlending = blending;\n currentPremultipledAlpha = false;\n }\n\n function setMaterial(material, frontFaceCW) {\n material.side === DoubleSide ? disable(gl.CULL_FACE) : enable(gl.CULL_FACE);\n var flipSided = material.side === BackSide;\n if (frontFaceCW) flipSided = !flipSided;\n setFlipSided(flipSided);\n material.blending === NormalBlending && material.transparent === false ? setBlending(NoBlending) : setBlending(material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha, material.premultipliedAlpha);\n depthBuffer.setFunc(material.depthFunc);\n depthBuffer.setTest(material.depthTest);\n depthBuffer.setMask(material.depthWrite);\n colorBuffer.setMask(material.colorWrite);\n var stencilWrite = material.stencilWrite;\n stencilBuffer.setTest(stencilWrite);\n\n if (stencilWrite) {\n stencilBuffer.setMask(material.stencilWriteMask);\n stencilBuffer.setFunc(material.stencilFunc, material.stencilRef, material.stencilFuncMask);\n stencilBuffer.setOp(material.stencilFail, material.stencilZFail, material.stencilZPass);\n }\n\n setPolygonOffset(material.polygonOffset, material.polygonOffsetFactor, material.polygonOffsetUnits);\n material.alphaToCoverage === true ? enable(gl.SAMPLE_ALPHA_TO_COVERAGE) : disable(gl.SAMPLE_ALPHA_TO_COVERAGE);\n } //\n\n\n function setFlipSided(flipSided) {\n if (currentFlipSided !== flipSided) {\n if (flipSided) {\n gl.frontFace(gl.CW);\n } else {\n gl.frontFace(gl.CCW);\n }\n\n currentFlipSided = flipSided;\n }\n }\n\n function setCullFace(cullFace) {\n if (cullFace !== CullFaceNone) {\n enable(gl.CULL_FACE);\n\n if (cullFace !== currentCullFace) {\n if (cullFace === CullFaceBack) {\n gl.cullFace(gl.BACK);\n } else if (cullFace === CullFaceFront) {\n gl.cullFace(gl.FRONT);\n } else {\n gl.cullFace(gl.FRONT_AND_BACK);\n }\n }\n } else {\n disable(gl.CULL_FACE);\n }\n\n currentCullFace = cullFace;\n }\n\n function setLineWidth(width) {\n if (width !== currentLineWidth) {\n if (lineWidthAvailable) gl.lineWidth(width);\n currentLineWidth = width;\n }\n }\n\n function setPolygonOffset(polygonOffset, factor, units) {\n if (polygonOffset) {\n enable(gl.POLYGON_OFFSET_FILL);\n\n if (currentPolygonOffsetFactor !== factor || currentPolygonOffsetUnits !== units) {\n gl.polygonOffset(factor, units);\n currentPolygonOffsetFactor = factor;\n currentPolygonOffsetUnits = units;\n }\n } else {\n disable(gl.POLYGON_OFFSET_FILL);\n }\n }\n\n function setScissorTest(scissorTest) {\n if (scissorTest) {\n enable(gl.SCISSOR_TEST);\n } else {\n disable(gl.SCISSOR_TEST);\n }\n } // texture\n\n\n function activeTexture(webglSlot) {\n if (webglSlot === undefined) webglSlot = gl.TEXTURE0 + maxTextures - 1;\n\n if (currentTextureSlot !== webglSlot) {\n gl.activeTexture(webglSlot);\n currentTextureSlot = webglSlot;\n }\n }\n\n function bindTexture(webglType, webglTexture, webglSlot) {\n if (webglSlot === undefined) {\n if (currentTextureSlot === null) {\n webglSlot = gl.TEXTURE0 + maxTextures - 1;\n } else {\n webglSlot = currentTextureSlot;\n }\n }\n\n var boundTexture = currentBoundTextures[webglSlot];\n\n if (boundTexture === undefined) {\n boundTexture = {\n type: undefined,\n texture: undefined\n };\n currentBoundTextures[webglSlot] = boundTexture;\n }\n\n if (boundTexture.type !== webglType || boundTexture.texture !== webglTexture) {\n if (currentTextureSlot !== webglSlot) {\n gl.activeTexture(webglSlot);\n currentTextureSlot = webglSlot;\n }\n\n gl.bindTexture(webglType, webglTexture || emptyTextures[webglType]);\n boundTexture.type = webglType;\n boundTexture.texture = webglTexture;\n }\n }\n\n function unbindTexture() {\n var boundTexture = currentBoundTextures[currentTextureSlot];\n\n if (boundTexture !== undefined && boundTexture.type !== undefined) {\n gl.bindTexture(boundTexture.type, null);\n boundTexture.type = undefined;\n boundTexture.texture = undefined;\n }\n }\n\n function compressedTexImage2D() {\n try {\n gl.compressedTexImage2D.apply(gl, arguments);\n } catch (error) {\n console.error('THREE.WebGLState:', error);\n }\n }\n\n function compressedTexImage3D() {\n try {\n gl.compressedTexImage3D.apply(gl, arguments);\n } catch (error) {\n console.error('THREE.WebGLState:', error);\n }\n }\n\n function texSubImage2D() {\n try {\n gl.texSubImage2D.apply(gl, arguments);\n } catch (error) {\n console.error('THREE.WebGLState:', error);\n }\n }\n\n function texSubImage3D() {\n try {\n gl.texSubImage3D.apply(gl, arguments);\n } catch (error) {\n console.error('THREE.WebGLState:', error);\n }\n }\n\n function compressedTexSubImage2D() {\n try {\n gl.compressedTexSubImage2D.apply(gl, arguments);\n } catch (error) {\n console.error('THREE.WebGLState:', error);\n }\n }\n\n function compressedTexSubImage3D() {\n try {\n gl.compressedTexSubImage3D.apply(gl, arguments);\n } catch (error) {\n console.error('THREE.WebGLState:', error);\n }\n }\n\n function texStorage2D() {\n try {\n gl.texStorage2D.apply(gl, arguments);\n } catch (error) {\n console.error('THREE.WebGLState:', error);\n }\n }\n\n function texStorage3D() {\n try {\n gl.texStorage3D.apply(gl, arguments);\n } catch (error) {\n console.error('THREE.WebGLState:', error);\n }\n }\n\n function texImage2D() {\n try {\n gl.texImage2D.apply(gl, arguments);\n } catch (error) {\n console.error('THREE.WebGLState:', error);\n }\n }\n\n function texImage3D() {\n try {\n gl.texImage3D.apply(gl, arguments);\n } catch (error) {\n console.error('THREE.WebGLState:', error);\n }\n } //\n\n\n function scissor(scissor) {\n if (currentScissor.equals(scissor) === false) {\n gl.scissor(scissor.x, scissor.y, scissor.z, scissor.w);\n currentScissor.copy(scissor);\n }\n }\n\n function viewport(viewport) {\n if (currentViewport.equals(viewport) === false) {\n gl.viewport(viewport.x, viewport.y, viewport.z, viewport.w);\n currentViewport.copy(viewport);\n }\n }\n\n function updateUBOMapping(uniformsGroup, program) {\n var mapping = uboProgramMap.get(program);\n\n if (mapping === undefined) {\n mapping = new WeakMap();\n uboProgramMap.set(program, mapping);\n }\n\n var blockIndex = mapping.get(uniformsGroup);\n\n if (blockIndex === undefined) {\n blockIndex = gl.getUniformBlockIndex(program, uniformsGroup.name);\n mapping.set(uniformsGroup, blockIndex);\n }\n }\n\n function uniformBlockBinding(uniformsGroup, program) {\n var mapping = uboProgramMap.get(program);\n var blockIndex = mapping.get(uniformsGroup);\n\n if (uboBindings.get(program) !== blockIndex) {\n // bind shader specific block index to global block point\n gl.uniformBlockBinding(program, blockIndex, uniformsGroup.__bindingPointIndex);\n uboBindings.set(program, blockIndex);\n }\n } //\n\n\n function reset() {\n // reset state\n gl.disable(gl.BLEND);\n gl.disable(gl.CULL_FACE);\n gl.disable(gl.DEPTH_TEST);\n gl.disable(gl.POLYGON_OFFSET_FILL);\n gl.disable(gl.SCISSOR_TEST);\n gl.disable(gl.STENCIL_TEST);\n gl.disable(gl.SAMPLE_ALPHA_TO_COVERAGE);\n gl.blendEquation(gl.FUNC_ADD);\n gl.blendFunc(gl.ONE, gl.ZERO);\n gl.blendFuncSeparate(gl.ONE, gl.ZERO, gl.ONE, gl.ZERO);\n gl.colorMask(true, true, true, true);\n gl.clearColor(0, 0, 0, 0);\n gl.depthMask(true);\n gl.depthFunc(gl.LESS);\n gl.clearDepth(1);\n gl.stencilMask(0xffffffff);\n gl.stencilFunc(gl.ALWAYS, 0, 0xffffffff);\n gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);\n gl.clearStencil(0);\n gl.cullFace(gl.BACK);\n gl.frontFace(gl.CCW);\n gl.polygonOffset(0, 0);\n gl.activeTexture(gl.TEXTURE0);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n\n if (isWebGL2 === true) {\n gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, null);\n gl.bindFramebuffer(gl.READ_FRAMEBUFFER, null);\n }\n\n gl.useProgram(null);\n gl.lineWidth(1);\n gl.scissor(0, 0, gl.canvas.width, gl.canvas.height);\n gl.viewport(0, 0, gl.canvas.width, gl.canvas.height); // reset internals\n\n enabledCapabilities = {};\n currentTextureSlot = null;\n currentBoundTextures = {};\n currentBoundFramebuffers = {};\n currentDrawbuffers = new WeakMap();\n defaultDrawbuffers = [];\n currentProgram = null;\n currentBlendingEnabled = false;\n currentBlending = null;\n currentBlendEquation = null;\n currentBlendSrc = null;\n currentBlendDst = null;\n currentBlendEquationAlpha = null;\n currentBlendSrcAlpha = null;\n currentBlendDstAlpha = null;\n currentPremultipledAlpha = false;\n currentFlipSided = null;\n currentCullFace = null;\n currentLineWidth = null;\n currentPolygonOffsetFactor = null;\n currentPolygonOffsetUnits = null;\n currentScissor.set(0, 0, gl.canvas.width, gl.canvas.height);\n currentViewport.set(0, 0, gl.canvas.width, gl.canvas.height);\n colorBuffer.reset();\n depthBuffer.reset();\n stencilBuffer.reset();\n }\n\n return {\n buffers: {\n color: colorBuffer,\n depth: depthBuffer,\n stencil: stencilBuffer\n },\n enable: enable,\n disable: disable,\n bindFramebuffer: bindFramebuffer,\n drawBuffers: drawBuffers,\n useProgram: useProgram,\n setBlending: setBlending,\n setMaterial: setMaterial,\n setFlipSided: setFlipSided,\n setCullFace: setCullFace,\n setLineWidth: setLineWidth,\n setPolygonOffset: setPolygonOffset,\n setScissorTest: setScissorTest,\n activeTexture: activeTexture,\n bindTexture: bindTexture,\n unbindTexture: unbindTexture,\n compressedTexImage2D: compressedTexImage2D,\n compressedTexImage3D: compressedTexImage3D,\n texImage2D: texImage2D,\n texImage3D: texImage3D,\n updateUBOMapping: updateUBOMapping,\n uniformBlockBinding: uniformBlockBinding,\n texStorage2D: texStorage2D,\n texStorage3D: texStorage3D,\n texSubImage2D: texSubImage2D,\n texSubImage3D: texSubImage3D,\n compressedTexSubImage2D: compressedTexSubImage2D,\n compressedTexSubImage3D: compressedTexSubImage3D,\n scissor: scissor,\n viewport: viewport,\n reset: reset\n };\n}\n\nfunction WebGLTextures(_gl, extensions, state, properties, capabilities, utils, info) {\n var _wrappingToGL, _filterToGL;\n\n var isWebGL2 = capabilities.isWebGL2;\n var maxTextures = capabilities.maxTextures;\n var maxCubemapSize = capabilities.maxCubemapSize;\n var maxTextureSize = capabilities.maxTextureSize;\n var maxSamples = capabilities.maxSamples;\n var multisampledRTTExt = extensions.has('WEBGL_multisampled_render_to_texture') ? extensions.get('WEBGL_multisampled_render_to_texture') : null;\n var supportsInvalidateFramebuffer = typeof navigator === 'undefined' ? false : /OculusBrowser/g.test(navigator.userAgent);\n\n var _videoTextures = new WeakMap();\n\n var _canvas;\n\n var _sources = new WeakMap(); // maps WebglTexture objects to instances of Source\n // cordova iOS (as of 5.0) still uses UIWebView, which provides OffscreenCanvas,\n // also OffscreenCanvas.getContext(\"webgl\"), but not OffscreenCanvas.getContext(\"2d\")!\n // Some implementations may only implement OffscreenCanvas partially (e.g. lacking 2d).\n\n\n var useOffscreenCanvas = false;\n\n try {\n useOffscreenCanvas = typeof OffscreenCanvas !== 'undefined' // eslint-disable-next-line compat/compat\n && new OffscreenCanvas(1, 1).getContext('2d') !== null;\n } catch (err) {// Ignore any errors\n }\n\n function createCanvas(width, height) {\n // Use OffscreenCanvas when available. Specially needed in web workers\n return useOffscreenCanvas ? // eslint-disable-next-line compat/compat\n new OffscreenCanvas(width, height) : createElementNS('canvas');\n }\n\n function resizeImage(image, needsPowerOfTwo, needsNewCanvas, maxSize) {\n var scale = 1; // handle case if texture exceeds max size\n\n if (image.width > maxSize || image.height > maxSize) {\n scale = maxSize / Math.max(image.width, image.height);\n } // only perform resize if necessary\n\n\n if (scale < 1 || needsPowerOfTwo === true) {\n // only perform resize for certain image types\n if (typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement || typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap) {\n var floor = needsPowerOfTwo ? floorPowerOfTwo : Math.floor;\n var width = floor(scale * image.width);\n var height = floor(scale * image.height);\n if (_canvas === undefined) _canvas = createCanvas(width, height); // cube textures can't reuse the same canvas\n\n var canvas = needsNewCanvas ? createCanvas(width, height) : _canvas;\n canvas.width = width;\n canvas.height = height;\n var context = canvas.getContext('2d');\n context.drawImage(image, 0, 0, width, height);\n console.warn('THREE.WebGLRenderer: Texture has been resized from (' + image.width + 'x' + image.height + ') to (' + width + 'x' + height + ').');\n return canvas;\n } else {\n if ('data' in image) {\n console.warn('THREE.WebGLRenderer: Image in DataTexture is too big (' + image.width + 'x' + image.height + ').');\n }\n\n return image;\n }\n }\n\n return image;\n }\n\n function isPowerOfTwo$1(image) {\n return isPowerOfTwo(image.width) && isPowerOfTwo(image.height);\n }\n\n function textureNeedsPowerOfTwo(texture) {\n if (isWebGL2) return false;\n return texture.wrapS !== ClampToEdgeWrapping || texture.wrapT !== ClampToEdgeWrapping || texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter;\n }\n\n function textureNeedsGenerateMipmaps(texture, supportsMips) {\n return texture.generateMipmaps && supportsMips && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter;\n }\n\n function generateMipmap(target) {\n _gl.generateMipmap(target);\n }\n\n function getInternalFormat(internalFormatName, glFormat, glType, colorSpace) {\n var forceLinearTransfer = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n if (isWebGL2 === false) return glFormat;\n\n if (internalFormatName !== null) {\n if (_gl[internalFormatName] !== undefined) return _gl[internalFormatName];\n console.warn('THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format \\'' + internalFormatName + '\\'');\n }\n\n var internalFormat = glFormat;\n\n if (glFormat === _gl.RED) {\n if (glType === _gl.FLOAT) internalFormat = _gl.R32F;\n if (glType === _gl.HALF_FLOAT) internalFormat = _gl.R16F;\n if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.R8;\n }\n\n if (glFormat === _gl.RG) {\n if (glType === _gl.FLOAT) internalFormat = _gl.RG32F;\n if (glType === _gl.HALF_FLOAT) internalFormat = _gl.RG16F;\n if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.RG8;\n }\n\n if (glFormat === _gl.RGBA) {\n if (glType === _gl.FLOAT) internalFormat = _gl.RGBA32F;\n if (glType === _gl.HALF_FLOAT) internalFormat = _gl.RGBA16F;\n if (glType === _gl.UNSIGNED_BYTE) internalFormat = colorSpace === SRGBColorSpace && forceLinearTransfer === false ? _gl.SRGB8_ALPHA8 : _gl.RGBA8;\n if (glType === _gl.UNSIGNED_SHORT_4_4_4_4) internalFormat = _gl.RGBA4;\n if (glType === _gl.UNSIGNED_SHORT_5_5_5_1) internalFormat = _gl.RGB5_A1;\n }\n\n if (internalFormat === _gl.R16F || internalFormat === _gl.R32F || internalFormat === _gl.RG16F || internalFormat === _gl.RG32F || internalFormat === _gl.RGBA16F || internalFormat === _gl.RGBA32F) {\n extensions.get('EXT_color_buffer_float');\n }\n\n return internalFormat;\n }\n\n function getMipLevels(texture, image, supportsMips) {\n if (textureNeedsGenerateMipmaps(texture, supportsMips) === true || texture.isFramebufferTexture && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter) {\n return Math.log2(Math.max(image.width, image.height)) + 1;\n } else if (texture.mipmaps !== undefined && texture.mipmaps.length > 0) {\n // user-defined mipmaps\n return texture.mipmaps.length;\n } else if (texture.isCompressedTexture && Array.isArray(texture.image)) {\n return image.mipmaps.length;\n } else {\n // texture without mipmaps (only base level)\n return 1;\n }\n } // Fallback filters for non-power-of-2 textures\n\n\n function filterFallback(f) {\n if (f === NearestFilter || f === NearestMipmapNearestFilter || f === NearestMipmapLinearFilter) {\n return _gl.NEAREST;\n }\n\n return _gl.LINEAR;\n } //\n\n\n function onTextureDispose(event) {\n var texture = event.target;\n texture.removeEventListener('dispose', onTextureDispose);\n deallocateTexture(texture);\n\n if (texture.isVideoTexture) {\n _videoTextures.delete(texture);\n }\n }\n\n function onRenderTargetDispose(event) {\n var renderTarget = event.target;\n renderTarget.removeEventListener('dispose', onRenderTargetDispose);\n deallocateRenderTarget(renderTarget);\n } //\n\n\n function deallocateTexture(texture) {\n var textureProperties = properties.get(texture);\n if (textureProperties.__webglInit === undefined) return; // check if it's necessary to remove the WebGLTexture object\n\n var source = texture.source;\n\n var webglTextures = _sources.get(source);\n\n if (webglTextures) {\n var webglTexture = webglTextures[textureProperties.__cacheKey];\n webglTexture.usedTimes--; // the WebGLTexture object is not used anymore, remove it\n\n if (webglTexture.usedTimes === 0) {\n deleteTexture(texture);\n } // remove the weak map entry if no WebGLTexture uses the source anymore\n\n\n if (Object.keys(webglTextures).length === 0) {\n _sources.delete(source);\n }\n }\n\n properties.remove(texture);\n }\n\n function deleteTexture(texture) {\n var textureProperties = properties.get(texture);\n\n _gl.deleteTexture(textureProperties.__webglTexture);\n\n var source = texture.source;\n\n var webglTextures = _sources.get(source);\n\n delete webglTextures[textureProperties.__cacheKey];\n info.memory.textures--;\n }\n\n function deallocateRenderTarget(renderTarget) {\n var texture = renderTarget.texture;\n var renderTargetProperties = properties.get(renderTarget);\n var textureProperties = properties.get(texture);\n\n if (textureProperties.__webglTexture !== undefined) {\n _gl.deleteTexture(textureProperties.__webglTexture);\n\n info.memory.textures--;\n }\n\n if (renderTarget.depthTexture) {\n renderTarget.depthTexture.dispose();\n }\n\n if (renderTarget.isWebGLCubeRenderTarget) {\n for (var i = 0; i < 6; i++) {\n _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer[i]);\n\n if (renderTargetProperties.__webglDepthbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthbuffer[i]);\n }\n } else {\n _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer);\n\n if (renderTargetProperties.__webglDepthbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthbuffer);\n if (renderTargetProperties.__webglMultisampledFramebuffer) _gl.deleteFramebuffer(renderTargetProperties.__webglMultisampledFramebuffer);\n\n if (renderTargetProperties.__webglColorRenderbuffer) {\n for (var _i39 = 0; _i39 < renderTargetProperties.__webglColorRenderbuffer.length; _i39++) {\n if (renderTargetProperties.__webglColorRenderbuffer[_i39]) _gl.deleteRenderbuffer(renderTargetProperties.__webglColorRenderbuffer[_i39]);\n }\n }\n\n if (renderTargetProperties.__webglDepthRenderbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthRenderbuffer);\n }\n\n if (renderTarget.isWebGLMultipleRenderTargets) {\n for (var _i40 = 0, il = texture.length; _i40 < il; _i40++) {\n var attachmentProperties = properties.get(texture[_i40]);\n\n if (attachmentProperties.__webglTexture) {\n _gl.deleteTexture(attachmentProperties.__webglTexture);\n\n info.memory.textures--;\n }\n\n properties.remove(texture[_i40]);\n }\n }\n\n properties.remove(texture);\n properties.remove(renderTarget);\n } //\n\n\n var textureUnits = 0;\n\n function resetTextureUnits() {\n textureUnits = 0;\n }\n\n function allocateTextureUnit() {\n var textureUnit = textureUnits;\n\n if (textureUnit >= maxTextures) {\n console.warn('THREE.WebGLTextures: Trying to use ' + textureUnit + ' texture units while this GPU supports only ' + maxTextures);\n }\n\n textureUnits += 1;\n return textureUnit;\n }\n\n function getTextureCacheKey(texture) {\n var array = [];\n array.push(texture.wrapS);\n array.push(texture.wrapT);\n array.push(texture.wrapR || 0);\n array.push(texture.magFilter);\n array.push(texture.minFilter);\n array.push(texture.anisotropy);\n array.push(texture.internalFormat);\n array.push(texture.format);\n array.push(texture.type);\n array.push(texture.generateMipmaps);\n array.push(texture.premultiplyAlpha);\n array.push(texture.flipY);\n array.push(texture.unpackAlignment);\n array.push(texture.colorSpace);\n return array.join();\n } //\n\n\n function setTexture2D(texture, slot) {\n var textureProperties = properties.get(texture);\n if (texture.isVideoTexture) updateVideoTexture(texture);\n\n if (texture.isRenderTargetTexture === false && texture.version > 0 && textureProperties.__version !== texture.version) {\n var image = texture.image;\n\n if (image === null) {\n console.warn('THREE.WebGLRenderer: Texture marked for update but no image data found.');\n } else if (image.complete === false) {\n console.warn('THREE.WebGLRenderer: Texture marked for update but image is incomplete');\n } else {\n uploadTexture(textureProperties, texture, slot);\n return;\n }\n }\n\n state.bindTexture(_gl.TEXTURE_2D, textureProperties.__webglTexture, _gl.TEXTURE0 + slot);\n }\n\n function setTexture2DArray(texture, slot) {\n var textureProperties = properties.get(texture);\n\n if (texture.version > 0 && textureProperties.__version !== texture.version) {\n uploadTexture(textureProperties, texture, slot);\n return;\n }\n\n state.bindTexture(_gl.TEXTURE_2D_ARRAY, textureProperties.__webglTexture, _gl.TEXTURE0 + slot);\n }\n\n function setTexture3D(texture, slot) {\n var textureProperties = properties.get(texture);\n\n if (texture.version > 0 && textureProperties.__version !== texture.version) {\n uploadTexture(textureProperties, texture, slot);\n return;\n }\n\n state.bindTexture(_gl.TEXTURE_3D, textureProperties.__webglTexture, _gl.TEXTURE0 + slot);\n }\n\n function setTextureCube(texture, slot) {\n var textureProperties = properties.get(texture);\n\n if (texture.version > 0 && textureProperties.__version !== texture.version) {\n uploadCubeTexture(textureProperties, texture, slot);\n return;\n }\n\n state.bindTexture(_gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture, _gl.TEXTURE0 + slot);\n }\n\n var wrappingToGL = (_wrappingToGL = {}, _defineProperty(_wrappingToGL, RepeatWrapping, _gl.REPEAT), _defineProperty(_wrappingToGL, ClampToEdgeWrapping, _gl.CLAMP_TO_EDGE), _defineProperty(_wrappingToGL, MirroredRepeatWrapping, _gl.MIRRORED_REPEAT), _wrappingToGL);\n var filterToGL = (_filterToGL = {}, _defineProperty(_filterToGL, NearestFilter, _gl.NEAREST), _defineProperty(_filterToGL, NearestMipmapNearestFilter, _gl.NEAREST_MIPMAP_NEAREST), _defineProperty(_filterToGL, NearestMipmapLinearFilter, _gl.NEAREST_MIPMAP_LINEAR), _defineProperty(_filterToGL, LinearFilter, _gl.LINEAR), _defineProperty(_filterToGL, LinearMipmapNearestFilter, _gl.LINEAR_MIPMAP_NEAREST), _defineProperty(_filterToGL, LinearMipmapLinearFilter, _gl.LINEAR_MIPMAP_LINEAR), _filterToGL);\n\n function setTextureParameters(textureType, texture, supportsMips) {\n if (supportsMips) {\n _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_S, wrappingToGL[texture.wrapS]);\n\n _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_T, wrappingToGL[texture.wrapT]);\n\n if (textureType === _gl.TEXTURE_3D || textureType === _gl.TEXTURE_2D_ARRAY) {\n _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_R, wrappingToGL[texture.wrapR]);\n }\n\n _gl.texParameteri(textureType, _gl.TEXTURE_MAG_FILTER, filterToGL[texture.magFilter]);\n\n _gl.texParameteri(textureType, _gl.TEXTURE_MIN_FILTER, filterToGL[texture.minFilter]);\n } else {\n _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_S, _gl.CLAMP_TO_EDGE);\n\n _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_T, _gl.CLAMP_TO_EDGE);\n\n if (textureType === _gl.TEXTURE_3D || textureType === _gl.TEXTURE_2D_ARRAY) {\n _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_R, _gl.CLAMP_TO_EDGE);\n }\n\n if (texture.wrapS !== ClampToEdgeWrapping || texture.wrapT !== ClampToEdgeWrapping) {\n console.warn('THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.');\n }\n\n _gl.texParameteri(textureType, _gl.TEXTURE_MAG_FILTER, filterFallback(texture.magFilter));\n\n _gl.texParameteri(textureType, _gl.TEXTURE_MIN_FILTER, filterFallback(texture.minFilter));\n\n if (texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter) {\n console.warn('THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.');\n }\n }\n\n if (extensions.has('EXT_texture_filter_anisotropic') === true) {\n var extension = extensions.get('EXT_texture_filter_anisotropic');\n if (texture.magFilter === NearestFilter) return;\n if (texture.minFilter !== NearestMipmapLinearFilter && texture.minFilter !== LinearMipmapLinearFilter) return;\n if (texture.type === FloatType && extensions.has('OES_texture_float_linear') === false) return; // verify extension for WebGL 1 and WebGL 2\n\n if (isWebGL2 === false && texture.type === HalfFloatType && extensions.has('OES_texture_half_float_linear') === false) return; // verify extension for WebGL 1 only\n\n if (texture.anisotropy > 1 || properties.get(texture).__currentAnisotropy) {\n _gl.texParameterf(textureType, extension.TEXTURE_MAX_ANISOTROPY_EXT, Math.min(texture.anisotropy, capabilities.getMaxAnisotropy()));\n\n properties.get(texture).__currentAnisotropy = texture.anisotropy;\n }\n }\n }\n\n function initTexture(textureProperties, texture) {\n var forceUpload = false;\n\n if (textureProperties.__webglInit === undefined) {\n textureProperties.__webglInit = true;\n texture.addEventListener('dispose', onTextureDispose);\n } // create Source <-> WebGLTextures mapping if necessary\n\n\n var source = texture.source;\n\n var webglTextures = _sources.get(source);\n\n if (webglTextures === undefined) {\n webglTextures = {};\n\n _sources.set(source, webglTextures);\n } // check if there is already a WebGLTexture object for the given texture parameters\n\n\n var textureCacheKey = getTextureCacheKey(texture);\n\n if (textureCacheKey !== textureProperties.__cacheKey) {\n // if not, create a new instance of WebGLTexture\n if (webglTextures[textureCacheKey] === undefined) {\n // create new entry\n webglTextures[textureCacheKey] = {\n texture: _gl.createTexture(),\n usedTimes: 0\n };\n info.memory.textures++; // when a new instance of WebGLTexture was created, a texture upload is required\n // even if the image contents are identical\n\n forceUpload = true;\n }\n\n webglTextures[textureCacheKey].usedTimes++; // every time the texture cache key changes, it's necessary to check if an instance of\n // WebGLTexture can be deleted in order to avoid a memory leak.\n\n var webglTexture = webglTextures[textureProperties.__cacheKey];\n\n if (webglTexture !== undefined) {\n webglTextures[textureProperties.__cacheKey].usedTimes--;\n\n if (webglTexture.usedTimes === 0) {\n deleteTexture(texture);\n }\n } // store references to cache key and WebGLTexture object\n\n\n textureProperties.__cacheKey = textureCacheKey;\n textureProperties.__webglTexture = webglTextures[textureCacheKey].texture;\n }\n\n return forceUpload;\n }\n\n function uploadTexture(textureProperties, texture, slot) {\n var textureType = _gl.TEXTURE_2D;\n if (texture.isDataArrayTexture || texture.isCompressedArrayTexture) textureType = _gl.TEXTURE_2D_ARRAY;\n if (texture.isData3DTexture) textureType = _gl.TEXTURE_3D;\n var forceUpload = initTexture(textureProperties, texture);\n var source = texture.source;\n state.bindTexture(textureType, textureProperties.__webglTexture, _gl.TEXTURE0 + slot);\n var sourceProperties = properties.get(source);\n\n if (source.version !== sourceProperties.__version || forceUpload === true) {\n state.activeTexture(_gl.TEXTURE0 + slot);\n\n _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, texture.flipY);\n\n _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha);\n\n _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, texture.unpackAlignment);\n\n _gl.pixelStorei(_gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, _gl.NONE);\n\n var needsPowerOfTwo = textureNeedsPowerOfTwo(texture) && isPowerOfTwo$1(texture.image) === false;\n var image = resizeImage(texture.image, needsPowerOfTwo, false, maxTextureSize);\n image = verifyColorSpace(texture, image);\n var supportsMips = isPowerOfTwo$1(image) || isWebGL2,\n glFormat = utils.convert(texture.format, texture.colorSpace);\n var glType = utils.convert(texture.type),\n glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.colorSpace);\n setTextureParameters(textureType, texture, supportsMips);\n var mipmap;\n var mipmaps = texture.mipmaps;\n var useTexStorage = isWebGL2 && texture.isVideoTexture !== true;\n var allocateMemory = sourceProperties.__version === undefined || forceUpload === true;\n var levels = getMipLevels(texture, image, supportsMips);\n\n if (texture.isDepthTexture) {\n // populate depth texture with dummy data\n glInternalFormat = _gl.DEPTH_COMPONENT;\n\n if (isWebGL2) {\n if (texture.type === FloatType) {\n glInternalFormat = _gl.DEPTH_COMPONENT32F;\n } else if (texture.type === UnsignedIntType) {\n glInternalFormat = _gl.DEPTH_COMPONENT24;\n } else if (texture.type === UnsignedInt248Type) {\n glInternalFormat = _gl.DEPTH24_STENCIL8;\n } else {\n glInternalFormat = _gl.DEPTH_COMPONENT16; // WebGL2 requires sized internalformat for glTexImage2D\n }\n } else {\n if (texture.type === FloatType) {\n console.error('WebGLRenderer: Floating point depth texture requires WebGL2.');\n }\n } // validation checks for WebGL 1\n\n\n if (texture.format === DepthFormat && glInternalFormat === _gl.DEPTH_COMPONENT) {\n // The error INVALID_OPERATION is generated by texImage2D if format and internalformat are\n // DEPTH_COMPONENT and type is not UNSIGNED_SHORT or UNSIGNED_INT\n // (https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/)\n if (texture.type !== UnsignedShortType && texture.type !== UnsignedIntType) {\n console.warn('THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.');\n texture.type = UnsignedIntType;\n glType = utils.convert(texture.type);\n }\n }\n\n if (texture.format === DepthStencilFormat && glInternalFormat === _gl.DEPTH_COMPONENT) {\n // Depth stencil textures need the DEPTH_STENCIL internal format\n // (https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/)\n glInternalFormat = _gl.DEPTH_STENCIL; // The error INVALID_OPERATION is generated by texImage2D if format and internalformat are\n // DEPTH_STENCIL and type is not UNSIGNED_INT_24_8_WEBGL.\n // (https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/)\n\n if (texture.type !== UnsignedInt248Type) {\n console.warn('THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.');\n texture.type = UnsignedInt248Type;\n glType = utils.convert(texture.type);\n }\n } //\n\n\n if (allocateMemory) {\n if (useTexStorage) {\n state.texStorage2D(_gl.TEXTURE_2D, 1, glInternalFormat, image.width, image.height);\n } else {\n state.texImage2D(_gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, null);\n }\n }\n } else if (texture.isDataTexture) {\n // use manually created mipmaps if available\n // if there are no manual mipmaps\n // set 0 level mipmap and then use GL to generate other mipmap levels\n if (mipmaps.length > 0 && supportsMips) {\n if (useTexStorage && allocateMemory) {\n state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, mipmaps[0].width, mipmaps[0].height);\n }\n\n for (var i = 0, il = mipmaps.length; i < il; i++) {\n mipmap = mipmaps[i];\n\n if (useTexStorage) {\n state.texSubImage2D(_gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data);\n } else {\n state.texImage2D(_gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data);\n }\n }\n\n texture.generateMipmaps = false;\n } else {\n if (useTexStorage) {\n if (allocateMemory) {\n state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, image.width, image.height);\n }\n\n state.texSubImage2D(_gl.TEXTURE_2D, 0, 0, 0, image.width, image.height, glFormat, glType, image.data);\n } else {\n state.texImage2D(_gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, image.data);\n }\n }\n } else if (texture.isCompressedTexture) {\n if (texture.isCompressedArrayTexture) {\n if (useTexStorage && allocateMemory) {\n state.texStorage3D(_gl.TEXTURE_2D_ARRAY, levels, glInternalFormat, mipmaps[0].width, mipmaps[0].height, image.depth);\n }\n\n for (var _i41 = 0, _il9 = mipmaps.length; _i41 < _il9; _i41++) {\n mipmap = mipmaps[_i41];\n\n if (texture.format !== RGBAFormat) {\n if (glFormat !== null) {\n if (useTexStorage) {\n state.compressedTexSubImage3D(_gl.TEXTURE_2D_ARRAY, _i41, 0, 0, 0, mipmap.width, mipmap.height, image.depth, glFormat, mipmap.data, 0, 0);\n } else {\n state.compressedTexImage3D(_gl.TEXTURE_2D_ARRAY, _i41, glInternalFormat, mipmap.width, mipmap.height, image.depth, 0, mipmap.data, 0, 0);\n }\n } else {\n console.warn('THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()');\n }\n } else {\n if (useTexStorage) {\n state.texSubImage3D(_gl.TEXTURE_2D_ARRAY, _i41, 0, 0, 0, mipmap.width, mipmap.height, image.depth, glFormat, glType, mipmap.data);\n } else {\n state.texImage3D(_gl.TEXTURE_2D_ARRAY, _i41, glInternalFormat, mipmap.width, mipmap.height, image.depth, 0, glFormat, glType, mipmap.data);\n }\n }\n }\n } else {\n if (useTexStorage && allocateMemory) {\n state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, mipmaps[0].width, mipmaps[0].height);\n }\n\n for (var _i42 = 0, _il10 = mipmaps.length; _i42 < _il10; _i42++) {\n mipmap = mipmaps[_i42];\n\n if (texture.format !== RGBAFormat) {\n if (glFormat !== null) {\n if (useTexStorage) {\n state.compressedTexSubImage2D(_gl.TEXTURE_2D, _i42, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data);\n } else {\n state.compressedTexImage2D(_gl.TEXTURE_2D, _i42, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data);\n }\n } else {\n console.warn('THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()');\n }\n } else {\n if (useTexStorage) {\n state.texSubImage2D(_gl.TEXTURE_2D, _i42, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data);\n } else {\n state.texImage2D(_gl.TEXTURE_2D, _i42, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data);\n }\n }\n }\n }\n } else if (texture.isDataArrayTexture) {\n if (useTexStorage) {\n if (allocateMemory) {\n state.texStorage3D(_gl.TEXTURE_2D_ARRAY, levels, glInternalFormat, image.width, image.height, image.depth);\n }\n\n state.texSubImage3D(_gl.TEXTURE_2D_ARRAY, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data);\n } else {\n state.texImage3D(_gl.TEXTURE_2D_ARRAY, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data);\n }\n } else if (texture.isData3DTexture) {\n if (useTexStorage) {\n if (allocateMemory) {\n state.texStorage3D(_gl.TEXTURE_3D, levels, glInternalFormat, image.width, image.height, image.depth);\n }\n\n state.texSubImage3D(_gl.TEXTURE_3D, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data);\n } else {\n state.texImage3D(_gl.TEXTURE_3D, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data);\n }\n } else if (texture.isFramebufferTexture) {\n if (allocateMemory) {\n if (useTexStorage) {\n state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, image.width, image.height);\n } else {\n var width = image.width,\n height = image.height;\n\n for (var _i43 = 0; _i43 < levels; _i43++) {\n state.texImage2D(_gl.TEXTURE_2D, _i43, glInternalFormat, width, height, 0, glFormat, glType, null);\n width >>= 1;\n height >>= 1;\n }\n }\n }\n } else {\n // regular Texture (image, video, canvas)\n // use manually created mipmaps if available\n // if there are no manual mipmaps\n // set 0 level mipmap and then use GL to generate other mipmap levels\n if (mipmaps.length > 0 && supportsMips) {\n if (useTexStorage && allocateMemory) {\n state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, mipmaps[0].width, mipmaps[0].height);\n }\n\n for (var _i44 = 0, _il11 = mipmaps.length; _i44 < _il11; _i44++) {\n mipmap = mipmaps[_i44];\n\n if (useTexStorage) {\n state.texSubImage2D(_gl.TEXTURE_2D, _i44, 0, 0, glFormat, glType, mipmap);\n } else {\n state.texImage2D(_gl.TEXTURE_2D, _i44, glInternalFormat, glFormat, glType, mipmap);\n }\n }\n\n texture.generateMipmaps = false;\n } else {\n if (useTexStorage) {\n if (allocateMemory) {\n state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, image.width, image.height);\n }\n\n state.texSubImage2D(_gl.TEXTURE_2D, 0, 0, 0, glFormat, glType, image);\n } else {\n state.texImage2D(_gl.TEXTURE_2D, 0, glInternalFormat, glFormat, glType, image);\n }\n }\n }\n\n if (textureNeedsGenerateMipmaps(texture, supportsMips)) {\n generateMipmap(textureType);\n }\n\n sourceProperties.__version = source.version;\n if (texture.onUpdate) texture.onUpdate(texture);\n }\n\n textureProperties.__version = texture.version;\n }\n\n function uploadCubeTexture(textureProperties, texture, slot) {\n if (texture.image.length !== 6) return;\n var forceUpload = initTexture(textureProperties, texture);\n var source = texture.source;\n state.bindTexture(_gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture, _gl.TEXTURE0 + slot);\n var sourceProperties = properties.get(source);\n\n if (source.version !== sourceProperties.__version || forceUpload === true) {\n state.activeTexture(_gl.TEXTURE0 + slot);\n\n _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, texture.flipY);\n\n _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha);\n\n _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, texture.unpackAlignment);\n\n _gl.pixelStorei(_gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, _gl.NONE);\n\n var isCompressed = texture.isCompressedTexture || texture.image[0].isCompressedTexture;\n var isDataTexture = texture.image[0] && texture.image[0].isDataTexture;\n var cubeImage = [];\n\n for (var i = 0; i < 6; i++) {\n if (!isCompressed && !isDataTexture) {\n cubeImage[i] = resizeImage(texture.image[i], false, true, maxCubemapSize);\n } else {\n cubeImage[i] = isDataTexture ? texture.image[i].image : texture.image[i];\n }\n\n cubeImage[i] = verifyColorSpace(texture, cubeImage[i]);\n }\n\n var image = cubeImage[0],\n supportsMips = isPowerOfTwo$1(image) || isWebGL2,\n glFormat = utils.convert(texture.format, texture.colorSpace),\n glType = utils.convert(texture.type),\n glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.colorSpace);\n var useTexStorage = isWebGL2 && texture.isVideoTexture !== true;\n var allocateMemory = sourceProperties.__version === undefined || forceUpload === true;\n var levels = getMipLevels(texture, image, supportsMips);\n setTextureParameters(_gl.TEXTURE_CUBE_MAP, texture, supportsMips);\n var mipmaps;\n\n if (isCompressed) {\n if (useTexStorage && allocateMemory) {\n state.texStorage2D(_gl.TEXTURE_CUBE_MAP, levels, glInternalFormat, image.width, image.height);\n }\n\n for (var _i45 = 0; _i45 < 6; _i45++) {\n mipmaps = cubeImage[_i45].mipmaps;\n\n for (var j = 0; j < mipmaps.length; j++) {\n var mipmap = mipmaps[j];\n\n if (texture.format !== RGBAFormat) {\n if (glFormat !== null) {\n if (useTexStorage) {\n state.compressedTexSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i45, j, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data);\n } else {\n state.compressedTexImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i45, j, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data);\n }\n } else {\n console.warn('THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()');\n }\n } else {\n if (useTexStorage) {\n state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i45, j, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data);\n } else {\n state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i45, j, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data);\n }\n }\n }\n }\n } else {\n mipmaps = texture.mipmaps;\n\n if (useTexStorage && allocateMemory) {\n // TODO: Uniformly handle mipmap definitions\n // Normal textures and compressed cube textures define base level + mips with their mipmap array\n // Uncompressed cube textures use their mipmap array only for mips (no base level)\n if (mipmaps.length > 0) levels++;\n state.texStorage2D(_gl.TEXTURE_CUBE_MAP, levels, glInternalFormat, cubeImage[0].width, cubeImage[0].height);\n }\n\n for (var _i46 = 0; _i46 < 6; _i46++) {\n if (isDataTexture) {\n if (useTexStorage) {\n state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i46, 0, 0, 0, cubeImage[_i46].width, cubeImage[_i46].height, glFormat, glType, cubeImage[_i46].data);\n } else {\n state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i46, 0, glInternalFormat, cubeImage[_i46].width, cubeImage[_i46].height, 0, glFormat, glType, cubeImage[_i46].data);\n }\n\n for (var _j3 = 0; _j3 < mipmaps.length; _j3++) {\n var _mipmap = mipmaps[_j3];\n var mipmapImage = _mipmap.image[_i46].image;\n\n if (useTexStorage) {\n state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i46, _j3 + 1, 0, 0, mipmapImage.width, mipmapImage.height, glFormat, glType, mipmapImage.data);\n } else {\n state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i46, _j3 + 1, glInternalFormat, mipmapImage.width, mipmapImage.height, 0, glFormat, glType, mipmapImage.data);\n }\n }\n } else {\n if (useTexStorage) {\n state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i46, 0, 0, 0, glFormat, glType, cubeImage[_i46]);\n } else {\n state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i46, 0, glInternalFormat, glFormat, glType, cubeImage[_i46]);\n }\n\n for (var _j4 = 0; _j4 < mipmaps.length; _j4++) {\n var _mipmap2 = mipmaps[_j4];\n\n if (useTexStorage) {\n state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i46, _j4 + 1, 0, 0, glFormat, glType, _mipmap2.image[_i46]);\n } else {\n state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i46, _j4 + 1, glInternalFormat, glFormat, glType, _mipmap2.image[_i46]);\n }\n }\n }\n }\n }\n\n if (textureNeedsGenerateMipmaps(texture, supportsMips)) {\n // We assume images for cube map have the same size.\n generateMipmap(_gl.TEXTURE_CUBE_MAP);\n }\n\n sourceProperties.__version = source.version;\n if (texture.onUpdate) texture.onUpdate(texture);\n }\n\n textureProperties.__version = texture.version;\n } // Render targets\n // Setup storage for target texture and bind it to correct framebuffer\n\n\n function setupFrameBufferTexture(framebuffer, renderTarget, texture, attachment, textureTarget) {\n var glFormat = utils.convert(texture.format, texture.colorSpace);\n var glType = utils.convert(texture.type);\n var glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.colorSpace);\n var renderTargetProperties = properties.get(renderTarget);\n\n if (!renderTargetProperties.__hasExternalTextures) {\n if (textureTarget === _gl.TEXTURE_3D || textureTarget === _gl.TEXTURE_2D_ARRAY) {\n state.texImage3D(textureTarget, 0, glInternalFormat, renderTarget.width, renderTarget.height, renderTarget.depth, 0, glFormat, glType, null);\n } else {\n state.texImage2D(textureTarget, 0, glInternalFormat, renderTarget.width, renderTarget.height, 0, glFormat, glType, null);\n }\n }\n\n state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\n\n if (useMultisampledRTT(renderTarget)) {\n multisampledRTTExt.framebufferTexture2DMultisampleEXT(_gl.FRAMEBUFFER, attachment, textureTarget, properties.get(texture).__webglTexture, 0, getRenderTargetSamples(renderTarget));\n } else if (textureTarget === _gl.TEXTURE_2D || textureTarget >= _gl.TEXTURE_CUBE_MAP_POSITIVE_X && textureTarget <= _gl.TEXTURE_CUBE_MAP_NEGATIVE_Z) {\n // see #24753\n _gl.framebufferTexture2D(_gl.FRAMEBUFFER, attachment, textureTarget, properties.get(texture).__webglTexture, 0);\n }\n\n state.bindFramebuffer(_gl.FRAMEBUFFER, null);\n } // Setup storage for internal depth/stencil buffers and bind to correct framebuffer\n\n\n function setupRenderBufferStorage(renderbuffer, renderTarget, isMultisample) {\n _gl.bindRenderbuffer(_gl.RENDERBUFFER, renderbuffer);\n\n if (renderTarget.depthBuffer && !renderTarget.stencilBuffer) {\n var glInternalFormat = _gl.DEPTH_COMPONENT16;\n\n if (isMultisample || useMultisampledRTT(renderTarget)) {\n var depthTexture = renderTarget.depthTexture;\n\n if (depthTexture && depthTexture.isDepthTexture) {\n if (depthTexture.type === FloatType) {\n glInternalFormat = _gl.DEPTH_COMPONENT32F;\n } else if (depthTexture.type === UnsignedIntType) {\n glInternalFormat = _gl.DEPTH_COMPONENT24;\n }\n }\n\n var samples = getRenderTargetSamples(renderTarget);\n\n if (useMultisampledRTT(renderTarget)) {\n multisampledRTTExt.renderbufferStorageMultisampleEXT(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height);\n } else {\n _gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height);\n }\n } else {\n _gl.renderbufferStorage(_gl.RENDERBUFFER, glInternalFormat, renderTarget.width, renderTarget.height);\n }\n\n _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.RENDERBUFFER, renderbuffer);\n } else if (renderTarget.depthBuffer && renderTarget.stencilBuffer) {\n var _samples = getRenderTargetSamples(renderTarget);\n\n if (isMultisample && useMultisampledRTT(renderTarget) === false) {\n _gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, _samples, _gl.DEPTH24_STENCIL8, renderTarget.width, renderTarget.height);\n } else if (useMultisampledRTT(renderTarget)) {\n multisampledRTTExt.renderbufferStorageMultisampleEXT(_gl.RENDERBUFFER, _samples, _gl.DEPTH24_STENCIL8, renderTarget.width, renderTarget.height);\n } else {\n _gl.renderbufferStorage(_gl.RENDERBUFFER, _gl.DEPTH_STENCIL, renderTarget.width, renderTarget.height);\n }\n\n _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.RENDERBUFFER, renderbuffer);\n } else {\n var textures = renderTarget.isWebGLMultipleRenderTargets === true ? renderTarget.texture : [renderTarget.texture];\n\n for (var i = 0; i < textures.length; i++) {\n var texture = textures[i];\n var glFormat = utils.convert(texture.format, texture.colorSpace);\n var glType = utils.convert(texture.type);\n\n var _glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.colorSpace);\n\n var _samples2 = getRenderTargetSamples(renderTarget);\n\n if (isMultisample && useMultisampledRTT(renderTarget) === false) {\n _gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, _samples2, _glInternalFormat, renderTarget.width, renderTarget.height);\n } else if (useMultisampledRTT(renderTarget)) {\n multisampledRTTExt.renderbufferStorageMultisampleEXT(_gl.RENDERBUFFER, _samples2, _glInternalFormat, renderTarget.width, renderTarget.height);\n } else {\n _gl.renderbufferStorage(_gl.RENDERBUFFER, _glInternalFormat, renderTarget.width, renderTarget.height);\n }\n }\n }\n\n _gl.bindRenderbuffer(_gl.RENDERBUFFER, null);\n } // Setup resources for a Depth Texture for a FBO (needs an extension)\n\n\n function setupDepthTexture(framebuffer, renderTarget) {\n var isCube = renderTarget && renderTarget.isWebGLCubeRenderTarget;\n if (isCube) throw new Error('Depth Texture with cube render targets is not supported');\n state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\n\n if (!(renderTarget.depthTexture && renderTarget.depthTexture.isDepthTexture)) {\n throw new Error('renderTarget.depthTexture must be an instance of THREE.DepthTexture');\n } // upload an empty depth texture with framebuffer size\n\n\n if (!properties.get(renderTarget.depthTexture).__webglTexture || renderTarget.depthTexture.image.width !== renderTarget.width || renderTarget.depthTexture.image.height !== renderTarget.height) {\n renderTarget.depthTexture.image.width = renderTarget.width;\n renderTarget.depthTexture.image.height = renderTarget.height;\n renderTarget.depthTexture.needsUpdate = true;\n }\n\n setTexture2D(renderTarget.depthTexture, 0);\n\n var webglDepthTexture = properties.get(renderTarget.depthTexture).__webglTexture;\n\n var samples = getRenderTargetSamples(renderTarget);\n\n if (renderTarget.depthTexture.format === DepthFormat) {\n if (useMultisampledRTT(renderTarget)) {\n multisampledRTTExt.framebufferTexture2DMultisampleEXT(_gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0, samples);\n } else {\n _gl.framebufferTexture2D(_gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0);\n }\n } else if (renderTarget.depthTexture.format === DepthStencilFormat) {\n if (useMultisampledRTT(renderTarget)) {\n multisampledRTTExt.framebufferTexture2DMultisampleEXT(_gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0, samples);\n } else {\n _gl.framebufferTexture2D(_gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0);\n }\n } else {\n throw new Error('Unknown depthTexture format');\n }\n } // Setup GL resources for a non-texture depth buffer\n\n\n function setupDepthRenderbuffer(renderTarget) {\n var renderTargetProperties = properties.get(renderTarget);\n var isCube = renderTarget.isWebGLCubeRenderTarget === true;\n\n if (renderTarget.depthTexture && !renderTargetProperties.__autoAllocateDepthBuffer) {\n if (isCube) throw new Error('target.depthTexture not supported in Cube render targets');\n setupDepthTexture(renderTargetProperties.__webglFramebuffer, renderTarget);\n } else {\n if (isCube) {\n renderTargetProperties.__webglDepthbuffer = [];\n\n for (var i = 0; i < 6; i++) {\n state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer[i]);\n renderTargetProperties.__webglDepthbuffer[i] = _gl.createRenderbuffer();\n setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer[i], renderTarget, false);\n }\n } else {\n state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer);\n renderTargetProperties.__webglDepthbuffer = _gl.createRenderbuffer();\n setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer, renderTarget, false);\n }\n }\n\n state.bindFramebuffer(_gl.FRAMEBUFFER, null);\n } // rebind framebuffer with external textures\n\n\n function rebindTextures(renderTarget, colorTexture, depthTexture) {\n var renderTargetProperties = properties.get(renderTarget);\n\n if (colorTexture !== undefined) {\n setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer, renderTarget, renderTarget.texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D);\n }\n\n if (depthTexture !== undefined) {\n setupDepthRenderbuffer(renderTarget);\n }\n } // Set up GL resources for the render target\n\n\n function setupRenderTarget(renderTarget) {\n var texture = renderTarget.texture;\n var renderTargetProperties = properties.get(renderTarget);\n var textureProperties = properties.get(texture);\n renderTarget.addEventListener('dispose', onRenderTargetDispose);\n\n if (renderTarget.isWebGLMultipleRenderTargets !== true) {\n if (textureProperties.__webglTexture === undefined) {\n textureProperties.__webglTexture = _gl.createTexture();\n }\n\n textureProperties.__version = texture.version;\n info.memory.textures++;\n }\n\n var isCube = renderTarget.isWebGLCubeRenderTarget === true;\n var isMultipleRenderTargets = renderTarget.isWebGLMultipleRenderTargets === true;\n var supportsMips = isPowerOfTwo$1(renderTarget) || isWebGL2; // Setup framebuffer\n\n if (isCube) {\n renderTargetProperties.__webglFramebuffer = [];\n\n for (var i = 0; i < 6; i++) {\n renderTargetProperties.__webglFramebuffer[i] = _gl.createFramebuffer();\n }\n } else {\n renderTargetProperties.__webglFramebuffer = _gl.createFramebuffer();\n\n if (isMultipleRenderTargets) {\n if (capabilities.drawBuffers) {\n var textures = renderTarget.texture;\n\n for (var _i47 = 0, il = textures.length; _i47 < il; _i47++) {\n var attachmentProperties = properties.get(textures[_i47]);\n\n if (attachmentProperties.__webglTexture === undefined) {\n attachmentProperties.__webglTexture = _gl.createTexture();\n info.memory.textures++;\n }\n }\n } else {\n console.warn('THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.');\n }\n }\n\n if (isWebGL2 && renderTarget.samples > 0 && useMultisampledRTT(renderTarget) === false) {\n var _textures = isMultipleRenderTargets ? texture : [texture];\n\n renderTargetProperties.__webglMultisampledFramebuffer = _gl.createFramebuffer();\n renderTargetProperties.__webglColorRenderbuffer = [];\n state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\n\n for (var _i48 = 0; _i48 < _textures.length; _i48++) {\n var _texture = _textures[_i48];\n renderTargetProperties.__webglColorRenderbuffer[_i48] = _gl.createRenderbuffer();\n\n _gl.bindRenderbuffer(_gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[_i48]);\n\n var glFormat = utils.convert(_texture.format, _texture.colorSpace);\n var glType = utils.convert(_texture.type);\n var glInternalFormat = getInternalFormat(_texture.internalFormat, glFormat, glType, _texture.colorSpace, renderTarget.isXRRenderTarget === true);\n var samples = getRenderTargetSamples(renderTarget);\n\n _gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height);\n\n _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + _i48, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[_i48]);\n }\n\n _gl.bindRenderbuffer(_gl.RENDERBUFFER, null);\n\n if (renderTarget.depthBuffer) {\n renderTargetProperties.__webglDepthRenderbuffer = _gl.createRenderbuffer();\n setupRenderBufferStorage(renderTargetProperties.__webglDepthRenderbuffer, renderTarget, true);\n }\n\n state.bindFramebuffer(_gl.FRAMEBUFFER, null);\n }\n } // Setup color buffer\n\n\n if (isCube) {\n state.bindTexture(_gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture);\n setTextureParameters(_gl.TEXTURE_CUBE_MAP, texture, supportsMips);\n\n for (var _i49 = 0; _i49 < 6; _i49++) {\n setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer[_i49], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i49);\n }\n\n if (textureNeedsGenerateMipmaps(texture, supportsMips)) {\n generateMipmap(_gl.TEXTURE_CUBE_MAP);\n }\n\n state.unbindTexture();\n } else if (isMultipleRenderTargets) {\n var _textures2 = renderTarget.texture;\n\n for (var _i50 = 0, _il12 = _textures2.length; _i50 < _il12; _i50++) {\n var attachment = _textures2[_i50];\n\n var _attachmentProperties = properties.get(attachment);\n\n state.bindTexture(_gl.TEXTURE_2D, _attachmentProperties.__webglTexture);\n setTextureParameters(_gl.TEXTURE_2D, attachment, supportsMips);\n setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer, renderTarget, attachment, _gl.COLOR_ATTACHMENT0 + _i50, _gl.TEXTURE_2D);\n\n if (textureNeedsGenerateMipmaps(attachment, supportsMips)) {\n generateMipmap(_gl.TEXTURE_2D);\n }\n }\n\n state.unbindTexture();\n } else {\n var glTextureType = _gl.TEXTURE_2D;\n\n if (renderTarget.isWebGL3DRenderTarget || renderTarget.isWebGLArrayRenderTarget) {\n if (isWebGL2) {\n glTextureType = renderTarget.isWebGL3DRenderTarget ? _gl.TEXTURE_3D : _gl.TEXTURE_2D_ARRAY;\n } else {\n console.error('THREE.WebGLTextures: THREE.Data3DTexture and THREE.DataArrayTexture only supported with WebGL2.');\n }\n }\n\n state.bindTexture(glTextureType, textureProperties.__webglTexture);\n setTextureParameters(glTextureType, texture, supportsMips);\n setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer, renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType);\n\n if (textureNeedsGenerateMipmaps(texture, supportsMips)) {\n generateMipmap(glTextureType);\n }\n\n state.unbindTexture();\n } // Setup depth and stencil buffers\n\n\n if (renderTarget.depthBuffer) {\n setupDepthRenderbuffer(renderTarget);\n }\n }\n\n function updateRenderTargetMipmap(renderTarget) {\n var supportsMips = isPowerOfTwo$1(renderTarget) || isWebGL2;\n var textures = renderTarget.isWebGLMultipleRenderTargets === true ? renderTarget.texture : [renderTarget.texture];\n\n for (var i = 0, il = textures.length; i < il; i++) {\n var texture = textures[i];\n\n if (textureNeedsGenerateMipmaps(texture, supportsMips)) {\n var target = renderTarget.isWebGLCubeRenderTarget ? _gl.TEXTURE_CUBE_MAP : _gl.TEXTURE_2D;\n\n var webglTexture = properties.get(texture).__webglTexture;\n\n state.bindTexture(target, webglTexture);\n generateMipmap(target);\n state.unbindTexture();\n }\n }\n }\n\n function updateMultisampleRenderTarget(renderTarget) {\n if (isWebGL2 && renderTarget.samples > 0 && useMultisampledRTT(renderTarget) === false) {\n var textures = renderTarget.isWebGLMultipleRenderTargets ? renderTarget.texture : [renderTarget.texture];\n var width = renderTarget.width;\n var height = renderTarget.height;\n var mask = _gl.COLOR_BUFFER_BIT;\n var invalidationArray = [];\n var depthStyle = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n var renderTargetProperties = properties.get(renderTarget);\n var isMultipleRenderTargets = renderTarget.isWebGLMultipleRenderTargets === true; // If MRT we need to remove FBO attachments\n\n if (isMultipleRenderTargets) {\n for (var i = 0; i < textures.length; i++) {\n state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\n\n _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, null);\n\n state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer);\n\n _gl.framebufferTexture2D(_gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, null, 0);\n }\n }\n\n state.bindFramebuffer(_gl.READ_FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\n state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER, renderTargetProperties.__webglFramebuffer);\n\n for (var _i51 = 0; _i51 < textures.length; _i51++) {\n invalidationArray.push(_gl.COLOR_ATTACHMENT0 + _i51);\n\n if (renderTarget.depthBuffer) {\n invalidationArray.push(depthStyle);\n }\n\n var ignoreDepthValues = renderTargetProperties.__ignoreDepthValues !== undefined ? renderTargetProperties.__ignoreDepthValues : false;\n\n if (ignoreDepthValues === false) {\n if (renderTarget.depthBuffer) mask |= _gl.DEPTH_BUFFER_BIT;\n if (renderTarget.stencilBuffer) mask |= _gl.STENCIL_BUFFER_BIT;\n }\n\n if (isMultipleRenderTargets) {\n _gl.framebufferRenderbuffer(_gl.READ_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[_i51]);\n }\n\n if (ignoreDepthValues === true) {\n _gl.invalidateFramebuffer(_gl.READ_FRAMEBUFFER, [depthStyle]);\n\n _gl.invalidateFramebuffer(_gl.DRAW_FRAMEBUFFER, [depthStyle]);\n }\n\n if (isMultipleRenderTargets) {\n var webglTexture = properties.get(textures[_i51]).__webglTexture;\n\n _gl.framebufferTexture2D(_gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D, webglTexture, 0);\n }\n\n _gl.blitFramebuffer(0, 0, width, height, 0, 0, width, height, mask, _gl.NEAREST);\n\n if (supportsInvalidateFramebuffer) {\n _gl.invalidateFramebuffer(_gl.READ_FRAMEBUFFER, invalidationArray);\n }\n }\n\n state.bindFramebuffer(_gl.READ_FRAMEBUFFER, null);\n state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER, null); // If MRT since pre-blit we removed the FBO we need to reconstruct the attachments\n\n if (isMultipleRenderTargets) {\n for (var _i52 = 0; _i52 < textures.length; _i52++) {\n state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\n\n _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + _i52, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[_i52]);\n\n var _webglTexture = properties.get(textures[_i52]).__webglTexture;\n\n state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer);\n\n _gl.framebufferTexture2D(_gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + _i52, _gl.TEXTURE_2D, _webglTexture, 0);\n }\n }\n\n state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\n }\n }\n\n function getRenderTargetSamples(renderTarget) {\n return Math.min(maxSamples, renderTarget.samples);\n }\n\n function useMultisampledRTT(renderTarget) {\n var renderTargetProperties = properties.get(renderTarget);\n return isWebGL2 && renderTarget.samples > 0 && extensions.has('WEBGL_multisampled_render_to_texture') === true && renderTargetProperties.__useRenderToTexture !== false;\n }\n\n function updateVideoTexture(texture) {\n var frame = info.render.frame; // Check the last frame we updated the VideoTexture\n\n if (_videoTextures.get(texture) !== frame) {\n _videoTextures.set(texture, frame);\n\n texture.update();\n }\n }\n\n function verifyColorSpace(texture, image) {\n var colorSpace = texture.colorSpace;\n var format = texture.format;\n var type = texture.type;\n if (texture.isCompressedTexture === true || texture.format === _SRGBAFormat) return image;\n\n if (colorSpace !== LinearSRGBColorSpace && colorSpace !== NoColorSpace) {\n // sRGB\n if (colorSpace === SRGBColorSpace) {\n if (isWebGL2 === false) {\n // in WebGL 1, try to use EXT_sRGB extension and unsized formats\n if (extensions.has('EXT_sRGB') === true && format === RGBAFormat) {\n texture.format = _SRGBAFormat; // it's not possible to generate mips in WebGL 1 with this extension\n\n texture.minFilter = LinearFilter;\n texture.generateMipmaps = false;\n } else {\n // slow fallback (CPU decode)\n image = ImageUtils.sRGBToLinear(image);\n }\n } else {\n // in WebGL 2 uncompressed textures can only be sRGB encoded if they have the RGBA8 format\n if (format !== RGBAFormat || type !== UnsignedByteType) {\n console.warn('THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.');\n }\n }\n } else {\n console.error('THREE.WebGLTextures: Unsupported texture color space:', colorSpace);\n }\n }\n\n return image;\n } //\n\n\n this.allocateTextureUnit = allocateTextureUnit;\n this.resetTextureUnits = resetTextureUnits;\n this.setTexture2D = setTexture2D;\n this.setTexture2DArray = setTexture2DArray;\n this.setTexture3D = setTexture3D;\n this.setTextureCube = setTextureCube;\n this.rebindTextures = rebindTextures;\n this.setupRenderTarget = setupRenderTarget;\n this.updateRenderTargetMipmap = updateRenderTargetMipmap;\n this.updateMultisampleRenderTarget = updateMultisampleRenderTarget;\n this.setupDepthRenderbuffer = setupDepthRenderbuffer;\n this.setupFrameBufferTexture = setupFrameBufferTexture;\n this.useMultisampledRTT = useMultisampledRTT;\n}\n\nfunction WebGLUtils(gl, extensions, capabilities) {\n var isWebGL2 = capabilities.isWebGL2;\n\n function convert(p) {\n var colorSpace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NoColorSpace;\n var extension;\n if (p === UnsignedByteType) return gl.UNSIGNED_BYTE;\n if (p === UnsignedShort4444Type) return gl.UNSIGNED_SHORT_4_4_4_4;\n if (p === UnsignedShort5551Type) return gl.UNSIGNED_SHORT_5_5_5_1;\n if (p === ByteType) return gl.BYTE;\n if (p === ShortType) return gl.SHORT;\n if (p === UnsignedShortType) return gl.UNSIGNED_SHORT;\n if (p === IntType) return gl.INT;\n if (p === UnsignedIntType) return gl.UNSIGNED_INT;\n if (p === FloatType) return gl.FLOAT;\n\n if (p === HalfFloatType) {\n if (isWebGL2) return gl.HALF_FLOAT;\n extension = extensions.get('OES_texture_half_float');\n\n if (extension !== null) {\n return extension.HALF_FLOAT_OES;\n } else {\n return null;\n }\n }\n\n if (p === AlphaFormat) return gl.ALPHA;\n if (p === RGBAFormat) return gl.RGBA;\n if (p === LuminanceFormat) return gl.LUMINANCE;\n if (p === LuminanceAlphaFormat) return gl.LUMINANCE_ALPHA;\n if (p === DepthFormat) return gl.DEPTH_COMPONENT;\n if (p === DepthStencilFormat) return gl.DEPTH_STENCIL; // WebGL 1 sRGB fallback\n\n if (p === _SRGBAFormat) {\n extension = extensions.get('EXT_sRGB');\n\n if (extension !== null) {\n return extension.SRGB_ALPHA_EXT;\n } else {\n return null;\n }\n } // WebGL2 formats.\n\n\n if (p === RedFormat) return gl.RED;\n if (p === RedIntegerFormat) return gl.RED_INTEGER;\n if (p === RGFormat) return gl.RG;\n if (p === RGIntegerFormat) return gl.RG_INTEGER;\n if (p === RGBAIntegerFormat) return gl.RGBA_INTEGER; // S3TC\n\n if (p === RGB_S3TC_DXT1_Format || p === RGBA_S3TC_DXT1_Format || p === RGBA_S3TC_DXT3_Format || p === RGBA_S3TC_DXT5_Format) {\n if (colorSpace === SRGBColorSpace) {\n extension = extensions.get('WEBGL_compressed_texture_s3tc_srgb');\n\n if (extension !== null) {\n if (p === RGB_S3TC_DXT1_Format) return extension.COMPRESSED_SRGB_S3TC_DXT1_EXT;\n if (p === RGBA_S3TC_DXT1_Format) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;\n if (p === RGBA_S3TC_DXT3_Format) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;\n if (p === RGBA_S3TC_DXT5_Format) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;\n } else {\n return null;\n }\n } else {\n extension = extensions.get('WEBGL_compressed_texture_s3tc');\n\n if (extension !== null) {\n if (p === RGB_S3TC_DXT1_Format) return extension.COMPRESSED_RGB_S3TC_DXT1_EXT;\n if (p === RGBA_S3TC_DXT1_Format) return extension.COMPRESSED_RGBA_S3TC_DXT1_EXT;\n if (p === RGBA_S3TC_DXT3_Format) return extension.COMPRESSED_RGBA_S3TC_DXT3_EXT;\n if (p === RGBA_S3TC_DXT5_Format) return extension.COMPRESSED_RGBA_S3TC_DXT5_EXT;\n } else {\n return null;\n }\n }\n } // PVRTC\n\n\n if (p === RGB_PVRTC_4BPPV1_Format || p === RGB_PVRTC_2BPPV1_Format || p === RGBA_PVRTC_4BPPV1_Format || p === RGBA_PVRTC_2BPPV1_Format) {\n extension = extensions.get('WEBGL_compressed_texture_pvrtc');\n\n if (extension !== null) {\n if (p === RGB_PVRTC_4BPPV1_Format) return extension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;\n if (p === RGB_PVRTC_2BPPV1_Format) return extension.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;\n if (p === RGBA_PVRTC_4BPPV1_Format) return extension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;\n if (p === RGBA_PVRTC_2BPPV1_Format) return extension.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;\n } else {\n return null;\n }\n } // ETC1\n\n\n if (p === RGB_ETC1_Format) {\n extension = extensions.get('WEBGL_compressed_texture_etc1');\n\n if (extension !== null) {\n return extension.COMPRESSED_RGB_ETC1_WEBGL;\n } else {\n return null;\n }\n } // ETC2\n\n\n if (p === RGB_ETC2_Format || p === RGBA_ETC2_EAC_Format) {\n extension = extensions.get('WEBGL_compressed_texture_etc');\n\n if (extension !== null) {\n if (p === RGB_ETC2_Format) return colorSpace === SRGBColorSpace ? extension.COMPRESSED_SRGB8_ETC2 : extension.COMPRESSED_RGB8_ETC2;\n if (p === RGBA_ETC2_EAC_Format) return colorSpace === SRGBColorSpace ? extension.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC : extension.COMPRESSED_RGBA8_ETC2_EAC;\n } else {\n return null;\n }\n } // ASTC\n\n\n if (p === RGBA_ASTC_4x4_Format || p === RGBA_ASTC_5x4_Format || p === RGBA_ASTC_5x5_Format || p === RGBA_ASTC_6x5_Format || p === RGBA_ASTC_6x6_Format || p === RGBA_ASTC_8x5_Format || p === RGBA_ASTC_8x6_Format || p === RGBA_ASTC_8x8_Format || p === RGBA_ASTC_10x5_Format || p === RGBA_ASTC_10x6_Format || p === RGBA_ASTC_10x8_Format || p === RGBA_ASTC_10x10_Format || p === RGBA_ASTC_12x10_Format || p === RGBA_ASTC_12x12_Format) {\n extension = extensions.get('WEBGL_compressed_texture_astc');\n\n if (extension !== null) {\n if (p === RGBA_ASTC_4x4_Format) return colorSpace === SRGBColorSpace ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR : extension.COMPRESSED_RGBA_ASTC_4x4_KHR;\n if (p === RGBA_ASTC_5x4_Format) return colorSpace === SRGBColorSpace ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR : extension.COMPRESSED_RGBA_ASTC_5x4_KHR;\n if (p === RGBA_ASTC_5x5_Format) return colorSpace === SRGBColorSpace ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR : extension.COMPRESSED_RGBA_ASTC_5x5_KHR;\n if (p === RGBA_ASTC_6x5_Format) return colorSpace === SRGBColorSpace ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR : extension.COMPRESSED_RGBA_ASTC_6x5_KHR;\n if (p === RGBA_ASTC_6x6_Format) return colorSpace === SRGBColorSpace ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR : extension.COMPRESSED_RGBA_ASTC_6x6_KHR;\n if (p === RGBA_ASTC_8x5_Format) return colorSpace === SRGBColorSpace ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR : extension.COMPRESSED_RGBA_ASTC_8x5_KHR;\n if (p === RGBA_ASTC_8x6_Format) return colorSpace === SRGBColorSpace ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR : extension.COMPRESSED_RGBA_ASTC_8x6_KHR;\n if (p === RGBA_ASTC_8x8_Format) return colorSpace === SRGBColorSpace ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR : extension.COMPRESSED_RGBA_ASTC_8x8_KHR;\n if (p === RGBA_ASTC_10x5_Format) return colorSpace === SRGBColorSpace ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR : extension.COMPRESSED_RGBA_ASTC_10x5_KHR;\n if (p === RGBA_ASTC_10x6_Format) return colorSpace === SRGBColorSpace ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR : extension.COMPRESSED_RGBA_ASTC_10x6_KHR;\n if (p === RGBA_ASTC_10x8_Format) return colorSpace === SRGBColorSpace ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR : extension.COMPRESSED_RGBA_ASTC_10x8_KHR;\n if (p === RGBA_ASTC_10x10_Format) return colorSpace === SRGBColorSpace ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR : extension.COMPRESSED_RGBA_ASTC_10x10_KHR;\n if (p === RGBA_ASTC_12x10_Format) return colorSpace === SRGBColorSpace ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR : extension.COMPRESSED_RGBA_ASTC_12x10_KHR;\n if (p === RGBA_ASTC_12x12_Format) return colorSpace === SRGBColorSpace ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR : extension.COMPRESSED_RGBA_ASTC_12x12_KHR;\n } else {\n return null;\n }\n } // BPTC\n\n\n if (p === RGBA_BPTC_Format) {\n extension = extensions.get('EXT_texture_compression_bptc');\n\n if (extension !== null) {\n if (p === RGBA_BPTC_Format) return colorSpace === SRGBColorSpace ? extension.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT : extension.COMPRESSED_RGBA_BPTC_UNORM_EXT;\n } else {\n return null;\n }\n } // RGTC\n\n\n if (p === RED_RGTC1_Format || p === SIGNED_RED_RGTC1_Format || p === RED_GREEN_RGTC2_Format || p === SIGNED_RED_GREEN_RGTC2_Format) {\n extension = extensions.get('EXT_texture_compression_rgtc');\n\n if (extension !== null) {\n if (p === RGBA_BPTC_Format) return extension.COMPRESSED_RED_RGTC1_EXT;\n if (p === SIGNED_RED_RGTC1_Format) return extension.COMPRESSED_SIGNED_RED_RGTC1_EXT;\n if (p === RED_GREEN_RGTC2_Format) return extension.COMPRESSED_RED_GREEN_RGTC2_EXT;\n if (p === SIGNED_RED_GREEN_RGTC2_Format) return extension.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT;\n } else {\n return null;\n }\n } //\n\n\n if (p === UnsignedInt248Type) {\n if (isWebGL2) return gl.UNSIGNED_INT_24_8;\n extension = extensions.get('WEBGL_depth_texture');\n\n if (extension !== null) {\n return extension.UNSIGNED_INT_24_8_WEBGL;\n } else {\n return null;\n }\n } // if \"p\" can't be resolved, assume the user defines a WebGL constant as a string (fallback/workaround for packed RGB formats)\n\n\n return gl[p] !== undefined ? gl[p] : null;\n }\n\n return {\n convert: convert\n };\n}\n\nvar ArrayCamera = /*#__PURE__*/function (_PerspectiveCamera) {\n _inherits(ArrayCamera, _PerspectiveCamera);\n\n var _super34 = _createSuper(ArrayCamera);\n\n function ArrayCamera() {\n var _this26;\n\n var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n _classCallCheck(this, ArrayCamera);\n\n _this26 = _super34.call(this);\n _this26.isArrayCamera = true;\n _this26.cameras = array;\n return _this26;\n }\n\n return _createClass(ArrayCamera);\n}(PerspectiveCamera);\n\nvar Group = /*#__PURE__*/function (_Object3D4) {\n _inherits(Group, _Object3D4);\n\n var _super35 = _createSuper(Group);\n\n function Group() {\n var _this27;\n\n _classCallCheck(this, Group);\n\n _this27 = _super35.call(this);\n _this27.isGroup = true;\n _this27.type = 'Group';\n return _this27;\n }\n\n return _createClass(Group);\n}(Object3D);\n\nvar _moveEvent = {\n type: 'move'\n};\n\nvar WebXRController = /*#__PURE__*/function () {\n function WebXRController() {\n _classCallCheck(this, WebXRController);\n\n this._targetRay = null;\n this._grip = null;\n this._hand = null;\n }\n\n _createClass(WebXRController, [{\n key: \"getHandSpace\",\n value: function getHandSpace() {\n if (this._hand === null) {\n this._hand = new Group();\n this._hand.matrixAutoUpdate = false;\n this._hand.visible = false;\n this._hand.joints = {};\n this._hand.inputState = {\n pinching: false\n };\n }\n\n return this._hand;\n }\n }, {\n key: \"getTargetRaySpace\",\n value: function getTargetRaySpace() {\n if (this._targetRay === null) {\n this._targetRay = new Group();\n this._targetRay.matrixAutoUpdate = false;\n this._targetRay.visible = false;\n this._targetRay.hasLinearVelocity = false;\n this._targetRay.linearVelocity = new Vector3();\n this._targetRay.hasAngularVelocity = false;\n this._targetRay.angularVelocity = new Vector3();\n }\n\n return this._targetRay;\n }\n }, {\n key: \"getGripSpace\",\n value: function getGripSpace() {\n if (this._grip === null) {\n this._grip = new Group();\n this._grip.matrixAutoUpdate = false;\n this._grip.visible = false;\n this._grip.hasLinearVelocity = false;\n this._grip.linearVelocity = new Vector3();\n this._grip.hasAngularVelocity = false;\n this._grip.angularVelocity = new Vector3();\n }\n\n return this._grip;\n }\n }, {\n key: \"dispatchEvent\",\n value: function dispatchEvent(event) {\n if (this._targetRay !== null) {\n this._targetRay.dispatchEvent(event);\n }\n\n if (this._grip !== null) {\n this._grip.dispatchEvent(event);\n }\n\n if (this._hand !== null) {\n this._hand.dispatchEvent(event);\n }\n\n return this;\n }\n }, {\n key: \"connect\",\n value: function connect(inputSource) {\n if (inputSource && inputSource.hand) {\n var hand = this._hand;\n\n if (hand) {\n var _iterator2 = _createForOfIteratorHelper(inputSource.hand.values()),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var inputjoint = _step2.value;\n\n // Initialize hand with joints when connected\n this._getHandJoint(hand, inputjoint);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n }\n\n this.dispatchEvent({\n type: 'connected',\n data: inputSource\n });\n return this;\n }\n }, {\n key: \"disconnect\",\n value: function disconnect(inputSource) {\n this.dispatchEvent({\n type: 'disconnected',\n data: inputSource\n });\n\n if (this._targetRay !== null) {\n this._targetRay.visible = false;\n }\n\n if (this._grip !== null) {\n this._grip.visible = false;\n }\n\n if (this._hand !== null) {\n this._hand.visible = false;\n }\n\n return this;\n }\n }, {\n key: \"update\",\n value: function update(inputSource, frame, referenceSpace) {\n var inputPose = null;\n var gripPose = null;\n var handPose = null;\n var targetRay = this._targetRay;\n var grip = this._grip;\n var hand = this._hand;\n\n if (inputSource && frame.session.visibilityState !== 'visible-blurred') {\n if (hand && inputSource.hand) {\n handPose = true;\n\n var _iterator3 = _createForOfIteratorHelper(inputSource.hand.values()),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var inputjoint = _step3.value;\n // Update the joints groups with the XRJoint poses\n var jointPose = frame.getJointPose(inputjoint, referenceSpace); // The transform of this joint will be updated with the joint pose on each frame\n\n var joint = this._getHandJoint(hand, inputjoint);\n\n if (jointPose !== null) {\n joint.matrix.fromArray(jointPose.transform.matrix);\n joint.matrix.decompose(joint.position, joint.rotation, joint.scale);\n joint.matrixWorldNeedsUpdate = true;\n joint.jointRadius = jointPose.radius;\n }\n\n joint.visible = jointPose !== null;\n } // Custom events\n // Check pinchz\n\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n var indexTip = hand.joints['index-finger-tip'];\n var thumbTip = hand.joints['thumb-tip'];\n var distance = indexTip.position.distanceTo(thumbTip.position);\n var distanceToPinch = 0.02;\n var threshold = 0.005;\n\n if (hand.inputState.pinching && distance > distanceToPinch + threshold) {\n hand.inputState.pinching = false;\n this.dispatchEvent({\n type: 'pinchend',\n handedness: inputSource.handedness,\n target: this\n });\n } else if (!hand.inputState.pinching && distance <= distanceToPinch - threshold) {\n hand.inputState.pinching = true;\n this.dispatchEvent({\n type: 'pinchstart',\n handedness: inputSource.handedness,\n target: this\n });\n }\n } else {\n if (grip !== null && inputSource.gripSpace) {\n gripPose = frame.getPose(inputSource.gripSpace, referenceSpace);\n\n if (gripPose !== null) {\n grip.matrix.fromArray(gripPose.transform.matrix);\n grip.matrix.decompose(grip.position, grip.rotation, grip.scale);\n grip.matrixWorldNeedsUpdate = true;\n\n if (gripPose.linearVelocity) {\n grip.hasLinearVelocity = true;\n grip.linearVelocity.copy(gripPose.linearVelocity);\n } else {\n grip.hasLinearVelocity = false;\n }\n\n if (gripPose.angularVelocity) {\n grip.hasAngularVelocity = true;\n grip.angularVelocity.copy(gripPose.angularVelocity);\n } else {\n grip.hasAngularVelocity = false;\n }\n }\n }\n }\n\n if (targetRay !== null) {\n inputPose = frame.getPose(inputSource.targetRaySpace, referenceSpace); // Some runtimes (namely Vive Cosmos with Vive OpenXR Runtime) have only grip space and ray space is equal to it\n\n if (inputPose === null && gripPose !== null) {\n inputPose = gripPose;\n }\n\n if (inputPose !== null) {\n targetRay.matrix.fromArray(inputPose.transform.matrix);\n targetRay.matrix.decompose(targetRay.position, targetRay.rotation, targetRay.scale);\n targetRay.matrixWorldNeedsUpdate = true;\n\n if (inputPose.linearVelocity) {\n targetRay.hasLinearVelocity = true;\n targetRay.linearVelocity.copy(inputPose.linearVelocity);\n } else {\n targetRay.hasLinearVelocity = false;\n }\n\n if (inputPose.angularVelocity) {\n targetRay.hasAngularVelocity = true;\n targetRay.angularVelocity.copy(inputPose.angularVelocity);\n } else {\n targetRay.hasAngularVelocity = false;\n }\n\n this.dispatchEvent(_moveEvent);\n }\n }\n }\n\n if (targetRay !== null) {\n targetRay.visible = inputPose !== null;\n }\n\n if (grip !== null) {\n grip.visible = gripPose !== null;\n }\n\n if (hand !== null) {\n hand.visible = handPose !== null;\n }\n\n return this;\n } // private method\n\n }, {\n key: \"_getHandJoint\",\n value: function _getHandJoint(hand, inputjoint) {\n if (hand.joints[inputjoint.jointName] === undefined) {\n var joint = new Group();\n joint.matrixAutoUpdate = false;\n joint.visible = false;\n hand.joints[inputjoint.jointName] = joint;\n hand.add(joint);\n }\n\n return hand.joints[inputjoint.jointName];\n }\n }]);\n\n return WebXRController;\n}();\n\nvar DepthTexture = /*#__PURE__*/function (_Texture4) {\n _inherits(DepthTexture, _Texture4);\n\n var _super36 = _createSuper(DepthTexture);\n\n function DepthTexture(width, height, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, format) {\n var _this28;\n\n _classCallCheck(this, DepthTexture);\n\n format = format !== undefined ? format : DepthFormat;\n\n if (format !== DepthFormat && format !== DepthStencilFormat) {\n throw new Error('DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat');\n }\n\n if (type === undefined && format === DepthFormat) type = UnsignedIntType;\n if (type === undefined && format === DepthStencilFormat) type = UnsignedInt248Type;\n _this28 = _super36.call(this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy);\n _this28.isDepthTexture = true;\n _this28.image = {\n width: width,\n height: height\n };\n _this28.magFilter = magFilter !== undefined ? magFilter : NearestFilter;\n _this28.minFilter = minFilter !== undefined ? minFilter : NearestFilter;\n _this28.flipY = false;\n _this28.generateMipmaps = false;\n return _this28;\n }\n\n return _createClass(DepthTexture);\n}(Texture);\n\nvar WebXRManager = /*#__PURE__*/function (_EventDispatcher6) {\n _inherits(WebXRManager, _EventDispatcher6);\n\n var _super37 = _createSuper(WebXRManager);\n\n function WebXRManager(renderer, gl) {\n var _this29;\n\n _classCallCheck(this, WebXRManager);\n\n _this29 = _super37.call(this);\n\n var scope = _assertThisInitialized(_this29);\n\n var session = null;\n var framebufferScaleFactor = 1.0;\n var referenceSpace = null;\n var referenceSpaceType = 'local-floor'; // Set default foveation to maximum.\n\n var foveation = 1.0;\n var customReferenceSpace = null;\n var pose = null;\n var glBinding = null;\n var glProjLayer = null;\n var glBaseLayer = null;\n var xrFrame = null;\n var attributes = gl.getContextAttributes();\n var initialRenderTarget = null;\n var newRenderTarget = null;\n var controllers = [];\n var controllerInputSources = [];\n var planes = new Set();\n var planesLastChangedTimes = new Map(); //\n\n var cameraL = new PerspectiveCamera();\n cameraL.layers.enable(1);\n cameraL.viewport = new Vector4();\n var cameraR = new PerspectiveCamera();\n cameraR.layers.enable(2);\n cameraR.viewport = new Vector4();\n var cameras = [cameraL, cameraR];\n var cameraVR = new ArrayCamera();\n cameraVR.layers.enable(1);\n cameraVR.layers.enable(2);\n var _currentDepthNear = null;\n var _currentDepthFar = null; //\n\n _this29.cameraAutoUpdate = true;\n _this29.enabled = false;\n _this29.isPresenting = false;\n\n _this29.getController = function (index) {\n var controller = controllers[index];\n\n if (controller === undefined) {\n controller = new WebXRController();\n controllers[index] = controller;\n }\n\n return controller.getTargetRaySpace();\n };\n\n _this29.getControllerGrip = function (index) {\n var controller = controllers[index];\n\n if (controller === undefined) {\n controller = new WebXRController();\n controllers[index] = controller;\n }\n\n return controller.getGripSpace();\n };\n\n _this29.getHand = function (index) {\n var controller = controllers[index];\n\n if (controller === undefined) {\n controller = new WebXRController();\n controllers[index] = controller;\n }\n\n return controller.getHandSpace();\n }; //\n\n\n function onSessionEvent(event) {\n var controllerIndex = controllerInputSources.indexOf(event.inputSource);\n\n if (controllerIndex === -1) {\n return;\n }\n\n var controller = controllers[controllerIndex];\n\n if (controller !== undefined) {\n controller.update(event.inputSource, event.frame, customReferenceSpace || referenceSpace);\n controller.dispatchEvent({\n type: event.type,\n data: event.inputSource\n });\n }\n }\n\n function onSessionEnd() {\n session.removeEventListener('select', onSessionEvent);\n session.removeEventListener('selectstart', onSessionEvent);\n session.removeEventListener('selectend', onSessionEvent);\n session.removeEventListener('squeeze', onSessionEvent);\n session.removeEventListener('squeezestart', onSessionEvent);\n session.removeEventListener('squeezeend', onSessionEvent);\n session.removeEventListener('end', onSessionEnd);\n session.removeEventListener('inputsourceschange', onInputSourcesChange);\n\n for (var i = 0; i < controllers.length; i++) {\n var inputSource = controllerInputSources[i];\n if (inputSource === null) continue;\n controllerInputSources[i] = null;\n controllers[i].disconnect(inputSource);\n }\n\n _currentDepthNear = null;\n _currentDepthFar = null; // restore framebuffer/rendering state\n\n renderer.setRenderTarget(initialRenderTarget);\n glBaseLayer = null;\n glProjLayer = null;\n glBinding = null;\n session = null;\n newRenderTarget = null; //\n\n animation.stop();\n scope.isPresenting = false;\n scope.dispatchEvent({\n type: 'sessionend'\n });\n }\n\n _this29.setFramebufferScaleFactor = function (value) {\n framebufferScaleFactor = value;\n\n if (scope.isPresenting === true) {\n console.warn('THREE.WebXRManager: Cannot change framebuffer scale while presenting.');\n }\n };\n\n _this29.setReferenceSpaceType = function (value) {\n referenceSpaceType = value;\n\n if (scope.isPresenting === true) {\n console.warn('THREE.WebXRManager: Cannot change reference space type while presenting.');\n }\n };\n\n _this29.getReferenceSpace = function () {\n return customReferenceSpace || referenceSpace;\n };\n\n _this29.setReferenceSpace = function (space) {\n customReferenceSpace = space;\n };\n\n _this29.getBaseLayer = function () {\n return glProjLayer !== null ? glProjLayer : glBaseLayer;\n };\n\n _this29.getBinding = function () {\n return glBinding;\n };\n\n _this29.getFrame = function () {\n return xrFrame;\n };\n\n _this29.getSession = function () {\n return session;\n };\n\n _this29.setSession = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(value) {\n var layerInit, depthFormat, depthType, glDepthFormat, projectionlayerInit, renderTargetProperties;\n return _regeneratorRuntime().wrap(function _callee$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n session = value;\n\n if (!(session !== null)) {\n _context8.next = 25;\n break;\n }\n\n initialRenderTarget = renderer.getRenderTarget();\n session.addEventListener('select', onSessionEvent);\n session.addEventListener('selectstart', onSessionEvent);\n session.addEventListener('selectend', onSessionEvent);\n session.addEventListener('squeeze', onSessionEvent);\n session.addEventListener('squeezestart', onSessionEvent);\n session.addEventListener('squeezeend', onSessionEvent);\n session.addEventListener('end', onSessionEnd);\n session.addEventListener('inputsourceschange', onInputSourcesChange);\n\n if (!(attributes.xrCompatible !== true)) {\n _context8.next = 14;\n break;\n }\n\n _context8.next = 14;\n return gl.makeXRCompatible();\n\n case 14:\n if (session.renderState.layers === undefined || renderer.capabilities.isWebGL2 === false) {\n layerInit = {\n antialias: session.renderState.layers === undefined ? attributes.antialias : true,\n alpha: true,\n depth: attributes.depth,\n stencil: attributes.stencil,\n framebufferScaleFactor: framebufferScaleFactor\n };\n glBaseLayer = new XRWebGLLayer(session, gl, layerInit);\n session.updateRenderState({\n baseLayer: glBaseLayer\n });\n newRenderTarget = new WebGLRenderTarget(glBaseLayer.framebufferWidth, glBaseLayer.framebufferHeight, {\n format: RGBAFormat,\n type: UnsignedByteType,\n colorSpace: renderer.outputColorSpace,\n stencilBuffer: attributes.stencil\n });\n } else {\n depthFormat = null;\n depthType = null;\n glDepthFormat = null;\n\n if (attributes.depth) {\n glDepthFormat = attributes.stencil ? gl.DEPTH24_STENCIL8 : gl.DEPTH_COMPONENT24;\n depthFormat = attributes.stencil ? DepthStencilFormat : DepthFormat;\n depthType = attributes.stencil ? UnsignedInt248Type : UnsignedIntType;\n }\n\n projectionlayerInit = {\n colorFormat: gl.RGBA8,\n depthFormat: glDepthFormat,\n scaleFactor: framebufferScaleFactor\n };\n glBinding = new XRWebGLBinding(session, gl);\n glProjLayer = glBinding.createProjectionLayer(projectionlayerInit);\n session.updateRenderState({\n layers: [glProjLayer]\n });\n newRenderTarget = new WebGLRenderTarget(glProjLayer.textureWidth, glProjLayer.textureHeight, {\n format: RGBAFormat,\n type: UnsignedByteType,\n depthTexture: new DepthTexture(glProjLayer.textureWidth, glProjLayer.textureHeight, depthType, undefined, undefined, undefined, undefined, undefined, undefined, depthFormat),\n stencilBuffer: attributes.stencil,\n colorSpace: renderer.outputColorSpace,\n samples: attributes.antialias ? 4 : 0\n });\n renderTargetProperties = renderer.properties.get(newRenderTarget);\n renderTargetProperties.__ignoreDepthValues = glProjLayer.ignoreDepthValues;\n }\n\n newRenderTarget.isXRRenderTarget = true; // TODO Remove this when possible, see #23278\n\n this.setFoveation(foveation);\n customReferenceSpace = null;\n _context8.next = 20;\n return session.requestReferenceSpace(referenceSpaceType);\n\n case 20:\n referenceSpace = _context8.sent;\n animation.setContext(session);\n animation.start();\n scope.isPresenting = true;\n scope.dispatchEvent({\n type: 'sessionstart'\n });\n\n case 25:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function (_x3) {\n return _ref.apply(this, arguments);\n };\n }();\n\n _this29.getEnvironmentBlendMode = function () {\n if (session !== null) {\n return session.environmentBlendMode;\n }\n };\n\n function onInputSourcesChange(event) {\n // Notify disconnected\n for (var i = 0; i < event.removed.length; i++) {\n var inputSource = event.removed[i];\n var index = controllerInputSources.indexOf(inputSource);\n\n if (index >= 0) {\n controllerInputSources[index] = null;\n controllers[index].disconnect(inputSource);\n }\n } // Notify connected\n\n\n for (var _i53 = 0; _i53 < event.added.length; _i53++) {\n var _inputSource = event.added[_i53];\n var controllerIndex = controllerInputSources.indexOf(_inputSource);\n\n if (controllerIndex === -1) {\n // Assign input source a controller that currently has no input source\n for (var _i54 = 0; _i54 < controllers.length; _i54++) {\n if (_i54 >= controllerInputSources.length) {\n controllerInputSources.push(_inputSource);\n controllerIndex = _i54;\n break;\n } else if (controllerInputSources[_i54] === null) {\n controllerInputSources[_i54] = _inputSource;\n controllerIndex = _i54;\n break;\n }\n } // If all controllers do currently receive input we ignore new ones\n\n\n if (controllerIndex === -1) break;\n }\n\n var controller = controllers[controllerIndex];\n\n if (controller) {\n controller.connect(_inputSource);\n }\n }\n } //\n\n\n var cameraLPos = new Vector3();\n var cameraRPos = new Vector3();\n /**\n * Assumes 2 cameras that are parallel and share an X-axis, and that\n * the cameras' projection and world matrices have already been set.\n * And that near and far planes are identical for both cameras.\n * Visualization of this technique: https://computergraphics.stackexchange.com/a/4765\n */\n\n function setProjectionFromUnion(camera, cameraL, cameraR) {\n cameraLPos.setFromMatrixPosition(cameraL.matrixWorld);\n cameraRPos.setFromMatrixPosition(cameraR.matrixWorld);\n var ipd = cameraLPos.distanceTo(cameraRPos);\n var projL = cameraL.projectionMatrix.elements;\n var projR = cameraR.projectionMatrix.elements; // VR systems will have identical far and near planes, and\n // most likely identical top and bottom frustum extents.\n // Use the left camera for these values.\n\n var near = projL[14] / (projL[10] - 1);\n var far = projL[14] / (projL[10] + 1);\n var topFov = (projL[9] + 1) / projL[5];\n var bottomFov = (projL[9] - 1) / projL[5];\n var leftFov = (projL[8] - 1) / projL[0];\n var rightFov = (projR[8] + 1) / projR[0];\n var left = near * leftFov;\n var right = near * rightFov; // Calculate the new camera's position offset from the\n // left camera. xOffset should be roughly half `ipd`.\n\n var zOffset = ipd / (-leftFov + rightFov);\n var xOffset = zOffset * -leftFov; // TODO: Better way to apply this offset?\n\n cameraL.matrixWorld.decompose(camera.position, camera.quaternion, camera.scale);\n camera.translateX(xOffset);\n camera.translateZ(zOffset);\n camera.matrixWorld.compose(camera.position, camera.quaternion, camera.scale);\n camera.matrixWorldInverse.copy(camera.matrixWorld).invert(); // Find the union of the frustum values of the cameras and scale\n // the values so that the near plane's position does not change in world space,\n // although must now be relative to the new union camera.\n\n var near2 = near + zOffset;\n var far2 = far + zOffset;\n var left2 = left - xOffset;\n var right2 = right + (ipd - xOffset);\n var top2 = topFov * far / far2 * near2;\n var bottom2 = bottomFov * far / far2 * near2;\n camera.projectionMatrix.makePerspective(left2, right2, top2, bottom2, near2, far2);\n camera.projectionMatrixInverse.copy(camera.projectionMatrix).invert();\n }\n\n function updateCamera(camera, parent) {\n if (parent === null) {\n camera.matrixWorld.copy(camera.matrix);\n } else {\n camera.matrixWorld.multiplyMatrices(parent.matrixWorld, camera.matrix);\n }\n\n camera.matrixWorldInverse.copy(camera.matrixWorld).invert();\n }\n\n _this29.updateCamera = function (camera) {\n if (session === null) return;\n cameraVR.near = cameraR.near = cameraL.near = camera.near;\n cameraVR.far = cameraR.far = cameraL.far = camera.far;\n\n if (_currentDepthNear !== cameraVR.near || _currentDepthFar !== cameraVR.far) {\n // Note that the new renderState won't apply until the next frame. See #18320\n session.updateRenderState({\n depthNear: cameraVR.near,\n depthFar: cameraVR.far\n });\n _currentDepthNear = cameraVR.near;\n _currentDepthFar = cameraVR.far;\n }\n\n var parent = camera.parent;\n var cameras = cameraVR.cameras;\n updateCamera(cameraVR, parent);\n\n for (var i = 0; i < cameras.length; i++) {\n updateCamera(cameras[i], parent);\n } // update projection matrix for proper view frustum culling\n\n\n if (cameras.length === 2) {\n setProjectionFromUnion(cameraVR, cameraL, cameraR);\n } else {\n // assume single camera setup (AR)\n cameraVR.projectionMatrix.copy(cameraL.projectionMatrix);\n } // update user camera and its children\n\n\n updateUserCamera(camera, cameraVR, parent);\n };\n\n function updateUserCamera(camera, cameraVR, parent) {\n if (parent === null) {\n camera.matrix.copy(cameraVR.matrixWorld);\n } else {\n camera.matrix.copy(parent.matrixWorld);\n camera.matrix.invert();\n camera.matrix.multiply(cameraVR.matrixWorld);\n }\n\n camera.matrix.decompose(camera.position, camera.quaternion, camera.scale);\n camera.updateMatrixWorld(true);\n var children = camera.children;\n\n for (var i = 0, l = children.length; i < l; i++) {\n children[i].updateMatrixWorld(true);\n }\n\n camera.projectionMatrix.copy(cameraVR.projectionMatrix);\n camera.projectionMatrixInverse.copy(cameraVR.projectionMatrixInverse);\n\n if (camera.isPerspectiveCamera) {\n camera.fov = RAD2DEG * 2 * Math.atan(1 / camera.projectionMatrix.elements[5]);\n camera.zoom = 1;\n }\n }\n\n _this29.getCamera = function () {\n return cameraVR;\n };\n\n _this29.getFoveation = function () {\n if (glProjLayer === null && glBaseLayer === null) {\n return undefined;\n }\n\n return foveation;\n };\n\n _this29.setFoveation = function (value) {\n // 0 = no foveation = full resolution\n // 1 = maximum foveation = the edges render at lower resolution\n foveation = value;\n\n if (glProjLayer !== null) {\n glProjLayer.fixedFoveation = value;\n }\n\n if (glBaseLayer !== null && glBaseLayer.fixedFoveation !== undefined) {\n glBaseLayer.fixedFoveation = value;\n }\n };\n\n _this29.getPlanes = function () {\n return planes;\n }; // Animation Loop\n\n\n var onAnimationFrameCallback = null;\n\n function onAnimationFrame(time, frame) {\n pose = frame.getViewerPose(customReferenceSpace || referenceSpace);\n xrFrame = frame;\n\n if (pose !== null) {\n var views = pose.views;\n\n if (glBaseLayer !== null) {\n renderer.setRenderTargetFramebuffer(newRenderTarget, glBaseLayer.framebuffer);\n renderer.setRenderTarget(newRenderTarget);\n }\n\n var cameraVRNeedsUpdate = false; // check if it's necessary to rebuild cameraVR's camera list\n\n if (views.length !== cameraVR.cameras.length) {\n cameraVR.cameras.length = 0;\n cameraVRNeedsUpdate = true;\n }\n\n for (var i = 0; i < views.length; i++) {\n var view = views[i];\n var viewport = null;\n\n if (glBaseLayer !== null) {\n viewport = glBaseLayer.getViewport(view);\n } else {\n var glSubImage = glBinding.getViewSubImage(glProjLayer, view);\n viewport = glSubImage.viewport; // For side-by-side projection, we only produce a single texture for both eyes.\n\n if (i === 0) {\n renderer.setRenderTargetTextures(newRenderTarget, glSubImage.colorTexture, glProjLayer.ignoreDepthValues ? undefined : glSubImage.depthStencilTexture);\n renderer.setRenderTarget(newRenderTarget);\n }\n }\n\n var camera = cameras[i];\n\n if (camera === undefined) {\n camera = new PerspectiveCamera();\n camera.layers.enable(i);\n camera.viewport = new Vector4();\n cameras[i] = camera;\n }\n\n camera.matrix.fromArray(view.transform.matrix);\n camera.matrix.decompose(camera.position, camera.quaternion, camera.scale);\n camera.projectionMatrix.fromArray(view.projectionMatrix);\n camera.projectionMatrixInverse.copy(camera.projectionMatrix).invert();\n camera.viewport.set(viewport.x, viewport.y, viewport.width, viewport.height);\n\n if (i === 0) {\n cameraVR.matrix.copy(camera.matrix);\n cameraVR.matrix.decompose(cameraVR.position, cameraVR.quaternion, cameraVR.scale);\n }\n\n if (cameraVRNeedsUpdate === true) {\n cameraVR.cameras.push(camera);\n }\n }\n } //\n\n\n for (var _i55 = 0; _i55 < controllers.length; _i55++) {\n var inputSource = controllerInputSources[_i55];\n var controller = controllers[_i55];\n\n if (inputSource !== null && controller !== undefined) {\n controller.update(inputSource, frame, customReferenceSpace || referenceSpace);\n }\n }\n\n if (onAnimationFrameCallback) onAnimationFrameCallback(time, frame);\n\n if (frame.detectedPlanes) {\n scope.dispatchEvent({\n type: 'planesdetected',\n data: frame.detectedPlanes\n });\n var planesToRemove = null;\n\n var _iterator4 = _createForOfIteratorHelper(planes),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var _plane = _step4.value;\n\n if (!frame.detectedPlanes.has(_plane)) {\n if (planesToRemove === null) {\n planesToRemove = [];\n }\n\n planesToRemove.push(_plane);\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n if (planesToRemove !== null) {\n var _iterator5 = _createForOfIteratorHelper(planesToRemove),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var plane = _step5.value;\n planes.delete(plane);\n planesLastChangedTimes.delete(plane);\n scope.dispatchEvent({\n type: 'planeremoved',\n data: plane\n });\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n }\n\n var _iterator6 = _createForOfIteratorHelper(frame.detectedPlanes),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var _plane2 = _step6.value;\n\n if (!planes.has(_plane2)) {\n planes.add(_plane2);\n planesLastChangedTimes.set(_plane2, frame.lastChangedTime);\n scope.dispatchEvent({\n type: 'planeadded',\n data: _plane2\n });\n } else {\n var lastKnownTime = planesLastChangedTimes.get(_plane2);\n\n if (_plane2.lastChangedTime > lastKnownTime) {\n planesLastChangedTimes.set(_plane2, _plane2.lastChangedTime);\n scope.dispatchEvent({\n type: 'planechanged',\n data: _plane2\n });\n }\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n }\n\n xrFrame = null;\n }\n\n var animation = new WebGLAnimation();\n animation.setAnimationLoop(onAnimationFrame);\n\n _this29.setAnimationLoop = function (callback) {\n onAnimationFrameCallback = callback;\n };\n\n _this29.dispose = function () {};\n\n return _this29;\n }\n\n return _createClass(WebXRManager);\n}(EventDispatcher);\n\nfunction WebGLMaterials(renderer, properties) {\n function refreshTransformUniform(map, uniform) {\n if (map.matrixAutoUpdate === true) {\n map.updateMatrix();\n }\n\n uniform.value.copy(map.matrix);\n }\n\n function refreshFogUniforms(uniforms, fog) {\n fog.color.getRGB(uniforms.fogColor.value, getUnlitUniformColorSpace(renderer));\n\n if (fog.isFog) {\n uniforms.fogNear.value = fog.near;\n uniforms.fogFar.value = fog.far;\n } else if (fog.isFogExp2) {\n uniforms.fogDensity.value = fog.density;\n }\n }\n\n function refreshMaterialUniforms(uniforms, material, pixelRatio, height, transmissionRenderTarget) {\n if (material.isMeshBasicMaterial) {\n refreshUniformsCommon(uniforms, material);\n } else if (material.isMeshLambertMaterial) {\n refreshUniformsCommon(uniforms, material);\n } else if (material.isMeshToonMaterial) {\n refreshUniformsCommon(uniforms, material);\n refreshUniformsToon(uniforms, material);\n } else if (material.isMeshPhongMaterial) {\n refreshUniformsCommon(uniforms, material);\n refreshUniformsPhong(uniforms, material);\n } else if (material.isMeshStandardMaterial) {\n refreshUniformsCommon(uniforms, material);\n refreshUniformsStandard(uniforms, material);\n\n if (material.isMeshPhysicalMaterial) {\n refreshUniformsPhysical(uniforms, material, transmissionRenderTarget);\n }\n } else if (material.isMeshMatcapMaterial) {\n refreshUniformsCommon(uniforms, material);\n refreshUniformsMatcap(uniforms, material);\n } else if (material.isMeshDepthMaterial) {\n refreshUniformsCommon(uniforms, material);\n } else if (material.isMeshDistanceMaterial) {\n refreshUniformsCommon(uniforms, material);\n refreshUniformsDistance(uniforms, material);\n } else if (material.isMeshNormalMaterial) {\n refreshUniformsCommon(uniforms, material);\n } else if (material.isLineBasicMaterial) {\n refreshUniformsLine(uniforms, material);\n\n if (material.isLineDashedMaterial) {\n refreshUniformsDash(uniforms, material);\n }\n } else if (material.isPointsMaterial) {\n refreshUniformsPoints(uniforms, material, pixelRatio, height);\n } else if (material.isSpriteMaterial) {\n refreshUniformsSprites(uniforms, material);\n } else if (material.isShadowMaterial) {\n uniforms.color.value.copy(material.color);\n uniforms.opacity.value = material.opacity;\n } else if (material.isShaderMaterial) {\n material.uniformsNeedUpdate = false; // #15581\n }\n }\n\n function refreshUniformsCommon(uniforms, material) {\n uniforms.opacity.value = material.opacity;\n\n if (material.color) {\n uniforms.diffuse.value.copy(material.color);\n }\n\n if (material.emissive) {\n uniforms.emissive.value.copy(material.emissive).multiplyScalar(material.emissiveIntensity);\n }\n\n if (material.map) {\n uniforms.map.value = material.map;\n refreshTransformUniform(material.map, uniforms.mapTransform);\n }\n\n if (material.alphaMap) {\n uniforms.alphaMap.value = material.alphaMap;\n refreshTransformUniform(material.alphaMap, uniforms.alphaMapTransform);\n }\n\n if (material.bumpMap) {\n uniforms.bumpMap.value = material.bumpMap;\n refreshTransformUniform(material.bumpMap, uniforms.bumpMapTransform);\n uniforms.bumpScale.value = material.bumpScale;\n\n if (material.side === BackSide) {\n uniforms.bumpScale.value *= -1;\n }\n }\n\n if (material.normalMap) {\n uniforms.normalMap.value = material.normalMap;\n refreshTransformUniform(material.normalMap, uniforms.normalMapTransform);\n uniforms.normalScale.value.copy(material.normalScale);\n\n if (material.side === BackSide) {\n uniforms.normalScale.value.negate();\n }\n }\n\n if (material.displacementMap) {\n uniforms.displacementMap.value = material.displacementMap;\n refreshTransformUniform(material.displacementMap, uniforms.displacementMapTransform);\n uniforms.displacementScale.value = material.displacementScale;\n uniforms.displacementBias.value = material.displacementBias;\n }\n\n if (material.emissiveMap) {\n uniforms.emissiveMap.value = material.emissiveMap;\n refreshTransformUniform(material.emissiveMap, uniforms.emissiveMapTransform);\n }\n\n if (material.specularMap) {\n uniforms.specularMap.value = material.specularMap;\n refreshTransformUniform(material.specularMap, uniforms.specularMapTransform);\n }\n\n if (material.alphaTest > 0) {\n uniforms.alphaTest.value = material.alphaTest;\n }\n\n var envMap = properties.get(material).envMap;\n\n if (envMap) {\n uniforms.envMap.value = envMap;\n uniforms.flipEnvMap.value = envMap.isCubeTexture && envMap.isRenderTargetTexture === false ? -1 : 1;\n uniforms.reflectivity.value = material.reflectivity;\n uniforms.ior.value = material.ior;\n uniforms.refractionRatio.value = material.refractionRatio;\n }\n\n if (material.lightMap) {\n uniforms.lightMap.value = material.lightMap; // artist-friendly light intensity scaling factor\n\n var scaleFactor = renderer.useLegacyLights === true ? Math.PI : 1;\n uniforms.lightMapIntensity.value = material.lightMapIntensity * scaleFactor;\n refreshTransformUniform(material.lightMap, uniforms.lightMapTransform);\n }\n\n if (material.aoMap) {\n uniforms.aoMap.value = material.aoMap;\n uniforms.aoMapIntensity.value = material.aoMapIntensity;\n refreshTransformUniform(material.aoMap, uniforms.aoMapTransform);\n }\n }\n\n function refreshUniformsLine(uniforms, material) {\n uniforms.diffuse.value.copy(material.color);\n uniforms.opacity.value = material.opacity;\n\n if (material.map) {\n uniforms.map.value = material.map;\n refreshTransformUniform(material.map, uniforms.mapTransform);\n }\n }\n\n function refreshUniformsDash(uniforms, material) {\n uniforms.dashSize.value = material.dashSize;\n uniforms.totalSize.value = material.dashSize + material.gapSize;\n uniforms.scale.value = material.scale;\n }\n\n function refreshUniformsPoints(uniforms, material, pixelRatio, height) {\n uniforms.diffuse.value.copy(material.color);\n uniforms.opacity.value = material.opacity;\n uniforms.size.value = material.size * pixelRatio;\n uniforms.scale.value = height * 0.5;\n\n if (material.map) {\n uniforms.map.value = material.map;\n refreshTransformUniform(material.map, uniforms.uvTransform);\n }\n\n if (material.alphaMap) {\n uniforms.alphaMap.value = material.alphaMap;\n }\n\n if (material.alphaTest > 0) {\n uniforms.alphaTest.value = material.alphaTest;\n }\n }\n\n function refreshUniformsSprites(uniforms, material) {\n uniforms.diffuse.value.copy(material.color);\n uniforms.opacity.value = material.opacity;\n uniforms.rotation.value = material.rotation;\n\n if (material.map) {\n uniforms.map.value = material.map;\n refreshTransformUniform(material.map, uniforms.mapTransform);\n }\n\n if (material.alphaMap) {\n uniforms.alphaMap.value = material.alphaMap;\n }\n\n if (material.alphaTest > 0) {\n uniforms.alphaTest.value = material.alphaTest;\n }\n }\n\n function refreshUniformsPhong(uniforms, material) {\n uniforms.specular.value.copy(material.specular);\n uniforms.shininess.value = Math.max(material.shininess, 1e-4); // to prevent pow( 0.0, 0.0 )\n }\n\n function refreshUniformsToon(uniforms, material) {\n if (material.gradientMap) {\n uniforms.gradientMap.value = material.gradientMap;\n }\n }\n\n function refreshUniformsStandard(uniforms, material) {\n uniforms.metalness.value = material.metalness;\n\n if (material.metalnessMap) {\n uniforms.metalnessMap.value = material.metalnessMap;\n refreshTransformUniform(material.metalnessMap, uniforms.metalnessMapTransform);\n }\n\n uniforms.roughness.value = material.roughness;\n\n if (material.roughnessMap) {\n uniforms.roughnessMap.value = material.roughnessMap;\n refreshTransformUniform(material.roughnessMap, uniforms.roughnessMapTransform);\n }\n\n var envMap = properties.get(material).envMap;\n\n if (envMap) {\n //uniforms.envMap.value = material.envMap; // part of uniforms common\n uniforms.envMapIntensity.value = material.envMapIntensity;\n }\n }\n\n function refreshUniformsPhysical(uniforms, material, transmissionRenderTarget) {\n uniforms.ior.value = material.ior; // also part of uniforms common\n\n if (material.sheen > 0) {\n uniforms.sheenColor.value.copy(material.sheenColor).multiplyScalar(material.sheen);\n uniforms.sheenRoughness.value = material.sheenRoughness;\n\n if (material.sheenColorMap) {\n uniforms.sheenColorMap.value = material.sheenColorMap;\n refreshTransformUniform(material.sheenColorMap, uniforms.sheenColorMapTransform);\n }\n\n if (material.sheenRoughnessMap) {\n uniforms.sheenRoughnessMap.value = material.sheenRoughnessMap;\n refreshTransformUniform(material.sheenRoughnessMap, uniforms.sheenRoughnessMapTransform);\n }\n }\n\n if (material.clearcoat > 0) {\n uniforms.clearcoat.value = material.clearcoat;\n uniforms.clearcoatRoughness.value = material.clearcoatRoughness;\n\n if (material.clearcoatMap) {\n uniforms.clearcoatMap.value = material.clearcoatMap;\n refreshTransformUniform(material.clearcoatMap, uniforms.clearcoatMapTransform);\n }\n\n if (material.clearcoatRoughnessMap) {\n uniforms.clearcoatRoughnessMap.value = material.clearcoatRoughnessMap;\n refreshTransformUniform(material.clearcoatRoughnessMap, uniforms.clearcoatRoughnessMapTransform);\n }\n\n if (material.clearcoatNormalMap) {\n uniforms.clearcoatNormalMap.value = material.clearcoatNormalMap;\n refreshTransformUniform(material.clearcoatNormalMap, uniforms.clearcoatNormalMapTransform);\n uniforms.clearcoatNormalScale.value.copy(material.clearcoatNormalScale);\n\n if (material.side === BackSide) {\n uniforms.clearcoatNormalScale.value.negate();\n }\n }\n }\n\n if (material.iridescence > 0) {\n uniforms.iridescence.value = material.iridescence;\n uniforms.iridescenceIOR.value = material.iridescenceIOR;\n uniforms.iridescenceThicknessMinimum.value = material.iridescenceThicknessRange[0];\n uniforms.iridescenceThicknessMaximum.value = material.iridescenceThicknessRange[1];\n\n if (material.iridescenceMap) {\n uniforms.iridescenceMap.value = material.iridescenceMap;\n refreshTransformUniform(material.iridescenceMap, uniforms.iridescenceMapTransform);\n }\n\n if (material.iridescenceThicknessMap) {\n uniforms.iridescenceThicknessMap.value = material.iridescenceThicknessMap;\n refreshTransformUniform(material.iridescenceThicknessMap, uniforms.iridescenceThicknessMapTransform);\n }\n }\n\n if (material.transmission > 0) {\n uniforms.transmission.value = material.transmission;\n uniforms.transmissionSamplerMap.value = transmissionRenderTarget.texture;\n uniforms.transmissionSamplerSize.value.set(transmissionRenderTarget.width, transmissionRenderTarget.height);\n\n if (material.transmissionMap) {\n uniforms.transmissionMap.value = material.transmissionMap;\n refreshTransformUniform(material.transmissionMap, uniforms.transmissionMapTransform);\n }\n\n uniforms.thickness.value = material.thickness;\n\n if (material.thicknessMap) {\n uniforms.thicknessMap.value = material.thicknessMap;\n refreshTransformUniform(material.thicknessMap, uniforms.thicknessMapTransform);\n }\n\n uniforms.attenuationDistance.value = material.attenuationDistance;\n uniforms.attenuationColor.value.copy(material.attenuationColor);\n }\n\n uniforms.specularIntensity.value = material.specularIntensity;\n uniforms.specularColor.value.copy(material.specularColor);\n\n if (material.specularColorMap) {\n uniforms.specularColorMap.value = material.specularColorMap;\n refreshTransformUniform(material.specularColorMap, uniforms.specularColorMapTransform);\n }\n\n if (material.specularIntensityMap) {\n uniforms.specularIntensityMap.value = material.specularIntensityMap;\n refreshTransformUniform(material.specularIntensityMap, uniforms.specularIntensityMapTransform);\n }\n }\n\n function refreshUniformsMatcap(uniforms, material) {\n if (material.matcap) {\n uniforms.matcap.value = material.matcap;\n }\n }\n\n function refreshUniformsDistance(uniforms, material) {\n var light = properties.get(material).light;\n uniforms.referencePosition.value.setFromMatrixPosition(light.matrixWorld);\n uniforms.nearDistance.value = light.shadow.camera.near;\n uniforms.farDistance.value = light.shadow.camera.far;\n }\n\n return {\n refreshFogUniforms: refreshFogUniforms,\n refreshMaterialUniforms: refreshMaterialUniforms\n };\n}\n\nfunction WebGLUniformsGroups(gl, info, capabilities, state) {\n var buffers = {};\n var updateList = {};\n var allocatedBindingPoints = [];\n var maxBindingPoints = capabilities.isWebGL2 ? gl.getParameter(gl.MAX_UNIFORM_BUFFER_BINDINGS) : 0; // binding points are global whereas block indices are per shader program\n\n function bind(uniformsGroup, program) {\n var webglProgram = program.program;\n state.uniformBlockBinding(uniformsGroup, webglProgram);\n }\n\n function update(uniformsGroup, program) {\n var buffer = buffers[uniformsGroup.id];\n\n if (buffer === undefined) {\n prepareUniformsGroup(uniformsGroup);\n buffer = createBuffer(uniformsGroup);\n buffers[uniformsGroup.id] = buffer;\n uniformsGroup.addEventListener('dispose', onUniformsGroupsDispose);\n } // ensure to update the binding points/block indices mapping for this program\n\n\n var webglProgram = program.program;\n state.updateUBOMapping(uniformsGroup, webglProgram); // update UBO once per frame\n\n var frame = info.render.frame;\n\n if (updateList[uniformsGroup.id] !== frame) {\n updateBufferData(uniformsGroup);\n updateList[uniformsGroup.id] = frame;\n }\n }\n\n function createBuffer(uniformsGroup) {\n // the setup of an UBO is independent of a particular shader program but global\n var bindingPointIndex = allocateBindingPointIndex();\n uniformsGroup.__bindingPointIndex = bindingPointIndex;\n var buffer = gl.createBuffer();\n var size = uniformsGroup.__size;\n var usage = uniformsGroup.usage;\n gl.bindBuffer(gl.UNIFORM_BUFFER, buffer);\n gl.bufferData(gl.UNIFORM_BUFFER, size, usage);\n gl.bindBuffer(gl.UNIFORM_BUFFER, null);\n gl.bindBufferBase(gl.UNIFORM_BUFFER, bindingPointIndex, buffer);\n return buffer;\n }\n\n function allocateBindingPointIndex() {\n for (var i = 0; i < maxBindingPoints; i++) {\n if (allocatedBindingPoints.indexOf(i) === -1) {\n allocatedBindingPoints.push(i);\n return i;\n }\n }\n\n console.error('THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached.');\n return 0;\n }\n\n function updateBufferData(uniformsGroup) {\n var buffer = buffers[uniformsGroup.id];\n var uniforms = uniformsGroup.uniforms;\n var cache = uniformsGroup.__cache;\n gl.bindBuffer(gl.UNIFORM_BUFFER, buffer);\n\n for (var i = 0, il = uniforms.length; i < il; i++) {\n var uniform = uniforms[i]; // partly update the buffer if necessary\n\n if (hasUniformChanged(uniform, i, cache) === true) {\n var offset = uniform.__offset;\n var values = Array.isArray(uniform.value) ? uniform.value : [uniform.value];\n var arrayOffset = 0;\n\n for (var _i56 = 0; _i56 < values.length; _i56++) {\n var _value5 = values[_i56];\n\n var _info = getUniformSize(_value5);\n\n if (typeof _value5 === 'number') {\n uniform.__data[0] = _value5;\n gl.bufferSubData(gl.UNIFORM_BUFFER, offset + arrayOffset, uniform.__data);\n } else if (_value5.isMatrix3) {\n // manually converting 3x3 to 3x4\n uniform.__data[0] = _value5.elements[0];\n uniform.__data[1] = _value5.elements[1];\n uniform.__data[2] = _value5.elements[2];\n uniform.__data[3] = _value5.elements[0];\n uniform.__data[4] = _value5.elements[3];\n uniform.__data[5] = _value5.elements[4];\n uniform.__data[6] = _value5.elements[5];\n uniform.__data[7] = _value5.elements[0];\n uniform.__data[8] = _value5.elements[6];\n uniform.__data[9] = _value5.elements[7];\n uniform.__data[10] = _value5.elements[8];\n uniform.__data[11] = _value5.elements[0];\n } else {\n _value5.toArray(uniform.__data, arrayOffset);\n\n arrayOffset += _info.storage / Float32Array.BYTES_PER_ELEMENT;\n }\n }\n\n gl.bufferSubData(gl.UNIFORM_BUFFER, offset, uniform.__data);\n }\n }\n\n gl.bindBuffer(gl.UNIFORM_BUFFER, null);\n }\n\n function hasUniformChanged(uniform, index, cache) {\n var value = uniform.value;\n\n if (cache[index] === undefined) {\n // cache entry does not exist so far\n if (typeof value === 'number') {\n cache[index] = value;\n } else {\n var values = Array.isArray(value) ? value : [value];\n var tempValues = [];\n\n for (var i = 0; i < values.length; i++) {\n tempValues.push(values[i].clone());\n }\n\n cache[index] = tempValues;\n }\n\n return true;\n } else {\n // compare current value with cached entry\n if (typeof value === 'number') {\n if (cache[index] !== value) {\n cache[index] = value;\n return true;\n }\n } else {\n var cachedObjects = Array.isArray(cache[index]) ? cache[index] : [cache[index]];\n\n var _values = Array.isArray(value) ? value : [value];\n\n for (var _i57 = 0; _i57 < cachedObjects.length; _i57++) {\n var cachedObject = cachedObjects[_i57];\n\n if (cachedObject.equals(_values[_i57]) === false) {\n cachedObject.copy(_values[_i57]);\n return true;\n }\n }\n }\n }\n\n return false;\n }\n\n function prepareUniformsGroup(uniformsGroup) {\n // determine total buffer size according to the STD140 layout\n // Hint: STD140 is the only supported layout in WebGL 2\n var uniforms = uniformsGroup.uniforms;\n var offset = 0; // global buffer offset in bytes\n\n var chunkSize = 16; // size of a chunk in bytes\n\n var chunkOffset = 0; // offset within a single chunk in bytes\n\n for (var i = 0, l = uniforms.length; i < l; i++) {\n var uniform = uniforms[i];\n var infos = {\n boundary: 0,\n // bytes\n storage: 0 // bytes\n\n };\n var values = Array.isArray(uniform.value) ? uniform.value : [uniform.value];\n\n for (var j = 0, jl = values.length; j < jl; j++) {\n var _value6 = values[j];\n\n var _info2 = getUniformSize(_value6);\n\n infos.boundary += _info2.boundary;\n infos.storage += _info2.storage;\n } // the following two properties will be used for partial buffer updates\n\n\n uniform.__data = new Float32Array(infos.storage / Float32Array.BYTES_PER_ELEMENT);\n uniform.__offset = offset; //\n\n if (i > 0) {\n chunkOffset = offset % chunkSize;\n var remainingSizeInChunk = chunkSize - chunkOffset; // check for chunk overflow\n\n if (chunkOffset !== 0 && remainingSizeInChunk - infos.boundary < 0) {\n // add padding and adjust offset\n offset += chunkSize - chunkOffset;\n uniform.__offset = offset;\n }\n }\n\n offset += infos.storage;\n } // ensure correct final padding\n\n\n chunkOffset = offset % chunkSize;\n if (chunkOffset > 0) offset += chunkSize - chunkOffset; //\n\n uniformsGroup.__size = offset;\n uniformsGroup.__cache = {};\n return this;\n }\n\n function getUniformSize(value) {\n var info = {\n boundary: 0,\n // bytes\n storage: 0 // bytes\n\n }; // determine sizes according to STD140\n\n if (typeof value === 'number') {\n // float/int\n info.boundary = 4;\n info.storage = 4;\n } else if (value.isVector2) {\n // vec2\n info.boundary = 8;\n info.storage = 8;\n } else if (value.isVector3 || value.isColor) {\n // vec3\n info.boundary = 16;\n info.storage = 12; // evil: vec3 must start on a 16-byte boundary but it only consumes 12 bytes\n } else if (value.isVector4) {\n // vec4\n info.boundary = 16;\n info.storage = 16;\n } else if (value.isMatrix3) {\n // mat3 (in STD140 a 3x3 matrix is represented as 3x4)\n info.boundary = 48;\n info.storage = 48;\n } else if (value.isMatrix4) {\n // mat4\n info.boundary = 64;\n info.storage = 64;\n } else if (value.isTexture) {\n console.warn('THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group.');\n } else {\n console.warn('THREE.WebGLRenderer: Unsupported uniform value type.', value);\n }\n\n return info;\n }\n\n function onUniformsGroupsDispose(event) {\n var uniformsGroup = event.target;\n uniformsGroup.removeEventListener('dispose', onUniformsGroupsDispose);\n var index = allocatedBindingPoints.indexOf(uniformsGroup.__bindingPointIndex);\n allocatedBindingPoints.splice(index, 1);\n gl.deleteBuffer(buffers[uniformsGroup.id]);\n delete buffers[uniformsGroup.id];\n delete updateList[uniformsGroup.id];\n }\n\n function dispose() {\n for (var _id3 in buffers) {\n gl.deleteBuffer(buffers[_id3]);\n }\n\n allocatedBindingPoints = [];\n buffers = {};\n updateList = {};\n }\n\n return {\n bind: bind,\n update: update,\n dispose: dispose\n };\n}\n\nfunction createCanvasElement() {\n var canvas = createElementNS('canvas');\n canvas.style.display = 'block';\n return canvas;\n}\n\nvar WebGLRenderer = /*#__PURE__*/function () {\n function WebGLRenderer() {\n var parameters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, WebGLRenderer);\n\n var _parameters$canvas = parameters.canvas,\n canvas = _parameters$canvas === void 0 ? createCanvasElement() : _parameters$canvas,\n _parameters$context = parameters.context,\n context = _parameters$context === void 0 ? null : _parameters$context,\n _parameters$depth = parameters.depth,\n depth = _parameters$depth === void 0 ? true : _parameters$depth,\n _parameters$stencil = parameters.stencil,\n stencil = _parameters$stencil === void 0 ? true : _parameters$stencil,\n _parameters$alpha = parameters.alpha,\n alpha = _parameters$alpha === void 0 ? false : _parameters$alpha,\n _parameters$antialias = parameters.antialias,\n antialias = _parameters$antialias === void 0 ? false : _parameters$antialias,\n _parameters$premultip = parameters.premultipliedAlpha,\n premultipliedAlpha = _parameters$premultip === void 0 ? true : _parameters$premultip,\n _parameters$preserveD = parameters.preserveDrawingBuffer,\n preserveDrawingBuffer = _parameters$preserveD === void 0 ? false : _parameters$preserveD,\n _parameters$powerPref = parameters.powerPreference,\n powerPreference = _parameters$powerPref === void 0 ? 'default' : _parameters$powerPref,\n _parameters$failIfMaj = parameters.failIfMajorPerformanceCaveat,\n failIfMajorPerformanceCaveat = _parameters$failIfMaj === void 0 ? false : _parameters$failIfMaj;\n this.isWebGLRenderer = true;\n\n var _alpha;\n\n if (context !== null) {\n _alpha = context.getContextAttributes().alpha;\n } else {\n _alpha = alpha;\n }\n\n var currentRenderList = null;\n var currentRenderState = null; // render() can be called from within a callback triggered by another render.\n // We track this so that the nested render call gets its list and state isolated from the parent render call.\n\n var renderListStack = [];\n var renderStateStack = []; // public properties\n\n this.domElement = canvas; // Debug configuration container\n\n this.debug = {\n /**\n * Enables error checking and reporting when shader programs are being compiled\n * @type {boolean}\n */\n checkShaderErrors: true,\n\n /**\n * Callback for custom error reporting.\n * @type {?Function}\n */\n onShaderError: null\n }; // clearing\n\n this.autoClear = true;\n this.autoClearColor = true;\n this.autoClearDepth = true;\n this.autoClearStencil = true; // scene graph\n\n this.sortObjects = true; // user-defined clipping\n\n this.clippingPlanes = [];\n this.localClippingEnabled = false; // physically based shading\n\n this.outputColorSpace = SRGBColorSpace; // physical lights\n\n this.useLegacyLights = true; // tone mapping\n\n this.toneMapping = NoToneMapping;\n this.toneMappingExposure = 1.0; // internal properties\n\n var _this = this;\n\n var _isContextLost = false; // internal state cache\n\n var _currentActiveCubeFace = 0;\n var _currentActiveMipmapLevel = 0;\n var _currentRenderTarget = null;\n\n var _currentMaterialId = -1;\n\n var _currentCamera = null;\n\n var _currentViewport = new Vector4();\n\n var _currentScissor = new Vector4();\n\n var _currentScissorTest = null; //\n\n var _width = canvas.width;\n var _height = canvas.height;\n var _pixelRatio = 1;\n var _opaqueSort = null;\n var _transparentSort = null;\n\n var _viewport = new Vector4(0, 0, _width, _height);\n\n var _scissor = new Vector4(0, 0, _width, _height);\n\n var _scissorTest = false; // frustum\n\n var _frustum = new Frustum(); // clipping\n\n\n var _clippingEnabled = false;\n var _localClippingEnabled = false; // transmission\n\n var _transmissionRenderTarget = null; // camera matrices cache\n\n var _projScreenMatrix = new Matrix4();\n\n var _vector3 = new Vector3();\n\n var _emptyScene = {\n background: null,\n fog: null,\n environment: null,\n overrideMaterial: null,\n isScene: true\n };\n\n function getTargetPixelRatio() {\n return _currentRenderTarget === null ? _pixelRatio : 1;\n } // initialize\n\n\n var _gl = context;\n\n function getContext(contextNames, contextAttributes) {\n for (var i = 0; i < contextNames.length; i++) {\n var contextName = contextNames[i];\n\n var _context9 = canvas.getContext(contextName, contextAttributes);\n\n if (_context9 !== null) return _context9;\n }\n\n return null;\n }\n\n try {\n var contextAttributes = {\n alpha: true,\n depth: depth,\n stencil: stencil,\n antialias: antialias,\n premultipliedAlpha: premultipliedAlpha,\n preserveDrawingBuffer: preserveDrawingBuffer,\n powerPreference: powerPreference,\n failIfMajorPerformanceCaveat: failIfMajorPerformanceCaveat\n }; // OffscreenCanvas does not have setAttribute, see #22811\n\n if ('setAttribute' in canvas) canvas.setAttribute('data-engine', \"three.js r\".concat(REVISION)); // event listeners must be registered before WebGL context is created, see #12753\n\n canvas.addEventListener('webglcontextlost', onContextLost, false);\n canvas.addEventListener('webglcontextrestored', onContextRestore, false);\n canvas.addEventListener('webglcontextcreationerror', onContextCreationError, false);\n\n if (_gl === null) {\n var contextNames = ['webgl2', 'webgl', 'experimental-webgl'];\n\n if (_this.isWebGL1Renderer === true) {\n contextNames.shift();\n }\n\n _gl = getContext(contextNames, contextAttributes);\n\n if (_gl === null) {\n if (getContext(contextNames)) {\n throw new Error('Error creating WebGL context with your selected attributes.');\n } else {\n throw new Error('Error creating WebGL context.');\n }\n }\n } // Some experimental-webgl implementations do not have getShaderPrecisionFormat\n\n\n if (_gl.getShaderPrecisionFormat === undefined) {\n _gl.getShaderPrecisionFormat = function () {\n return {\n 'rangeMin': 1,\n 'rangeMax': 1,\n 'precision': 1\n };\n };\n }\n } catch (error) {\n console.error('THREE.WebGLRenderer: ' + error.message);\n throw error;\n }\n\n var extensions, capabilities, state, info;\n var properties, textures, cubemaps, cubeuvmaps, attributes, geometries, objects;\n var programCache, materials, renderLists, renderStates, clipping, shadowMap;\n var background, morphtargets, bufferRenderer, indexedBufferRenderer;\n var utils, bindingStates, uniformsGroups;\n\n function initGLContext() {\n extensions = new WebGLExtensions(_gl);\n capabilities = new WebGLCapabilities(_gl, extensions, parameters);\n extensions.init(capabilities);\n utils = new WebGLUtils(_gl, extensions, capabilities);\n state = new WebGLState(_gl, extensions, capabilities);\n info = new WebGLInfo(_gl);\n properties = new WebGLProperties();\n textures = new WebGLTextures(_gl, extensions, state, properties, capabilities, utils, info);\n cubemaps = new WebGLCubeMaps(_this);\n cubeuvmaps = new WebGLCubeUVMaps(_this);\n attributes = new WebGLAttributes(_gl, capabilities);\n bindingStates = new WebGLBindingStates(_gl, extensions, attributes, capabilities);\n geometries = new WebGLGeometries(_gl, attributes, info, bindingStates);\n objects = new WebGLObjects(_gl, geometries, attributes, info);\n morphtargets = new WebGLMorphtargets(_gl, capabilities, textures);\n clipping = new WebGLClipping(properties);\n programCache = new WebGLPrograms(_this, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping);\n materials = new WebGLMaterials(_this, properties);\n renderLists = new WebGLRenderLists();\n renderStates = new WebGLRenderStates(extensions, capabilities);\n background = new WebGLBackground(_this, cubemaps, cubeuvmaps, state, objects, _alpha, premultipliedAlpha);\n shadowMap = new WebGLShadowMap(_this, objects, capabilities);\n uniformsGroups = new WebGLUniformsGroups(_gl, info, capabilities, state);\n bufferRenderer = new WebGLBufferRenderer(_gl, extensions, info, capabilities);\n indexedBufferRenderer = new WebGLIndexedBufferRenderer(_gl, extensions, info, capabilities);\n info.programs = programCache.programs;\n _this.capabilities = capabilities;\n _this.extensions = extensions;\n _this.properties = properties;\n _this.renderLists = renderLists;\n _this.shadowMap = shadowMap;\n _this.state = state;\n _this.info = info;\n }\n\n initGLContext(); // xr\n\n var xr = new WebXRManager(_this, _gl);\n this.xr = xr; // API\n\n this.getContext = function () {\n return _gl;\n };\n\n this.getContextAttributes = function () {\n return _gl.getContextAttributes();\n };\n\n this.forceContextLoss = function () {\n var extension = extensions.get('WEBGL_lose_context');\n if (extension) extension.loseContext();\n };\n\n this.forceContextRestore = function () {\n var extension = extensions.get('WEBGL_lose_context');\n if (extension) extension.restoreContext();\n };\n\n this.getPixelRatio = function () {\n return _pixelRatio;\n };\n\n this.setPixelRatio = function (value) {\n if (value === undefined) return;\n _pixelRatio = value;\n this.setSize(_width, _height, false);\n };\n\n this.getSize = function (target) {\n return target.set(_width, _height);\n };\n\n this.setSize = function (width, height) {\n var updateStyle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (xr.isPresenting) {\n console.warn('THREE.WebGLRenderer: Can\\'t change size while VR device is presenting.');\n return;\n }\n\n _width = width;\n _height = height;\n canvas.width = Math.floor(width * _pixelRatio);\n canvas.height = Math.floor(height * _pixelRatio);\n\n if (updateStyle === true) {\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n }\n\n this.setViewport(0, 0, width, height);\n };\n\n this.getDrawingBufferSize = function (target) {\n return target.set(_width * _pixelRatio, _height * _pixelRatio).floor();\n };\n\n this.setDrawingBufferSize = function (width, height, pixelRatio) {\n _width = width;\n _height = height;\n _pixelRatio = pixelRatio;\n canvas.width = Math.floor(width * pixelRatio);\n canvas.height = Math.floor(height * pixelRatio);\n this.setViewport(0, 0, width, height);\n };\n\n this.getCurrentViewport = function (target) {\n return target.copy(_currentViewport);\n };\n\n this.getViewport = function (target) {\n return target.copy(_viewport);\n };\n\n this.setViewport = function (x, y, width, height) {\n if (x.isVector4) {\n _viewport.set(x.x, x.y, x.z, x.w);\n } else {\n _viewport.set(x, y, width, height);\n }\n\n state.viewport(_currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).floor());\n };\n\n this.getScissor = function (target) {\n return target.copy(_scissor);\n };\n\n this.setScissor = function (x, y, width, height) {\n if (x.isVector4) {\n _scissor.set(x.x, x.y, x.z, x.w);\n } else {\n _scissor.set(x, y, width, height);\n }\n\n state.scissor(_currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).floor());\n };\n\n this.getScissorTest = function () {\n return _scissorTest;\n };\n\n this.setScissorTest = function (boolean) {\n state.setScissorTest(_scissorTest = boolean);\n };\n\n this.setOpaqueSort = function (method) {\n _opaqueSort = method;\n };\n\n this.setTransparentSort = function (method) {\n _transparentSort = method;\n }; // Clearing\n\n\n this.getClearColor = function (target) {\n return target.copy(background.getClearColor());\n };\n\n this.setClearColor = function () {\n background.setClearColor.apply(background, arguments);\n };\n\n this.getClearAlpha = function () {\n return background.getClearAlpha();\n };\n\n this.setClearAlpha = function () {\n background.setClearAlpha.apply(background, arguments);\n };\n\n this.clear = function () {\n var color = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var stencil = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var bits = 0;\n if (color) bits |= _gl.COLOR_BUFFER_BIT;\n if (depth) bits |= _gl.DEPTH_BUFFER_BIT;\n if (stencil) bits |= _gl.STENCIL_BUFFER_BIT;\n\n _gl.clear(bits);\n };\n\n this.clearColor = function () {\n this.clear(true, false, false);\n };\n\n this.clearDepth = function () {\n this.clear(false, true, false);\n };\n\n this.clearStencil = function () {\n this.clear(false, false, true);\n }; //\n\n\n this.dispose = function () {\n canvas.removeEventListener('webglcontextlost', onContextLost, false);\n canvas.removeEventListener('webglcontextrestored', onContextRestore, false);\n canvas.removeEventListener('webglcontextcreationerror', onContextCreationError, false);\n renderLists.dispose();\n renderStates.dispose();\n properties.dispose();\n cubemaps.dispose();\n cubeuvmaps.dispose();\n objects.dispose();\n bindingStates.dispose();\n uniformsGroups.dispose();\n programCache.dispose();\n xr.dispose();\n xr.removeEventListener('sessionstart', onXRSessionStart);\n xr.removeEventListener('sessionend', onXRSessionEnd);\n\n if (_transmissionRenderTarget) {\n _transmissionRenderTarget.dispose();\n\n _transmissionRenderTarget = null;\n }\n\n animation.stop();\n }; // Events\n\n\n function onContextLost(event) {\n event.preventDefault();\n console.log('THREE.WebGLRenderer: Context Lost.');\n _isContextLost = true;\n }\n\n function\n /* event */\n onContextRestore() {\n console.log('THREE.WebGLRenderer: Context Restored.');\n _isContextLost = false;\n var infoAutoReset = info.autoReset;\n var shadowMapEnabled = shadowMap.enabled;\n var shadowMapAutoUpdate = shadowMap.autoUpdate;\n var shadowMapNeedsUpdate = shadowMap.needsUpdate;\n var shadowMapType = shadowMap.type;\n initGLContext();\n info.autoReset = infoAutoReset;\n shadowMap.enabled = shadowMapEnabled;\n shadowMap.autoUpdate = shadowMapAutoUpdate;\n shadowMap.needsUpdate = shadowMapNeedsUpdate;\n shadowMap.type = shadowMapType;\n }\n\n function onContextCreationError(event) {\n console.error('THREE.WebGLRenderer: A WebGL context could not be created. Reason: ', event.statusMessage);\n }\n\n function onMaterialDispose(event) {\n var material = event.target;\n material.removeEventListener('dispose', onMaterialDispose);\n deallocateMaterial(material);\n } // Buffer deallocation\n\n\n function deallocateMaterial(material) {\n releaseMaterialProgramReferences(material);\n properties.remove(material);\n }\n\n function releaseMaterialProgramReferences(material) {\n var programs = properties.get(material).programs;\n\n if (programs !== undefined) {\n programs.forEach(function (program) {\n programCache.releaseProgram(program);\n });\n\n if (material.isShaderMaterial) {\n programCache.releaseShaderCache(material);\n }\n }\n } // Buffer rendering\n\n\n this.renderBufferDirect = function (camera, scene, geometry, material, object, group) {\n if (scene === null) scene = _emptyScene; // renderBufferDirect second parameter used to be fog (could be null)\n\n var frontFaceCW = object.isMesh && object.matrixWorld.determinant() < 0;\n var program = setProgram(camera, scene, geometry, material, object);\n state.setMaterial(material, frontFaceCW); //\n\n var index = geometry.index;\n var rangeFactor = 1;\n\n if (material.wireframe === true) {\n index = geometries.getWireframeAttribute(geometry);\n rangeFactor = 2;\n } //\n\n\n var drawRange = geometry.drawRange;\n var position = geometry.attributes.position;\n var drawStart = drawRange.start * rangeFactor;\n var drawEnd = (drawRange.start + drawRange.count) * rangeFactor;\n\n if (group !== null) {\n drawStart = Math.max(drawStart, group.start * rangeFactor);\n drawEnd = Math.min(drawEnd, (group.start + group.count) * rangeFactor);\n }\n\n if (index !== null) {\n drawStart = Math.max(drawStart, 0);\n drawEnd = Math.min(drawEnd, index.count);\n } else if (position !== undefined && position !== null) {\n drawStart = Math.max(drawStart, 0);\n drawEnd = Math.min(drawEnd, position.count);\n }\n\n var drawCount = drawEnd - drawStart;\n if (drawCount < 0 || drawCount === Infinity) return; //\n\n bindingStates.setup(object, material, program, geometry, index);\n var attribute;\n var renderer = bufferRenderer;\n\n if (index !== null) {\n attribute = attributes.get(index);\n renderer = indexedBufferRenderer;\n renderer.setIndex(attribute);\n } //\n\n\n if (object.isMesh) {\n if (material.wireframe === true) {\n state.setLineWidth(material.wireframeLinewidth * getTargetPixelRatio());\n renderer.setMode(_gl.LINES);\n } else {\n renderer.setMode(_gl.TRIANGLES);\n }\n } else if (object.isLine) {\n var lineWidth = material.linewidth;\n if (lineWidth === undefined) lineWidth = 1; // Not using Line*Material\n\n state.setLineWidth(lineWidth * getTargetPixelRatio());\n\n if (object.isLineSegments) {\n renderer.setMode(_gl.LINES);\n } else if (object.isLineLoop) {\n renderer.setMode(_gl.LINE_LOOP);\n } else {\n renderer.setMode(_gl.LINE_STRIP);\n }\n } else if (object.isPoints) {\n renderer.setMode(_gl.POINTS);\n } else if (object.isSprite) {\n renderer.setMode(_gl.TRIANGLES);\n }\n\n if (object.isInstancedMesh) {\n renderer.renderInstances(drawStart, drawCount, object.count);\n } else if (geometry.isInstancedBufferGeometry) {\n var maxInstanceCount = geometry._maxInstanceCount !== undefined ? geometry._maxInstanceCount : Infinity;\n var instanceCount = Math.min(geometry.instanceCount, maxInstanceCount);\n renderer.renderInstances(drawStart, drawCount, instanceCount);\n } else {\n renderer.render(drawStart, drawCount);\n }\n }; // Compile\n\n\n this.compile = function (scene, camera) {\n function prepare(material, scene, object) {\n if (material.transparent === true && material.side === DoubleSide && material.forceSinglePass === false) {\n material.side = BackSide;\n material.needsUpdate = true;\n getProgram(material, scene, object);\n material.side = FrontSide;\n material.needsUpdate = true;\n getProgram(material, scene, object);\n material.side = DoubleSide;\n } else {\n getProgram(material, scene, object);\n }\n }\n\n currentRenderState = renderStates.get(scene);\n currentRenderState.init();\n renderStateStack.push(currentRenderState);\n scene.traverseVisible(function (object) {\n if (object.isLight && object.layers.test(camera.layers)) {\n currentRenderState.pushLight(object);\n\n if (object.castShadow) {\n currentRenderState.pushShadow(object);\n }\n }\n });\n currentRenderState.setupLights(_this.useLegacyLights);\n scene.traverse(function (object) {\n var material = object.material;\n\n if (material) {\n if (Array.isArray(material)) {\n for (var i = 0; i < material.length; i++) {\n var material2 = material[i];\n prepare(material2, scene, object);\n }\n } else {\n prepare(material, scene, object);\n }\n }\n });\n renderStateStack.pop();\n currentRenderState = null;\n }; // Animation Loop\n\n\n var onAnimationFrameCallback = null;\n\n function onAnimationFrame(time) {\n if (onAnimationFrameCallback) onAnimationFrameCallback(time);\n }\n\n function onXRSessionStart() {\n animation.stop();\n }\n\n function onXRSessionEnd() {\n animation.start();\n }\n\n var animation = new WebGLAnimation();\n animation.setAnimationLoop(onAnimationFrame);\n if (typeof self !== 'undefined') animation.setContext(self);\n\n this.setAnimationLoop = function (callback) {\n onAnimationFrameCallback = callback;\n xr.setAnimationLoop(callback);\n callback === null ? animation.stop() : animation.start();\n };\n\n xr.addEventListener('sessionstart', onXRSessionStart);\n xr.addEventListener('sessionend', onXRSessionEnd); // Rendering\n\n this.render = function (scene, camera) {\n if (camera !== undefined && camera.isCamera !== true) {\n console.error('THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.');\n return;\n }\n\n if (_isContextLost === true) return; // update scene graph\n\n if (scene.matrixWorldAutoUpdate === true) scene.updateMatrixWorld(); // update camera matrices and frustum\n\n if (camera.parent === null && camera.matrixWorldAutoUpdate === true) camera.updateMatrixWorld();\n\n if (xr.enabled === true && xr.isPresenting === true) {\n if (xr.cameraAutoUpdate === true) xr.updateCamera(camera);\n camera = xr.getCamera(); // use XR camera for rendering\n } //\n\n\n if (scene.isScene === true) scene.onBeforeRender(_this, scene, camera, _currentRenderTarget);\n currentRenderState = renderStates.get(scene, renderStateStack.length);\n currentRenderState.init();\n renderStateStack.push(currentRenderState);\n\n _projScreenMatrix.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse);\n\n _frustum.setFromProjectionMatrix(_projScreenMatrix);\n\n _localClippingEnabled = this.localClippingEnabled;\n _clippingEnabled = clipping.init(this.clippingPlanes, _localClippingEnabled);\n currentRenderList = renderLists.get(scene, renderListStack.length);\n currentRenderList.init();\n renderListStack.push(currentRenderList);\n projectObject(scene, camera, 0, _this.sortObjects);\n currentRenderList.finish();\n\n if (_this.sortObjects === true) {\n currentRenderList.sort(_opaqueSort, _transparentSort);\n } //\n\n\n if (_clippingEnabled === true) clipping.beginShadows();\n var shadowsArray = currentRenderState.state.shadowsArray;\n shadowMap.render(shadowsArray, scene, camera);\n if (_clippingEnabled === true) clipping.endShadows(); //\n\n if (this.info.autoReset === true) this.info.reset(); //\n\n background.render(currentRenderList, scene); // render scene\n\n currentRenderState.setupLights(_this.useLegacyLights);\n\n if (camera.isArrayCamera) {\n var cameras = camera.cameras;\n\n for (var i = 0, l = cameras.length; i < l; i++) {\n var camera2 = cameras[i];\n renderScene(currentRenderList, scene, camera2, camera2.viewport);\n }\n } else {\n renderScene(currentRenderList, scene, camera);\n } //\n\n\n if (_currentRenderTarget !== null) {\n // resolve multisample renderbuffers to a single-sample texture if necessary\n textures.updateMultisampleRenderTarget(_currentRenderTarget); // Generate mipmap if we're using any kind of mipmap filtering\n\n textures.updateRenderTargetMipmap(_currentRenderTarget);\n } //\n\n\n if (scene.isScene === true) scene.onAfterRender(_this, scene, camera); // _gl.finish();\n\n bindingStates.resetDefaultState();\n _currentMaterialId = -1;\n _currentCamera = null;\n renderStateStack.pop();\n\n if (renderStateStack.length > 0) {\n currentRenderState = renderStateStack[renderStateStack.length - 1];\n } else {\n currentRenderState = null;\n }\n\n renderListStack.pop();\n\n if (renderListStack.length > 0) {\n currentRenderList = renderListStack[renderListStack.length - 1];\n } else {\n currentRenderList = null;\n }\n };\n\n function projectObject(object, camera, groupOrder, sortObjects) {\n if (object.visible === false) return;\n var visible = object.layers.test(camera.layers);\n\n if (visible) {\n if (object.isGroup) {\n groupOrder = object.renderOrder;\n } else if (object.isLOD) {\n if (object.autoUpdate === true) object.update(camera);\n } else if (object.isLight) {\n currentRenderState.pushLight(object);\n\n if (object.castShadow) {\n currentRenderState.pushShadow(object);\n }\n } else if (object.isSprite) {\n if (!object.frustumCulled || _frustum.intersectsSprite(object)) {\n if (sortObjects) {\n _vector3.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix);\n }\n\n var geometry = objects.update(object);\n var material = object.material;\n\n if (material.visible) {\n currentRenderList.push(object, geometry, material, groupOrder, _vector3.z, null);\n }\n }\n } else if (object.isMesh || object.isLine || object.isPoints) {\n if (!object.frustumCulled || _frustum.intersectsObject(object)) {\n if (object.isSkinnedMesh) {\n // update skeleton only once in a frame\n if (object.skeleton.frame !== info.render.frame) {\n object.skeleton.update();\n object.skeleton.frame = info.render.frame;\n }\n }\n\n var _geometry2 = objects.update(object);\n\n var _material = object.material;\n\n if (sortObjects) {\n if (_geometry2.boundingSphere === null) _geometry2.computeBoundingSphere();\n\n _vector3.copy(_geometry2.boundingSphere.center).applyMatrix4(object.matrixWorld).applyMatrix4(_projScreenMatrix);\n }\n\n if (Array.isArray(_material)) {\n var groups = _geometry2.groups;\n\n for (var i = 0, l = groups.length; i < l; i++) {\n var group = groups[i];\n var groupMaterial = _material[group.materialIndex];\n\n if (groupMaterial && groupMaterial.visible) {\n currentRenderList.push(object, _geometry2, groupMaterial, groupOrder, _vector3.z, group);\n }\n }\n } else if (_material.visible) {\n currentRenderList.push(object, _geometry2, _material, groupOrder, _vector3.z, null);\n }\n }\n }\n }\n\n var children = object.children;\n\n for (var _i58 = 0, _l6 = children.length; _i58 < _l6; _i58++) {\n projectObject(children[_i58], camera, groupOrder, sortObjects);\n }\n }\n\n function renderScene(currentRenderList, scene, camera, viewport) {\n var opaqueObjects = currentRenderList.opaque;\n var transmissiveObjects = currentRenderList.transmissive;\n var transparentObjects = currentRenderList.transparent;\n currentRenderState.setupLightsView(camera);\n if (_clippingEnabled === true) clipping.setGlobalState(_this.clippingPlanes, camera);\n if (transmissiveObjects.length > 0) renderTransmissionPass(opaqueObjects, transmissiveObjects, scene, camera);\n if (viewport) state.viewport(_currentViewport.copy(viewport));\n if (opaqueObjects.length > 0) renderObjects(opaqueObjects, scene, camera);\n if (transmissiveObjects.length > 0) renderObjects(transmissiveObjects, scene, camera);\n if (transparentObjects.length > 0) renderObjects(transparentObjects, scene, camera); // Ensure depth buffer writing is enabled so it can be cleared on next render\n\n state.buffers.depth.setTest(true);\n state.buffers.depth.setMask(true);\n state.buffers.color.setMask(true);\n state.setPolygonOffset(false);\n }\n\n function renderTransmissionPass(opaqueObjects, transmissiveObjects, scene, camera) {\n if (_transmissionRenderTarget === null) {\n var isWebGL2 = capabilities.isWebGL2;\n _transmissionRenderTarget = new WebGLRenderTarget(1024, 1024, {\n generateMipmaps: true,\n type: extensions.has('EXT_color_buffer_half_float') ? HalfFloatType : UnsignedByteType,\n minFilter: LinearMipmapLinearFilter,\n samples: isWebGL2 && antialias === true ? 4 : 0\n }); // debug\n\n /*\n const geometry = new PlaneGeometry();\n const material = new MeshBasicMaterial( { map: _transmissionRenderTarget.texture } );\n \tconst mesh = new Mesh( geometry, material );\n scene.add( mesh );\n */\n } //\n\n\n var currentRenderTarget = _this.getRenderTarget();\n\n _this.setRenderTarget(_transmissionRenderTarget);\n\n _this.clear(); // Turn off the features which can affect the frag color for opaque objects pass.\n // Otherwise they are applied twice in opaque objects pass and transmission objects pass.\n\n\n var currentToneMapping = _this.toneMapping;\n _this.toneMapping = NoToneMapping;\n renderObjects(opaqueObjects, scene, camera);\n textures.updateMultisampleRenderTarget(_transmissionRenderTarget);\n textures.updateRenderTargetMipmap(_transmissionRenderTarget);\n var renderTargetNeedsUpdate = false;\n\n for (var i = 0, l = transmissiveObjects.length; i < l; i++) {\n var renderItem = transmissiveObjects[i];\n var object = renderItem.object;\n var geometry = renderItem.geometry;\n var material = renderItem.material;\n var group = renderItem.group;\n\n if (material.side === DoubleSide && object.layers.test(camera.layers)) {\n var currentSide = material.side;\n material.side = BackSide;\n material.needsUpdate = true;\n renderObject(object, scene, camera, geometry, material, group);\n material.side = currentSide;\n material.needsUpdate = true;\n renderTargetNeedsUpdate = true;\n }\n }\n\n if (renderTargetNeedsUpdate === true) {\n textures.updateMultisampleRenderTarget(_transmissionRenderTarget);\n textures.updateRenderTargetMipmap(_transmissionRenderTarget);\n }\n\n _this.setRenderTarget(currentRenderTarget);\n\n _this.toneMapping = currentToneMapping;\n }\n\n function renderObjects(renderList, scene, camera) {\n var overrideMaterial = scene.isScene === true ? scene.overrideMaterial : null;\n\n for (var i = 0, l = renderList.length; i < l; i++) {\n var renderItem = renderList[i];\n var object = renderItem.object;\n var geometry = renderItem.geometry;\n var material = overrideMaterial === null ? renderItem.material : overrideMaterial;\n var group = renderItem.group;\n\n if (object.layers.test(camera.layers)) {\n renderObject(object, scene, camera, geometry, material, group);\n }\n }\n }\n\n function renderObject(object, scene, camera, geometry, material, group) {\n object.onBeforeRender(_this, scene, camera, geometry, material, group);\n object.modelViewMatrix.multiplyMatrices(camera.matrixWorldInverse, object.matrixWorld);\n object.normalMatrix.getNormalMatrix(object.modelViewMatrix);\n material.onBeforeRender(_this, scene, camera, geometry, object, group);\n\n if (material.transparent === true && material.side === DoubleSide && material.forceSinglePass === false) {\n material.side = BackSide;\n material.needsUpdate = true;\n\n _this.renderBufferDirect(camera, scene, geometry, material, object, group);\n\n material.side = FrontSide;\n material.needsUpdate = true;\n\n _this.renderBufferDirect(camera, scene, geometry, material, object, group);\n\n material.side = DoubleSide;\n } else {\n _this.renderBufferDirect(camera, scene, geometry, material, object, group);\n }\n\n object.onAfterRender(_this, scene, camera, geometry, material, group);\n }\n\n function getProgram(material, scene, object) {\n if (scene.isScene !== true) scene = _emptyScene; // scene could be a Mesh, Line, Points, ...\n\n var materialProperties = properties.get(material);\n var lights = currentRenderState.state.lights;\n var shadowsArray = currentRenderState.state.shadowsArray;\n var lightsStateVersion = lights.state.version;\n var parameters = programCache.getParameters(material, lights.state, shadowsArray, scene, object);\n var programCacheKey = programCache.getProgramCacheKey(parameters);\n var programs = materialProperties.programs; // always update environment and fog - changing these trigger an getProgram call, but it's possible that the program doesn't change\n\n materialProperties.environment = material.isMeshStandardMaterial ? scene.environment : null;\n materialProperties.fog = scene.fog;\n materialProperties.envMap = (material.isMeshStandardMaterial ? cubeuvmaps : cubemaps).get(material.envMap || materialProperties.environment);\n\n if (programs === undefined) {\n // new material\n material.addEventListener('dispose', onMaterialDispose);\n programs = new Map();\n materialProperties.programs = programs;\n }\n\n var program = programs.get(programCacheKey);\n\n if (program !== undefined) {\n // early out if program and light state is identical\n if (materialProperties.currentProgram === program && materialProperties.lightsStateVersion === lightsStateVersion) {\n updateCommonMaterialProperties(material, parameters);\n return program;\n }\n } else {\n parameters.uniforms = programCache.getUniforms(material);\n material.onBuild(object, parameters, _this);\n material.onBeforeCompile(parameters, _this);\n program = programCache.acquireProgram(parameters, programCacheKey);\n programs.set(programCacheKey, program);\n materialProperties.uniforms = parameters.uniforms;\n }\n\n var uniforms = materialProperties.uniforms;\n\n if (!material.isShaderMaterial && !material.isRawShaderMaterial || material.clipping === true) {\n uniforms.clippingPlanes = clipping.uniform;\n }\n\n updateCommonMaterialProperties(material, parameters); // store the light setup it was created for\n\n materialProperties.needsLights = materialNeedsLights(material);\n materialProperties.lightsStateVersion = lightsStateVersion;\n\n if (materialProperties.needsLights) {\n // wire up the material to this renderer's lighting state\n uniforms.ambientLightColor.value = lights.state.ambient;\n uniforms.lightProbe.value = lights.state.probe;\n uniforms.directionalLights.value = lights.state.directional;\n uniforms.directionalLightShadows.value = lights.state.directionalShadow;\n uniforms.spotLights.value = lights.state.spot;\n uniforms.spotLightShadows.value = lights.state.spotShadow;\n uniforms.rectAreaLights.value = lights.state.rectArea;\n uniforms.ltc_1.value = lights.state.rectAreaLTC1;\n uniforms.ltc_2.value = lights.state.rectAreaLTC2;\n uniforms.pointLights.value = lights.state.point;\n uniforms.pointLightShadows.value = lights.state.pointShadow;\n uniforms.hemisphereLights.value = lights.state.hemi;\n uniforms.directionalShadowMap.value = lights.state.directionalShadowMap;\n uniforms.directionalShadowMatrix.value = lights.state.directionalShadowMatrix;\n uniforms.spotShadowMap.value = lights.state.spotShadowMap;\n uniforms.spotLightMatrix.value = lights.state.spotLightMatrix;\n uniforms.spotLightMap.value = lights.state.spotLightMap;\n uniforms.pointShadowMap.value = lights.state.pointShadowMap;\n uniforms.pointShadowMatrix.value = lights.state.pointShadowMatrix; // TODO (abelnation): add area lights shadow info to uniforms\n }\n\n var progUniforms = program.getUniforms();\n var uniformsList = WebGLUniforms.seqWithValue(progUniforms.seq, uniforms);\n materialProperties.currentProgram = program;\n materialProperties.uniformsList = uniformsList;\n return program;\n }\n\n function updateCommonMaterialProperties(material, parameters) {\n var materialProperties = properties.get(material);\n materialProperties.outputColorSpace = parameters.outputColorSpace;\n materialProperties.instancing = parameters.instancing;\n materialProperties.skinning = parameters.skinning;\n materialProperties.morphTargets = parameters.morphTargets;\n materialProperties.morphNormals = parameters.morphNormals;\n materialProperties.morphColors = parameters.morphColors;\n materialProperties.morphTargetsCount = parameters.morphTargetsCount;\n materialProperties.numClippingPlanes = parameters.numClippingPlanes;\n materialProperties.numIntersection = parameters.numClipIntersection;\n materialProperties.vertexAlphas = parameters.vertexAlphas;\n materialProperties.vertexTangents = parameters.vertexTangents;\n materialProperties.toneMapping = parameters.toneMapping;\n }\n\n function setProgram(camera, scene, geometry, material, object) {\n if (scene.isScene !== true) scene = _emptyScene; // scene could be a Mesh, Line, Points, ...\n\n textures.resetTextureUnits();\n var fog = scene.fog;\n var environment = material.isMeshStandardMaterial ? scene.environment : null;\n var colorSpace = _currentRenderTarget === null ? _this.outputColorSpace : _currentRenderTarget.isXRRenderTarget === true ? _currentRenderTarget.texture.colorSpace : LinearSRGBColorSpace;\n var envMap = (material.isMeshStandardMaterial ? cubeuvmaps : cubemaps).get(material.envMap || environment);\n var vertexAlphas = material.vertexColors === true && !!geometry.attributes.color && geometry.attributes.color.itemSize === 4;\n var vertexTangents = !!material.normalMap && !!geometry.attributes.tangent;\n var morphTargets = !!geometry.morphAttributes.position;\n var morphNormals = !!geometry.morphAttributes.normal;\n var morphColors = !!geometry.morphAttributes.color;\n var toneMapping = material.toneMapped ? _this.toneMapping : NoToneMapping;\n var morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n var morphTargetsCount = morphAttribute !== undefined ? morphAttribute.length : 0;\n var materialProperties = properties.get(material);\n var lights = currentRenderState.state.lights;\n\n if (_clippingEnabled === true) {\n if (_localClippingEnabled === true || camera !== _currentCamera) {\n var useCache = camera === _currentCamera && material.id === _currentMaterialId; // we might want to call this function with some ClippingGroup\n // object instead of the material, once it becomes feasible\n // (#8465, #8379)\n\n clipping.setState(material, camera, useCache);\n }\n } //\n\n\n var needsProgramChange = false;\n\n if (material.version === materialProperties.__version) {\n if (materialProperties.needsLights && materialProperties.lightsStateVersion !== lights.state.version) {\n needsProgramChange = true;\n } else if (materialProperties.outputColorSpace !== colorSpace) {\n needsProgramChange = true;\n } else if (object.isInstancedMesh && materialProperties.instancing === false) {\n needsProgramChange = true;\n } else if (!object.isInstancedMesh && materialProperties.instancing === true) {\n needsProgramChange = true;\n } else if (object.isSkinnedMesh && materialProperties.skinning === false) {\n needsProgramChange = true;\n } else if (!object.isSkinnedMesh && materialProperties.skinning === true) {\n needsProgramChange = true;\n } else if (materialProperties.envMap !== envMap) {\n needsProgramChange = true;\n } else if (material.fog === true && materialProperties.fog !== fog) {\n needsProgramChange = true;\n } else if (materialProperties.numClippingPlanes !== undefined && (materialProperties.numClippingPlanes !== clipping.numPlanes || materialProperties.numIntersection !== clipping.numIntersection)) {\n needsProgramChange = true;\n } else if (materialProperties.vertexAlphas !== vertexAlphas) {\n needsProgramChange = true;\n } else if (materialProperties.vertexTangents !== vertexTangents) {\n needsProgramChange = true;\n } else if (materialProperties.morphTargets !== morphTargets) {\n needsProgramChange = true;\n } else if (materialProperties.morphNormals !== morphNormals) {\n needsProgramChange = true;\n } else if (materialProperties.morphColors !== morphColors) {\n needsProgramChange = true;\n } else if (materialProperties.toneMapping !== toneMapping) {\n needsProgramChange = true;\n } else if (capabilities.isWebGL2 === true && materialProperties.morphTargetsCount !== morphTargetsCount) {\n needsProgramChange = true;\n }\n } else {\n needsProgramChange = true;\n materialProperties.__version = material.version;\n } //\n\n\n var program = materialProperties.currentProgram;\n\n if (needsProgramChange === true) {\n program = getProgram(material, scene, object);\n }\n\n var refreshProgram = false;\n var refreshMaterial = false;\n var refreshLights = false;\n var p_uniforms = program.getUniforms(),\n m_uniforms = materialProperties.uniforms;\n\n if (state.useProgram(program.program)) {\n refreshProgram = true;\n refreshMaterial = true;\n refreshLights = true;\n }\n\n if (material.id !== _currentMaterialId) {\n _currentMaterialId = material.id;\n refreshMaterial = true;\n }\n\n if (refreshProgram || _currentCamera !== camera) {\n p_uniforms.setValue(_gl, 'projectionMatrix', camera.projectionMatrix);\n\n if (capabilities.logarithmicDepthBuffer) {\n p_uniforms.setValue(_gl, 'logDepthBufFC', 2.0 / (Math.log(camera.far + 1.0) / Math.LN2));\n }\n\n if (_currentCamera !== camera) {\n _currentCamera = camera; // lighting uniforms depend on the camera so enforce an update\n // now, in case this material supports lights - or later, when\n // the next material that does gets activated:\n\n refreshMaterial = true; // set to true on material change\n\n refreshLights = true; // remains set until update done\n } // load material specific uniforms\n // (shader material also gets them for the sake of genericity)\n\n\n if (material.isShaderMaterial || material.isMeshPhongMaterial || material.isMeshToonMaterial || material.isMeshStandardMaterial || material.envMap) {\n var uCamPos = p_uniforms.map.cameraPosition;\n\n if (uCamPos !== undefined) {\n uCamPos.setValue(_gl, _vector3.setFromMatrixPosition(camera.matrixWorld));\n }\n }\n\n if (material.isMeshPhongMaterial || material.isMeshToonMaterial || material.isMeshLambertMaterial || material.isMeshBasicMaterial || material.isMeshStandardMaterial || material.isShaderMaterial) {\n p_uniforms.setValue(_gl, 'isOrthographic', camera.isOrthographicCamera === true);\n }\n\n if (material.isMeshPhongMaterial || material.isMeshToonMaterial || material.isMeshLambertMaterial || material.isMeshBasicMaterial || material.isMeshStandardMaterial || material.isShaderMaterial || material.isShadowMaterial || object.isSkinnedMesh) {\n p_uniforms.setValue(_gl, 'viewMatrix', camera.matrixWorldInverse);\n }\n } // skinning and morph target uniforms must be set even if material didn't change\n // auto-setting of texture unit for bone and morph texture must go before other textures\n // otherwise textures used for skinning and morphing can take over texture units reserved for other material textures\n\n\n if (object.isSkinnedMesh) {\n p_uniforms.setOptional(_gl, object, 'bindMatrix');\n p_uniforms.setOptional(_gl, object, 'bindMatrixInverse');\n var skeleton = object.skeleton;\n\n if (skeleton) {\n if (capabilities.floatVertexTextures) {\n if (skeleton.boneTexture === null) skeleton.computeBoneTexture();\n p_uniforms.setValue(_gl, 'boneTexture', skeleton.boneTexture, textures);\n p_uniforms.setValue(_gl, 'boneTextureSize', skeleton.boneTextureSize);\n } else {\n console.warn('THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required.');\n }\n }\n }\n\n var morphAttributes = geometry.morphAttributes;\n\n if (morphAttributes.position !== undefined || morphAttributes.normal !== undefined || morphAttributes.color !== undefined && capabilities.isWebGL2 === true) {\n morphtargets.update(object, geometry, program);\n }\n\n if (refreshMaterial || materialProperties.receiveShadow !== object.receiveShadow) {\n materialProperties.receiveShadow = object.receiveShadow;\n p_uniforms.setValue(_gl, 'receiveShadow', object.receiveShadow);\n } // https://github.com/mrdoob/three.js/pull/24467#issuecomment-1209031512\n\n\n if (material.isMeshGouraudMaterial && material.envMap !== null) {\n m_uniforms.envMap.value = envMap;\n m_uniforms.flipEnvMap.value = envMap.isCubeTexture && envMap.isRenderTargetTexture === false ? -1 : 1;\n }\n\n if (refreshMaterial) {\n p_uniforms.setValue(_gl, 'toneMappingExposure', _this.toneMappingExposure);\n\n if (materialProperties.needsLights) {\n // the current material requires lighting info\n // note: all lighting uniforms are always set correctly\n // they simply reference the renderer's state for their\n // values\n //\n // use the current material's .needsUpdate flags to set\n // the GL state when required\n markUniformsLightsNeedsUpdate(m_uniforms, refreshLights);\n } // refresh uniforms common to several materials\n\n\n if (fog && material.fog === true) {\n materials.refreshFogUniforms(m_uniforms, fog);\n }\n\n materials.refreshMaterialUniforms(m_uniforms, material, _pixelRatio, _height, _transmissionRenderTarget);\n WebGLUniforms.upload(_gl, materialProperties.uniformsList, m_uniforms, textures);\n }\n\n if (material.isShaderMaterial && material.uniformsNeedUpdate === true) {\n WebGLUniforms.upload(_gl, materialProperties.uniformsList, m_uniforms, textures);\n material.uniformsNeedUpdate = false;\n }\n\n if (material.isSpriteMaterial) {\n p_uniforms.setValue(_gl, 'center', object.center);\n } // common matrices\n\n\n p_uniforms.setValue(_gl, 'modelViewMatrix', object.modelViewMatrix);\n p_uniforms.setValue(_gl, 'normalMatrix', object.normalMatrix);\n p_uniforms.setValue(_gl, 'modelMatrix', object.matrixWorld); // UBOs\n\n if (material.isShaderMaterial || material.isRawShaderMaterial) {\n var groups = material.uniformsGroups;\n\n for (var i = 0, l = groups.length; i < l; i++) {\n if (capabilities.isWebGL2) {\n var group = groups[i];\n uniformsGroups.update(group, program);\n uniformsGroups.bind(group, program);\n } else {\n console.warn('THREE.WebGLRenderer: Uniform Buffer Objects can only be used with WebGL 2.');\n }\n }\n }\n\n return program;\n } // If uniforms are marked as clean, they don't need to be loaded to the GPU.\n\n\n function markUniformsLightsNeedsUpdate(uniforms, value) {\n uniforms.ambientLightColor.needsUpdate = value;\n uniforms.lightProbe.needsUpdate = value;\n uniforms.directionalLights.needsUpdate = value;\n uniforms.directionalLightShadows.needsUpdate = value;\n uniforms.pointLights.needsUpdate = value;\n uniforms.pointLightShadows.needsUpdate = value;\n uniforms.spotLights.needsUpdate = value;\n uniforms.spotLightShadows.needsUpdate = value;\n uniforms.rectAreaLights.needsUpdate = value;\n uniforms.hemisphereLights.needsUpdate = value;\n }\n\n function materialNeedsLights(material) {\n return material.isMeshLambertMaterial || material.isMeshToonMaterial || material.isMeshPhongMaterial || material.isMeshStandardMaterial || material.isShadowMaterial || material.isShaderMaterial && material.lights === true;\n }\n\n this.getActiveCubeFace = function () {\n return _currentActiveCubeFace;\n };\n\n this.getActiveMipmapLevel = function () {\n return _currentActiveMipmapLevel;\n };\n\n this.getRenderTarget = function () {\n return _currentRenderTarget;\n };\n\n this.setRenderTargetTextures = function (renderTarget, colorTexture, depthTexture) {\n properties.get(renderTarget.texture).__webglTexture = colorTexture;\n properties.get(renderTarget.depthTexture).__webglTexture = depthTexture;\n var renderTargetProperties = properties.get(renderTarget);\n renderTargetProperties.__hasExternalTextures = true;\n\n if (renderTargetProperties.__hasExternalTextures) {\n renderTargetProperties.__autoAllocateDepthBuffer = depthTexture === undefined;\n\n if (!renderTargetProperties.__autoAllocateDepthBuffer) {\n // The multisample_render_to_texture extension doesn't work properly if there\n // are midframe flushes and an external depth buffer. Disable use of the extension.\n if (extensions.has('WEBGL_multisampled_render_to_texture') === true) {\n console.warn('THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided');\n renderTargetProperties.__useRenderToTexture = false;\n }\n }\n }\n };\n\n this.setRenderTargetFramebuffer = function (renderTarget, defaultFramebuffer) {\n var renderTargetProperties = properties.get(renderTarget);\n renderTargetProperties.__webglFramebuffer = defaultFramebuffer;\n renderTargetProperties.__useDefaultFramebuffer = defaultFramebuffer === undefined;\n };\n\n this.setRenderTarget = function (renderTarget) {\n var activeCubeFace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var activeMipmapLevel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n _currentRenderTarget = renderTarget;\n _currentActiveCubeFace = activeCubeFace;\n _currentActiveMipmapLevel = activeMipmapLevel;\n var useDefaultFramebuffer = true;\n var framebuffer = null;\n var isCube = false;\n var isRenderTarget3D = false;\n\n if (renderTarget) {\n var renderTargetProperties = properties.get(renderTarget);\n\n if (renderTargetProperties.__useDefaultFramebuffer !== undefined) {\n // We need to make sure to rebind the framebuffer.\n state.bindFramebuffer(_gl.FRAMEBUFFER, null);\n useDefaultFramebuffer = false;\n } else if (renderTargetProperties.__webglFramebuffer === undefined) {\n textures.setupRenderTarget(renderTarget);\n } else if (renderTargetProperties.__hasExternalTextures) {\n // Color and depth texture must be rebound in order for the swapchain to update.\n textures.rebindTextures(renderTarget, properties.get(renderTarget.texture).__webglTexture, properties.get(renderTarget.depthTexture).__webglTexture);\n }\n\n var texture = renderTarget.texture;\n\n if (texture.isData3DTexture || texture.isDataArrayTexture || texture.isCompressedArrayTexture) {\n isRenderTarget3D = true;\n }\n\n var __webglFramebuffer = properties.get(renderTarget).__webglFramebuffer;\n\n if (renderTarget.isWebGLCubeRenderTarget) {\n framebuffer = __webglFramebuffer[activeCubeFace];\n isCube = true;\n } else if (capabilities.isWebGL2 && renderTarget.samples > 0 && textures.useMultisampledRTT(renderTarget) === false) {\n framebuffer = properties.get(renderTarget).__webglMultisampledFramebuffer;\n } else {\n framebuffer = __webglFramebuffer;\n }\n\n _currentViewport.copy(renderTarget.viewport);\n\n _currentScissor.copy(renderTarget.scissor);\n\n _currentScissorTest = renderTarget.scissorTest;\n } else {\n _currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).floor();\n\n _currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).floor();\n\n _currentScissorTest = _scissorTest;\n }\n\n var framebufferBound = state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\n\n if (framebufferBound && capabilities.drawBuffers && useDefaultFramebuffer) {\n state.drawBuffers(renderTarget, framebuffer);\n }\n\n state.viewport(_currentViewport);\n state.scissor(_currentScissor);\n state.setScissorTest(_currentScissorTest);\n\n if (isCube) {\n var textureProperties = properties.get(renderTarget.texture);\n\n _gl.framebufferTexture2D(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + activeCubeFace, textureProperties.__webglTexture, activeMipmapLevel);\n } else if (isRenderTarget3D) {\n var _textureProperties = properties.get(renderTarget.texture);\n\n var layer = activeCubeFace || 0;\n\n _gl.framebufferTextureLayer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _textureProperties.__webglTexture, activeMipmapLevel || 0, layer);\n }\n\n _currentMaterialId = -1; // reset current material to ensure correct uniform bindings\n };\n\n this.readRenderTargetPixels = function (renderTarget, x, y, width, height, buffer, activeCubeFaceIndex) {\n if (!(renderTarget && renderTarget.isWebGLRenderTarget)) {\n console.error('THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.');\n return;\n }\n\n var framebuffer = properties.get(renderTarget).__webglFramebuffer;\n\n if (renderTarget.isWebGLCubeRenderTarget && activeCubeFaceIndex !== undefined) {\n framebuffer = framebuffer[activeCubeFaceIndex];\n }\n\n if (framebuffer) {\n state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\n\n try {\n var texture = renderTarget.texture;\n var textureFormat = texture.format;\n var textureType = texture.type;\n\n if (textureFormat !== RGBAFormat && utils.convert(textureFormat) !== _gl.getParameter(_gl.IMPLEMENTATION_COLOR_READ_FORMAT)) {\n console.error('THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.');\n return;\n }\n\n var halfFloatSupportedByExt = textureType === HalfFloatType && (extensions.has('EXT_color_buffer_half_float') || capabilities.isWebGL2 && extensions.has('EXT_color_buffer_float'));\n\n if (textureType !== UnsignedByteType && utils.convert(textureType) !== _gl.getParameter(_gl.IMPLEMENTATION_COLOR_READ_TYPE) && // Edge and Chrome Mac < 52 (#9513)\n !(textureType === FloatType && (capabilities.isWebGL2 || extensions.has('OES_texture_float') || extensions.has('WEBGL_color_buffer_float'))) && // Chrome Mac >= 52 and Firefox\n !halfFloatSupportedByExt) {\n console.error('THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.');\n return;\n } // the following if statement ensures valid read requests (no out-of-bounds pixels, see #8604)\n\n\n if (x >= 0 && x <= renderTarget.width - width && y >= 0 && y <= renderTarget.height - height) {\n _gl.readPixels(x, y, width, height, utils.convert(textureFormat), utils.convert(textureType), buffer);\n }\n } finally {\n // restore framebuffer of current render target if necessary\n var _framebuffer = _currentRenderTarget !== null ? properties.get(_currentRenderTarget).__webglFramebuffer : null;\n\n state.bindFramebuffer(_gl.FRAMEBUFFER, _framebuffer);\n }\n }\n };\n\n this.copyFramebufferToTexture = function (position, texture) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var levelScale = Math.pow(2, -level);\n var width = Math.floor(texture.image.width * levelScale);\n var height = Math.floor(texture.image.height * levelScale);\n textures.setTexture2D(texture, 0);\n\n _gl.copyTexSubImage2D(_gl.TEXTURE_2D, level, 0, 0, position.x, position.y, width, height);\n\n state.unbindTexture();\n };\n\n this.copyTextureToTexture = function (position, srcTexture, dstTexture) {\n var level = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var width = srcTexture.image.width;\n var height = srcTexture.image.height;\n var glFormat = utils.convert(dstTexture.format);\n var glType = utils.convert(dstTexture.type);\n textures.setTexture2D(dstTexture, 0); // As another texture upload may have changed pixelStorei\n // parameters, make sure they are correct for the dstTexture\n\n _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, dstTexture.flipY);\n\n _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, dstTexture.premultiplyAlpha);\n\n _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, dstTexture.unpackAlignment);\n\n if (srcTexture.isDataTexture) {\n _gl.texSubImage2D(_gl.TEXTURE_2D, level, position.x, position.y, width, height, glFormat, glType, srcTexture.image.data);\n } else {\n if (srcTexture.isCompressedTexture) {\n _gl.compressedTexSubImage2D(_gl.TEXTURE_2D, level, position.x, position.y, srcTexture.mipmaps[0].width, srcTexture.mipmaps[0].height, glFormat, srcTexture.mipmaps[0].data);\n } else {\n _gl.texSubImage2D(_gl.TEXTURE_2D, level, position.x, position.y, glFormat, glType, srcTexture.image);\n }\n } // Generate mipmaps only when copying level 0\n\n\n if (level === 0 && dstTexture.generateMipmaps) _gl.generateMipmap(_gl.TEXTURE_2D);\n state.unbindTexture();\n };\n\n this.copyTextureToTexture3D = function (sourceBox, position, srcTexture, dstTexture) {\n var level = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n\n if (_this.isWebGL1Renderer) {\n console.warn('THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.');\n return;\n }\n\n var width = sourceBox.max.x - sourceBox.min.x + 1;\n var height = sourceBox.max.y - sourceBox.min.y + 1;\n var depth = sourceBox.max.z - sourceBox.min.z + 1;\n var glFormat = utils.convert(dstTexture.format);\n var glType = utils.convert(dstTexture.type);\n var glTarget;\n\n if (dstTexture.isData3DTexture) {\n textures.setTexture3D(dstTexture, 0);\n glTarget = _gl.TEXTURE_3D;\n } else if (dstTexture.isDataArrayTexture) {\n textures.setTexture2DArray(dstTexture, 0);\n glTarget = _gl.TEXTURE_2D_ARRAY;\n } else {\n console.warn('THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.');\n return;\n }\n\n _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, dstTexture.flipY);\n\n _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, dstTexture.premultiplyAlpha);\n\n _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, dstTexture.unpackAlignment);\n\n var unpackRowLen = _gl.getParameter(_gl.UNPACK_ROW_LENGTH);\n\n var unpackImageHeight = _gl.getParameter(_gl.UNPACK_IMAGE_HEIGHT);\n\n var unpackSkipPixels = _gl.getParameter(_gl.UNPACK_SKIP_PIXELS);\n\n var unpackSkipRows = _gl.getParameter(_gl.UNPACK_SKIP_ROWS);\n\n var unpackSkipImages = _gl.getParameter(_gl.UNPACK_SKIP_IMAGES);\n\n var image = srcTexture.isCompressedTexture ? srcTexture.mipmaps[0] : srcTexture.image;\n\n _gl.pixelStorei(_gl.UNPACK_ROW_LENGTH, image.width);\n\n _gl.pixelStorei(_gl.UNPACK_IMAGE_HEIGHT, image.height);\n\n _gl.pixelStorei(_gl.UNPACK_SKIP_PIXELS, sourceBox.min.x);\n\n _gl.pixelStorei(_gl.UNPACK_SKIP_ROWS, sourceBox.min.y);\n\n _gl.pixelStorei(_gl.UNPACK_SKIP_IMAGES, sourceBox.min.z);\n\n if (srcTexture.isDataTexture || srcTexture.isData3DTexture) {\n _gl.texSubImage3D(glTarget, level, position.x, position.y, position.z, width, height, depth, glFormat, glType, image.data);\n } else {\n if (srcTexture.isCompressedArrayTexture) {\n console.warn('THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture.');\n\n _gl.compressedTexSubImage3D(glTarget, level, position.x, position.y, position.z, width, height, depth, glFormat, image.data);\n } else {\n _gl.texSubImage3D(glTarget, level, position.x, position.y, position.z, width, height, depth, glFormat, glType, image);\n }\n }\n\n _gl.pixelStorei(_gl.UNPACK_ROW_LENGTH, unpackRowLen);\n\n _gl.pixelStorei(_gl.UNPACK_IMAGE_HEIGHT, unpackImageHeight);\n\n _gl.pixelStorei(_gl.UNPACK_SKIP_PIXELS, unpackSkipPixels);\n\n _gl.pixelStorei(_gl.UNPACK_SKIP_ROWS, unpackSkipRows);\n\n _gl.pixelStorei(_gl.UNPACK_SKIP_IMAGES, unpackSkipImages); // Generate mipmaps only when copying level 0\n\n\n if (level === 0 && dstTexture.generateMipmaps) _gl.generateMipmap(glTarget);\n state.unbindTexture();\n };\n\n this.initTexture = function (texture) {\n if (texture.isCubeTexture) {\n textures.setTextureCube(texture, 0);\n } else if (texture.isData3DTexture) {\n textures.setTexture3D(texture, 0);\n } else if (texture.isDataArrayTexture || texture.isCompressedArrayTexture) {\n textures.setTexture2DArray(texture, 0);\n } else {\n textures.setTexture2D(texture, 0);\n }\n\n state.unbindTexture();\n };\n\n this.resetState = function () {\n _currentActiveCubeFace = 0;\n _currentActiveMipmapLevel = 0;\n _currentRenderTarget = null;\n state.reset();\n bindingStates.reset();\n };\n\n if (typeof __THREE_DEVTOOLS__ !== 'undefined') {\n __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent('observe', {\n detail: this\n }));\n }\n }\n\n _createClass(WebGLRenderer, [{\n key: \"physicallyCorrectLights\",\n get: function get() {\n // @deprecated, r150\n console.warn('THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead.');\n return !this.useLegacyLights;\n },\n set: function set(value) {\n // @deprecated, r150\n console.warn('THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead.');\n this.useLegacyLights = !value;\n }\n }, {\n key: \"outputEncoding\",\n get: function get() {\n // @deprecated, r152\n console.warn('THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead.');\n return this.outputColorSpace === SRGBColorSpace ? sRGBEncoding : LinearEncoding;\n },\n set: function set(encoding) {\n // @deprecated, r152\n console.warn('THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead.');\n this.outputColorSpace = encoding === sRGBEncoding ? SRGBColorSpace : LinearSRGBColorSpace;\n }\n }]);\n\n return WebGLRenderer;\n}();\n\nvar WebGL1Renderer = /*#__PURE__*/function (_WebGLRenderer) {\n _inherits(WebGL1Renderer, _WebGLRenderer);\n\n var _super38 = _createSuper(WebGL1Renderer);\n\n function WebGL1Renderer() {\n _classCallCheck(this, WebGL1Renderer);\n\n return _super38.apply(this, arguments);\n }\n\n return _createClass(WebGL1Renderer);\n}(WebGLRenderer);\n\nWebGL1Renderer.prototype.isWebGL1Renderer = true;\n\nvar FogExp2 = /*#__PURE__*/function () {\n function FogExp2(color) {\n var density = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.00025;\n\n _classCallCheck(this, FogExp2);\n\n this.isFogExp2 = true;\n this.name = '';\n this.color = new Color(color);\n this.density = density;\n }\n\n _createClass(FogExp2, [{\n key: \"clone\",\n value: function clone() {\n return new FogExp2(this.color, this.density);\n }\n }, {\n key: \"toJSON\",\n value: function\n /* meta */\n toJSON() {\n return {\n type: 'FogExp2',\n color: this.color.getHex(),\n density: this.density\n };\n }\n }]);\n\n return FogExp2;\n}();\n\nvar Fog = /*#__PURE__*/function () {\n function Fog(color) {\n var near = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var far = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000;\n\n _classCallCheck(this, Fog);\n\n this.isFog = true;\n this.name = '';\n this.color = new Color(color);\n this.near = near;\n this.far = far;\n }\n\n _createClass(Fog, [{\n key: \"clone\",\n value: function clone() {\n return new Fog(this.color, this.near, this.far);\n }\n }, {\n key: \"toJSON\",\n value: function\n /* meta */\n toJSON() {\n return {\n type: 'Fog',\n color: this.color.getHex(),\n near: this.near,\n far: this.far\n };\n }\n }]);\n\n return Fog;\n}();\n\nvar Scene = /*#__PURE__*/function (_Object3D5) {\n _inherits(Scene, _Object3D5);\n\n var _super39 = _createSuper(Scene);\n\n function Scene() {\n var _this30;\n\n _classCallCheck(this, Scene);\n\n _this30 = _super39.call(this);\n _this30.isScene = true;\n _this30.type = 'Scene';\n _this30.background = null;\n _this30.environment = null;\n _this30.fog = null;\n _this30.backgroundBlurriness = 0;\n _this30.backgroundIntensity = 1;\n _this30.overrideMaterial = null;\n\n if (typeof __THREE_DEVTOOLS__ !== 'undefined') {\n __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent('observe', {\n detail: _assertThisInitialized(_this30)\n }));\n }\n\n return _this30;\n }\n\n _createClass(Scene, [{\n key: \"copy\",\n value: function copy(source, recursive) {\n _get(_getPrototypeOf(Scene.prototype), \"copy\", this).call(this, source, recursive);\n\n if (source.background !== null) this.background = source.background.clone();\n if (source.environment !== null) this.environment = source.environment.clone();\n if (source.fog !== null) this.fog = source.fog.clone();\n this.backgroundBlurriness = source.backgroundBlurriness;\n this.backgroundIntensity = source.backgroundIntensity;\n if (source.overrideMaterial !== null) this.overrideMaterial = source.overrideMaterial.clone();\n this.matrixAutoUpdate = source.matrixAutoUpdate;\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON(meta) {\n var data = _get(_getPrototypeOf(Scene.prototype), \"toJSON\", this).call(this, meta);\n\n if (this.fog !== null) data.object.fog = this.fog.toJSON();\n if (this.backgroundBlurriness > 0) data.object.backgroundBlurriness = this.backgroundBlurriness;\n if (this.backgroundIntensity !== 1) data.object.backgroundIntensity = this.backgroundIntensity;\n return data;\n }\n }, {\n key: \"autoUpdate\",\n get: function get() {\n // @deprecated, r144\n console.warn('THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144.');\n return this.matrixWorldAutoUpdate;\n },\n set: function set(value) {\n // @deprecated, r144\n console.warn('THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144.');\n this.matrixWorldAutoUpdate = value;\n }\n }]);\n\n return Scene;\n}(Object3D);\n\nvar InterleavedBuffer = /*#__PURE__*/function () {\n function InterleavedBuffer(array, stride) {\n _classCallCheck(this, InterleavedBuffer);\n\n this.isInterleavedBuffer = true;\n this.array = array;\n this.stride = stride;\n this.count = array !== undefined ? array.length / stride : 0;\n this.usage = StaticDrawUsage;\n this.updateRange = {\n offset: 0,\n count: -1\n };\n this.version = 0;\n this.uuid = generateUUID();\n }\n\n _createClass(InterleavedBuffer, [{\n key: \"onUploadCallback\",\n value: function onUploadCallback() {}\n }, {\n key: \"needsUpdate\",\n set: function set(value) {\n if (value === true) this.version++;\n }\n }, {\n key: \"setUsage\",\n value: function setUsage(value) {\n this.usage = value;\n return this;\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n this.array = new source.array.constructor(source.array);\n this.count = source.count;\n this.stride = source.stride;\n this.usage = source.usage;\n return this;\n }\n }, {\n key: \"copyAt\",\n value: function copyAt(index1, attribute, index2) {\n index1 *= this.stride;\n index2 *= attribute.stride;\n\n for (var i = 0, l = this.stride; i < l; i++) {\n this.array[index1 + i] = attribute.array[index2 + i];\n }\n\n return this;\n }\n }, {\n key: \"set\",\n value: function set(value) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n this.array.set(value, offset);\n return this;\n }\n }, {\n key: \"clone\",\n value: function clone(data) {\n if (data.arrayBuffers === undefined) {\n data.arrayBuffers = {};\n }\n\n if (this.array.buffer._uuid === undefined) {\n this.array.buffer._uuid = generateUUID();\n }\n\n if (data.arrayBuffers[this.array.buffer._uuid] === undefined) {\n data.arrayBuffers[this.array.buffer._uuid] = this.array.slice(0).buffer;\n }\n\n var array = new this.array.constructor(data.arrayBuffers[this.array.buffer._uuid]);\n var ib = new this.constructor(array, this.stride);\n ib.setUsage(this.usage);\n return ib;\n }\n }, {\n key: \"onUpload\",\n value: function onUpload(callback) {\n this.onUploadCallback = callback;\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON(data) {\n if (data.arrayBuffers === undefined) {\n data.arrayBuffers = {};\n } // generate UUID for array buffer if necessary\n\n\n if (this.array.buffer._uuid === undefined) {\n this.array.buffer._uuid = generateUUID();\n }\n\n if (data.arrayBuffers[this.array.buffer._uuid] === undefined) {\n data.arrayBuffers[this.array.buffer._uuid] = Array.from(new Uint32Array(this.array.buffer));\n } //\n\n\n return {\n uuid: this.uuid,\n buffer: this.array.buffer._uuid,\n type: this.array.constructor.name,\n stride: this.stride\n };\n }\n }]);\n\n return InterleavedBuffer;\n}();\n\nvar _vector$5 = /*@__PURE__*/new Vector3();\n\nvar InterleavedBufferAttribute = /*#__PURE__*/function () {\n function InterleavedBufferAttribute(interleavedBuffer, itemSize, offset) {\n var normalized = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n _classCallCheck(this, InterleavedBufferAttribute);\n\n this.isInterleavedBufferAttribute = true;\n this.name = '';\n this.data = interleavedBuffer;\n this.itemSize = itemSize;\n this.offset = offset;\n this.normalized = normalized;\n }\n\n _createClass(InterleavedBufferAttribute, [{\n key: \"count\",\n get: function get() {\n return this.data.count;\n }\n }, {\n key: \"array\",\n get: function get() {\n return this.data.array;\n }\n }, {\n key: \"needsUpdate\",\n set: function set(value) {\n this.data.needsUpdate = value;\n }\n }, {\n key: \"applyMatrix4\",\n value: function applyMatrix4(m) {\n for (var i = 0, l = this.data.count; i < l; i++) {\n _vector$5.fromBufferAttribute(this, i);\n\n _vector$5.applyMatrix4(m);\n\n this.setXYZ(i, _vector$5.x, _vector$5.y, _vector$5.z);\n }\n\n return this;\n }\n }, {\n key: \"applyNormalMatrix\",\n value: function applyNormalMatrix(m) {\n for (var i = 0, l = this.count; i < l; i++) {\n _vector$5.fromBufferAttribute(this, i);\n\n _vector$5.applyNormalMatrix(m);\n\n this.setXYZ(i, _vector$5.x, _vector$5.y, _vector$5.z);\n }\n\n return this;\n }\n }, {\n key: \"transformDirection\",\n value: function transformDirection(m) {\n for (var i = 0, l = this.count; i < l; i++) {\n _vector$5.fromBufferAttribute(this, i);\n\n _vector$5.transformDirection(m);\n\n this.setXYZ(i, _vector$5.x, _vector$5.y, _vector$5.z);\n }\n\n return this;\n }\n }, {\n key: \"setX\",\n value: function setX(index, x) {\n if (this.normalized) x = normalize(x, this.array);\n this.data.array[index * this.data.stride + this.offset] = x;\n return this;\n }\n }, {\n key: \"setY\",\n value: function setY(index, y) {\n if (this.normalized) y = normalize(y, this.array);\n this.data.array[index * this.data.stride + this.offset + 1] = y;\n return this;\n }\n }, {\n key: \"setZ\",\n value: function setZ(index, z) {\n if (this.normalized) z = normalize(z, this.array);\n this.data.array[index * this.data.stride + this.offset + 2] = z;\n return this;\n }\n }, {\n key: \"setW\",\n value: function setW(index, w) {\n if (this.normalized) w = normalize(w, this.array);\n this.data.array[index * this.data.stride + this.offset + 3] = w;\n return this;\n }\n }, {\n key: \"getX\",\n value: function getX(index) {\n var x = this.data.array[index * this.data.stride + this.offset];\n if (this.normalized) x = denormalize(x, this.array);\n return x;\n }\n }, {\n key: \"getY\",\n value: function getY(index) {\n var y = this.data.array[index * this.data.stride + this.offset + 1];\n if (this.normalized) y = denormalize(y, this.array);\n return y;\n }\n }, {\n key: \"getZ\",\n value: function getZ(index) {\n var z = this.data.array[index * this.data.stride + this.offset + 2];\n if (this.normalized) z = denormalize(z, this.array);\n return z;\n }\n }, {\n key: \"getW\",\n value: function getW(index) {\n var w = this.data.array[index * this.data.stride + this.offset + 3];\n if (this.normalized) w = denormalize(w, this.array);\n return w;\n }\n }, {\n key: \"setXY\",\n value: function setXY(index, x, y) {\n index = index * this.data.stride + this.offset;\n\n if (this.normalized) {\n x = normalize(x, this.array);\n y = normalize(y, this.array);\n }\n\n this.data.array[index + 0] = x;\n this.data.array[index + 1] = y;\n return this;\n }\n }, {\n key: \"setXYZ\",\n value: function setXYZ(index, x, y, z) {\n index = index * this.data.stride + this.offset;\n\n if (this.normalized) {\n x = normalize(x, this.array);\n y = normalize(y, this.array);\n z = normalize(z, this.array);\n }\n\n this.data.array[index + 0] = x;\n this.data.array[index + 1] = y;\n this.data.array[index + 2] = z;\n return this;\n }\n }, {\n key: \"setXYZW\",\n value: function setXYZW(index, x, y, z, w) {\n index = index * this.data.stride + this.offset;\n\n if (this.normalized) {\n x = normalize(x, this.array);\n y = normalize(y, this.array);\n z = normalize(z, this.array);\n w = normalize(w, this.array);\n }\n\n this.data.array[index + 0] = x;\n this.data.array[index + 1] = y;\n this.data.array[index + 2] = z;\n this.data.array[index + 3] = w;\n return this;\n }\n }, {\n key: \"clone\",\n value: function clone(data) {\n if (data === undefined) {\n console.log('THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.');\n var array = [];\n\n for (var i = 0; i < this.count; i++) {\n var index = i * this.data.stride + this.offset;\n\n for (var j = 0; j < this.itemSize; j++) {\n array.push(this.data.array[index + j]);\n }\n }\n\n return new BufferAttribute(new this.array.constructor(array), this.itemSize, this.normalized);\n } else {\n if (data.interleavedBuffers === undefined) {\n data.interleavedBuffers = {};\n }\n\n if (data.interleavedBuffers[this.data.uuid] === undefined) {\n data.interleavedBuffers[this.data.uuid] = this.data.clone(data);\n }\n\n return new InterleavedBufferAttribute(data.interleavedBuffers[this.data.uuid], this.itemSize, this.offset, this.normalized);\n }\n }\n }, {\n key: \"toJSON\",\n value: function toJSON(data) {\n if (data === undefined) {\n console.log('THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.');\n var array = [];\n\n for (var i = 0; i < this.count; i++) {\n var index = i * this.data.stride + this.offset;\n\n for (var j = 0; j < this.itemSize; j++) {\n array.push(this.data.array[index + j]);\n }\n } // de-interleave data and save it as an ordinary buffer attribute for now\n\n\n return {\n itemSize: this.itemSize,\n type: this.array.constructor.name,\n array: array,\n normalized: this.normalized\n };\n } else {\n // save as true interleaved attribute\n if (data.interleavedBuffers === undefined) {\n data.interleavedBuffers = {};\n }\n\n if (data.interleavedBuffers[this.data.uuid] === undefined) {\n data.interleavedBuffers[this.data.uuid] = this.data.toJSON(data);\n }\n\n return {\n isInterleavedBufferAttribute: true,\n itemSize: this.itemSize,\n data: this.data.uuid,\n offset: this.offset,\n normalized: this.normalized\n };\n }\n }\n }]);\n\n return InterleavedBufferAttribute;\n}();\n\nvar SpriteMaterial = /*#__PURE__*/function (_Material5) {\n _inherits(SpriteMaterial, _Material5);\n\n var _super40 = _createSuper(SpriteMaterial);\n\n function SpriteMaterial(parameters) {\n var _this31;\n\n _classCallCheck(this, SpriteMaterial);\n\n _this31 = _super40.call(this);\n _this31.isSpriteMaterial = true;\n _this31.type = 'SpriteMaterial';\n _this31.color = new Color(0xffffff);\n _this31.map = null;\n _this31.alphaMap = null;\n _this31.rotation = 0;\n _this31.sizeAttenuation = true;\n _this31.transparent = true;\n _this31.fog = true;\n\n _this31.setValues(parameters);\n\n return _this31;\n }\n\n _createClass(SpriteMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(SpriteMaterial.prototype), \"copy\", this).call(this, source);\n\n this.color.copy(source.color);\n this.map = source.map;\n this.alphaMap = source.alphaMap;\n this.rotation = source.rotation;\n this.sizeAttenuation = source.sizeAttenuation;\n this.fog = source.fog;\n return this;\n }\n }]);\n\n return SpriteMaterial;\n}(Material);\n\nvar _geometry;\n\nvar _intersectPoint = /*@__PURE__*/new Vector3();\n\nvar _worldScale = /*@__PURE__*/new Vector3();\n\nvar _mvPosition = /*@__PURE__*/new Vector3();\n\nvar _alignedPosition = /*@__PURE__*/new Vector2();\n\nvar _rotatedPosition = /*@__PURE__*/new Vector2();\n\nvar _viewWorldMatrix = /*@__PURE__*/new Matrix4();\n\nvar _vA = /*@__PURE__*/new Vector3();\n\nvar _vB = /*@__PURE__*/new Vector3();\n\nvar _vC = /*@__PURE__*/new Vector3();\n\nvar _uvA = /*@__PURE__*/new Vector2();\n\nvar _uvB = /*@__PURE__*/new Vector2();\n\nvar _uvC = /*@__PURE__*/new Vector2();\n\nvar Sprite = /*#__PURE__*/function (_Object3D6) {\n _inherits(Sprite, _Object3D6);\n\n var _super41 = _createSuper(Sprite);\n\n function Sprite(material) {\n var _this32;\n\n _classCallCheck(this, Sprite);\n\n _this32 = _super41.call(this);\n _this32.isSprite = true;\n _this32.type = 'Sprite';\n\n if (_geometry === undefined) {\n _geometry = new BufferGeometry();\n var float32Array = new Float32Array([-0.5, -0.5, 0, 0, 0, 0.5, -0.5, 0, 1, 0, 0.5, 0.5, 0, 1, 1, -0.5, 0.5, 0, 0, 1]);\n var interleavedBuffer = new InterleavedBuffer(float32Array, 5);\n\n _geometry.setIndex([0, 1, 2, 0, 2, 3]);\n\n _geometry.setAttribute('position', new InterleavedBufferAttribute(interleavedBuffer, 3, 0, false));\n\n _geometry.setAttribute('uv', new InterleavedBufferAttribute(interleavedBuffer, 2, 3, false));\n }\n\n _this32.geometry = _geometry;\n _this32.material = material !== undefined ? material : new SpriteMaterial();\n _this32.center = new Vector2(0.5, 0.5);\n return _this32;\n }\n\n _createClass(Sprite, [{\n key: \"raycast\",\n value: function raycast(raycaster, intersects) {\n if (raycaster.camera === null) {\n console.error('THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.');\n }\n\n _worldScale.setFromMatrixScale(this.matrixWorld);\n\n _viewWorldMatrix.copy(raycaster.camera.matrixWorld);\n\n this.modelViewMatrix.multiplyMatrices(raycaster.camera.matrixWorldInverse, this.matrixWorld);\n\n _mvPosition.setFromMatrixPosition(this.modelViewMatrix);\n\n if (raycaster.camera.isPerspectiveCamera && this.material.sizeAttenuation === false) {\n _worldScale.multiplyScalar(-_mvPosition.z);\n }\n\n var rotation = this.material.rotation;\n var sin, cos;\n\n if (rotation !== 0) {\n cos = Math.cos(rotation);\n sin = Math.sin(rotation);\n }\n\n var center = this.center;\n transformVertex(_vA.set(-0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos);\n transformVertex(_vB.set(0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos);\n transformVertex(_vC.set(0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos);\n\n _uvA.set(0, 0);\n\n _uvB.set(1, 0);\n\n _uvC.set(1, 1); // check first triangle\n\n\n var intersect = raycaster.ray.intersectTriangle(_vA, _vB, _vC, false, _intersectPoint);\n\n if (intersect === null) {\n // check second triangle\n transformVertex(_vB.set(-0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos);\n\n _uvB.set(0, 1);\n\n intersect = raycaster.ray.intersectTriangle(_vA, _vC, _vB, false, _intersectPoint);\n\n if (intersect === null) {\n return;\n }\n }\n\n var distance = raycaster.ray.origin.distanceTo(_intersectPoint);\n if (distance < raycaster.near || distance > raycaster.far) return;\n intersects.push({\n distance: distance,\n point: _intersectPoint.clone(),\n uv: Triangle.getInterpolation(_intersectPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2()),\n face: null,\n object: this\n });\n }\n }, {\n key: \"copy\",\n value: function copy(source, recursive) {\n _get(_getPrototypeOf(Sprite.prototype), \"copy\", this).call(this, source, recursive);\n\n if (source.center !== undefined) this.center.copy(source.center);\n this.material = source.material;\n return this;\n }\n }]);\n\n return Sprite;\n}(Object3D);\n\nfunction transformVertex(vertexPosition, mvPosition, center, scale, sin, cos) {\n // compute position in camera space\n _alignedPosition.subVectors(vertexPosition, center).addScalar(0.5).multiply(scale); // to check if rotation is not zero\n\n\n if (sin !== undefined) {\n _rotatedPosition.x = cos * _alignedPosition.x - sin * _alignedPosition.y;\n _rotatedPosition.y = sin * _alignedPosition.x + cos * _alignedPosition.y;\n } else {\n _rotatedPosition.copy(_alignedPosition);\n }\n\n vertexPosition.copy(mvPosition);\n vertexPosition.x += _rotatedPosition.x;\n vertexPosition.y += _rotatedPosition.y; // transform to world space\n\n vertexPosition.applyMatrix4(_viewWorldMatrix);\n}\n\nvar _v1$2 = /*@__PURE__*/new Vector3();\n\nvar _v2$1 = /*@__PURE__*/new Vector3();\n\nvar LOD = /*#__PURE__*/function (_Object3D7) {\n _inherits(LOD, _Object3D7);\n\n var _super42 = _createSuper(LOD);\n\n function LOD() {\n var _this33;\n\n _classCallCheck(this, LOD);\n\n _this33 = _super42.call(this);\n _this33._currentLevel = 0;\n _this33.type = 'LOD';\n Object.defineProperties(_assertThisInitialized(_this33), {\n levels: {\n enumerable: true,\n value: []\n },\n isLOD: {\n value: true\n }\n });\n _this33.autoUpdate = true;\n return _this33;\n }\n\n _createClass(LOD, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(LOD.prototype), \"copy\", this).call(this, source, false);\n\n var levels = source.levels;\n\n for (var i = 0, l = levels.length; i < l; i++) {\n var level = levels[i];\n this.addLevel(level.object.clone(), level.distance, level.hysteresis);\n }\n\n this.autoUpdate = source.autoUpdate;\n return this;\n }\n }, {\n key: \"addLevel\",\n value: function addLevel(object) {\n var distance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var hysteresis = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n distance = Math.abs(distance);\n var levels = this.levels;\n var l;\n\n for (l = 0; l < levels.length; l++) {\n if (distance < levels[l].distance) {\n break;\n }\n }\n\n levels.splice(l, 0, {\n distance: distance,\n hysteresis: hysteresis,\n object: object\n });\n this.add(object);\n return this;\n }\n }, {\n key: \"getCurrentLevel\",\n value: function getCurrentLevel() {\n return this._currentLevel;\n }\n }, {\n key: \"getObjectForDistance\",\n value: function getObjectForDistance(distance) {\n var levels = this.levels;\n\n if (levels.length > 0) {\n var i, l;\n\n for (i = 1, l = levels.length; i < l; i++) {\n var levelDistance = levels[i].distance;\n\n if (levels[i].object.visible) {\n levelDistance -= levelDistance * levels[i].hysteresis;\n }\n\n if (distance < levelDistance) {\n break;\n }\n }\n\n return levels[i - 1].object;\n }\n\n return null;\n }\n }, {\n key: \"raycast\",\n value: function raycast(raycaster, intersects) {\n var levels = this.levels;\n\n if (levels.length > 0) {\n _v1$2.setFromMatrixPosition(this.matrixWorld);\n\n var distance = raycaster.ray.origin.distanceTo(_v1$2);\n this.getObjectForDistance(distance).raycast(raycaster, intersects);\n }\n }\n }, {\n key: \"update\",\n value: function update(camera) {\n var levels = this.levels;\n\n if (levels.length > 1) {\n _v1$2.setFromMatrixPosition(camera.matrixWorld);\n\n _v2$1.setFromMatrixPosition(this.matrixWorld);\n\n var distance = _v1$2.distanceTo(_v2$1) / camera.zoom;\n levels[0].object.visible = true;\n var i, l;\n\n for (i = 1, l = levels.length; i < l; i++) {\n var levelDistance = levels[i].distance;\n\n if (levels[i].object.visible) {\n levelDistance -= levelDistance * levels[i].hysteresis;\n }\n\n if (distance >= levelDistance) {\n levels[i - 1].object.visible = false;\n levels[i].object.visible = true;\n } else {\n break;\n }\n }\n\n this._currentLevel = i - 1;\n\n for (; i < l; i++) {\n levels[i].object.visible = false;\n }\n }\n }\n }, {\n key: \"toJSON\",\n value: function toJSON(meta) {\n var data = _get(_getPrototypeOf(LOD.prototype), \"toJSON\", this).call(this, meta);\n\n if (this.autoUpdate === false) data.object.autoUpdate = false;\n data.object.levels = [];\n var levels = this.levels;\n\n for (var i = 0, l = levels.length; i < l; i++) {\n var level = levels[i];\n data.object.levels.push({\n object: level.object.uuid,\n distance: level.distance,\n hysteresis: level.hysteresis\n });\n }\n\n return data;\n }\n }]);\n\n return LOD;\n}(Object3D);\n\nvar _basePosition = /*@__PURE__*/new Vector3();\n\nvar _skinIndex = /*@__PURE__*/new Vector4();\n\nvar _skinWeight = /*@__PURE__*/new Vector4();\n\nvar _vector3 = /*@__PURE__*/new Vector3();\n\nvar _matrix4 = /*@__PURE__*/new Matrix4();\n\nvar _vertex = /*@__PURE__*/new Vector3();\n\nvar SkinnedMesh = /*#__PURE__*/function (_Mesh) {\n _inherits(SkinnedMesh, _Mesh);\n\n var _super43 = _createSuper(SkinnedMesh);\n\n function SkinnedMesh(geometry, material) {\n var _this34;\n\n _classCallCheck(this, SkinnedMesh);\n\n _this34 = _super43.call(this, geometry, material);\n _this34.isSkinnedMesh = true;\n _this34.type = 'SkinnedMesh';\n _this34.bindMode = 'attached';\n _this34.bindMatrix = new Matrix4();\n _this34.bindMatrixInverse = new Matrix4();\n _this34.boundingBox = null;\n _this34.boundingSphere = null;\n return _this34;\n }\n\n _createClass(SkinnedMesh, [{\n key: \"computeBoundingBox\",\n value: function computeBoundingBox() {\n var geometry = this.geometry;\n\n if (this.boundingBox === null) {\n this.boundingBox = new Box3();\n }\n\n this.boundingBox.makeEmpty();\n var positionAttribute = geometry.getAttribute('position');\n\n for (var i = 0; i < positionAttribute.count; i++) {\n _vertex.fromBufferAttribute(positionAttribute, i);\n\n this.applyBoneTransform(i, _vertex);\n this.boundingBox.expandByPoint(_vertex);\n }\n }\n }, {\n key: \"computeBoundingSphere\",\n value: function computeBoundingSphere() {\n var geometry = this.geometry;\n\n if (this.boundingSphere === null) {\n this.boundingSphere = new Sphere();\n }\n\n this.boundingSphere.makeEmpty();\n var positionAttribute = geometry.getAttribute('position');\n\n for (var i = 0; i < positionAttribute.count; i++) {\n _vertex.fromBufferAttribute(positionAttribute, i);\n\n this.applyBoneTransform(i, _vertex);\n this.boundingSphere.expandByPoint(_vertex);\n }\n }\n }, {\n key: \"copy\",\n value: function copy(source, recursive) {\n _get(_getPrototypeOf(SkinnedMesh.prototype), \"copy\", this).call(this, source, recursive);\n\n this.bindMode = source.bindMode;\n this.bindMatrix.copy(source.bindMatrix);\n this.bindMatrixInverse.copy(source.bindMatrixInverse);\n this.skeleton = source.skeleton;\n return this;\n } // raycast( raycaster, intersects ) {\n // \tif ( this.boundingSphere === null ) this.computeBoundingSphere();\n // \t_sphere.copy( this.boundingSphere );\n // \t_sphere.applyMatrix4( this.matrixWorld );\n // \tif ( raycaster.ray.intersectsSphere( _sphere ) === false ) return;\n // \tthis._computeIntersections( raycaster, intersects );\n // }\n\n }, {\n key: \"getVertexPosition\",\n value: function getVertexPosition(index, target) {\n _get(_getPrototypeOf(SkinnedMesh.prototype), \"getVertexPosition\", this).call(this, index, target);\n\n this.applyBoneTransform(index, target);\n return target;\n }\n }, {\n key: \"bind\",\n value: function bind(skeleton, bindMatrix) {\n this.skeleton = skeleton;\n\n if (bindMatrix === undefined) {\n this.updateMatrixWorld(true);\n this.skeleton.calculateInverses();\n bindMatrix = this.matrixWorld;\n }\n\n this.bindMatrix.copy(bindMatrix);\n this.bindMatrixInverse.copy(bindMatrix).invert();\n }\n }, {\n key: \"pose\",\n value: function pose() {\n this.skeleton.pose();\n }\n }, {\n key: \"normalizeSkinWeights\",\n value: function normalizeSkinWeights() {\n var vector = new Vector4();\n var skinWeight = this.geometry.attributes.skinWeight;\n\n for (var i = 0, l = skinWeight.count; i < l; i++) {\n vector.fromBufferAttribute(skinWeight, i);\n var scale = 1.0 / vector.manhattanLength();\n\n if (scale !== Infinity) {\n vector.multiplyScalar(scale);\n } else {\n vector.set(1, 0, 0, 0); // do something reasonable\n }\n\n skinWeight.setXYZW(i, vector.x, vector.y, vector.z, vector.w);\n }\n }\n }, {\n key: \"updateMatrixWorld\",\n value: function updateMatrixWorld(force) {\n _get(_getPrototypeOf(SkinnedMesh.prototype), \"updateMatrixWorld\", this).call(this, force);\n\n if (this.bindMode === 'attached') {\n this.bindMatrixInverse.copy(this.matrixWorld).invert();\n } else if (this.bindMode === 'detached') {\n this.bindMatrixInverse.copy(this.bindMatrix).invert();\n } else {\n console.warn('THREE.SkinnedMesh: Unrecognized bindMode: ' + this.bindMode);\n }\n }\n }, {\n key: \"applyBoneTransform\",\n value: function applyBoneTransform(index, vector) {\n var skeleton = this.skeleton;\n var geometry = this.geometry;\n\n _skinIndex.fromBufferAttribute(geometry.attributes.skinIndex, index);\n\n _skinWeight.fromBufferAttribute(geometry.attributes.skinWeight, index);\n\n _basePosition.copy(vector).applyMatrix4(this.bindMatrix);\n\n vector.set(0, 0, 0);\n\n for (var i = 0; i < 4; i++) {\n var weight = _skinWeight.getComponent(i);\n\n if (weight !== 0) {\n var boneIndex = _skinIndex.getComponent(i);\n\n _matrix4.multiplyMatrices(skeleton.bones[boneIndex].matrixWorld, skeleton.boneInverses[boneIndex]);\n\n vector.addScaledVector(_vector3.copy(_basePosition).applyMatrix4(_matrix4), weight);\n }\n }\n\n return vector.applyMatrix4(this.bindMatrixInverse);\n }\n }, {\n key: \"boneTransform\",\n value: function boneTransform(index, vector) {\n // @deprecated, r151\n console.warn('THREE.SkinnedMesh: .boneTransform() was renamed to .applyBoneTransform() in r151.');\n return this.applyBoneTransform(index, vector);\n }\n }]);\n\n return SkinnedMesh;\n}(Mesh);\n\nvar Bone = /*#__PURE__*/function (_Object3D8) {\n _inherits(Bone, _Object3D8);\n\n var _super44 = _createSuper(Bone);\n\n function Bone() {\n var _this35;\n\n _classCallCheck(this, Bone);\n\n _this35 = _super44.call(this);\n _this35.isBone = true;\n _this35.type = 'Bone';\n return _this35;\n }\n\n return _createClass(Bone);\n}(Object3D);\n\nvar DataTexture = /*#__PURE__*/function (_Texture5) {\n _inherits(DataTexture, _Texture5);\n\n var _super45 = _createSuper(DataTexture);\n\n function DataTexture() {\n var _this36;\n\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var width = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var height = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var format = arguments.length > 3 ? arguments[3] : undefined;\n var type = arguments.length > 4 ? arguments[4] : undefined;\n var mapping = arguments.length > 5 ? arguments[5] : undefined;\n var wrapS = arguments.length > 6 ? arguments[6] : undefined;\n var wrapT = arguments.length > 7 ? arguments[7] : undefined;\n var magFilter = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : NearestFilter;\n var minFilter = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : NearestFilter;\n var anisotropy = arguments.length > 10 ? arguments[10] : undefined;\n var colorSpace = arguments.length > 11 ? arguments[11] : undefined;\n\n _classCallCheck(this, DataTexture);\n\n _this36 = _super45.call(this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace);\n _this36.isDataTexture = true;\n _this36.image = {\n data: data,\n width: width,\n height: height\n };\n _this36.generateMipmaps = false;\n _this36.flipY = false;\n _this36.unpackAlignment = 1;\n return _this36;\n }\n\n return _createClass(DataTexture);\n}(Texture);\n\nvar _offsetMatrix = /*@__PURE__*/new Matrix4();\n\nvar _identityMatrix = /*@__PURE__*/new Matrix4();\n\nvar Skeleton = /*#__PURE__*/function () {\n function Skeleton() {\n var bones = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var boneInverses = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n _classCallCheck(this, Skeleton);\n\n this.uuid = generateUUID();\n this.bones = bones.slice(0);\n this.boneInverses = boneInverses;\n this.boneMatrices = null;\n this.boneTexture = null;\n this.boneTextureSize = 0;\n this.frame = -1;\n this.init();\n }\n\n _createClass(Skeleton, [{\n key: \"init\",\n value: function init() {\n var bones = this.bones;\n var boneInverses = this.boneInverses;\n this.boneMatrices = new Float32Array(bones.length * 16); // calculate inverse bone matrices if necessary\n\n if (boneInverses.length === 0) {\n this.calculateInverses();\n } else {\n // handle special case\n if (bones.length !== boneInverses.length) {\n console.warn('THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.');\n this.boneInverses = [];\n\n for (var i = 0, il = this.bones.length; i < il; i++) {\n this.boneInverses.push(new Matrix4());\n }\n }\n }\n }\n }, {\n key: \"calculateInverses\",\n value: function calculateInverses() {\n this.boneInverses.length = 0;\n\n for (var i = 0, il = this.bones.length; i < il; i++) {\n var inverse = new Matrix4();\n\n if (this.bones[i]) {\n inverse.copy(this.bones[i].matrixWorld).invert();\n }\n\n this.boneInverses.push(inverse);\n }\n }\n }, {\n key: \"pose\",\n value: function pose() {\n // recover the bind-time world matrices\n for (var i = 0, il = this.bones.length; i < il; i++) {\n var bone = this.bones[i];\n\n if (bone) {\n bone.matrixWorld.copy(this.boneInverses[i]).invert();\n }\n } // compute the local matrices, positions, rotations and scales\n\n\n for (var _i59 = 0, _il13 = this.bones.length; _i59 < _il13; _i59++) {\n var _bone = this.bones[_i59];\n\n if (_bone) {\n if (_bone.parent && _bone.parent.isBone) {\n _bone.matrix.copy(_bone.parent.matrixWorld).invert();\n\n _bone.matrix.multiply(_bone.matrixWorld);\n } else {\n _bone.matrix.copy(_bone.matrixWorld);\n }\n\n _bone.matrix.decompose(_bone.position, _bone.quaternion, _bone.scale);\n }\n }\n }\n }, {\n key: \"update\",\n value: function update() {\n var bones = this.bones;\n var boneInverses = this.boneInverses;\n var boneMatrices = this.boneMatrices;\n var boneTexture = this.boneTexture; // flatten bone matrices to array\n\n for (var i = 0, il = bones.length; i < il; i++) {\n // compute the offset between the current and the original transform\n var matrix = bones[i] ? bones[i].matrixWorld : _identityMatrix;\n\n _offsetMatrix.multiplyMatrices(matrix, boneInverses[i]);\n\n _offsetMatrix.toArray(boneMatrices, i * 16);\n }\n\n if (boneTexture !== null) {\n boneTexture.needsUpdate = true;\n }\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new Skeleton(this.bones, this.boneInverses);\n }\n }, {\n key: \"computeBoneTexture\",\n value: function computeBoneTexture() {\n // layout (1 matrix = 4 pixels)\n // RGBA RGBA RGBA RGBA (=> column1, column2, column3, column4)\n // with 8x8 pixel texture max 16 bones * 4 pixels = (8 * 8)\n // 16x16 pixel texture max 64 bones * 4 pixels = (16 * 16)\n // 32x32 pixel texture max 256 bones * 4 pixels = (32 * 32)\n // 64x64 pixel texture max 1024 bones * 4 pixels = (64 * 64)\n var size = Math.sqrt(this.bones.length * 4); // 4 pixels needed for 1 matrix\n\n size = ceilPowerOfTwo(size);\n size = Math.max(size, 4);\n var boneMatrices = new Float32Array(size * size * 4); // 4 floats per RGBA pixel\n\n boneMatrices.set(this.boneMatrices); // copy current values\n\n var boneTexture = new DataTexture(boneMatrices, size, size, RGBAFormat, FloatType);\n boneTexture.needsUpdate = true;\n this.boneMatrices = boneMatrices;\n this.boneTexture = boneTexture;\n this.boneTextureSize = size;\n return this;\n }\n }, {\n key: \"getBoneByName\",\n value: function getBoneByName(name) {\n for (var i = 0, il = this.bones.length; i < il; i++) {\n var bone = this.bones[i];\n\n if (bone.name === name) {\n return bone;\n }\n }\n\n return undefined;\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n if (this.boneTexture !== null) {\n this.boneTexture.dispose();\n this.boneTexture = null;\n }\n }\n }, {\n key: \"fromJSON\",\n value: function fromJSON(json, bones) {\n this.uuid = json.uuid;\n\n for (var i = 0, l = json.bones.length; i < l; i++) {\n var uuid = json.bones[i];\n var bone = bones[uuid];\n\n if (bone === undefined) {\n console.warn('THREE.Skeleton: No bone found with UUID:', uuid);\n bone = new Bone();\n }\n\n this.bones.push(bone);\n this.boneInverses.push(new Matrix4().fromArray(json.boneInverses[i]));\n }\n\n this.init();\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var data = {\n metadata: {\n version: 4.5,\n type: 'Skeleton',\n generator: 'Skeleton.toJSON'\n },\n bones: [],\n boneInverses: []\n };\n data.uuid = this.uuid;\n var bones = this.bones;\n var boneInverses = this.boneInverses;\n\n for (var i = 0, l = bones.length; i < l; i++) {\n var bone = bones[i];\n data.bones.push(bone.uuid);\n var boneInverse = boneInverses[i];\n data.boneInverses.push(boneInverse.toArray());\n }\n\n return data;\n }\n }]);\n\n return Skeleton;\n}();\n\nvar InstancedBufferAttribute = /*#__PURE__*/function (_BufferAttribute11) {\n _inherits(InstancedBufferAttribute, _BufferAttribute11);\n\n var _super46 = _createSuper(InstancedBufferAttribute);\n\n function InstancedBufferAttribute(array, itemSize, normalized) {\n var _this37;\n\n var meshPerAttribute = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n\n _classCallCheck(this, InstancedBufferAttribute);\n\n _this37 = _super46.call(this, array, itemSize, normalized);\n _this37.isInstancedBufferAttribute = true;\n _this37.meshPerAttribute = meshPerAttribute;\n return _this37;\n }\n\n _createClass(InstancedBufferAttribute, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(InstancedBufferAttribute.prototype), \"copy\", this).call(this, source);\n\n this.meshPerAttribute = source.meshPerAttribute;\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var data = _get(_getPrototypeOf(InstancedBufferAttribute.prototype), \"toJSON\", this).call(this);\n\n data.meshPerAttribute = this.meshPerAttribute;\n data.isInstancedBufferAttribute = true;\n return data;\n }\n }]);\n\n return InstancedBufferAttribute;\n}(BufferAttribute);\n\nvar _instanceLocalMatrix = /*@__PURE__*/new Matrix4();\n\nvar _instanceWorldMatrix = /*@__PURE__*/new Matrix4();\n\nvar _instanceIntersects = [];\n\nvar _box3 = /*@__PURE__*/new Box3();\n\nvar _identity = /*@__PURE__*/new Matrix4();\n\nvar _mesh = /*@__PURE__*/new Mesh();\n\nvar _sphere$2 = /*@__PURE__*/new Sphere();\n\nvar InstancedMesh = /*#__PURE__*/function (_Mesh2) {\n _inherits(InstancedMesh, _Mesh2);\n\n var _super47 = _createSuper(InstancedMesh);\n\n function InstancedMesh(geometry, material, count) {\n var _this38;\n\n _classCallCheck(this, InstancedMesh);\n\n _this38 = _super47.call(this, geometry, material);\n _this38.isInstancedMesh = true;\n _this38.instanceMatrix = new InstancedBufferAttribute(new Float32Array(count * 16), 16);\n _this38.instanceColor = null;\n _this38.count = count;\n _this38.boundingBox = null;\n _this38.boundingSphere = null;\n\n for (var i = 0; i < count; i++) {\n _this38.setMatrixAt(i, _identity);\n }\n\n return _this38;\n }\n\n _createClass(InstancedMesh, [{\n key: \"computeBoundingBox\",\n value: function computeBoundingBox() {\n var geometry = this.geometry;\n var count = this.count;\n\n if (this.boundingBox === null) {\n this.boundingBox = new Box3();\n }\n\n if (geometry.boundingBox === null) {\n geometry.computeBoundingBox();\n }\n\n this.boundingBox.makeEmpty();\n\n for (var i = 0; i < count; i++) {\n this.getMatrixAt(i, _instanceLocalMatrix);\n\n _box3.copy(geometry.boundingBox).applyMatrix4(_instanceLocalMatrix);\n\n this.boundingBox.union(_box3);\n }\n }\n }, {\n key: \"computeBoundingSphere\",\n value: function computeBoundingSphere() {\n var geometry = this.geometry;\n var count = this.count;\n\n if (this.boundingSphere === null) {\n this.boundingSphere = new Sphere();\n }\n\n if (geometry.boundingSphere === null) {\n geometry.computeBoundingSphere();\n }\n\n this.boundingSphere.makeEmpty();\n\n for (var i = 0; i < count; i++) {\n this.getMatrixAt(i, _instanceLocalMatrix);\n\n _sphere$2.copy(geometry.boundingSphere).applyMatrix4(_instanceLocalMatrix);\n\n this.boundingSphere.union(_sphere$2);\n }\n }\n }, {\n key: \"copy\",\n value: function copy(source, recursive) {\n _get(_getPrototypeOf(InstancedMesh.prototype), \"copy\", this).call(this, source, recursive);\n\n this.instanceMatrix.copy(source.instanceMatrix);\n if (source.instanceColor !== null) this.instanceColor = source.instanceColor.clone();\n this.count = source.count;\n return this;\n }\n }, {\n key: \"getColorAt\",\n value: function getColorAt(index, color) {\n color.fromArray(this.instanceColor.array, index * 3);\n }\n }, {\n key: \"getMatrixAt\",\n value: function getMatrixAt(index, matrix) {\n matrix.fromArray(this.instanceMatrix.array, index * 16);\n }\n }, {\n key: \"raycast\",\n value: function raycast(raycaster, intersects) {\n var matrixWorld = this.matrixWorld;\n var raycastTimes = this.count;\n _mesh.geometry = this.geometry;\n _mesh.material = this.material;\n if (_mesh.material === undefined) return; // test with bounding sphere first\n\n if (this.boundingSphere === null) this.computeBoundingSphere();\n\n _sphere$2.copy(this.boundingSphere);\n\n _sphere$2.applyMatrix4(matrixWorld);\n\n if (raycaster.ray.intersectsSphere(_sphere$2) === false) return; // now test each instance\n\n for (var instanceId = 0; instanceId < raycastTimes; instanceId++) {\n // calculate the world matrix for each instance\n this.getMatrixAt(instanceId, _instanceLocalMatrix);\n\n _instanceWorldMatrix.multiplyMatrices(matrixWorld, _instanceLocalMatrix); // the mesh represents this single instance\n\n\n _mesh.matrixWorld = _instanceWorldMatrix;\n\n _mesh.raycast(raycaster, _instanceIntersects); // process the result of raycast\n\n\n for (var i = 0, l = _instanceIntersects.length; i < l; i++) {\n var intersect = _instanceIntersects[i];\n intersect.instanceId = instanceId;\n intersect.object = this;\n intersects.push(intersect);\n }\n\n _instanceIntersects.length = 0;\n }\n }\n }, {\n key: \"setColorAt\",\n value: function setColorAt(index, color) {\n if (this.instanceColor === null) {\n this.instanceColor = new InstancedBufferAttribute(new Float32Array(this.instanceMatrix.count * 3), 3);\n }\n\n color.toArray(this.instanceColor.array, index * 3);\n }\n }, {\n key: \"setMatrixAt\",\n value: function setMatrixAt(index, matrix) {\n matrix.toArray(this.instanceMatrix.array, index * 16);\n }\n }, {\n key: \"updateMorphTargets\",\n value: function updateMorphTargets() {}\n }, {\n key: \"dispose\",\n value: function dispose() {\n this.dispatchEvent({\n type: 'dispose'\n });\n }\n }]);\n\n return InstancedMesh;\n}(Mesh);\n\nvar LineBasicMaterial = /*#__PURE__*/function (_Material6) {\n _inherits(LineBasicMaterial, _Material6);\n\n var _super48 = _createSuper(LineBasicMaterial);\n\n function LineBasicMaterial(parameters) {\n var _this39;\n\n _classCallCheck(this, LineBasicMaterial);\n\n _this39 = _super48.call(this);\n _this39.isLineBasicMaterial = true;\n _this39.type = 'LineBasicMaterial';\n _this39.color = new Color(0xffffff);\n _this39.map = null;\n _this39.linewidth = 1;\n _this39.linecap = 'round';\n _this39.linejoin = 'round';\n _this39.fog = true;\n\n _this39.setValues(parameters);\n\n return _this39;\n }\n\n _createClass(LineBasicMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(LineBasicMaterial.prototype), \"copy\", this).call(this, source);\n\n this.color.copy(source.color);\n this.map = source.map;\n this.linewidth = source.linewidth;\n this.linecap = source.linecap;\n this.linejoin = source.linejoin;\n this.fog = source.fog;\n return this;\n }\n }]);\n\n return LineBasicMaterial;\n}(Material);\n\nvar _start$1 = /*@__PURE__*/new Vector3();\n\nvar _end$1 = /*@__PURE__*/new Vector3();\n\nvar _inverseMatrix$1 = /*@__PURE__*/new Matrix4();\n\nvar _ray$1 = /*@__PURE__*/new Ray();\n\nvar _sphere$1 = /*@__PURE__*/new Sphere();\n\nvar Line = /*#__PURE__*/function (_Object3D9) {\n _inherits(Line, _Object3D9);\n\n var _super49 = _createSuper(Line);\n\n function Line() {\n var _this40;\n\n var geometry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new BufferGeometry();\n var material = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new LineBasicMaterial();\n\n _classCallCheck(this, Line);\n\n _this40 = _super49.call(this);\n _this40.isLine = true;\n _this40.type = 'Line';\n _this40.geometry = geometry;\n _this40.material = material;\n\n _this40.updateMorphTargets();\n\n return _this40;\n }\n\n _createClass(Line, [{\n key: \"copy\",\n value: function copy(source, recursive) {\n _get(_getPrototypeOf(Line.prototype), \"copy\", this).call(this, source, recursive);\n\n this.material = source.material;\n this.geometry = source.geometry;\n return this;\n }\n }, {\n key: \"computeLineDistances\",\n value: function computeLineDistances() {\n var geometry = this.geometry; // we assume non-indexed geometry\n\n if (geometry.index === null) {\n var positionAttribute = geometry.attributes.position;\n var lineDistances = [0];\n\n for (var i = 1, l = positionAttribute.count; i < l; i++) {\n _start$1.fromBufferAttribute(positionAttribute, i - 1);\n\n _end$1.fromBufferAttribute(positionAttribute, i);\n\n lineDistances[i] = lineDistances[i - 1];\n lineDistances[i] += _start$1.distanceTo(_end$1);\n }\n\n geometry.setAttribute('lineDistance', new Float32BufferAttribute(lineDistances, 1));\n } else {\n console.warn('THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.');\n }\n\n return this;\n }\n }, {\n key: \"raycast\",\n value: function raycast(raycaster, intersects) {\n var geometry = this.geometry;\n var matrixWorld = this.matrixWorld;\n var threshold = raycaster.params.Line.threshold;\n var drawRange = geometry.drawRange; // Checking boundingSphere distance to ray\n\n if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n\n _sphere$1.copy(geometry.boundingSphere);\n\n _sphere$1.applyMatrix4(matrixWorld);\n\n _sphere$1.radius += threshold;\n if (raycaster.ray.intersectsSphere(_sphere$1) === false) return; //\n\n _inverseMatrix$1.copy(matrixWorld).invert();\n\n _ray$1.copy(raycaster.ray).applyMatrix4(_inverseMatrix$1);\n\n var localThreshold = threshold / ((this.scale.x + this.scale.y + this.scale.z) / 3);\n var localThresholdSq = localThreshold * localThreshold;\n var vStart = new Vector3();\n var vEnd = new Vector3();\n var interSegment = new Vector3();\n var interRay = new Vector3();\n var step = this.isLineSegments ? 2 : 1;\n var index = geometry.index;\n var attributes = geometry.attributes;\n var positionAttribute = attributes.position;\n\n if (index !== null) {\n var start = Math.max(0, drawRange.start);\n var end = Math.min(index.count, drawRange.start + drawRange.count);\n\n for (var i = start, l = end - 1; i < l; i += step) {\n var a = index.getX(i);\n var b = index.getX(i + 1);\n vStart.fromBufferAttribute(positionAttribute, a);\n vEnd.fromBufferAttribute(positionAttribute, b);\n\n var distSq = _ray$1.distanceSqToSegment(vStart, vEnd, interRay, interSegment);\n\n if (distSq > localThresholdSq) continue;\n interRay.applyMatrix4(this.matrixWorld); //Move back to world space for distance calculation\n\n var distance = raycaster.ray.origin.distanceTo(interRay);\n if (distance < raycaster.near || distance > raycaster.far) continue;\n intersects.push({\n distance: distance,\n // What do we want? intersection point on the ray or on the segment??\n // point: raycaster.ray.at( distance ),\n point: interSegment.clone().applyMatrix4(this.matrixWorld),\n index: i,\n face: null,\n faceIndex: null,\n object: this\n });\n }\n } else {\n var _start6 = Math.max(0, drawRange.start);\n\n var _end5 = Math.min(positionAttribute.count, drawRange.start + drawRange.count);\n\n for (var _i60 = _start6, _l7 = _end5 - 1; _i60 < _l7; _i60 += step) {\n vStart.fromBufferAttribute(positionAttribute, _i60);\n vEnd.fromBufferAttribute(positionAttribute, _i60 + 1);\n\n var _distSq = _ray$1.distanceSqToSegment(vStart, vEnd, interRay, interSegment);\n\n if (_distSq > localThresholdSq) continue;\n interRay.applyMatrix4(this.matrixWorld); //Move back to world space for distance calculation\n\n var _distance = raycaster.ray.origin.distanceTo(interRay);\n\n if (_distance < raycaster.near || _distance > raycaster.far) continue;\n intersects.push({\n distance: _distance,\n // What do we want? intersection point on the ray or on the segment??\n // point: raycaster.ray.at( distance ),\n point: interSegment.clone().applyMatrix4(this.matrixWorld),\n index: _i60,\n face: null,\n faceIndex: null,\n object: this\n });\n }\n }\n }\n }, {\n key: \"updateMorphTargets\",\n value: function updateMorphTargets() {\n var geometry = this.geometry;\n var morphAttributes = geometry.morphAttributes;\n var keys = Object.keys(morphAttributes);\n\n if (keys.length > 0) {\n var morphAttribute = morphAttributes[keys[0]];\n\n if (morphAttribute !== undefined) {\n this.morphTargetInfluences = [];\n this.morphTargetDictionary = {};\n\n for (var m = 0, ml = morphAttribute.length; m < ml; m++) {\n var name = morphAttribute[m].name || String(m);\n this.morphTargetInfluences.push(0);\n this.morphTargetDictionary[name] = m;\n }\n }\n }\n }\n }]);\n\n return Line;\n}(Object3D);\n\nvar _start = /*@__PURE__*/new Vector3();\n\nvar _end = /*@__PURE__*/new Vector3();\n\nvar LineSegments = /*#__PURE__*/function (_Line) {\n _inherits(LineSegments, _Line);\n\n var _super50 = _createSuper(LineSegments);\n\n function LineSegments(geometry, material) {\n var _this41;\n\n _classCallCheck(this, LineSegments);\n\n _this41 = _super50.call(this, geometry, material);\n _this41.isLineSegments = true;\n _this41.type = 'LineSegments';\n return _this41;\n }\n\n _createClass(LineSegments, [{\n key: \"computeLineDistances\",\n value: function computeLineDistances() {\n var geometry = this.geometry; // we assume non-indexed geometry\n\n if (geometry.index === null) {\n var positionAttribute = geometry.attributes.position;\n var lineDistances = [];\n\n for (var i = 0, l = positionAttribute.count; i < l; i += 2) {\n _start.fromBufferAttribute(positionAttribute, i);\n\n _end.fromBufferAttribute(positionAttribute, i + 1);\n\n lineDistances[i] = i === 0 ? 0 : lineDistances[i - 1];\n lineDistances[i + 1] = lineDistances[i] + _start.distanceTo(_end);\n }\n\n geometry.setAttribute('lineDistance', new Float32BufferAttribute(lineDistances, 1));\n } else {\n console.warn('THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.');\n }\n\n return this;\n }\n }]);\n\n return LineSegments;\n}(Line);\n\nvar LineLoop = /*#__PURE__*/function (_Line2) {\n _inherits(LineLoop, _Line2);\n\n var _super51 = _createSuper(LineLoop);\n\n function LineLoop(geometry, material) {\n var _this42;\n\n _classCallCheck(this, LineLoop);\n\n _this42 = _super51.call(this, geometry, material);\n _this42.isLineLoop = true;\n _this42.type = 'LineLoop';\n return _this42;\n }\n\n return _createClass(LineLoop);\n}(Line);\n\nvar PointsMaterial = /*#__PURE__*/function (_Material7) {\n _inherits(PointsMaterial, _Material7);\n\n var _super52 = _createSuper(PointsMaterial);\n\n function PointsMaterial(parameters) {\n var _this43;\n\n _classCallCheck(this, PointsMaterial);\n\n _this43 = _super52.call(this);\n _this43.isPointsMaterial = true;\n _this43.type = 'PointsMaterial';\n _this43.color = new Color(0xffffff);\n _this43.map = null;\n _this43.alphaMap = null;\n _this43.size = 1;\n _this43.sizeAttenuation = true;\n _this43.fog = true;\n\n _this43.setValues(parameters);\n\n return _this43;\n }\n\n _createClass(PointsMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(PointsMaterial.prototype), \"copy\", this).call(this, source);\n\n this.color.copy(source.color);\n this.map = source.map;\n this.alphaMap = source.alphaMap;\n this.size = source.size;\n this.sizeAttenuation = source.sizeAttenuation;\n this.fog = source.fog;\n return this;\n }\n }]);\n\n return PointsMaterial;\n}(Material);\n\nvar _inverseMatrix = /*@__PURE__*/new Matrix4();\n\nvar _ray = /*@__PURE__*/new Ray();\n\nvar _sphere = /*@__PURE__*/new Sphere();\n\nvar _position$2 = /*@__PURE__*/new Vector3();\n\nvar Points = /*#__PURE__*/function (_Object3D10) {\n _inherits(Points, _Object3D10);\n\n var _super53 = _createSuper(Points);\n\n function Points() {\n var _this44;\n\n var geometry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new BufferGeometry();\n var material = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new PointsMaterial();\n\n _classCallCheck(this, Points);\n\n _this44 = _super53.call(this);\n _this44.isPoints = true;\n _this44.type = 'Points';\n _this44.geometry = geometry;\n _this44.material = material;\n\n _this44.updateMorphTargets();\n\n return _this44;\n }\n\n _createClass(Points, [{\n key: \"copy\",\n value: function copy(source, recursive) {\n _get(_getPrototypeOf(Points.prototype), \"copy\", this).call(this, source, recursive);\n\n this.material = source.material;\n this.geometry = source.geometry;\n return this;\n }\n }, {\n key: \"raycast\",\n value: function raycast(raycaster, intersects) {\n var geometry = this.geometry;\n var matrixWorld = this.matrixWorld;\n var threshold = raycaster.params.Points.threshold;\n var drawRange = geometry.drawRange; // Checking boundingSphere distance to ray\n\n if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n\n _sphere.copy(geometry.boundingSphere);\n\n _sphere.applyMatrix4(matrixWorld);\n\n _sphere.radius += threshold;\n if (raycaster.ray.intersectsSphere(_sphere) === false) return; //\n\n _inverseMatrix.copy(matrixWorld).invert();\n\n _ray.copy(raycaster.ray).applyMatrix4(_inverseMatrix);\n\n var localThreshold = threshold / ((this.scale.x + this.scale.y + this.scale.z) / 3);\n var localThresholdSq = localThreshold * localThreshold;\n var index = geometry.index;\n var attributes = geometry.attributes;\n var positionAttribute = attributes.position;\n\n if (index !== null) {\n var start = Math.max(0, drawRange.start);\n var end = Math.min(index.count, drawRange.start + drawRange.count);\n\n for (var i = start, il = end; i < il; i++) {\n var a = index.getX(i);\n\n _position$2.fromBufferAttribute(positionAttribute, a);\n\n testPoint(_position$2, a, localThresholdSq, matrixWorld, raycaster, intersects, this);\n }\n } else {\n var _start7 = Math.max(0, drawRange.start);\n\n var _end6 = Math.min(positionAttribute.count, drawRange.start + drawRange.count);\n\n for (var _i61 = _start7, l = _end6; _i61 < l; _i61++) {\n _position$2.fromBufferAttribute(positionAttribute, _i61);\n\n testPoint(_position$2, _i61, localThresholdSq, matrixWorld, raycaster, intersects, this);\n }\n }\n }\n }, {\n key: \"updateMorphTargets\",\n value: function updateMorphTargets() {\n var geometry = this.geometry;\n var morphAttributes = geometry.morphAttributes;\n var keys = Object.keys(morphAttributes);\n\n if (keys.length > 0) {\n var morphAttribute = morphAttributes[keys[0]];\n\n if (morphAttribute !== undefined) {\n this.morphTargetInfluences = [];\n this.morphTargetDictionary = {};\n\n for (var m = 0, ml = morphAttribute.length; m < ml; m++) {\n var name = morphAttribute[m].name || String(m);\n this.morphTargetInfluences.push(0);\n this.morphTargetDictionary[name] = m;\n }\n }\n }\n }\n }]);\n\n return Points;\n}(Object3D);\n\nfunction testPoint(point, index, localThresholdSq, matrixWorld, raycaster, intersects, object) {\n var rayPointDistanceSq = _ray.distanceSqToPoint(point);\n\n if (rayPointDistanceSq < localThresholdSq) {\n var intersectPoint = new Vector3();\n\n _ray.closestPointToPoint(point, intersectPoint);\n\n intersectPoint.applyMatrix4(matrixWorld);\n var distance = raycaster.ray.origin.distanceTo(intersectPoint);\n if (distance < raycaster.near || distance > raycaster.far) return;\n intersects.push({\n distance: distance,\n distanceToRay: Math.sqrt(rayPointDistanceSq),\n point: intersectPoint,\n index: index,\n face: null,\n object: object\n });\n }\n}\n\nvar VideoTexture = /*#__PURE__*/function (_Texture6) {\n _inherits(VideoTexture, _Texture6);\n\n var _super54 = _createSuper(VideoTexture);\n\n function VideoTexture(video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy) {\n var _this45;\n\n _classCallCheck(this, VideoTexture);\n\n _this45 = _super54.call(this, video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy);\n _this45.isVideoTexture = true;\n _this45.minFilter = minFilter !== undefined ? minFilter : LinearFilter;\n _this45.magFilter = magFilter !== undefined ? magFilter : LinearFilter;\n _this45.generateMipmaps = false;\n\n var scope = _assertThisInitialized(_this45);\n\n function updateVideo() {\n scope.needsUpdate = true;\n video.requestVideoFrameCallback(updateVideo);\n }\n\n if ('requestVideoFrameCallback' in video) {\n video.requestVideoFrameCallback(updateVideo);\n }\n\n return _this45;\n }\n\n _createClass(VideoTexture, [{\n key: \"clone\",\n value: function clone() {\n return new this.constructor(this.image).copy(this);\n }\n }, {\n key: \"update\",\n value: function update() {\n var video = this.image;\n var hasVideoFrameCallback = ('requestVideoFrameCallback' in video);\n\n if (hasVideoFrameCallback === false && video.readyState >= video.HAVE_CURRENT_DATA) {\n this.needsUpdate = true;\n }\n }\n }]);\n\n return VideoTexture;\n}(Texture);\n\nvar FramebufferTexture = /*#__PURE__*/function (_Texture7) {\n _inherits(FramebufferTexture, _Texture7);\n\n var _super55 = _createSuper(FramebufferTexture);\n\n function FramebufferTexture(width, height, format) {\n var _this46;\n\n _classCallCheck(this, FramebufferTexture);\n\n _this46 = _super55.call(this, {\n width: width,\n height: height\n });\n _this46.isFramebufferTexture = true;\n _this46.format = format;\n _this46.magFilter = NearestFilter;\n _this46.minFilter = NearestFilter;\n _this46.generateMipmaps = false;\n _this46.needsUpdate = true;\n return _this46;\n }\n\n return _createClass(FramebufferTexture);\n}(Texture);\n\nvar CompressedTexture = /*#__PURE__*/function (_Texture8) {\n _inherits(CompressedTexture, _Texture8);\n\n var _super56 = _createSuper(CompressedTexture);\n\n function CompressedTexture(mipmaps, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, colorSpace) {\n var _this47;\n\n _classCallCheck(this, CompressedTexture);\n\n _this47 = _super56.call(this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace);\n _this47.isCompressedTexture = true;\n _this47.image = {\n width: width,\n height: height\n };\n _this47.mipmaps = mipmaps; // no flipping for cube textures\n // (also flipping doesn't work for compressed textures )\n\n _this47.flipY = false; // can't generate mipmaps for compressed textures\n // mips must be embedded in DDS files\n\n _this47.generateMipmaps = false;\n return _this47;\n }\n\n return _createClass(CompressedTexture);\n}(Texture);\n\nvar CompressedArrayTexture = /*#__PURE__*/function (_CompressedTexture) {\n _inherits(CompressedArrayTexture, _CompressedTexture);\n\n var _super57 = _createSuper(CompressedArrayTexture);\n\n function CompressedArrayTexture(mipmaps, width, height, depth, format, type) {\n var _this48;\n\n _classCallCheck(this, CompressedArrayTexture);\n\n _this48 = _super57.call(this, mipmaps, width, height, format, type);\n _this48.isCompressedArrayTexture = true;\n _this48.image.depth = depth;\n _this48.wrapR = ClampToEdgeWrapping;\n return _this48;\n }\n\n return _createClass(CompressedArrayTexture);\n}(CompressedTexture);\n\nvar CanvasTexture = /*#__PURE__*/function (_Texture9) {\n _inherits(CanvasTexture, _Texture9);\n\n var _super58 = _createSuper(CanvasTexture);\n\n function CanvasTexture(canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy) {\n var _this49;\n\n _classCallCheck(this, CanvasTexture);\n\n _this49 = _super58.call(this, canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy);\n _this49.isCanvasTexture = true;\n _this49.needsUpdate = true;\n return _this49;\n }\n\n return _createClass(CanvasTexture);\n}(Texture);\n/**\n * Extensible curve object.\n *\n * Some common of curve methods:\n * .getPoint( t, optionalTarget ), .getTangent( t, optionalTarget )\n * .getPointAt( u, optionalTarget ), .getTangentAt( u, optionalTarget )\n * .getPoints(), .getSpacedPoints()\n * .getLength()\n * .updateArcLengths()\n *\n * This following curves inherit from THREE.Curve:\n *\n * -- 2D curves --\n * THREE.ArcCurve\n * THREE.CubicBezierCurve\n * THREE.EllipseCurve\n * THREE.LineCurve\n * THREE.QuadraticBezierCurve\n * THREE.SplineCurve\n *\n * -- 3D curves --\n * THREE.CatmullRomCurve3\n * THREE.CubicBezierCurve3\n * THREE.LineCurve3\n * THREE.QuadraticBezierCurve3\n *\n * A series of curves can be represented as a THREE.CurvePath.\n *\n **/\n\n\nvar Curve = /*#__PURE__*/function () {\n function Curve() {\n _classCallCheck(this, Curve);\n\n this.type = 'Curve';\n this.arcLengthDivisions = 200;\n } // Virtual base class method to overwrite and implement in subclasses\n //\t- t [0 .. 1]\n\n\n _createClass(Curve, [{\n key: \"getPoint\",\n value: function\n /* t, optionalTarget */\n getPoint() {\n console.warn('THREE.Curve: .getPoint() not implemented.');\n return null;\n } // Get point at relative position in curve according to arc length\n // - u [0 .. 1]\n\n }, {\n key: \"getPointAt\",\n value: function getPointAt(u, optionalTarget) {\n var t = this.getUtoTmapping(u);\n return this.getPoint(t, optionalTarget);\n } // Get sequence of points using getPoint( t )\n\n }, {\n key: \"getPoints\",\n value: function getPoints() {\n var divisions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 5;\n var points = [];\n\n for (var d = 0; d <= divisions; d++) {\n points.push(this.getPoint(d / divisions));\n }\n\n return points;\n } // Get sequence of points using getPointAt( u )\n\n }, {\n key: \"getSpacedPoints\",\n value: function getSpacedPoints() {\n var divisions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 5;\n var points = [];\n\n for (var d = 0; d <= divisions; d++) {\n points.push(this.getPointAt(d / divisions));\n }\n\n return points;\n } // Get total curve arc length\n\n }, {\n key: \"getLength\",\n value: function getLength() {\n var lengths = this.getLengths();\n return lengths[lengths.length - 1];\n } // Get list of cumulative segment lengths\n\n }, {\n key: \"getLengths\",\n value: function getLengths() {\n var divisions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.arcLengthDivisions;\n\n if (this.cacheArcLengths && this.cacheArcLengths.length === divisions + 1 && !this.needsUpdate) {\n return this.cacheArcLengths;\n }\n\n this.needsUpdate = false;\n var cache = [];\n var current,\n last = this.getPoint(0);\n var sum = 0;\n cache.push(0);\n\n for (var p = 1; p <= divisions; p++) {\n current = this.getPoint(p / divisions);\n sum += current.distanceTo(last);\n cache.push(sum);\n last = current;\n }\n\n this.cacheArcLengths = cache;\n return cache; // { sums: cache, sum: sum }; Sum is in the last element.\n }\n }, {\n key: \"updateArcLengths\",\n value: function updateArcLengths() {\n this.needsUpdate = true;\n this.getLengths();\n } // Given u ( 0 .. 1 ), get a t to find p. This gives you points which are equidistant\n\n }, {\n key: \"getUtoTmapping\",\n value: function getUtoTmapping(u, distance) {\n var arcLengths = this.getLengths();\n var i = 0;\n var il = arcLengths.length;\n var targetArcLength; // The targeted u distance value to get\n\n if (distance) {\n targetArcLength = distance;\n } else {\n targetArcLength = u * arcLengths[il - 1];\n } // binary search for the index with largest value smaller than target u distance\n\n\n var low = 0,\n high = il - 1,\n comparison;\n\n while (low <= high) {\n i = Math.floor(low + (high - low) / 2); // less likely to overflow, though probably not issue here, JS doesn't really have integers, all numbers are floats\n\n comparison = arcLengths[i] - targetArcLength;\n\n if (comparison < 0) {\n low = i + 1;\n } else if (comparison > 0) {\n high = i - 1;\n } else {\n high = i;\n break; // DONE\n }\n }\n\n i = high;\n\n if (arcLengths[i] === targetArcLength) {\n return i / (il - 1);\n } // we could get finer grain at lengths, or use simple interpolation between two points\n\n\n var lengthBefore = arcLengths[i];\n var lengthAfter = arcLengths[i + 1];\n var segmentLength = lengthAfter - lengthBefore; // determine where we are between the 'before' and 'after' points\n\n var segmentFraction = (targetArcLength - lengthBefore) / segmentLength; // add that fractional amount to t\n\n var t = (i + segmentFraction) / (il - 1);\n return t;\n } // Returns a unit vector tangent at t\n // In case any sub curve does not implement its tangent derivation,\n // 2 points a small delta apart will be used to find its gradient\n // which seems to give a reasonable approximation\n\n }, {\n key: \"getTangent\",\n value: function getTangent(t, optionalTarget) {\n var delta = 0.0001;\n var t1 = t - delta;\n var t2 = t + delta; // Capping in case of danger\n\n if (t1 < 0) t1 = 0;\n if (t2 > 1) t2 = 1;\n var pt1 = this.getPoint(t1);\n var pt2 = this.getPoint(t2);\n var tangent = optionalTarget || (pt1.isVector2 ? new Vector2() : new Vector3());\n tangent.copy(pt2).sub(pt1).normalize();\n return tangent;\n }\n }, {\n key: \"getTangentAt\",\n value: function getTangentAt(u, optionalTarget) {\n var t = this.getUtoTmapping(u);\n return this.getTangent(t, optionalTarget);\n }\n }, {\n key: \"computeFrenetFrames\",\n value: function computeFrenetFrames(segments, closed) {\n // see http://www.cs.indiana.edu/pub/techreports/TR425.pdf\n var normal = new Vector3();\n var tangents = [];\n var normals = [];\n var binormals = [];\n var vec = new Vector3();\n var mat = new Matrix4(); // compute the tangent vectors for each segment on the curve\n\n for (var i = 0; i <= segments; i++) {\n var u = i / segments;\n tangents[i] = this.getTangentAt(u, new Vector3());\n } // select an initial normal vector perpendicular to the first tangent vector,\n // and in the direction of the minimum tangent xyz component\n\n\n normals[0] = new Vector3();\n binormals[0] = new Vector3();\n var min = Number.MAX_VALUE;\n var tx = Math.abs(tangents[0].x);\n var ty = Math.abs(tangents[0].y);\n var tz = Math.abs(tangents[0].z);\n\n if (tx <= min) {\n min = tx;\n normal.set(1, 0, 0);\n }\n\n if (ty <= min) {\n min = ty;\n normal.set(0, 1, 0);\n }\n\n if (tz <= min) {\n normal.set(0, 0, 1);\n }\n\n vec.crossVectors(tangents[0], normal).normalize();\n normals[0].crossVectors(tangents[0], vec);\n binormals[0].crossVectors(tangents[0], normals[0]); // compute the slowly-varying normal and binormal vectors for each segment on the curve\n\n for (var _i62 = 1; _i62 <= segments; _i62++) {\n normals[_i62] = normals[_i62 - 1].clone();\n binormals[_i62] = binormals[_i62 - 1].clone();\n vec.crossVectors(tangents[_i62 - 1], tangents[_i62]);\n\n if (vec.length() > Number.EPSILON) {\n vec.normalize();\n var theta = Math.acos(clamp(tangents[_i62 - 1].dot(tangents[_i62]), -1, 1)); // clamp for floating pt errors\n\n normals[_i62].applyMatrix4(mat.makeRotationAxis(vec, theta));\n }\n\n binormals[_i62].crossVectors(tangents[_i62], normals[_i62]);\n } // if the curve is closed, postprocess the vectors so the first and last normal vectors are the same\n\n\n if (closed === true) {\n var _theta = Math.acos(clamp(normals[0].dot(normals[segments]), -1, 1));\n\n _theta /= segments;\n\n if (tangents[0].dot(vec.crossVectors(normals[0], normals[segments])) > 0) {\n _theta = -_theta;\n }\n\n for (var _i63 = 1; _i63 <= segments; _i63++) {\n // twist a little...\n normals[_i63].applyMatrix4(mat.makeRotationAxis(tangents[_i63], _theta * _i63));\n\n binormals[_i63].crossVectors(tangents[_i63], normals[_i63]);\n }\n }\n\n return {\n tangents: tangents,\n normals: normals,\n binormals: binormals\n };\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n this.arcLengthDivisions = source.arcLengthDivisions;\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var data = {\n metadata: {\n version: 4.5,\n type: 'Curve',\n generator: 'Curve.toJSON'\n }\n };\n data.arcLengthDivisions = this.arcLengthDivisions;\n data.type = this.type;\n return data;\n }\n }, {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n this.arcLengthDivisions = json.arcLengthDivisions;\n return this;\n }\n }]);\n\n return Curve;\n}();\n\nvar EllipseCurve = /*#__PURE__*/function (_Curve) {\n _inherits(EllipseCurve, _Curve);\n\n var _super59 = _createSuper(EllipseCurve);\n\n function EllipseCurve() {\n var _this50;\n\n var aX = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var aY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var xRadius = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var yRadius = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n var aStartAngle = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var aEndAngle = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : Math.PI * 2;\n var aClockwise = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;\n var aRotation = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 0;\n\n _classCallCheck(this, EllipseCurve);\n\n _this50 = _super59.call(this);\n _this50.isEllipseCurve = true;\n _this50.type = 'EllipseCurve';\n _this50.aX = aX;\n _this50.aY = aY;\n _this50.xRadius = xRadius;\n _this50.yRadius = yRadius;\n _this50.aStartAngle = aStartAngle;\n _this50.aEndAngle = aEndAngle;\n _this50.aClockwise = aClockwise;\n _this50.aRotation = aRotation;\n return _this50;\n }\n\n _createClass(EllipseCurve, [{\n key: \"getPoint\",\n value: function getPoint(t, optionalTarget) {\n var point = optionalTarget || new Vector2();\n var twoPi = Math.PI * 2;\n var deltaAngle = this.aEndAngle - this.aStartAngle;\n var samePoints = Math.abs(deltaAngle) < Number.EPSILON; // ensures that deltaAngle is 0 .. 2 PI\n\n while (deltaAngle < 0) {\n deltaAngle += twoPi;\n }\n\n while (deltaAngle > twoPi) {\n deltaAngle -= twoPi;\n }\n\n if (deltaAngle < Number.EPSILON) {\n if (samePoints) {\n deltaAngle = 0;\n } else {\n deltaAngle = twoPi;\n }\n }\n\n if (this.aClockwise === true && !samePoints) {\n if (deltaAngle === twoPi) {\n deltaAngle = -twoPi;\n } else {\n deltaAngle = deltaAngle - twoPi;\n }\n }\n\n var angle = this.aStartAngle + t * deltaAngle;\n var x = this.aX + this.xRadius * Math.cos(angle);\n var y = this.aY + this.yRadius * Math.sin(angle);\n\n if (this.aRotation !== 0) {\n var cos = Math.cos(this.aRotation);\n var sin = Math.sin(this.aRotation);\n var tx = x - this.aX;\n var ty = y - this.aY; // Rotate the point about the center of the ellipse.\n\n x = tx * cos - ty * sin + this.aX;\n y = tx * sin + ty * cos + this.aY;\n }\n\n return point.set(x, y);\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(EllipseCurve.prototype), \"copy\", this).call(this, source);\n\n this.aX = source.aX;\n this.aY = source.aY;\n this.xRadius = source.xRadius;\n this.yRadius = source.yRadius;\n this.aStartAngle = source.aStartAngle;\n this.aEndAngle = source.aEndAngle;\n this.aClockwise = source.aClockwise;\n this.aRotation = source.aRotation;\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var data = _get(_getPrototypeOf(EllipseCurve.prototype), \"toJSON\", this).call(this);\n\n data.aX = this.aX;\n data.aY = this.aY;\n data.xRadius = this.xRadius;\n data.yRadius = this.yRadius;\n data.aStartAngle = this.aStartAngle;\n data.aEndAngle = this.aEndAngle;\n data.aClockwise = this.aClockwise;\n data.aRotation = this.aRotation;\n return data;\n }\n }, {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n _get(_getPrototypeOf(EllipseCurve.prototype), \"fromJSON\", this).call(this, json);\n\n this.aX = json.aX;\n this.aY = json.aY;\n this.xRadius = json.xRadius;\n this.yRadius = json.yRadius;\n this.aStartAngle = json.aStartAngle;\n this.aEndAngle = json.aEndAngle;\n this.aClockwise = json.aClockwise;\n this.aRotation = json.aRotation;\n return this;\n }\n }]);\n\n return EllipseCurve;\n}(Curve);\n\nvar ArcCurve = /*#__PURE__*/function (_EllipseCurve) {\n _inherits(ArcCurve, _EllipseCurve);\n\n var _super60 = _createSuper(ArcCurve);\n\n function ArcCurve(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) {\n var _this51;\n\n _classCallCheck(this, ArcCurve);\n\n _this51 = _super60.call(this, aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise);\n _this51.isArcCurve = true;\n _this51.type = 'ArcCurve';\n return _this51;\n }\n\n return _createClass(ArcCurve);\n}(EllipseCurve);\n/**\n * Centripetal CatmullRom Curve - which is useful for avoiding\n * cusps and self-intersections in non-uniform catmull rom curves.\n * http://www.cemyuksel.com/research/catmullrom_param/catmullrom.pdf\n *\n * curve.type accepts centripetal(default), chordal and catmullrom\n * curve.tension is used for catmullrom which defaults to 0.5\n */\n\n/*\nBased on an optimized c++ solution in\n - http://stackoverflow.com/questions/9489736/catmull-rom-curve-with-no-cusps-and-no-self-intersections/\n - http://ideone.com/NoEbVM\n\nThis CubicPoly class could be used for reusing some variables and calculations,\nbut for three.js curve use, it could be possible inlined and flatten into a single function call\nwhich can be placed in CurveUtils.\n*/\n\n\nfunction CubicPoly() {\n var c0 = 0,\n c1 = 0,\n c2 = 0,\n c3 = 0;\n /*\n * Compute coefficients for a cubic polynomial\n * p(s) = c0 + c1*s + c2*s^2 + c3*s^3\n * such that\n * p(0) = x0, p(1) = x1\n * and\n * p'(0) = t0, p'(1) = t1.\n */\n\n function init(x0, x1, t0, t1) {\n c0 = x0;\n c1 = t0;\n c2 = -3 * x0 + 3 * x1 - 2 * t0 - t1;\n c3 = 2 * x0 - 2 * x1 + t0 + t1;\n }\n\n return {\n initCatmullRom: function initCatmullRom(x0, x1, x2, x3, tension) {\n init(x1, x2, tension * (x2 - x0), tension * (x3 - x1));\n },\n initNonuniformCatmullRom: function initNonuniformCatmullRom(x0, x1, x2, x3, dt0, dt1, dt2) {\n // compute tangents when parameterized in [t1,t2]\n var t1 = (x1 - x0) / dt0 - (x2 - x0) / (dt0 + dt1) + (x2 - x1) / dt1;\n var t2 = (x2 - x1) / dt1 - (x3 - x1) / (dt1 + dt2) + (x3 - x2) / dt2; // rescale tangents for parametrization in [0,1]\n\n t1 *= dt1;\n t2 *= dt1;\n init(x1, x2, t1, t2);\n },\n calc: function calc(t) {\n var t2 = t * t;\n var t3 = t2 * t;\n return c0 + c1 * t + c2 * t2 + c3 * t3;\n }\n };\n} //\n\n\nvar tmp = /*@__PURE__*/new Vector3();\nvar px = /*@__PURE__*/new CubicPoly();\nvar py = /*@__PURE__*/new CubicPoly();\nvar pz = /*@__PURE__*/new CubicPoly();\n\nvar CatmullRomCurve3 = /*#__PURE__*/function (_Curve2) {\n _inherits(CatmullRomCurve3, _Curve2);\n\n var _super61 = _createSuper(CatmullRomCurve3);\n\n function CatmullRomCurve3() {\n var _this52;\n\n var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var closed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var curveType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'centripetal';\n var tension = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0.5;\n\n _classCallCheck(this, CatmullRomCurve3);\n\n _this52 = _super61.call(this);\n _this52.isCatmullRomCurve3 = true;\n _this52.type = 'CatmullRomCurve3';\n _this52.points = points;\n _this52.closed = closed;\n _this52.curveType = curveType;\n _this52.tension = tension;\n return _this52;\n }\n\n _createClass(CatmullRomCurve3, [{\n key: \"getPoint\",\n value: function getPoint(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector3();\n var point = optionalTarget;\n var points = this.points;\n var l = points.length;\n var p = (l - (this.closed ? 0 : 1)) * t;\n var intPoint = Math.floor(p);\n var weight = p - intPoint;\n\n if (this.closed) {\n intPoint += intPoint > 0 ? 0 : (Math.floor(Math.abs(intPoint) / l) + 1) * l;\n } else if (weight === 0 && intPoint === l - 1) {\n intPoint = l - 2;\n weight = 1;\n }\n\n var p0, p3; // 4 points (p1 & p2 defined below)\n\n if (this.closed || intPoint > 0) {\n p0 = points[(intPoint - 1) % l];\n } else {\n // extrapolate first point\n tmp.subVectors(points[0], points[1]).add(points[0]);\n p0 = tmp;\n }\n\n var p1 = points[intPoint % l];\n var p2 = points[(intPoint + 1) % l];\n\n if (this.closed || intPoint + 2 < l) {\n p3 = points[(intPoint + 2) % l];\n } else {\n // extrapolate last point\n tmp.subVectors(points[l - 1], points[l - 2]).add(points[l - 1]);\n p3 = tmp;\n }\n\n if (this.curveType === 'centripetal' || this.curveType === 'chordal') {\n // init Centripetal / Chordal Catmull-Rom\n var pow = this.curveType === 'chordal' ? 0.5 : 0.25;\n var dt0 = Math.pow(p0.distanceToSquared(p1), pow);\n var dt1 = Math.pow(p1.distanceToSquared(p2), pow);\n var dt2 = Math.pow(p2.distanceToSquared(p3), pow); // safety check for repeated points\n\n if (dt1 < 1e-4) dt1 = 1.0;\n if (dt0 < 1e-4) dt0 = dt1;\n if (dt2 < 1e-4) dt2 = dt1;\n px.initNonuniformCatmullRom(p0.x, p1.x, p2.x, p3.x, dt0, dt1, dt2);\n py.initNonuniformCatmullRom(p0.y, p1.y, p2.y, p3.y, dt0, dt1, dt2);\n pz.initNonuniformCatmullRom(p0.z, p1.z, p2.z, p3.z, dt0, dt1, dt2);\n } else if (this.curveType === 'catmullrom') {\n px.initCatmullRom(p0.x, p1.x, p2.x, p3.x, this.tension);\n py.initCatmullRom(p0.y, p1.y, p2.y, p3.y, this.tension);\n pz.initCatmullRom(p0.z, p1.z, p2.z, p3.z, this.tension);\n }\n\n point.set(px.calc(weight), py.calc(weight), pz.calc(weight));\n return point;\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(CatmullRomCurve3.prototype), \"copy\", this).call(this, source);\n\n this.points = [];\n\n for (var i = 0, l = source.points.length; i < l; i++) {\n var point = source.points[i];\n this.points.push(point.clone());\n }\n\n this.closed = source.closed;\n this.curveType = source.curveType;\n this.tension = source.tension;\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var data = _get(_getPrototypeOf(CatmullRomCurve3.prototype), \"toJSON\", this).call(this);\n\n data.points = [];\n\n for (var i = 0, l = this.points.length; i < l; i++) {\n var point = this.points[i];\n data.points.push(point.toArray());\n }\n\n data.closed = this.closed;\n data.curveType = this.curveType;\n data.tension = this.tension;\n return data;\n }\n }, {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n _get(_getPrototypeOf(CatmullRomCurve3.prototype), \"fromJSON\", this).call(this, json);\n\n this.points = [];\n\n for (var i = 0, l = json.points.length; i < l; i++) {\n var point = json.points[i];\n this.points.push(new Vector3().fromArray(point));\n }\n\n this.closed = json.closed;\n this.curveType = json.curveType;\n this.tension = json.tension;\n return this;\n }\n }]);\n\n return CatmullRomCurve3;\n}(Curve);\n/**\n * Bezier Curves formulas obtained from\n * https://en.wikipedia.org/wiki/B%C3%A9zier_curve\n */\n\n\nfunction CatmullRom(t, p0, p1, p2, p3) {\n var v0 = (p2 - p0) * 0.5;\n var v1 = (p3 - p1) * 0.5;\n var t2 = t * t;\n var t3 = t * t2;\n return (2 * p1 - 2 * p2 + v0 + v1) * t3 + (-3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1;\n} //\n\n\nfunction QuadraticBezierP0(t, p) {\n var k = 1 - t;\n return k * k * p;\n}\n\nfunction QuadraticBezierP1(t, p) {\n return 2 * (1 - t) * t * p;\n}\n\nfunction QuadraticBezierP2(t, p) {\n return t * t * p;\n}\n\nfunction QuadraticBezier(t, p0, p1, p2) {\n return QuadraticBezierP0(t, p0) + QuadraticBezierP1(t, p1) + QuadraticBezierP2(t, p2);\n} //\n\n\nfunction CubicBezierP0(t, p) {\n var k = 1 - t;\n return k * k * k * p;\n}\n\nfunction CubicBezierP1(t, p) {\n var k = 1 - t;\n return 3 * k * k * t * p;\n}\n\nfunction CubicBezierP2(t, p) {\n return 3 * (1 - t) * t * t * p;\n}\n\nfunction CubicBezierP3(t, p) {\n return t * t * t * p;\n}\n\nfunction CubicBezier(t, p0, p1, p2, p3) {\n return CubicBezierP0(t, p0) + CubicBezierP1(t, p1) + CubicBezierP2(t, p2) + CubicBezierP3(t, p3);\n}\n\nvar CubicBezierCurve = /*#__PURE__*/function (_Curve3) {\n _inherits(CubicBezierCurve, _Curve3);\n\n var _super62 = _createSuper(CubicBezierCurve);\n\n function CubicBezierCurve() {\n var _this53;\n\n var v0 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Vector2();\n var v1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector2();\n var v2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Vector2();\n var v3 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : new Vector2();\n\n _classCallCheck(this, CubicBezierCurve);\n\n _this53 = _super62.call(this);\n _this53.isCubicBezierCurve = true;\n _this53.type = 'CubicBezierCurve';\n _this53.v0 = v0;\n _this53.v1 = v1;\n _this53.v2 = v2;\n _this53.v3 = v3;\n return _this53;\n }\n\n _createClass(CubicBezierCurve, [{\n key: \"getPoint\",\n value: function getPoint(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector2();\n var point = optionalTarget;\n var v0 = this.v0,\n v1 = this.v1,\n v2 = this.v2,\n v3 = this.v3;\n point.set(CubicBezier(t, v0.x, v1.x, v2.x, v3.x), CubicBezier(t, v0.y, v1.y, v2.y, v3.y));\n return point;\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(CubicBezierCurve.prototype), \"copy\", this).call(this, source);\n\n this.v0.copy(source.v0);\n this.v1.copy(source.v1);\n this.v2.copy(source.v2);\n this.v3.copy(source.v3);\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var data = _get(_getPrototypeOf(CubicBezierCurve.prototype), \"toJSON\", this).call(this);\n\n data.v0 = this.v0.toArray();\n data.v1 = this.v1.toArray();\n data.v2 = this.v2.toArray();\n data.v3 = this.v3.toArray();\n return data;\n }\n }, {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n _get(_getPrototypeOf(CubicBezierCurve.prototype), \"fromJSON\", this).call(this, json);\n\n this.v0.fromArray(json.v0);\n this.v1.fromArray(json.v1);\n this.v2.fromArray(json.v2);\n this.v3.fromArray(json.v3);\n return this;\n }\n }]);\n\n return CubicBezierCurve;\n}(Curve);\n\nvar CubicBezierCurve3 = /*#__PURE__*/function (_Curve4) {\n _inherits(CubicBezierCurve3, _Curve4);\n\n var _super63 = _createSuper(CubicBezierCurve3);\n\n function CubicBezierCurve3() {\n var _this54;\n\n var v0 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Vector3();\n var v1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector3();\n var v2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Vector3();\n var v3 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : new Vector3();\n\n _classCallCheck(this, CubicBezierCurve3);\n\n _this54 = _super63.call(this);\n _this54.isCubicBezierCurve3 = true;\n _this54.type = 'CubicBezierCurve3';\n _this54.v0 = v0;\n _this54.v1 = v1;\n _this54.v2 = v2;\n _this54.v3 = v3;\n return _this54;\n }\n\n _createClass(CubicBezierCurve3, [{\n key: \"getPoint\",\n value: function getPoint(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector3();\n var point = optionalTarget;\n var v0 = this.v0,\n v1 = this.v1,\n v2 = this.v2,\n v3 = this.v3;\n point.set(CubicBezier(t, v0.x, v1.x, v2.x, v3.x), CubicBezier(t, v0.y, v1.y, v2.y, v3.y), CubicBezier(t, v0.z, v1.z, v2.z, v3.z));\n return point;\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(CubicBezierCurve3.prototype), \"copy\", this).call(this, source);\n\n this.v0.copy(source.v0);\n this.v1.copy(source.v1);\n this.v2.copy(source.v2);\n this.v3.copy(source.v3);\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var data = _get(_getPrototypeOf(CubicBezierCurve3.prototype), \"toJSON\", this).call(this);\n\n data.v0 = this.v0.toArray();\n data.v1 = this.v1.toArray();\n data.v2 = this.v2.toArray();\n data.v3 = this.v3.toArray();\n return data;\n }\n }, {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n _get(_getPrototypeOf(CubicBezierCurve3.prototype), \"fromJSON\", this).call(this, json);\n\n this.v0.fromArray(json.v0);\n this.v1.fromArray(json.v1);\n this.v2.fromArray(json.v2);\n this.v3.fromArray(json.v3);\n return this;\n }\n }]);\n\n return CubicBezierCurve3;\n}(Curve);\n\nvar LineCurve = /*#__PURE__*/function (_Curve5) {\n _inherits(LineCurve, _Curve5);\n\n var _super64 = _createSuper(LineCurve);\n\n function LineCurve() {\n var _this55;\n\n var v1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Vector2();\n var v2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector2();\n\n _classCallCheck(this, LineCurve);\n\n _this55 = _super64.call(this);\n _this55.isLineCurve = true;\n _this55.type = 'LineCurve';\n _this55.v1 = v1;\n _this55.v2 = v2;\n return _this55;\n }\n\n _createClass(LineCurve, [{\n key: \"getPoint\",\n value: function getPoint(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector2();\n var point = optionalTarget;\n\n if (t === 1) {\n point.copy(this.v2);\n } else {\n point.copy(this.v2).sub(this.v1);\n point.multiplyScalar(t).add(this.v1);\n }\n\n return point;\n } // Line curve is linear, so we can overwrite default getPointAt\n\n }, {\n key: \"getPointAt\",\n value: function getPointAt(u, optionalTarget) {\n return this.getPoint(u, optionalTarget);\n }\n }, {\n key: \"getTangent\",\n value: function getTangent(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector2();\n return optionalTarget.subVectors(this.v2, this.v1).normalize();\n }\n }, {\n key: \"getTangentAt\",\n value: function getTangentAt(u, optionalTarget) {\n return this.getTangent(u, optionalTarget);\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(LineCurve.prototype), \"copy\", this).call(this, source);\n\n this.v1.copy(source.v1);\n this.v2.copy(source.v2);\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var data = _get(_getPrototypeOf(LineCurve.prototype), \"toJSON\", this).call(this);\n\n data.v1 = this.v1.toArray();\n data.v2 = this.v2.toArray();\n return data;\n }\n }, {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n _get(_getPrototypeOf(LineCurve.prototype), \"fromJSON\", this).call(this, json);\n\n this.v1.fromArray(json.v1);\n this.v2.fromArray(json.v2);\n return this;\n }\n }]);\n\n return LineCurve;\n}(Curve);\n\nvar LineCurve3 = /*#__PURE__*/function (_Curve6) {\n _inherits(LineCurve3, _Curve6);\n\n var _super65 = _createSuper(LineCurve3);\n\n function LineCurve3() {\n var _this56;\n\n var v1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Vector3();\n var v2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector3();\n\n _classCallCheck(this, LineCurve3);\n\n _this56 = _super65.call(this);\n _this56.isLineCurve3 = true;\n _this56.type = 'LineCurve3';\n _this56.v1 = v1;\n _this56.v2 = v2;\n return _this56;\n }\n\n _createClass(LineCurve3, [{\n key: \"getPoint\",\n value: function getPoint(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector3();\n var point = optionalTarget;\n\n if (t === 1) {\n point.copy(this.v2);\n } else {\n point.copy(this.v2).sub(this.v1);\n point.multiplyScalar(t).add(this.v1);\n }\n\n return point;\n } // Line curve is linear, so we can overwrite default getPointAt\n\n }, {\n key: \"getPointAt\",\n value: function getPointAt(u, optionalTarget) {\n return this.getPoint(u, optionalTarget);\n }\n }, {\n key: \"getTangent\",\n value: function getTangent(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector3();\n return optionalTarget.subVectors(this.v2, this.v1).normalize();\n }\n }, {\n key: \"getTangentAt\",\n value: function getTangentAt(u, optionalTarget) {\n return this.getTangent(u, optionalTarget);\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(LineCurve3.prototype), \"copy\", this).call(this, source);\n\n this.v1.copy(source.v1);\n this.v2.copy(source.v2);\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var data = _get(_getPrototypeOf(LineCurve3.prototype), \"toJSON\", this).call(this);\n\n data.v1 = this.v1.toArray();\n data.v2 = this.v2.toArray();\n return data;\n }\n }, {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n _get(_getPrototypeOf(LineCurve3.prototype), \"fromJSON\", this).call(this, json);\n\n this.v1.fromArray(json.v1);\n this.v2.fromArray(json.v2);\n return this;\n }\n }]);\n\n return LineCurve3;\n}(Curve);\n\nvar QuadraticBezierCurve = /*#__PURE__*/function (_Curve7) {\n _inherits(QuadraticBezierCurve, _Curve7);\n\n var _super66 = _createSuper(QuadraticBezierCurve);\n\n function QuadraticBezierCurve() {\n var _this57;\n\n var v0 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Vector2();\n var v1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector2();\n var v2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Vector2();\n\n _classCallCheck(this, QuadraticBezierCurve);\n\n _this57 = _super66.call(this);\n _this57.isQuadraticBezierCurve = true;\n _this57.type = 'QuadraticBezierCurve';\n _this57.v0 = v0;\n _this57.v1 = v1;\n _this57.v2 = v2;\n return _this57;\n }\n\n _createClass(QuadraticBezierCurve, [{\n key: \"getPoint\",\n value: function getPoint(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector2();\n var point = optionalTarget;\n var v0 = this.v0,\n v1 = this.v1,\n v2 = this.v2;\n point.set(QuadraticBezier(t, v0.x, v1.x, v2.x), QuadraticBezier(t, v0.y, v1.y, v2.y));\n return point;\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(QuadraticBezierCurve.prototype), \"copy\", this).call(this, source);\n\n this.v0.copy(source.v0);\n this.v1.copy(source.v1);\n this.v2.copy(source.v2);\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var data = _get(_getPrototypeOf(QuadraticBezierCurve.prototype), \"toJSON\", this).call(this);\n\n data.v0 = this.v0.toArray();\n data.v1 = this.v1.toArray();\n data.v2 = this.v2.toArray();\n return data;\n }\n }, {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n _get(_getPrototypeOf(QuadraticBezierCurve.prototype), \"fromJSON\", this).call(this, json);\n\n this.v0.fromArray(json.v0);\n this.v1.fromArray(json.v1);\n this.v2.fromArray(json.v2);\n return this;\n }\n }]);\n\n return QuadraticBezierCurve;\n}(Curve);\n\nvar QuadraticBezierCurve3 = /*#__PURE__*/function (_Curve8) {\n _inherits(QuadraticBezierCurve3, _Curve8);\n\n var _super67 = _createSuper(QuadraticBezierCurve3);\n\n function QuadraticBezierCurve3() {\n var _this58;\n\n var v0 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Vector3();\n var v1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector3();\n var v2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Vector3();\n\n _classCallCheck(this, QuadraticBezierCurve3);\n\n _this58 = _super67.call(this);\n _this58.isQuadraticBezierCurve3 = true;\n _this58.type = 'QuadraticBezierCurve3';\n _this58.v0 = v0;\n _this58.v1 = v1;\n _this58.v2 = v2;\n return _this58;\n }\n\n _createClass(QuadraticBezierCurve3, [{\n key: \"getPoint\",\n value: function getPoint(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector3();\n var point = optionalTarget;\n var v0 = this.v0,\n v1 = this.v1,\n v2 = this.v2;\n point.set(QuadraticBezier(t, v0.x, v1.x, v2.x), QuadraticBezier(t, v0.y, v1.y, v2.y), QuadraticBezier(t, v0.z, v1.z, v2.z));\n return point;\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(QuadraticBezierCurve3.prototype), \"copy\", this).call(this, source);\n\n this.v0.copy(source.v0);\n this.v1.copy(source.v1);\n this.v2.copy(source.v2);\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var data = _get(_getPrototypeOf(QuadraticBezierCurve3.prototype), \"toJSON\", this).call(this);\n\n data.v0 = this.v0.toArray();\n data.v1 = this.v1.toArray();\n data.v2 = this.v2.toArray();\n return data;\n }\n }, {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n _get(_getPrototypeOf(QuadraticBezierCurve3.prototype), \"fromJSON\", this).call(this, json);\n\n this.v0.fromArray(json.v0);\n this.v1.fromArray(json.v1);\n this.v2.fromArray(json.v2);\n return this;\n }\n }]);\n\n return QuadraticBezierCurve3;\n}(Curve);\n\nvar SplineCurve = /*#__PURE__*/function (_Curve9) {\n _inherits(SplineCurve, _Curve9);\n\n var _super68 = _createSuper(SplineCurve);\n\n function SplineCurve() {\n var _this59;\n\n var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n _classCallCheck(this, SplineCurve);\n\n _this59 = _super68.call(this);\n _this59.isSplineCurve = true;\n _this59.type = 'SplineCurve';\n _this59.points = points;\n return _this59;\n }\n\n _createClass(SplineCurve, [{\n key: \"getPoint\",\n value: function getPoint(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector2();\n var point = optionalTarget;\n var points = this.points;\n var p = (points.length - 1) * t;\n var intPoint = Math.floor(p);\n var weight = p - intPoint;\n var p0 = points[intPoint === 0 ? intPoint : intPoint - 1];\n var p1 = points[intPoint];\n var p2 = points[intPoint > points.length - 2 ? points.length - 1 : intPoint + 1];\n var p3 = points[intPoint > points.length - 3 ? points.length - 1 : intPoint + 2];\n point.set(CatmullRom(weight, p0.x, p1.x, p2.x, p3.x), CatmullRom(weight, p0.y, p1.y, p2.y, p3.y));\n return point;\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(SplineCurve.prototype), \"copy\", this).call(this, source);\n\n this.points = [];\n\n for (var i = 0, l = source.points.length; i < l; i++) {\n var point = source.points[i];\n this.points.push(point.clone());\n }\n\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var data = _get(_getPrototypeOf(SplineCurve.prototype), \"toJSON\", this).call(this);\n\n data.points = [];\n\n for (var i = 0, l = this.points.length; i < l; i++) {\n var point = this.points[i];\n data.points.push(point.toArray());\n }\n\n return data;\n }\n }, {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n _get(_getPrototypeOf(SplineCurve.prototype), \"fromJSON\", this).call(this, json);\n\n this.points = [];\n\n for (var i = 0, l = json.points.length; i < l; i++) {\n var point = json.points[i];\n this.points.push(new Vector2().fromArray(point));\n }\n\n return this;\n }\n }]);\n\n return SplineCurve;\n}(Curve);\n\nvar Curves = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ArcCurve: ArcCurve,\n CatmullRomCurve3: CatmullRomCurve3,\n CubicBezierCurve: CubicBezierCurve,\n CubicBezierCurve3: CubicBezierCurve3,\n EllipseCurve: EllipseCurve,\n LineCurve: LineCurve,\n LineCurve3: LineCurve3,\n QuadraticBezierCurve: QuadraticBezierCurve,\n QuadraticBezierCurve3: QuadraticBezierCurve3,\n SplineCurve: SplineCurve\n});\n/**************************************************************\n *\tCurved Path - a curve path is simply a array of connected\n * curves, but retains the api of a curve\n **************************************************************/\n\nvar CurvePath = /*#__PURE__*/function (_Curve10) {\n _inherits(CurvePath, _Curve10);\n\n var _super69 = _createSuper(CurvePath);\n\n function CurvePath() {\n var _this60;\n\n _classCallCheck(this, CurvePath);\n\n _this60 = _super69.call(this);\n _this60.type = 'CurvePath';\n _this60.curves = [];\n _this60.autoClose = false; // Automatically closes the path\n\n return _this60;\n }\n\n _createClass(CurvePath, [{\n key: \"add\",\n value: function add(curve) {\n this.curves.push(curve);\n }\n }, {\n key: \"closePath\",\n value: function closePath() {\n // Add a line curve if start and end of lines are not connected\n var startPoint = this.curves[0].getPoint(0);\n var endPoint = this.curves[this.curves.length - 1].getPoint(1);\n\n if (!startPoint.equals(endPoint)) {\n this.curves.push(new LineCurve(endPoint, startPoint));\n }\n } // To get accurate point with reference to\n // entire path distance at time t,\n // following has to be done:\n // 1. Length of each sub path have to be known\n // 2. Locate and identify type of curve\n // 3. Get t for the curve\n // 4. Return curve.getPointAt(t')\n\n }, {\n key: \"getPoint\",\n value: function getPoint(t, optionalTarget) {\n var d = t * this.getLength();\n var curveLengths = this.getCurveLengths();\n var i = 0; // To think about boundaries points.\n\n while (i < curveLengths.length) {\n if (curveLengths[i] >= d) {\n var diff = curveLengths[i] - d;\n var curve = this.curves[i];\n var segmentLength = curve.getLength();\n var u = segmentLength === 0 ? 0 : 1 - diff / segmentLength;\n return curve.getPointAt(u, optionalTarget);\n }\n\n i++;\n }\n\n return null; // loop where sum != 0, sum > d , sum+1 0 && arguments[0] !== undefined ? arguments[0] : 40;\n var points = [];\n\n for (var i = 0; i <= divisions; i++) {\n points.push(this.getPoint(i / divisions));\n }\n\n if (this.autoClose) {\n points.push(points[0]);\n }\n\n return points;\n }\n }, {\n key: \"getPoints\",\n value: function getPoints() {\n var divisions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 12;\n var points = [];\n var last;\n\n for (var i = 0, curves = this.curves; i < curves.length; i++) {\n var curve = curves[i];\n var resolution = curve.isEllipseCurve ? divisions * 2 : curve.isLineCurve || curve.isLineCurve3 ? 1 : curve.isSplineCurve ? divisions * curve.points.length : divisions;\n var pts = curve.getPoints(resolution);\n\n for (var j = 0; j < pts.length; j++) {\n var point = pts[j];\n if (last && last.equals(point)) continue; // ensures no consecutive points are duplicates\n\n points.push(point);\n last = point;\n }\n }\n\n if (this.autoClose && points.length > 1 && !points[points.length - 1].equals(points[0])) {\n points.push(points[0]);\n }\n\n return points;\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(CurvePath.prototype), \"copy\", this).call(this, source);\n\n this.curves = [];\n\n for (var i = 0, l = source.curves.length; i < l; i++) {\n var curve = source.curves[i];\n this.curves.push(curve.clone());\n }\n\n this.autoClose = source.autoClose;\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var data = _get(_getPrototypeOf(CurvePath.prototype), \"toJSON\", this).call(this);\n\n data.autoClose = this.autoClose;\n data.curves = [];\n\n for (var i = 0, l = this.curves.length; i < l; i++) {\n var curve = this.curves[i];\n data.curves.push(curve.toJSON());\n }\n\n return data;\n }\n }, {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n _get(_getPrototypeOf(CurvePath.prototype), \"fromJSON\", this).call(this, json);\n\n this.autoClose = json.autoClose;\n this.curves = [];\n\n for (var i = 0, l = json.curves.length; i < l; i++) {\n var curve = json.curves[i];\n this.curves.push(new Curves[curve.type]().fromJSON(curve));\n }\n\n return this;\n }\n }]);\n\n return CurvePath;\n}(Curve);\n\nvar Path = /*#__PURE__*/function (_CurvePath) {\n _inherits(Path, _CurvePath);\n\n var _super70 = _createSuper(Path);\n\n function Path(points) {\n var _this61;\n\n _classCallCheck(this, Path);\n\n _this61 = _super70.call(this);\n _this61.type = 'Path';\n _this61.currentPoint = new Vector2();\n\n if (points) {\n _this61.setFromPoints(points);\n }\n\n return _this61;\n }\n\n _createClass(Path, [{\n key: \"setFromPoints\",\n value: function setFromPoints(points) {\n this.moveTo(points[0].x, points[0].y);\n\n for (var i = 1, l = points.length; i < l; i++) {\n this.lineTo(points[i].x, points[i].y);\n }\n\n return this;\n }\n }, {\n key: \"moveTo\",\n value: function moveTo(x, y) {\n this.currentPoint.set(x, y); // TODO consider referencing vectors instead of copying?\n\n return this;\n }\n }, {\n key: \"lineTo\",\n value: function lineTo(x, y) {\n var curve = new LineCurve(this.currentPoint.clone(), new Vector2(x, y));\n this.curves.push(curve);\n this.currentPoint.set(x, y);\n return this;\n }\n }, {\n key: \"quadraticCurveTo\",\n value: function quadraticCurveTo(aCPx, aCPy, aX, aY) {\n var curve = new QuadraticBezierCurve(this.currentPoint.clone(), new Vector2(aCPx, aCPy), new Vector2(aX, aY));\n this.curves.push(curve);\n this.currentPoint.set(aX, aY);\n return this;\n }\n }, {\n key: \"bezierCurveTo\",\n value: function bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) {\n var curve = new CubicBezierCurve(this.currentPoint.clone(), new Vector2(aCP1x, aCP1y), new Vector2(aCP2x, aCP2y), new Vector2(aX, aY));\n this.curves.push(curve);\n this.currentPoint.set(aX, aY);\n return this;\n }\n }, {\n key: \"splineThru\",\n value: function splineThru(pts\n /*Array of Vector*/\n ) {\n var npts = [this.currentPoint.clone()].concat(pts);\n var curve = new SplineCurve(npts);\n this.curves.push(curve);\n this.currentPoint.copy(pts[pts.length - 1]);\n return this;\n }\n }, {\n key: \"arc\",\n value: function arc(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) {\n var x0 = this.currentPoint.x;\n var y0 = this.currentPoint.y;\n this.absarc(aX + x0, aY + y0, aRadius, aStartAngle, aEndAngle, aClockwise);\n return this;\n }\n }, {\n key: \"absarc\",\n value: function absarc(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) {\n this.absellipse(aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise);\n return this;\n }\n }, {\n key: \"ellipse\",\n value: function ellipse(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation) {\n var x0 = this.currentPoint.x;\n var y0 = this.currentPoint.y;\n this.absellipse(aX + x0, aY + y0, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation);\n return this;\n }\n }, {\n key: \"absellipse\",\n value: function absellipse(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation) {\n var curve = new EllipseCurve(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation);\n\n if (this.curves.length > 0) {\n // if a previous curve is present, attempt to join\n var firstPoint = curve.getPoint(0);\n\n if (!firstPoint.equals(this.currentPoint)) {\n this.lineTo(firstPoint.x, firstPoint.y);\n }\n }\n\n this.curves.push(curve);\n var lastPoint = curve.getPoint(1);\n this.currentPoint.copy(lastPoint);\n return this;\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(Path.prototype), \"copy\", this).call(this, source);\n\n this.currentPoint.copy(source.currentPoint);\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var data = _get(_getPrototypeOf(Path.prototype), \"toJSON\", this).call(this);\n\n data.currentPoint = this.currentPoint.toArray();\n return data;\n }\n }, {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n _get(_getPrototypeOf(Path.prototype), \"fromJSON\", this).call(this, json);\n\n this.currentPoint.fromArray(json.currentPoint);\n return this;\n }\n }]);\n\n return Path;\n}(CurvePath);\n\nvar LatheGeometry = /*#__PURE__*/function (_BufferGeometry3) {\n _inherits(LatheGeometry, _BufferGeometry3);\n\n var _super71 = _createSuper(LatheGeometry);\n\n function LatheGeometry() {\n var _this62;\n\n var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [new Vector2(0, -0.5), new Vector2(0.5, 0), new Vector2(0, 0.5)];\n var segments = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 12;\n var phiStart = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var phiLength = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Math.PI * 2;\n\n _classCallCheck(this, LatheGeometry);\n\n _this62 = _super71.call(this);\n _this62.type = 'LatheGeometry';\n _this62.parameters = {\n points: points,\n segments: segments,\n phiStart: phiStart,\n phiLength: phiLength\n };\n segments = Math.floor(segments); // clamp phiLength so it's in range of [ 0, 2PI ]\n\n phiLength = clamp(phiLength, 0, Math.PI * 2); // buffers\n\n var indices = [];\n var vertices = [];\n var uvs = [];\n var initNormals = [];\n var normals = []; // helper variables\n\n var inverseSegments = 1.0 / segments;\n var vertex = new Vector3();\n var uv = new Vector2();\n var normal = new Vector3();\n var curNormal = new Vector3();\n var prevNormal = new Vector3();\n var dx = 0;\n var dy = 0; // pre-compute normals for initial \"meridian\"\n\n for (var j = 0; j <= points.length - 1; j++) {\n switch (j) {\n case 0:\n // special handling for 1st vertex on path\n dx = points[j + 1].x - points[j].x;\n dy = points[j + 1].y - points[j].y;\n normal.x = dy * 1.0;\n normal.y = -dx;\n normal.z = dy * 0.0;\n prevNormal.copy(normal);\n normal.normalize();\n initNormals.push(normal.x, normal.y, normal.z);\n break;\n\n case points.length - 1:\n // special handling for last Vertex on path\n initNormals.push(prevNormal.x, prevNormal.y, prevNormal.z);\n break;\n\n default:\n // default handling for all vertices in between\n dx = points[j + 1].x - points[j].x;\n dy = points[j + 1].y - points[j].y;\n normal.x = dy * 1.0;\n normal.y = -dx;\n normal.z = dy * 0.0;\n curNormal.copy(normal);\n normal.x += prevNormal.x;\n normal.y += prevNormal.y;\n normal.z += prevNormal.z;\n normal.normalize();\n initNormals.push(normal.x, normal.y, normal.z);\n prevNormal.copy(curNormal);\n }\n } // generate vertices, uvs and normals\n\n\n for (var i = 0; i <= segments; i++) {\n var phi = phiStart + i * inverseSegments * phiLength;\n var sin = Math.sin(phi);\n var cos = Math.cos(phi);\n\n for (var _j5 = 0; _j5 <= points.length - 1; _j5++) {\n // vertex\n vertex.x = points[_j5].x * sin;\n vertex.y = points[_j5].y;\n vertex.z = points[_j5].x * cos;\n vertices.push(vertex.x, vertex.y, vertex.z); // uv\n\n uv.x = i / segments;\n uv.y = _j5 / (points.length - 1);\n uvs.push(uv.x, uv.y); // normal\n\n var x = initNormals[3 * _j5 + 0] * sin;\n var y = initNormals[3 * _j5 + 1];\n var z = initNormals[3 * _j5 + 0] * cos;\n normals.push(x, y, z);\n }\n } // indices\n\n\n for (var _i64 = 0; _i64 < segments; _i64++) {\n for (var _j6 = 0; _j6 < points.length - 1; _j6++) {\n var base = _j6 + _i64 * points.length;\n var a = base;\n var b = base + points.length;\n var c = base + points.length + 1;\n var d = base + 1; // faces\n\n indices.push(a, b, d);\n indices.push(c, d, b);\n }\n } // build geometry\n\n\n _this62.setIndex(indices);\n\n _this62.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n\n _this62.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\n\n _this62.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n\n return _this62;\n }\n\n _createClass(LatheGeometry, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(LatheGeometry.prototype), \"copy\", this).call(this, source);\n\n this.parameters = Object.assign({}, source.parameters);\n return this;\n }\n }], [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new LatheGeometry(data.points, data.segments, data.phiStart, data.phiLength);\n }\n }]);\n\n return LatheGeometry;\n}(BufferGeometry);\n\nvar CapsuleGeometry = /*#__PURE__*/function (_LatheGeometry) {\n _inherits(CapsuleGeometry, _LatheGeometry);\n\n var _super72 = _createSuper(CapsuleGeometry);\n\n function CapsuleGeometry() {\n var _this63;\n\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var capSegments = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 4;\n var radialSegments = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 8;\n\n _classCallCheck(this, CapsuleGeometry);\n\n var path = new Path();\n path.absarc(0, -length / 2, radius, Math.PI * 1.5, 0);\n path.absarc(0, length / 2, radius, 0, Math.PI * 0.5);\n _this63 = _super72.call(this, path.getPoints(capSegments), radialSegments);\n _this63.type = 'CapsuleGeometry';\n _this63.parameters = {\n radius: radius,\n height: length,\n capSegments: capSegments,\n radialSegments: radialSegments\n };\n return _this63;\n }\n\n _createClass(CapsuleGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new CapsuleGeometry(data.radius, data.length, data.capSegments, data.radialSegments);\n }\n }]);\n\n return CapsuleGeometry;\n}(LatheGeometry);\n\nvar CircleGeometry = /*#__PURE__*/function (_BufferGeometry4) {\n _inherits(CircleGeometry, _BufferGeometry4);\n\n var _super73 = _createSuper(CircleGeometry);\n\n function CircleGeometry() {\n var _this64;\n\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var segments = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 32;\n var thetaStart = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var thetaLength = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Math.PI * 2;\n\n _classCallCheck(this, CircleGeometry);\n\n _this64 = _super73.call(this);\n _this64.type = 'CircleGeometry';\n _this64.parameters = {\n radius: radius,\n segments: segments,\n thetaStart: thetaStart,\n thetaLength: thetaLength\n };\n segments = Math.max(3, segments); // buffers\n\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = []; // helper variables\n\n var vertex = new Vector3();\n var uv = new Vector2(); // center point\n\n vertices.push(0, 0, 0);\n normals.push(0, 0, 1);\n uvs.push(0.5, 0.5);\n\n for (var s = 0, i = 3; s <= segments; s++, i += 3) {\n var segment = thetaStart + s / segments * thetaLength; // vertex\n\n vertex.x = radius * Math.cos(segment);\n vertex.y = radius * Math.sin(segment);\n vertices.push(vertex.x, vertex.y, vertex.z); // normal\n\n normals.push(0, 0, 1); // uvs\n\n uv.x = (vertices[i] / radius + 1) / 2;\n uv.y = (vertices[i + 1] / radius + 1) / 2;\n uvs.push(uv.x, uv.y);\n } // indices\n\n\n for (var _i65 = 1; _i65 <= segments; _i65++) {\n indices.push(_i65, _i65 + 1, 0);\n } // build geometry\n\n\n _this64.setIndex(indices);\n\n _this64.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n\n _this64.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n\n _this64.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\n\n return _this64;\n }\n\n _createClass(CircleGeometry, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(CircleGeometry.prototype), \"copy\", this).call(this, source);\n\n this.parameters = Object.assign({}, source.parameters);\n return this;\n }\n }], [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new CircleGeometry(data.radius, data.segments, data.thetaStart, data.thetaLength);\n }\n }]);\n\n return CircleGeometry;\n}(BufferGeometry);\n\nvar CylinderGeometry = /*#__PURE__*/function (_BufferGeometry5) {\n _inherits(CylinderGeometry, _BufferGeometry5);\n\n var _super74 = _createSuper(CylinderGeometry);\n\n function CylinderGeometry() {\n var _this65;\n\n var radiusTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var radiusBottom = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var height = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var radialSegments = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 32;\n var heightSegments = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var openEnded = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;\n var thetaStart = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 0;\n var thetaLength = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : Math.PI * 2;\n\n _classCallCheck(this, CylinderGeometry);\n\n _this65 = _super74.call(this);\n _this65.type = 'CylinderGeometry';\n _this65.parameters = {\n radiusTop: radiusTop,\n radiusBottom: radiusBottom,\n height: height,\n radialSegments: radialSegments,\n heightSegments: heightSegments,\n openEnded: openEnded,\n thetaStart: thetaStart,\n thetaLength: thetaLength\n };\n\n var scope = _assertThisInitialized(_this65);\n\n radialSegments = Math.floor(radialSegments);\n heightSegments = Math.floor(heightSegments); // buffers\n\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = []; // helper variables\n\n var index = 0;\n var indexArray = [];\n var halfHeight = height / 2;\n var groupStart = 0; // generate geometry\n\n generateTorso();\n\n if (openEnded === false) {\n if (radiusTop > 0) generateCap(true);\n if (radiusBottom > 0) generateCap(false);\n } // build geometry\n\n\n _this65.setIndex(indices);\n\n _this65.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n\n _this65.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n\n _this65.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\n\n function generateTorso() {\n var normal = new Vector3();\n var vertex = new Vector3();\n var groupCount = 0; // this will be used to calculate the normal\n\n var slope = (radiusBottom - radiusTop) / height; // generate vertices, normals and uvs\n\n for (var y = 0; y <= heightSegments; y++) {\n var indexRow = [];\n var v = y / heightSegments; // calculate the radius of the current row\n\n var radius = v * (radiusBottom - radiusTop) + radiusTop;\n\n for (var x = 0; x <= radialSegments; x++) {\n var u = x / radialSegments;\n var theta = u * thetaLength + thetaStart;\n var sinTheta = Math.sin(theta);\n var cosTheta = Math.cos(theta); // vertex\n\n vertex.x = radius * sinTheta;\n vertex.y = -v * height + halfHeight;\n vertex.z = radius * cosTheta;\n vertices.push(vertex.x, vertex.y, vertex.z); // normal\n\n normal.set(sinTheta, slope, cosTheta).normalize();\n normals.push(normal.x, normal.y, normal.z); // uv\n\n uvs.push(u, 1 - v); // save index of vertex in respective row\n\n indexRow.push(index++);\n } // now save vertices of the row in our index array\n\n\n indexArray.push(indexRow);\n } // generate indices\n\n\n for (var _x4 = 0; _x4 < radialSegments; _x4++) {\n for (var _y2 = 0; _y2 < heightSegments; _y2++) {\n // we use the index array to access the correct indices\n var a = indexArray[_y2][_x4];\n var b = indexArray[_y2 + 1][_x4];\n var c = indexArray[_y2 + 1][_x4 + 1];\n var d = indexArray[_y2][_x4 + 1]; // faces\n\n indices.push(a, b, d);\n indices.push(b, c, d); // update group counter\n\n groupCount += 6;\n }\n } // add a group to the geometry. this will ensure multi material support\n\n\n scope.addGroup(groupStart, groupCount, 0); // calculate new start value for groups\n\n groupStart += groupCount;\n }\n\n function generateCap(top) {\n // save the index of the first center vertex\n var centerIndexStart = index;\n var uv = new Vector2();\n var vertex = new Vector3();\n var groupCount = 0;\n var radius = top === true ? radiusTop : radiusBottom;\n var sign = top === true ? 1 : -1; // first we generate the center vertex data of the cap.\n // because the geometry needs one set of uvs per face,\n // we must generate a center vertex per face/segment\n\n for (var x = 1; x <= radialSegments; x++) {\n // vertex\n vertices.push(0, halfHeight * sign, 0); // normal\n\n normals.push(0, sign, 0); // uv\n\n uvs.push(0.5, 0.5); // increase index\n\n index++;\n } // save the index of the last center vertex\n\n\n var centerIndexEnd = index; // now we generate the surrounding vertices, normals and uvs\n\n for (var _x5 = 0; _x5 <= radialSegments; _x5++) {\n var u = _x5 / radialSegments;\n var theta = u * thetaLength + thetaStart;\n var cosTheta = Math.cos(theta);\n var sinTheta = Math.sin(theta); // vertex\n\n vertex.x = radius * sinTheta;\n vertex.y = halfHeight * sign;\n vertex.z = radius * cosTheta;\n vertices.push(vertex.x, vertex.y, vertex.z); // normal\n\n normals.push(0, sign, 0); // uv\n\n uv.x = cosTheta * 0.5 + 0.5;\n uv.y = sinTheta * 0.5 * sign + 0.5;\n uvs.push(uv.x, uv.y); // increase index\n\n index++;\n } // generate indices\n\n\n for (var _x6 = 0; _x6 < radialSegments; _x6++) {\n var c = centerIndexStart + _x6;\n var i = centerIndexEnd + _x6;\n\n if (top === true) {\n // face top\n indices.push(i, i + 1, c);\n } else {\n // face bottom\n indices.push(i + 1, i, c);\n }\n\n groupCount += 3;\n } // add a group to the geometry. this will ensure multi material support\n\n\n scope.addGroup(groupStart, groupCount, top === true ? 1 : 2); // calculate new start value for groups\n\n groupStart += groupCount;\n }\n\n return _this65;\n }\n\n _createClass(CylinderGeometry, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(CylinderGeometry.prototype), \"copy\", this).call(this, source);\n\n this.parameters = Object.assign({}, source.parameters);\n return this;\n }\n }], [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new CylinderGeometry(data.radiusTop, data.radiusBottom, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength);\n }\n }]);\n\n return CylinderGeometry;\n}(BufferGeometry);\n\nvar ConeGeometry = /*#__PURE__*/function (_CylinderGeometry) {\n _inherits(ConeGeometry, _CylinderGeometry);\n\n var _super75 = _createSuper(ConeGeometry);\n\n function ConeGeometry() {\n var _this66;\n\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var radialSegments = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 32;\n var heightSegments = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n var openEnded = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n var thetaStart = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n var thetaLength = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : Math.PI * 2;\n\n _classCallCheck(this, ConeGeometry);\n\n _this66 = _super75.call(this, 0, radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength);\n _this66.type = 'ConeGeometry';\n _this66.parameters = {\n radius: radius,\n height: height,\n radialSegments: radialSegments,\n heightSegments: heightSegments,\n openEnded: openEnded,\n thetaStart: thetaStart,\n thetaLength: thetaLength\n };\n return _this66;\n }\n\n _createClass(ConeGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new ConeGeometry(data.radius, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength);\n }\n }]);\n\n return ConeGeometry;\n}(CylinderGeometry);\n\nvar PolyhedronGeometry = /*#__PURE__*/function (_BufferGeometry6) {\n _inherits(PolyhedronGeometry, _BufferGeometry6);\n\n var _super76 = _createSuper(PolyhedronGeometry);\n\n function PolyhedronGeometry() {\n var _this67;\n\n var vertices = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var indices = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var radius = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var detail = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n\n _classCallCheck(this, PolyhedronGeometry);\n\n _this67 = _super76.call(this);\n _this67.type = 'PolyhedronGeometry';\n _this67.parameters = {\n vertices: vertices,\n indices: indices,\n radius: radius,\n detail: detail\n }; // default buffer data\n\n var vertexBuffer = [];\n var uvBuffer = []; // the subdivision creates the vertex buffer data\n\n subdivide(detail); // all vertices should lie on a conceptual sphere with a given radius\n\n applyRadius(radius); // finally, create the uv data\n\n generateUVs(); // build non-indexed geometry\n\n _this67.setAttribute('position', new Float32BufferAttribute(vertexBuffer, 3));\n\n _this67.setAttribute('normal', new Float32BufferAttribute(vertexBuffer.slice(), 3));\n\n _this67.setAttribute('uv', new Float32BufferAttribute(uvBuffer, 2));\n\n if (detail === 0) {\n _this67.computeVertexNormals(); // flat normals\n\n } else {\n _this67.normalizeNormals(); // smooth normals\n\n } // helper functions\n\n\n function subdivide(detail) {\n var a = new Vector3();\n var b = new Vector3();\n var c = new Vector3(); // iterate over all faces and apply a subdivision with the given detail value\n\n for (var i = 0; i < indices.length; i += 3) {\n // get the vertices of the face\n getVertexByIndex(indices[i + 0], a);\n getVertexByIndex(indices[i + 1], b);\n getVertexByIndex(indices[i + 2], c); // perform subdivision\n\n subdivideFace(a, b, c, detail);\n }\n }\n\n function subdivideFace(a, b, c, detail) {\n var cols = detail + 1; // we use this multidimensional array as a data structure for creating the subdivision\n\n var v = []; // construct all of the vertices for this subdivision\n\n for (var i = 0; i <= cols; i++) {\n v[i] = [];\n var aj = a.clone().lerp(c, i / cols);\n var bj = b.clone().lerp(c, i / cols);\n var rows = cols - i;\n\n for (var j = 0; j <= rows; j++) {\n if (j === 0 && i === cols) {\n v[i][j] = aj;\n } else {\n v[i][j] = aj.clone().lerp(bj, j / rows);\n }\n }\n } // construct all of the faces\n\n\n for (var _i66 = 0; _i66 < cols; _i66++) {\n for (var _j7 = 0; _j7 < 2 * (cols - _i66) - 1; _j7++) {\n var k = Math.floor(_j7 / 2);\n\n if (_j7 % 2 === 0) {\n pushVertex(v[_i66][k + 1]);\n pushVertex(v[_i66 + 1][k]);\n pushVertex(v[_i66][k]);\n } else {\n pushVertex(v[_i66][k + 1]);\n pushVertex(v[_i66 + 1][k + 1]);\n pushVertex(v[_i66 + 1][k]);\n }\n }\n }\n }\n\n function applyRadius(radius) {\n var vertex = new Vector3(); // iterate over the entire buffer and apply the radius to each vertex\n\n for (var i = 0; i < vertexBuffer.length; i += 3) {\n vertex.x = vertexBuffer[i + 0];\n vertex.y = vertexBuffer[i + 1];\n vertex.z = vertexBuffer[i + 2];\n vertex.normalize().multiplyScalar(radius);\n vertexBuffer[i + 0] = vertex.x;\n vertexBuffer[i + 1] = vertex.y;\n vertexBuffer[i + 2] = vertex.z;\n }\n }\n\n function generateUVs() {\n var vertex = new Vector3();\n\n for (var i = 0; i < vertexBuffer.length; i += 3) {\n vertex.x = vertexBuffer[i + 0];\n vertex.y = vertexBuffer[i + 1];\n vertex.z = vertexBuffer[i + 2];\n var u = azimuth(vertex) / 2 / Math.PI + 0.5;\n var v = inclination(vertex) / Math.PI + 0.5;\n uvBuffer.push(u, 1 - v);\n }\n\n correctUVs();\n correctSeam();\n }\n\n function correctSeam() {\n // handle case when face straddles the seam, see #3269\n for (var i = 0; i < uvBuffer.length; i += 6) {\n // uv data of a single face\n var x0 = uvBuffer[i + 0];\n var x1 = uvBuffer[i + 2];\n var x2 = uvBuffer[i + 4];\n var max = Math.max(x0, x1, x2);\n var min = Math.min(x0, x1, x2); // 0.9 is somewhat arbitrary\n\n if (max > 0.9 && min < 0.1) {\n if (x0 < 0.2) uvBuffer[i + 0] += 1;\n if (x1 < 0.2) uvBuffer[i + 2] += 1;\n if (x2 < 0.2) uvBuffer[i + 4] += 1;\n }\n }\n }\n\n function pushVertex(vertex) {\n vertexBuffer.push(vertex.x, vertex.y, vertex.z);\n }\n\n function getVertexByIndex(index, vertex) {\n var stride = index * 3;\n vertex.x = vertices[stride + 0];\n vertex.y = vertices[stride + 1];\n vertex.z = vertices[stride + 2];\n }\n\n function correctUVs() {\n var a = new Vector3();\n var b = new Vector3();\n var c = new Vector3();\n var centroid = new Vector3();\n var uvA = new Vector2();\n var uvB = new Vector2();\n var uvC = new Vector2();\n\n for (var i = 0, j = 0; i < vertexBuffer.length; i += 9, j += 6) {\n a.set(vertexBuffer[i + 0], vertexBuffer[i + 1], vertexBuffer[i + 2]);\n b.set(vertexBuffer[i + 3], vertexBuffer[i + 4], vertexBuffer[i + 5]);\n c.set(vertexBuffer[i + 6], vertexBuffer[i + 7], vertexBuffer[i + 8]);\n uvA.set(uvBuffer[j + 0], uvBuffer[j + 1]);\n uvB.set(uvBuffer[j + 2], uvBuffer[j + 3]);\n uvC.set(uvBuffer[j + 4], uvBuffer[j + 5]);\n centroid.copy(a).add(b).add(c).divideScalar(3);\n var azi = azimuth(centroid);\n correctUV(uvA, j + 0, a, azi);\n correctUV(uvB, j + 2, b, azi);\n correctUV(uvC, j + 4, c, azi);\n }\n }\n\n function correctUV(uv, stride, vector, azimuth) {\n if (azimuth < 0 && uv.x === 1) {\n uvBuffer[stride] = uv.x - 1;\n }\n\n if (vector.x === 0 && vector.z === 0) {\n uvBuffer[stride] = azimuth / 2 / Math.PI + 0.5;\n }\n } // Angle around the Y axis, counter-clockwise when looking from above.\n\n\n function azimuth(vector) {\n return Math.atan2(vector.z, -vector.x);\n } // Angle above the XZ plane.\n\n\n function inclination(vector) {\n return Math.atan2(-vector.y, Math.sqrt(vector.x * vector.x + vector.z * vector.z));\n }\n\n return _this67;\n }\n\n _createClass(PolyhedronGeometry, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(PolyhedronGeometry.prototype), \"copy\", this).call(this, source);\n\n this.parameters = Object.assign({}, source.parameters);\n return this;\n }\n }], [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new PolyhedronGeometry(data.vertices, data.indices, data.radius, data.details);\n }\n }]);\n\n return PolyhedronGeometry;\n}(BufferGeometry);\n\nvar DodecahedronGeometry = /*#__PURE__*/function (_PolyhedronGeometry) {\n _inherits(DodecahedronGeometry, _PolyhedronGeometry);\n\n var _super77 = _createSuper(DodecahedronGeometry);\n\n function DodecahedronGeometry() {\n var _this68;\n\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, DodecahedronGeometry);\n\n var t = (1 + Math.sqrt(5)) / 2;\n var r = 1 / t;\n var vertices = [// (±1, ±1, ±1)\n -1, -1, -1, -1, -1, 1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, 1, 1, 1, -1, 1, 1, 1, // (0, ±1/φ, ±φ)\n 0, -r, -t, 0, -r, t, 0, r, -t, 0, r, t, // (±1/φ, ±φ, 0)\n -r, -t, 0, -r, t, 0, r, -t, 0, r, t, 0, // (±φ, 0, ±1/φ)\n -t, 0, -r, t, 0, -r, -t, 0, r, t, 0, r];\n var indices = [3, 11, 7, 3, 7, 15, 3, 15, 13, 7, 19, 17, 7, 17, 6, 7, 6, 15, 17, 4, 8, 17, 8, 10, 17, 10, 6, 8, 0, 16, 8, 16, 2, 8, 2, 10, 0, 12, 1, 0, 1, 18, 0, 18, 16, 6, 10, 2, 6, 2, 13, 6, 13, 15, 2, 16, 18, 2, 18, 3, 2, 3, 13, 18, 1, 9, 18, 9, 11, 18, 11, 3, 4, 14, 12, 4, 12, 0, 4, 0, 8, 11, 9, 5, 11, 5, 19, 11, 19, 7, 19, 5, 14, 19, 14, 4, 19, 4, 17, 1, 12, 14, 1, 14, 5, 1, 5, 9];\n _this68 = _super77.call(this, vertices, indices, radius, detail);\n _this68.type = 'DodecahedronGeometry';\n _this68.parameters = {\n radius: radius,\n detail: detail\n };\n return _this68;\n }\n\n _createClass(DodecahedronGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new DodecahedronGeometry(data.radius, data.detail);\n }\n }]);\n\n return DodecahedronGeometry;\n}(PolyhedronGeometry);\n\nvar _v0 = /*@__PURE__*/new Vector3();\n\nvar _v1$1 = /*@__PURE__*/new Vector3();\n\nvar _normal = /*@__PURE__*/new Vector3();\n\nvar _triangle = /*@__PURE__*/new Triangle();\n\nvar EdgesGeometry = /*#__PURE__*/function (_BufferGeometry7) {\n _inherits(EdgesGeometry, _BufferGeometry7);\n\n var _super78 = _createSuper(EdgesGeometry);\n\n function EdgesGeometry() {\n var _this69;\n\n var geometry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var thresholdAngle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n _classCallCheck(this, EdgesGeometry);\n\n _this69 = _super78.call(this);\n _this69.type = 'EdgesGeometry';\n _this69.parameters = {\n geometry: geometry,\n thresholdAngle: thresholdAngle\n };\n\n if (geometry !== null) {\n var precisionPoints = 4;\n var precision = Math.pow(10, precisionPoints);\n var thresholdDot = Math.cos(DEG2RAD * thresholdAngle);\n var indexAttr = geometry.getIndex();\n var positionAttr = geometry.getAttribute('position');\n var indexCount = indexAttr ? indexAttr.count : positionAttr.count;\n var indexArr = [0, 0, 0];\n var vertKeys = ['a', 'b', 'c'];\n var hashes = new Array(3);\n var edgeData = {};\n var vertices = [];\n\n for (var i = 0; i < indexCount; i += 3) {\n if (indexAttr) {\n indexArr[0] = indexAttr.getX(i);\n indexArr[1] = indexAttr.getX(i + 1);\n indexArr[2] = indexAttr.getX(i + 2);\n } else {\n indexArr[0] = i;\n indexArr[1] = i + 1;\n indexArr[2] = i + 2;\n }\n\n var a = _triangle.a,\n b = _triangle.b,\n c = _triangle.c;\n a.fromBufferAttribute(positionAttr, indexArr[0]);\n b.fromBufferAttribute(positionAttr, indexArr[1]);\n c.fromBufferAttribute(positionAttr, indexArr[2]);\n\n _triangle.getNormal(_normal); // create hashes for the edge from the vertices\n\n\n hashes[0] = \"\".concat(Math.round(a.x * precision), \",\").concat(Math.round(a.y * precision), \",\").concat(Math.round(a.z * precision));\n hashes[1] = \"\".concat(Math.round(b.x * precision), \",\").concat(Math.round(b.y * precision), \",\").concat(Math.round(b.z * precision));\n hashes[2] = \"\".concat(Math.round(c.x * precision), \",\").concat(Math.round(c.y * precision), \",\").concat(Math.round(c.z * precision)); // skip degenerate triangles\n\n if (hashes[0] === hashes[1] || hashes[1] === hashes[2] || hashes[2] === hashes[0]) {\n continue;\n } // iterate over every edge\n\n\n for (var j = 0; j < 3; j++) {\n // get the first and next vertex making up the edge\n var jNext = (j + 1) % 3;\n var vecHash0 = hashes[j];\n var vecHash1 = hashes[jNext];\n var v0 = _triangle[vertKeys[j]];\n var v1 = _triangle[vertKeys[jNext]];\n var hash = \"\".concat(vecHash0, \"_\").concat(vecHash1);\n var reverseHash = \"\".concat(vecHash1, \"_\").concat(vecHash0);\n\n if (reverseHash in edgeData && edgeData[reverseHash]) {\n // if we found a sibling edge add it into the vertex array if\n // it meets the angle threshold and delete the edge from the map.\n if (_normal.dot(edgeData[reverseHash].normal) <= thresholdDot) {\n vertices.push(v0.x, v0.y, v0.z);\n vertices.push(v1.x, v1.y, v1.z);\n }\n\n edgeData[reverseHash] = null;\n } else if (!(hash in edgeData)) {\n // if we've already got an edge here then skip adding a new one\n edgeData[hash] = {\n index0: indexArr[j],\n index1: indexArr[jNext],\n normal: _normal.clone()\n };\n }\n }\n } // iterate over all remaining, unmatched edges and add them to the vertex array\n\n\n for (var key in edgeData) {\n if (edgeData[key]) {\n var _edgeData$key = edgeData[key],\n index0 = _edgeData$key.index0,\n index1 = _edgeData$key.index1;\n\n _v0.fromBufferAttribute(positionAttr, index0);\n\n _v1$1.fromBufferAttribute(positionAttr, index1);\n\n vertices.push(_v0.x, _v0.y, _v0.z);\n vertices.push(_v1$1.x, _v1$1.y, _v1$1.z);\n }\n }\n\n _this69.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n }\n\n return _this69;\n }\n\n _createClass(EdgesGeometry, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(EdgesGeometry.prototype), \"copy\", this).call(this, source);\n\n this.parameters = Object.assign({}, source.parameters);\n return this;\n }\n }]);\n\n return EdgesGeometry;\n}(BufferGeometry);\n\nvar Shape = /*#__PURE__*/function (_Path) {\n _inherits(Shape, _Path);\n\n var _super79 = _createSuper(Shape);\n\n function Shape(points) {\n var _this70;\n\n _classCallCheck(this, Shape);\n\n _this70 = _super79.call(this, points);\n _this70.uuid = generateUUID();\n _this70.type = 'Shape';\n _this70.holes = [];\n return _this70;\n }\n\n _createClass(Shape, [{\n key: \"getPointsHoles\",\n value: function getPointsHoles(divisions) {\n var holesPts = [];\n\n for (var i = 0, l = this.holes.length; i < l; i++) {\n holesPts[i] = this.holes[i].getPoints(divisions);\n }\n\n return holesPts;\n } // get points of shape and holes (keypoints based on segments parameter)\n\n }, {\n key: \"extractPoints\",\n value: function extractPoints(divisions) {\n return {\n shape: this.getPoints(divisions),\n holes: this.getPointsHoles(divisions)\n };\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(Shape.prototype), \"copy\", this).call(this, source);\n\n this.holes = [];\n\n for (var i = 0, l = source.holes.length; i < l; i++) {\n var hole = source.holes[i];\n this.holes.push(hole.clone());\n }\n\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var data = _get(_getPrototypeOf(Shape.prototype), \"toJSON\", this).call(this);\n\n data.uuid = this.uuid;\n data.holes = [];\n\n for (var i = 0, l = this.holes.length; i < l; i++) {\n var hole = this.holes[i];\n data.holes.push(hole.toJSON());\n }\n\n return data;\n }\n }, {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n _get(_getPrototypeOf(Shape.prototype), \"fromJSON\", this).call(this, json);\n\n this.uuid = json.uuid;\n this.holes = [];\n\n for (var i = 0, l = json.holes.length; i < l; i++) {\n var hole = json.holes[i];\n this.holes.push(new Path().fromJSON(hole));\n }\n\n return this;\n }\n }]);\n\n return Shape;\n}(Path);\n/**\n * Port from https://github.com/mapbox/earcut (v2.2.4)\n */\n\n\nvar Earcut = {\n triangulate: function triangulate(data, holeIndices) {\n var dim = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 2;\n var hasHoles = holeIndices && holeIndices.length;\n var outerLen = hasHoles ? holeIndices[0] * dim : data.length;\n var outerNode = linkedList(data, 0, outerLen, dim, true);\n var triangles = [];\n if (!outerNode || outerNode.next === outerNode.prev) return triangles;\n var minX, minY, maxX, maxY, x, y, invSize;\n if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim); // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n\n if (data.length > 80 * dim) {\n minX = maxX = data[0];\n minY = maxY = data[1];\n\n for (var i = dim; i < outerLen; i += dim) {\n x = data[i];\n y = data[i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n } // minX, minY and invSize are later used to transform coords into integers for z-order calculation\n\n\n invSize = Math.max(maxX - minX, maxY - minY);\n invSize = invSize !== 0 ? 32767 / invSize : 0;\n }\n\n earcutLinked(outerNode, triangles, dim, minX, minY, invSize, 0);\n return triangles;\n }\n}; // create a circular doubly linked list from polygon points in the specified winding order\n\nfunction linkedList(data, start, end, dim, clockwise) {\n var i, last;\n\n if (clockwise === signedArea(data, start, end, dim) > 0) {\n for (i = start; i < end; i += dim) {\n last = insertNode(i, data[i], data[i + 1], last);\n }\n } else {\n for (i = end - dim; i >= start; i -= dim) {\n last = insertNode(i, data[i], data[i + 1], last);\n }\n }\n\n if (last && equals(last, last.next)) {\n removeNode(last);\n last = last.next;\n }\n\n return last;\n} // eliminate colinear or duplicate points\n\n\nfunction filterPoints(start, end) {\n if (!start) return start;\n if (!end) end = start;\n var p = start,\n again;\n\n do {\n again = false;\n\n if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n removeNode(p);\n p = end = p.prev;\n if (p === p.next) break;\n again = true;\n } else {\n p = p.next;\n }\n } while (again || p !== end);\n\n return end;\n} // main ear slicing loop which triangulates a polygon (given as a linked list)\n\n\nfunction earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {\n if (!ear) return; // interlink polygon nodes in z-order\n\n if (!pass && invSize) indexCurve(ear, minX, minY, invSize);\n var stop = ear,\n prev,\n next; // iterate through ears, slicing them one by one\n\n while (ear.prev !== ear.next) {\n prev = ear.prev;\n next = ear.next;\n\n if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\n // cut off the triangle\n triangles.push(prev.i / dim | 0);\n triangles.push(ear.i / dim | 0);\n triangles.push(next.i / dim | 0);\n removeNode(ear); // skipping the next vertex leads to less sliver triangles\n\n ear = next.next;\n stop = next.next;\n continue;\n }\n\n ear = next; // if we looped through the whole remaining polygon and can't find any more ears\n\n if (ear === stop) {\n // try filtering points and slicing again\n if (!pass) {\n earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1); // if this didn't work, try curing all small self-intersections locally\n } else if (pass === 1) {\n ear = cureLocalIntersections(filterPoints(ear), triangles, dim);\n earcutLinked(ear, triangles, dim, minX, minY, invSize, 2); // as a last resort, try splitting the remaining polygon into two\n } else if (pass === 2) {\n splitEarcut(ear, triangles, dim, minX, minY, invSize);\n }\n\n break;\n }\n }\n} // check whether a polygon node forms a valid ear with adjacent nodes\n\n\nfunction isEar(ear) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n // now make sure we don't have other points inside the potential ear\n\n var ax = a.x,\n bx = b.x,\n cx = c.x,\n ay = a.y,\n by = b.y,\n cy = c.y; // triangle bbox; min & max are calculated like this for speed\n\n var x0 = ax < bx ? ax < cx ? ax : cx : bx < cx ? bx : cx,\n y0 = ay < by ? ay < cy ? ay : cy : by < cy ? by : cy,\n x1 = ax > bx ? ax > cx ? ax : cx : bx > cx ? bx : cx,\n y1 = ay > by ? ay > cy ? ay : cy : by > cy ? by : cy;\n var p = c.next;\n\n while (p !== a) {\n if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.next;\n }\n\n return true;\n}\n\nfunction isEarHashed(ear, minX, minY, invSize) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n var ax = a.x,\n bx = b.x,\n cx = c.x,\n ay = a.y,\n by = b.y,\n cy = c.y; // triangle bbox; min & max are calculated like this for speed\n\n var x0 = ax < bx ? ax < cx ? ax : cx : bx < cx ? bx : cx,\n y0 = ay < by ? ay < cy ? ay : cy : by < cy ? by : cy,\n x1 = ax > bx ? ax > cx ? ax : cx : bx > cx ? bx : cx,\n y1 = ay > by ? ay > cy ? ay : cy : by > cy ? by : cy; // z-order range for the current triangle bbox;\n\n var minZ = zOrder(x0, y0, minX, minY, invSize),\n maxZ = zOrder(x1, y1, minX, minY, invSize);\n var p = ear.prevZ,\n n = ear.nextZ; // look for points inside the triangle in both directions\n\n while (p && p.z >= minZ && n && n.z <= maxZ) {\n if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c && pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c && pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n } // look for remaining points in decreasing z-order\n\n\n while (p && p.z >= minZ) {\n if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c && pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n } // look for remaining points in increasing z-order\n\n\n while (n && n.z <= maxZ) {\n if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c && pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n return true;\n} // go through all polygon nodes and cure small local self-intersections\n\n\nfunction cureLocalIntersections(start, triangles, dim) {\n var p = start;\n\n do {\n var a = p.prev,\n b = p.next.next;\n\n if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\n triangles.push(a.i / dim | 0);\n triangles.push(p.i / dim | 0);\n triangles.push(b.i / dim | 0); // remove two nodes involved\n\n removeNode(p);\n removeNode(p.next);\n p = start = b;\n }\n\n p = p.next;\n } while (p !== start);\n\n return filterPoints(p);\n} // try splitting polygon into two and triangulate them independently\n\n\nfunction splitEarcut(start, triangles, dim, minX, minY, invSize) {\n // look for a valid diagonal that divides the polygon into two\n var a = start;\n\n do {\n var b = a.next.next;\n\n while (b !== a.prev) {\n if (a.i !== b.i && isValidDiagonal(a, b)) {\n // split the polygon in two by the diagonal\n var c = splitPolygon(a, b); // filter colinear points around the cuts\n\n a = filterPoints(a, a.next);\n c = filterPoints(c, c.next); // run earcut on each half\n\n earcutLinked(a, triangles, dim, minX, minY, invSize, 0);\n earcutLinked(c, triangles, dim, minX, minY, invSize, 0);\n return;\n }\n\n b = b.next;\n }\n\n a = a.next;\n } while (a !== start);\n} // link every hole into the outer loop, producing a single-ring polygon without holes\n\n\nfunction eliminateHoles(data, holeIndices, outerNode, dim) {\n var queue = [];\n var i, len, start, end, list;\n\n for (i = 0, len = holeIndices.length; i < len; i++) {\n start = holeIndices[i] * dim;\n end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n list = linkedList(data, start, end, dim, false);\n if (list === list.next) list.steiner = true;\n queue.push(getLeftmost(list));\n }\n\n queue.sort(compareX); // process holes from left to right\n\n for (i = 0; i < queue.length; i++) {\n outerNode = eliminateHole(queue[i], outerNode);\n }\n\n return outerNode;\n}\n\nfunction compareX(a, b) {\n return a.x - b.x;\n} // find a bridge between vertices that connects hole with an outer ring and link it\n\n\nfunction eliminateHole(hole, outerNode) {\n var bridge = findHoleBridge(hole, outerNode);\n\n if (!bridge) {\n return outerNode;\n }\n\n var bridgeReverse = splitPolygon(bridge, hole); // filter collinear points around the cuts\n\n filterPoints(bridgeReverse, bridgeReverse.next);\n return filterPoints(bridge, bridge.next);\n} // David Eberly's algorithm for finding a bridge between hole and outer polygon\n\n\nfunction findHoleBridge(hole, outerNode) {\n var p = outerNode,\n qx = -Infinity,\n m;\n var hx = hole.x,\n hy = hole.y; // find a segment intersected by a ray from the hole's leftmost point to the left;\n // segment's endpoint with lesser x will be potential connection point\n\n do {\n if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\n var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\n\n if (x <= hx && x > qx) {\n qx = x;\n m = p.x < p.next.x ? p : p.next;\n if (x === hx) return m; // hole touches outer segment; pick leftmost endpoint\n }\n }\n\n p = p.next;\n } while (p !== outerNode);\n\n if (!m) return null; // look for points inside the triangle of hole point, segment intersection and endpoint;\n // if there are no points found, we have a valid connection;\n // otherwise choose the point of the minimum angle with the ray as connection point\n\n var stop = m,\n mx = m.x,\n my = m.y;\n var tanMin = Infinity,\n tan;\n p = m;\n\n do {\n if (hx >= p.x && p.x >= mx && hx !== p.x && pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n tan = Math.abs(hy - p.y) / (hx - p.x); // tangential\n\n if (locallyInside(p, hole) && (tan < tanMin || tan === tanMin && (p.x > m.x || p.x === m.x && sectorContainsSector(m, p)))) {\n m = p;\n tanMin = tan;\n }\n }\n\n p = p.next;\n } while (p !== stop);\n\n return m;\n} // whether sector in vertex m contains sector in vertex p in the same coordinates\n\n\nfunction sectorContainsSector(m, p) {\n return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\n} // interlink polygon nodes in z-order\n\n\nfunction indexCurve(start, minX, minY, invSize) {\n var p = start;\n\n do {\n if (p.z === 0) p.z = zOrder(p.x, p.y, minX, minY, invSize);\n p.prevZ = p.prev;\n p.nextZ = p.next;\n p = p.next;\n } while (p !== start);\n\n p.prevZ.nextZ = null;\n p.prevZ = null;\n sortLinked(p);\n} // Simon Tatham's linked list merge sort algorithm\n// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html\n\n\nfunction sortLinked(list) {\n var i,\n p,\n q,\n e,\n tail,\n numMerges,\n pSize,\n qSize,\n inSize = 1;\n\n do {\n p = list;\n list = null;\n tail = null;\n numMerges = 0;\n\n while (p) {\n numMerges++;\n q = p;\n pSize = 0;\n\n for (i = 0; i < inSize; i++) {\n pSize++;\n q = q.nextZ;\n if (!q) break;\n }\n\n qSize = inSize;\n\n while (pSize > 0 || qSize > 0 && q) {\n if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\n e = p;\n p = p.nextZ;\n pSize--;\n } else {\n e = q;\n q = q.nextZ;\n qSize--;\n }\n\n if (tail) tail.nextZ = e;else list = e;\n e.prevZ = tail;\n tail = e;\n }\n\n p = q;\n }\n\n tail.nextZ = null;\n inSize *= 2;\n } while (numMerges > 1);\n\n return list;\n} // z-order of a point given coords and inverse of the longer side of data bbox\n\n\nfunction zOrder(x, y, minX, minY, invSize) {\n // coords are transformed into non-negative 15-bit integer range\n x = (x - minX) * invSize | 0;\n y = (y - minY) * invSize | 0;\n x = (x | x << 8) & 0x00FF00FF;\n x = (x | x << 4) & 0x0F0F0F0F;\n x = (x | x << 2) & 0x33333333;\n x = (x | x << 1) & 0x55555555;\n y = (y | y << 8) & 0x00FF00FF;\n y = (y | y << 4) & 0x0F0F0F0F;\n y = (y | y << 2) & 0x33333333;\n y = (y | y << 1) & 0x55555555;\n return x | y << 1;\n} // find the leftmost node of a polygon ring\n\n\nfunction getLeftmost(start) {\n var p = start,\n leftmost = start;\n\n do {\n if (p.x < leftmost.x || p.x === leftmost.x && p.y < leftmost.y) leftmost = p;\n p = p.next;\n } while (p !== start);\n\n return leftmost;\n} // check if a point lies within a convex triangle\n\n\nfunction pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {\n return (cx - px) * (ay - py) >= (ax - px) * (cy - py) && (ax - px) * (by - py) >= (bx - px) * (ay - py) && (bx - px) * (cy - py) >= (cx - px) * (by - py);\n} // check if a diagonal between two polygon nodes is valid (lies in polygon interior)\n\n\nfunction isValidDiagonal(a, b) {\n return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && ( // dones't intersect other edges\n locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && ( // locally visible\n area(a.prev, a, b.prev) || area(a, b.prev, b)) || // does not create opposite-facing sectors\n equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0); // special zero-length case\n} // signed area of a triangle\n\n\nfunction area(p, q, r) {\n return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n} // check if two points are equal\n\n\nfunction equals(p1, p2) {\n return p1.x === p2.x && p1.y === p2.y;\n} // check if two segments intersect\n\n\nfunction intersects(p1, q1, p2, q2) {\n var o1 = sign(area(p1, q1, p2));\n var o2 = sign(area(p1, q1, q2));\n var o3 = sign(area(p2, q2, p1));\n var o4 = sign(area(p2, q2, q1));\n if (o1 !== o2 && o3 !== o4) return true; // general case\n\n if (o1 === 0 && onSegment(p1, p2, q1)) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1\n\n if (o2 === 0 && onSegment(p1, q2, q1)) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1\n\n if (o3 === 0 && onSegment(p2, p1, q2)) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2\n\n if (o4 === 0 && onSegment(p2, q1, q2)) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2\n\n return false;\n} // for collinear points p, q, r, check if point q lies on segment pr\n\n\nfunction onSegment(p, q, r) {\n return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);\n}\n\nfunction sign(num) {\n return num > 0 ? 1 : num < 0 ? -1 : 0;\n} // check if a polygon diagonal intersects any polygon segments\n\n\nfunction intersectsPolygon(a, b) {\n var p = a;\n\n do {\n if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i && intersects(p, p.next, a, b)) return true;\n p = p.next;\n } while (p !== a);\n\n return false;\n} // check if a polygon diagonal is locally inside the polygon\n\n\nfunction locallyInside(a, b) {\n return area(a.prev, a, a.next) < 0 ? area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 : area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n} // check if the middle point of a polygon diagonal is inside the polygon\n\n\nfunction middleInside(a, b) {\n var p = a,\n inside = false;\n var px = (a.x + b.x) / 2,\n py = (a.y + b.y) / 2;\n\n do {\n if (p.y > py !== p.next.y > py && p.next.y !== p.y && px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x) inside = !inside;\n p = p.next;\n } while (p !== a);\n\n return inside;\n} // link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;\n// if one belongs to the outer ring and another to a hole, it merges it into a single ring\n\n\nfunction splitPolygon(a, b) {\n var a2 = new Node(a.i, a.x, a.y),\n b2 = new Node(b.i, b.x, b.y),\n an = a.next,\n bp = b.prev;\n a.next = b;\n b.prev = a;\n a2.next = an;\n an.prev = a2;\n b2.next = a2;\n a2.prev = b2;\n bp.next = b2;\n b2.prev = bp;\n return b2;\n} // create a node and optionally link it with previous one (in a circular doubly linked list)\n\n\nfunction insertNode(i, x, y, last) {\n var p = new Node(i, x, y);\n\n if (!last) {\n p.prev = p;\n p.next = p;\n } else {\n p.next = last.next;\n p.prev = last;\n last.next.prev = p;\n last.next = p;\n }\n\n return p;\n}\n\nfunction removeNode(p) {\n p.next.prev = p.prev;\n p.prev.next = p.next;\n if (p.prevZ) p.prevZ.nextZ = p.nextZ;\n if (p.nextZ) p.nextZ.prevZ = p.prevZ;\n}\n\nfunction Node(i, x, y) {\n // vertex index in coordinates array\n this.i = i; // vertex coordinates\n\n this.x = x;\n this.y = y; // previous and next vertex nodes in a polygon ring\n\n this.prev = null;\n this.next = null; // z-order curve value\n\n this.z = 0; // previous and next nodes in z-order\n\n this.prevZ = null;\n this.nextZ = null; // indicates whether this is a steiner point\n\n this.steiner = false;\n}\n\nfunction signedArea(data, start, end, dim) {\n var sum = 0;\n\n for (var i = start, j = end - dim; i < end; i += dim) {\n sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\n j = i;\n }\n\n return sum;\n}\n\nvar ShapeUtils = /*#__PURE__*/function () {\n function ShapeUtils() {\n _classCallCheck(this, ShapeUtils);\n }\n\n _createClass(ShapeUtils, null, [{\n key: \"area\",\n value: // calculate area of the contour polygon\n function area(contour) {\n var n = contour.length;\n var a = 0.0;\n\n for (var p = n - 1, q = 0; q < n; p = q++) {\n a += contour[p].x * contour[q].y - contour[q].x * contour[p].y;\n }\n\n return a * 0.5;\n }\n }, {\n key: \"isClockWise\",\n value: function isClockWise(pts) {\n return ShapeUtils.area(pts) < 0;\n }\n }, {\n key: \"triangulateShape\",\n value: function triangulateShape(contour, holes) {\n var vertices = []; // flat array of vertices like [ x0,y0, x1,y1, x2,y2, ... ]\n\n var holeIndices = []; // array of hole indices\n\n var faces = []; // final array of vertex indices like [ [ a,b,d ], [ b,c,d ] ]\n\n removeDupEndPts(contour);\n addContour(vertices, contour); //\n\n var holeIndex = contour.length;\n holes.forEach(removeDupEndPts);\n\n for (var i = 0; i < holes.length; i++) {\n holeIndices.push(holeIndex);\n holeIndex += holes[i].length;\n addContour(vertices, holes[i]);\n } //\n\n\n var triangles = Earcut.triangulate(vertices, holeIndices); //\n\n for (var _i67 = 0; _i67 < triangles.length; _i67 += 3) {\n faces.push(triangles.slice(_i67, _i67 + 3));\n }\n\n return faces;\n }\n }]);\n\n return ShapeUtils;\n}();\n\nfunction removeDupEndPts(points) {\n var l = points.length;\n\n if (l > 2 && points[l - 1].equals(points[0])) {\n points.pop();\n }\n}\n\nfunction addContour(vertices, contour) {\n for (var i = 0; i < contour.length; i++) {\n vertices.push(contour[i].x);\n vertices.push(contour[i].y);\n }\n}\n/**\n * Creates extruded geometry from a path shape.\n *\n * parameters = {\n *\n * curveSegments: , // number of points on the curves\n * steps: , // number of points for z-side extrusions / used for subdividing segments of extrude spline too\n * depth: , // Depth to extrude the shape\n *\n * bevelEnabled: , // turn on bevel\n * bevelThickness: , // how deep into the original shape bevel goes\n * bevelSize: , // how far from shape outline (including bevelOffset) is bevel\n * bevelOffset: , // how far from shape outline does bevel start\n * bevelSegments: , // number of bevel layers\n *\n * extrudePath: // curve to extrude shape along\n *\n * UVGenerator: // object that provides UV generator functions\n *\n * }\n */\n\n\nvar ExtrudeGeometry = /*#__PURE__*/function (_BufferGeometry8) {\n _inherits(ExtrudeGeometry, _BufferGeometry8);\n\n var _super80 = _createSuper(ExtrudeGeometry);\n\n function ExtrudeGeometry() {\n var _this71;\n\n var shapes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Shape([new Vector2(0.5, 0.5), new Vector2(-0.5, 0.5), new Vector2(-0.5, -0.5), new Vector2(0.5, -0.5)]);\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, ExtrudeGeometry);\n\n _this71 = _super80.call(this);\n _this71.type = 'ExtrudeGeometry';\n _this71.parameters = {\n shapes: shapes,\n options: options\n };\n shapes = Array.isArray(shapes) ? shapes : [shapes];\n\n var scope = _assertThisInitialized(_this71);\n\n var verticesArray = [];\n var uvArray = [];\n\n for (var i = 0, l = shapes.length; i < l; i++) {\n var shape = shapes[i];\n addShape(shape);\n } // build geometry\n\n\n _this71.setAttribute('position', new Float32BufferAttribute(verticesArray, 3));\n\n _this71.setAttribute('uv', new Float32BufferAttribute(uvArray, 2));\n\n _this71.computeVertexNormals(); // functions\n\n\n function addShape(shape) {\n var placeholder = []; // options\n\n var curveSegments = options.curveSegments !== undefined ? options.curveSegments : 12;\n var steps = options.steps !== undefined ? options.steps : 1;\n var depth = options.depth !== undefined ? options.depth : 1;\n var bevelEnabled = options.bevelEnabled !== undefined ? options.bevelEnabled : true;\n var bevelThickness = options.bevelThickness !== undefined ? options.bevelThickness : 0.2;\n var bevelSize = options.bevelSize !== undefined ? options.bevelSize : bevelThickness - 0.1;\n var bevelOffset = options.bevelOffset !== undefined ? options.bevelOffset : 0;\n var bevelSegments = options.bevelSegments !== undefined ? options.bevelSegments : 3;\n var extrudePath = options.extrudePath;\n var uvgen = options.UVGenerator !== undefined ? options.UVGenerator : WorldUVGenerator; //\n\n var extrudePts,\n extrudeByPath = false;\n var splineTube, binormal, normal, position2;\n\n if (extrudePath) {\n extrudePts = extrudePath.getSpacedPoints(steps);\n extrudeByPath = true;\n bevelEnabled = false; // bevels not supported for path extrusion\n // SETUP TNB variables\n // TODO1 - have a .isClosed in spline?\n\n splineTube = extrudePath.computeFrenetFrames(steps, false); // console.log(splineTube, 'splineTube', splineTube.normals.length, 'steps', steps, 'extrudePts', extrudePts.length);\n\n binormal = new Vector3();\n normal = new Vector3();\n position2 = new Vector3();\n } // Safeguards if bevels are not enabled\n\n\n if (!bevelEnabled) {\n bevelSegments = 0;\n bevelThickness = 0;\n bevelSize = 0;\n bevelOffset = 0;\n } // Variables initialization\n\n\n var shapePoints = shape.extractPoints(curveSegments);\n var vertices = shapePoints.shape;\n var holes = shapePoints.holes;\n var reverse = !ShapeUtils.isClockWise(vertices);\n\n if (reverse) {\n vertices = vertices.reverse(); // Maybe we should also check if holes are in the opposite direction, just to be safe ...\n\n for (var h = 0, hl = holes.length; h < hl; h++) {\n var ahole = holes[h];\n\n if (ShapeUtils.isClockWise(ahole)) {\n holes[h] = ahole.reverse();\n }\n }\n }\n\n var faces = ShapeUtils.triangulateShape(vertices, holes);\n /* Vertices */\n\n var contour = vertices; // vertices has all points but contour has only points of circumference\n\n for (var _h = 0, _hl = holes.length; _h < _hl; _h++) {\n var _ahole = holes[_h];\n vertices = vertices.concat(_ahole);\n }\n\n function scalePt2(pt, vec, size) {\n if (!vec) console.error('THREE.ExtrudeGeometry: vec does not exist');\n return pt.clone().addScaledVector(vec, size);\n }\n\n var vlen = vertices.length,\n flen = faces.length; // Find directions for point movement\n\n function getBevelVec(inPt, inPrev, inNext) {\n // computes for inPt the corresponding point inPt' on a new contour\n // shifted by 1 unit (length of normalized vector) to the left\n // if we walk along contour clockwise, this new contour is outside the old one\n //\n // inPt' is the intersection of the two lines parallel to the two\n // adjacent edges of inPt at a distance of 1 unit on the left side.\n var v_trans_x, v_trans_y, shrink_by; // resulting translation vector for inPt\n // good reading for geometry algorithms (here: line-line intersection)\n // http://geomalgorithms.com/a05-_intersect-1.html\n\n var v_prev_x = inPt.x - inPrev.x,\n v_prev_y = inPt.y - inPrev.y;\n var v_next_x = inNext.x - inPt.x,\n v_next_y = inNext.y - inPt.y;\n var v_prev_lensq = v_prev_x * v_prev_x + v_prev_y * v_prev_y; // check for collinear edges\n\n var collinear0 = v_prev_x * v_next_y - v_prev_y * v_next_x;\n\n if (Math.abs(collinear0) > Number.EPSILON) {\n // not collinear\n // length of vectors for normalizing\n var v_prev_len = Math.sqrt(v_prev_lensq);\n var v_next_len = Math.sqrt(v_next_x * v_next_x + v_next_y * v_next_y); // shift adjacent points by unit vectors to the left\n\n var ptPrevShift_x = inPrev.x - v_prev_y / v_prev_len;\n var ptPrevShift_y = inPrev.y + v_prev_x / v_prev_len;\n var ptNextShift_x = inNext.x - v_next_y / v_next_len;\n var ptNextShift_y = inNext.y + v_next_x / v_next_len; // scaling factor for v_prev to intersection point\n\n var sf = ((ptNextShift_x - ptPrevShift_x) * v_next_y - (ptNextShift_y - ptPrevShift_y) * v_next_x) / (v_prev_x * v_next_y - v_prev_y * v_next_x); // vector from inPt to intersection point\n\n v_trans_x = ptPrevShift_x + v_prev_x * sf - inPt.x;\n v_trans_y = ptPrevShift_y + v_prev_y * sf - inPt.y; // Don't normalize!, otherwise sharp corners become ugly\n // but prevent crazy spikes\n\n var v_trans_lensq = v_trans_x * v_trans_x + v_trans_y * v_trans_y;\n\n if (v_trans_lensq <= 2) {\n return new Vector2(v_trans_x, v_trans_y);\n } else {\n shrink_by = Math.sqrt(v_trans_lensq / 2);\n }\n } else {\n // handle special case of collinear edges\n var direction_eq = false; // assumes: opposite\n\n if (v_prev_x > Number.EPSILON) {\n if (v_next_x > Number.EPSILON) {\n direction_eq = true;\n }\n } else {\n if (v_prev_x < -Number.EPSILON) {\n if (v_next_x < -Number.EPSILON) {\n direction_eq = true;\n }\n } else {\n if (Math.sign(v_prev_y) === Math.sign(v_next_y)) {\n direction_eq = true;\n }\n }\n }\n\n if (direction_eq) {\n // console.log(\"Warning: lines are a straight sequence\");\n v_trans_x = -v_prev_y;\n v_trans_y = v_prev_x;\n shrink_by = Math.sqrt(v_prev_lensq);\n } else {\n // console.log(\"Warning: lines are a straight spike\");\n v_trans_x = v_prev_x;\n v_trans_y = v_prev_y;\n shrink_by = Math.sqrt(v_prev_lensq / 2);\n }\n }\n\n return new Vector2(v_trans_x / shrink_by, v_trans_y / shrink_by);\n }\n\n var contourMovements = [];\n\n for (var _i68 = 0, il = contour.length, j = il - 1, k = _i68 + 1; _i68 < il; _i68++, j++, k++) {\n if (j === il) j = 0;\n if (k === il) k = 0; // (j)---(i)---(k)\n // console.log('i,j,k', i, j , k)\n\n contourMovements[_i68] = getBevelVec(contour[_i68], contour[j], contour[k]);\n }\n\n var holesMovements = [];\n var oneHoleMovements,\n verticesMovements = contourMovements.concat();\n\n for (var _h2 = 0, _hl2 = holes.length; _h2 < _hl2; _h2++) {\n var _ahole2 = holes[_h2];\n oneHoleMovements = [];\n\n for (var _i69 = 0, _il14 = _ahole2.length, _j8 = _il14 - 1, _k = _i69 + 1; _i69 < _il14; _i69++, _j8++, _k++) {\n if (_j8 === _il14) _j8 = 0;\n if (_k === _il14) _k = 0; // (j)---(i)---(k)\n\n oneHoleMovements[_i69] = getBevelVec(_ahole2[_i69], _ahole2[_j8], _ahole2[_k]);\n }\n\n holesMovements.push(oneHoleMovements);\n verticesMovements = verticesMovements.concat(oneHoleMovements);\n } // Loop bevelSegments, 1 for the front, 1 for the back\n\n\n for (var b = 0; b < bevelSegments; b++) {\n //for ( b = bevelSegments; b > 0; b -- ) {\n var t = b / bevelSegments;\n var z = bevelThickness * Math.cos(t * Math.PI / 2);\n\n var _bs = bevelSize * Math.sin(t * Math.PI / 2) + bevelOffset; // contract shape\n\n\n for (var _i70 = 0, _il15 = contour.length; _i70 < _il15; _i70++) {\n var vert = scalePt2(contour[_i70], contourMovements[_i70], _bs);\n v(vert.x, vert.y, -z);\n } // expand holes\n\n\n for (var _h3 = 0, _hl3 = holes.length; _h3 < _hl3; _h3++) {\n var _ahole3 = holes[_h3];\n oneHoleMovements = holesMovements[_h3];\n\n for (var _i71 = 0, _il16 = _ahole3.length; _i71 < _il16; _i71++) {\n var _vert = scalePt2(_ahole3[_i71], oneHoleMovements[_i71], _bs);\n\n v(_vert.x, _vert.y, -z);\n }\n }\n }\n\n var bs = bevelSize + bevelOffset; // Back facing vertices\n\n for (var _i72 = 0; _i72 < vlen; _i72++) {\n var _vert2 = bevelEnabled ? scalePt2(vertices[_i72], verticesMovements[_i72], bs) : vertices[_i72];\n\n if (!extrudeByPath) {\n v(_vert2.x, _vert2.y, 0);\n } else {\n // v( vert.x, vert.y + extrudePts[ 0 ].y, extrudePts[ 0 ].x );\n normal.copy(splineTube.normals[0]).multiplyScalar(_vert2.x);\n binormal.copy(splineTube.binormals[0]).multiplyScalar(_vert2.y);\n position2.copy(extrudePts[0]).add(normal).add(binormal);\n v(position2.x, position2.y, position2.z);\n }\n } // Add stepped vertices...\n // Including front facing vertices\n\n\n for (var s = 1; s <= steps; s++) {\n for (var _i73 = 0; _i73 < vlen; _i73++) {\n var _vert3 = bevelEnabled ? scalePt2(vertices[_i73], verticesMovements[_i73], bs) : vertices[_i73];\n\n if (!extrudeByPath) {\n v(_vert3.x, _vert3.y, depth / steps * s);\n } else {\n // v( vert.x, vert.y + extrudePts[ s - 1 ].y, extrudePts[ s - 1 ].x );\n normal.copy(splineTube.normals[s]).multiplyScalar(_vert3.x);\n binormal.copy(splineTube.binormals[s]).multiplyScalar(_vert3.y);\n position2.copy(extrudePts[s]).add(normal).add(binormal);\n v(position2.x, position2.y, position2.z);\n }\n }\n } // Add bevel segments planes\n //for ( b = 1; b <= bevelSegments; b ++ ) {\n\n\n for (var _b5 = bevelSegments - 1; _b5 >= 0; _b5--) {\n var _t = _b5 / bevelSegments;\n\n var _z2 = bevelThickness * Math.cos(_t * Math.PI / 2);\n\n var _bs2 = bevelSize * Math.sin(_t * Math.PI / 2) + bevelOffset; // contract shape\n\n\n for (var _i74 = 0, _il17 = contour.length; _i74 < _il17; _i74++) {\n var _vert4 = scalePt2(contour[_i74], contourMovements[_i74], _bs2);\n\n v(_vert4.x, _vert4.y, depth + _z2);\n } // expand holes\n\n\n for (var _h4 = 0, _hl4 = holes.length; _h4 < _hl4; _h4++) {\n var _ahole4 = holes[_h4];\n oneHoleMovements = holesMovements[_h4];\n\n for (var _i75 = 0, _il18 = _ahole4.length; _i75 < _il18; _i75++) {\n var _vert5 = scalePt2(_ahole4[_i75], oneHoleMovements[_i75], _bs2);\n\n if (!extrudeByPath) {\n v(_vert5.x, _vert5.y, depth + _z2);\n } else {\n v(_vert5.x, _vert5.y + extrudePts[steps - 1].y, extrudePts[steps - 1].x + _z2);\n }\n }\n }\n }\n /* Faces */\n // Top and bottom faces\n\n\n buildLidFaces(); // Sides faces\n\n buildSideFaces(); ///// Internal functions\n\n function buildLidFaces() {\n var start = verticesArray.length / 3;\n\n if (bevelEnabled) {\n var layer = 0; // steps + 1\n\n var offset = vlen * layer; // Bottom faces\n\n for (var _i76 = 0; _i76 < flen; _i76++) {\n var face = faces[_i76];\n f3(face[2] + offset, face[1] + offset, face[0] + offset);\n }\n\n layer = steps + bevelSegments * 2;\n offset = vlen * layer; // Top faces\n\n for (var _i77 = 0; _i77 < flen; _i77++) {\n var _face = faces[_i77];\n f3(_face[0] + offset, _face[1] + offset, _face[2] + offset);\n }\n } else {\n // Bottom faces\n for (var _i78 = 0; _i78 < flen; _i78++) {\n var _face2 = faces[_i78];\n f3(_face2[2], _face2[1], _face2[0]);\n } // Top faces\n\n\n for (var _i79 = 0; _i79 < flen; _i79++) {\n var _face3 = faces[_i79];\n f3(_face3[0] + vlen * steps, _face3[1] + vlen * steps, _face3[2] + vlen * steps);\n }\n }\n\n scope.addGroup(start, verticesArray.length / 3 - start, 0);\n } // Create faces for the z-sides of the shape\n\n\n function buildSideFaces() {\n var start = verticesArray.length / 3;\n var layeroffset = 0;\n sidewalls(contour, layeroffset);\n layeroffset += contour.length;\n\n for (var _h5 = 0, _hl5 = holes.length; _h5 < _hl5; _h5++) {\n var _ahole5 = holes[_h5];\n sidewalls(_ahole5, layeroffset); //, true\n\n layeroffset += _ahole5.length;\n }\n\n scope.addGroup(start, verticesArray.length / 3 - start, 1);\n }\n\n function sidewalls(contour, layeroffset) {\n var i = contour.length;\n\n while (--i >= 0) {\n var _j9 = i;\n\n var _k2 = i - 1;\n\n if (_k2 < 0) _k2 = contour.length - 1; //console.log('b', i,j, i-1, k,vertices.length);\n\n for (var _s4 = 0, sl = steps + bevelSegments * 2; _s4 < sl; _s4++) {\n var slen1 = vlen * _s4;\n var slen2 = vlen * (_s4 + 1);\n\n var a = layeroffset + _j9 + slen1,\n _b6 = layeroffset + _k2 + slen1,\n c = layeroffset + _k2 + slen2,\n d = layeroffset + _j9 + slen2;\n\n f4(a, _b6, c, d);\n }\n }\n }\n\n function v(x, y, z) {\n placeholder.push(x);\n placeholder.push(y);\n placeholder.push(z);\n }\n\n function f3(a, b, c) {\n addVertex(a);\n addVertex(b);\n addVertex(c);\n var nextIndex = verticesArray.length / 3;\n var uvs = uvgen.generateTopUV(scope, verticesArray, nextIndex - 3, nextIndex - 2, nextIndex - 1);\n addUV(uvs[0]);\n addUV(uvs[1]);\n addUV(uvs[2]);\n }\n\n function f4(a, b, c, d) {\n addVertex(a);\n addVertex(b);\n addVertex(d);\n addVertex(b);\n addVertex(c);\n addVertex(d);\n var nextIndex = verticesArray.length / 3;\n var uvs = uvgen.generateSideWallUV(scope, verticesArray, nextIndex - 6, nextIndex - 3, nextIndex - 2, nextIndex - 1);\n addUV(uvs[0]);\n addUV(uvs[1]);\n addUV(uvs[3]);\n addUV(uvs[1]);\n addUV(uvs[2]);\n addUV(uvs[3]);\n }\n\n function addVertex(index) {\n verticesArray.push(placeholder[index * 3 + 0]);\n verticesArray.push(placeholder[index * 3 + 1]);\n verticesArray.push(placeholder[index * 3 + 2]);\n }\n\n function addUV(vector2) {\n uvArray.push(vector2.x);\n uvArray.push(vector2.y);\n }\n }\n\n return _this71;\n }\n\n _createClass(ExtrudeGeometry, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(ExtrudeGeometry.prototype), \"copy\", this).call(this, source);\n\n this.parameters = Object.assign({}, source.parameters);\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var data = _get(_getPrototypeOf(ExtrudeGeometry.prototype), \"toJSON\", this).call(this);\n\n var shapes = this.parameters.shapes;\n var options = this.parameters.options;\n return toJSON$1(shapes, options, data);\n }\n }], [{\n key: \"fromJSON\",\n value: function fromJSON(data, shapes) {\n var geometryShapes = [];\n\n for (var j = 0, jl = data.shapes.length; j < jl; j++) {\n var shape = shapes[data.shapes[j]];\n geometryShapes.push(shape);\n }\n\n var extrudePath = data.options.extrudePath;\n\n if (extrudePath !== undefined) {\n data.options.extrudePath = new Curves[extrudePath.type]().fromJSON(extrudePath);\n }\n\n return new ExtrudeGeometry(geometryShapes, data.options);\n }\n }]);\n\n return ExtrudeGeometry;\n}(BufferGeometry);\n\nvar WorldUVGenerator = {\n generateTopUV: function generateTopUV(geometry, vertices, indexA, indexB, indexC) {\n var a_x = vertices[indexA * 3];\n var a_y = vertices[indexA * 3 + 1];\n var b_x = vertices[indexB * 3];\n var b_y = vertices[indexB * 3 + 1];\n var c_x = vertices[indexC * 3];\n var c_y = vertices[indexC * 3 + 1];\n return [new Vector2(a_x, a_y), new Vector2(b_x, b_y), new Vector2(c_x, c_y)];\n },\n generateSideWallUV: function generateSideWallUV(geometry, vertices, indexA, indexB, indexC, indexD) {\n var a_x = vertices[indexA * 3];\n var a_y = vertices[indexA * 3 + 1];\n var a_z = vertices[indexA * 3 + 2];\n var b_x = vertices[indexB * 3];\n var b_y = vertices[indexB * 3 + 1];\n var b_z = vertices[indexB * 3 + 2];\n var c_x = vertices[indexC * 3];\n var c_y = vertices[indexC * 3 + 1];\n var c_z = vertices[indexC * 3 + 2];\n var d_x = vertices[indexD * 3];\n var d_y = vertices[indexD * 3 + 1];\n var d_z = vertices[indexD * 3 + 2];\n\n if (Math.abs(a_y - b_y) < Math.abs(a_x - b_x)) {\n return [new Vector2(a_x, 1 - a_z), new Vector2(b_x, 1 - b_z), new Vector2(c_x, 1 - c_z), new Vector2(d_x, 1 - d_z)];\n } else {\n return [new Vector2(a_y, 1 - a_z), new Vector2(b_y, 1 - b_z), new Vector2(c_y, 1 - c_z), new Vector2(d_y, 1 - d_z)];\n }\n }\n};\n\nfunction toJSON$1(shapes, options, data) {\n data.shapes = [];\n\n if (Array.isArray(shapes)) {\n for (var i = 0, l = shapes.length; i < l; i++) {\n var shape = shapes[i];\n data.shapes.push(shape.uuid);\n }\n } else {\n data.shapes.push(shapes.uuid);\n }\n\n data.options = Object.assign({}, options);\n if (options.extrudePath !== undefined) data.options.extrudePath = options.extrudePath.toJSON();\n return data;\n}\n\nvar IcosahedronGeometry = /*#__PURE__*/function (_PolyhedronGeometry2) {\n _inherits(IcosahedronGeometry, _PolyhedronGeometry2);\n\n var _super81 = _createSuper(IcosahedronGeometry);\n\n function IcosahedronGeometry() {\n var _this72;\n\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, IcosahedronGeometry);\n\n var t = (1 + Math.sqrt(5)) / 2;\n var vertices = [-1, t, 0, 1, t, 0, -1, -t, 0, 1, -t, 0, 0, -1, t, 0, 1, t, 0, -1, -t, 0, 1, -t, t, 0, -1, t, 0, 1, -t, 0, -1, -t, 0, 1];\n var indices = [0, 11, 5, 0, 5, 1, 0, 1, 7, 0, 7, 10, 0, 10, 11, 1, 5, 9, 5, 11, 4, 11, 10, 2, 10, 7, 6, 7, 1, 8, 3, 9, 4, 3, 4, 2, 3, 2, 6, 3, 6, 8, 3, 8, 9, 4, 9, 5, 2, 4, 11, 6, 2, 10, 8, 6, 7, 9, 8, 1];\n _this72 = _super81.call(this, vertices, indices, radius, detail);\n _this72.type = 'IcosahedronGeometry';\n _this72.parameters = {\n radius: radius,\n detail: detail\n };\n return _this72;\n }\n\n _createClass(IcosahedronGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new IcosahedronGeometry(data.radius, data.detail);\n }\n }]);\n\n return IcosahedronGeometry;\n}(PolyhedronGeometry);\n\nvar OctahedronGeometry = /*#__PURE__*/function (_PolyhedronGeometry3) {\n _inherits(OctahedronGeometry, _PolyhedronGeometry3);\n\n var _super82 = _createSuper(OctahedronGeometry);\n\n function OctahedronGeometry() {\n var _this73;\n\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, OctahedronGeometry);\n\n var vertices = [1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1];\n var indices = [0, 2, 4, 0, 4, 3, 0, 3, 5, 0, 5, 2, 1, 2, 5, 1, 5, 3, 1, 3, 4, 1, 4, 2];\n _this73 = _super82.call(this, vertices, indices, radius, detail);\n _this73.type = 'OctahedronGeometry';\n _this73.parameters = {\n radius: radius,\n detail: detail\n };\n return _this73;\n }\n\n _createClass(OctahedronGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new OctahedronGeometry(data.radius, data.detail);\n }\n }]);\n\n return OctahedronGeometry;\n}(PolyhedronGeometry);\n\nvar RingGeometry = /*#__PURE__*/function (_BufferGeometry9) {\n _inherits(RingGeometry, _BufferGeometry9);\n\n var _super83 = _createSuper(RingGeometry);\n\n function RingGeometry() {\n var _this74;\n\n var innerRadius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.5;\n var outerRadius = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var thetaSegments = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 32;\n var phiSegments = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n var thetaStart = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var thetaLength = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : Math.PI * 2;\n\n _classCallCheck(this, RingGeometry);\n\n _this74 = _super83.call(this);\n _this74.type = 'RingGeometry';\n _this74.parameters = {\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n thetaSegments: thetaSegments,\n phiSegments: phiSegments,\n thetaStart: thetaStart,\n thetaLength: thetaLength\n };\n thetaSegments = Math.max(3, thetaSegments);\n phiSegments = Math.max(1, phiSegments); // buffers\n\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = []; // some helper variables\n\n var radius = innerRadius;\n var radiusStep = (outerRadius - innerRadius) / phiSegments;\n var vertex = new Vector3();\n var uv = new Vector2(); // generate vertices, normals and uvs\n\n for (var j = 0; j <= phiSegments; j++) {\n for (var i = 0; i <= thetaSegments; i++) {\n // values are generate from the inside of the ring to the outside\n var segment = thetaStart + i / thetaSegments * thetaLength; // vertex\n\n vertex.x = radius * Math.cos(segment);\n vertex.y = radius * Math.sin(segment);\n vertices.push(vertex.x, vertex.y, vertex.z); // normal\n\n normals.push(0, 0, 1); // uv\n\n uv.x = (vertex.x / outerRadius + 1) / 2;\n uv.y = (vertex.y / outerRadius + 1) / 2;\n uvs.push(uv.x, uv.y);\n } // increase the radius for next row of vertices\n\n\n radius += radiusStep;\n } // indices\n\n\n for (var _j10 = 0; _j10 < phiSegments; _j10++) {\n var thetaSegmentLevel = _j10 * (thetaSegments + 1);\n\n for (var _i80 = 0; _i80 < thetaSegments; _i80++) {\n var _segment = _i80 + thetaSegmentLevel;\n\n var a = _segment;\n var b = _segment + thetaSegments + 1;\n var c = _segment + thetaSegments + 2;\n var d = _segment + 1; // faces\n\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n } // build geometry\n\n\n _this74.setIndex(indices);\n\n _this74.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n\n _this74.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n\n _this74.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\n\n return _this74;\n }\n\n _createClass(RingGeometry, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(RingGeometry.prototype), \"copy\", this).call(this, source);\n\n this.parameters = Object.assign({}, source.parameters);\n return this;\n }\n }], [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new RingGeometry(data.innerRadius, data.outerRadius, data.thetaSegments, data.phiSegments, data.thetaStart, data.thetaLength);\n }\n }]);\n\n return RingGeometry;\n}(BufferGeometry);\n\nvar ShapeGeometry = /*#__PURE__*/function (_BufferGeometry10) {\n _inherits(ShapeGeometry, _BufferGeometry10);\n\n var _super84 = _createSuper(ShapeGeometry);\n\n function ShapeGeometry() {\n var _this75;\n\n var shapes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Shape([new Vector2(0, 0.5), new Vector2(-0.5, -0.5), new Vector2(0.5, -0.5)]);\n var curveSegments = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 12;\n\n _classCallCheck(this, ShapeGeometry);\n\n _this75 = _super84.call(this);\n _this75.type = 'ShapeGeometry';\n _this75.parameters = {\n shapes: shapes,\n curveSegments: curveSegments\n }; // buffers\n\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = []; // helper variables\n\n var groupStart = 0;\n var groupCount = 0; // allow single and array values for \"shapes\" parameter\n\n if (Array.isArray(shapes) === false) {\n addShape(shapes);\n } else {\n for (var i = 0; i < shapes.length; i++) {\n addShape(shapes[i]);\n\n _this75.addGroup(groupStart, groupCount, i); // enables MultiMaterial support\n\n\n groupStart += groupCount;\n groupCount = 0;\n }\n } // build geometry\n\n\n _this75.setIndex(indices);\n\n _this75.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n\n _this75.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n\n _this75.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); // helper functions\n\n\n function addShape(shape) {\n var indexOffset = vertices.length / 3;\n var points = shape.extractPoints(curveSegments);\n var shapeVertices = points.shape;\n var shapeHoles = points.holes; // check direction of vertices\n\n if (ShapeUtils.isClockWise(shapeVertices) === false) {\n shapeVertices = shapeVertices.reverse();\n }\n\n for (var _i81 = 0, l = shapeHoles.length; _i81 < l; _i81++) {\n var shapeHole = shapeHoles[_i81];\n\n if (ShapeUtils.isClockWise(shapeHole) === true) {\n shapeHoles[_i81] = shapeHole.reverse();\n }\n }\n\n var faces = ShapeUtils.triangulateShape(shapeVertices, shapeHoles); // join vertices of inner and outer paths to a single array\n\n for (var _i82 = 0, _l8 = shapeHoles.length; _i82 < _l8; _i82++) {\n var _shapeHole = shapeHoles[_i82];\n shapeVertices = shapeVertices.concat(_shapeHole);\n } // vertices, normals, uvs\n\n\n for (var _i83 = 0, _l9 = shapeVertices.length; _i83 < _l9; _i83++) {\n var _vertex2 = shapeVertices[_i83];\n vertices.push(_vertex2.x, _vertex2.y, 0);\n normals.push(0, 0, 1);\n uvs.push(_vertex2.x, _vertex2.y); // world uvs\n } // indices\n\n\n for (var _i84 = 0, _l10 = faces.length; _i84 < _l10; _i84++) {\n var face = faces[_i84];\n var a = face[0] + indexOffset;\n var b = face[1] + indexOffset;\n var c = face[2] + indexOffset;\n indices.push(a, b, c);\n groupCount += 3;\n }\n }\n\n return _this75;\n }\n\n _createClass(ShapeGeometry, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(ShapeGeometry.prototype), \"copy\", this).call(this, source);\n\n this.parameters = Object.assign({}, source.parameters);\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var data = _get(_getPrototypeOf(ShapeGeometry.prototype), \"toJSON\", this).call(this);\n\n var shapes = this.parameters.shapes;\n return _toJSON(shapes, data);\n }\n }], [{\n key: \"fromJSON\",\n value: function fromJSON(data, shapes) {\n var geometryShapes = [];\n\n for (var j = 0, jl = data.shapes.length; j < jl; j++) {\n var shape = shapes[data.shapes[j]];\n geometryShapes.push(shape);\n }\n\n return new ShapeGeometry(geometryShapes, data.curveSegments);\n }\n }]);\n\n return ShapeGeometry;\n}(BufferGeometry);\n\nfunction _toJSON(shapes, data) {\n data.shapes = [];\n\n if (Array.isArray(shapes)) {\n for (var i = 0, l = shapes.length; i < l; i++) {\n var shape = shapes[i];\n data.shapes.push(shape.uuid);\n }\n } else {\n data.shapes.push(shapes.uuid);\n }\n\n return data;\n}\n\nvar SphereGeometry = /*#__PURE__*/function (_BufferGeometry11) {\n _inherits(SphereGeometry, _BufferGeometry11);\n\n var _super85 = _createSuper(SphereGeometry);\n\n function SphereGeometry() {\n var _this76;\n\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var widthSegments = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 32;\n var heightSegments = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 16;\n var phiStart = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var phiLength = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : Math.PI * 2;\n var thetaStart = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n var thetaLength = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : Math.PI;\n\n _classCallCheck(this, SphereGeometry);\n\n _this76 = _super85.call(this);\n _this76.type = 'SphereGeometry';\n _this76.parameters = {\n radius: radius,\n widthSegments: widthSegments,\n heightSegments: heightSegments,\n phiStart: phiStart,\n phiLength: phiLength,\n thetaStart: thetaStart,\n thetaLength: thetaLength\n };\n widthSegments = Math.max(3, Math.floor(widthSegments));\n heightSegments = Math.max(2, Math.floor(heightSegments));\n var thetaEnd = Math.min(thetaStart + thetaLength, Math.PI);\n var index = 0;\n var grid = [];\n var vertex = new Vector3();\n var normal = new Vector3(); // buffers\n\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = []; // generate vertices, normals and uvs\n\n for (var iy = 0; iy <= heightSegments; iy++) {\n var verticesRow = [];\n var v = iy / heightSegments; // special case for the poles\n\n var uOffset = 0;\n\n if (iy === 0 && thetaStart === 0) {\n uOffset = 0.5 / widthSegments;\n } else if (iy === heightSegments && thetaEnd === Math.PI) {\n uOffset = -0.5 / widthSegments;\n }\n\n for (var ix = 0; ix <= widthSegments; ix++) {\n var u = ix / widthSegments; // vertex\n\n vertex.x = -radius * Math.cos(phiStart + u * phiLength) * Math.sin(thetaStart + v * thetaLength);\n vertex.y = radius * Math.cos(thetaStart + v * thetaLength);\n vertex.z = radius * Math.sin(phiStart + u * phiLength) * Math.sin(thetaStart + v * thetaLength);\n vertices.push(vertex.x, vertex.y, vertex.z); // normal\n\n normal.copy(vertex).normalize();\n normals.push(normal.x, normal.y, normal.z); // uv\n\n uvs.push(u + uOffset, 1 - v);\n verticesRow.push(index++);\n }\n\n grid.push(verticesRow);\n } // indices\n\n\n for (var _iy3 = 0; _iy3 < heightSegments; _iy3++) {\n for (var _ix3 = 0; _ix3 < widthSegments; _ix3++) {\n var a = grid[_iy3][_ix3 + 1];\n var b = grid[_iy3][_ix3];\n var c = grid[_iy3 + 1][_ix3];\n var d = grid[_iy3 + 1][_ix3 + 1];\n if (_iy3 !== 0 || thetaStart > 0) indices.push(a, b, d);\n if (_iy3 !== heightSegments - 1 || thetaEnd < Math.PI) indices.push(b, c, d);\n }\n } // build geometry\n\n\n _this76.setIndex(indices);\n\n _this76.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n\n _this76.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n\n _this76.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\n\n return _this76;\n }\n\n _createClass(SphereGeometry, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(SphereGeometry.prototype), \"copy\", this).call(this, source);\n\n this.parameters = Object.assign({}, source.parameters);\n return this;\n }\n }], [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new SphereGeometry(data.radius, data.widthSegments, data.heightSegments, data.phiStart, data.phiLength, data.thetaStart, data.thetaLength);\n }\n }]);\n\n return SphereGeometry;\n}(BufferGeometry);\n\nvar TetrahedronGeometry = /*#__PURE__*/function (_PolyhedronGeometry4) {\n _inherits(TetrahedronGeometry, _PolyhedronGeometry4);\n\n var _super86 = _createSuper(TetrahedronGeometry);\n\n function TetrahedronGeometry() {\n var _this77;\n\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, TetrahedronGeometry);\n\n var vertices = [1, 1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1];\n var indices = [2, 1, 0, 0, 3, 2, 1, 3, 0, 2, 3, 1];\n _this77 = _super86.call(this, vertices, indices, radius, detail);\n _this77.type = 'TetrahedronGeometry';\n _this77.parameters = {\n radius: radius,\n detail: detail\n };\n return _this77;\n }\n\n _createClass(TetrahedronGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new TetrahedronGeometry(data.radius, data.detail);\n }\n }]);\n\n return TetrahedronGeometry;\n}(PolyhedronGeometry);\n\nvar TorusGeometry = /*#__PURE__*/function (_BufferGeometry12) {\n _inherits(TorusGeometry, _BufferGeometry12);\n\n var _super87 = _createSuper(TorusGeometry);\n\n function TorusGeometry() {\n var _this78;\n\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var tube = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.4;\n var radialSegments = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 12;\n var tubularSegments = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 48;\n var arc = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : Math.PI * 2;\n\n _classCallCheck(this, TorusGeometry);\n\n _this78 = _super87.call(this);\n _this78.type = 'TorusGeometry';\n _this78.parameters = {\n radius: radius,\n tube: tube,\n radialSegments: radialSegments,\n tubularSegments: tubularSegments,\n arc: arc\n };\n radialSegments = Math.floor(radialSegments);\n tubularSegments = Math.floor(tubularSegments); // buffers\n\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = []; // helper variables\n\n var center = new Vector3();\n var vertex = new Vector3();\n var normal = new Vector3(); // generate vertices, normals and uvs\n\n for (var j = 0; j <= radialSegments; j++) {\n for (var i = 0; i <= tubularSegments; i++) {\n var u = i / tubularSegments * arc;\n var v = j / radialSegments * Math.PI * 2; // vertex\n\n vertex.x = (radius + tube * Math.cos(v)) * Math.cos(u);\n vertex.y = (radius + tube * Math.cos(v)) * Math.sin(u);\n vertex.z = tube * Math.sin(v);\n vertices.push(vertex.x, vertex.y, vertex.z); // normal\n\n center.x = radius * Math.cos(u);\n center.y = radius * Math.sin(u);\n normal.subVectors(vertex, center).normalize();\n normals.push(normal.x, normal.y, normal.z); // uv\n\n uvs.push(i / tubularSegments);\n uvs.push(j / radialSegments);\n }\n } // generate indices\n\n\n for (var _j11 = 1; _j11 <= radialSegments; _j11++) {\n for (var _i85 = 1; _i85 <= tubularSegments; _i85++) {\n // indices\n var a = (tubularSegments + 1) * _j11 + _i85 - 1;\n var b = (tubularSegments + 1) * (_j11 - 1) + _i85 - 1;\n var c = (tubularSegments + 1) * (_j11 - 1) + _i85;\n var d = (tubularSegments + 1) * _j11 + _i85; // faces\n\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n } // build geometry\n\n\n _this78.setIndex(indices);\n\n _this78.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n\n _this78.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n\n _this78.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\n\n return _this78;\n }\n\n _createClass(TorusGeometry, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(TorusGeometry.prototype), \"copy\", this).call(this, source);\n\n this.parameters = Object.assign({}, source.parameters);\n return this;\n }\n }], [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new TorusGeometry(data.radius, data.tube, data.radialSegments, data.tubularSegments, data.arc);\n }\n }]);\n\n return TorusGeometry;\n}(BufferGeometry);\n\nvar TorusKnotGeometry = /*#__PURE__*/function (_BufferGeometry13) {\n _inherits(TorusKnotGeometry, _BufferGeometry13);\n\n var _super88 = _createSuper(TorusKnotGeometry);\n\n function TorusKnotGeometry() {\n var _this79;\n\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var tube = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.4;\n var tubularSegments = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 64;\n var radialSegments = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 8;\n var p = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 2;\n var q = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 3;\n\n _classCallCheck(this, TorusKnotGeometry);\n\n _this79 = _super88.call(this);\n _this79.type = 'TorusKnotGeometry';\n _this79.parameters = {\n radius: radius,\n tube: tube,\n tubularSegments: tubularSegments,\n radialSegments: radialSegments,\n p: p,\n q: q\n };\n tubularSegments = Math.floor(tubularSegments);\n radialSegments = Math.floor(radialSegments); // buffers\n\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = []; // helper variables\n\n var vertex = new Vector3();\n var normal = new Vector3();\n var P1 = new Vector3();\n var P2 = new Vector3();\n var B = new Vector3();\n var T = new Vector3();\n var N = new Vector3(); // generate vertices, normals and uvs\n\n for (var i = 0; i <= tubularSegments; ++i) {\n // the radian \"u\" is used to calculate the position on the torus curve of the current tubular segment\n var u = i / tubularSegments * p * Math.PI * 2; // now we calculate two points. P1 is our current position on the curve, P2 is a little farther ahead.\n // these points are used to create a special \"coordinate space\", which is necessary to calculate the correct vertex positions\n\n calculatePositionOnCurve(u, p, q, radius, P1);\n calculatePositionOnCurve(u + 0.01, p, q, radius, P2); // calculate orthonormal basis\n\n T.subVectors(P2, P1);\n N.addVectors(P2, P1);\n B.crossVectors(T, N);\n N.crossVectors(B, T); // normalize B, N. T can be ignored, we don't use it\n\n B.normalize();\n N.normalize();\n\n for (var j = 0; j <= radialSegments; ++j) {\n // now calculate the vertices. they are nothing more than an extrusion of the torus curve.\n // because we extrude a shape in the xy-plane, there is no need to calculate a z-value.\n var v = j / radialSegments * Math.PI * 2;\n var cx = -tube * Math.cos(v);\n var cy = tube * Math.sin(v); // now calculate the final vertex position.\n // first we orient the extrusion with our basis vectors, then we add it to the current position on the curve\n\n vertex.x = P1.x + (cx * N.x + cy * B.x);\n vertex.y = P1.y + (cx * N.y + cy * B.y);\n vertex.z = P1.z + (cx * N.z + cy * B.z);\n vertices.push(vertex.x, vertex.y, vertex.z); // normal (P1 is always the center/origin of the extrusion, thus we can use it to calculate the normal)\n\n normal.subVectors(vertex, P1).normalize();\n normals.push(normal.x, normal.y, normal.z); // uv\n\n uvs.push(i / tubularSegments);\n uvs.push(j / radialSegments);\n }\n } // generate indices\n\n\n for (var _j12 = 1; _j12 <= tubularSegments; _j12++) {\n for (var _i86 = 1; _i86 <= radialSegments; _i86++) {\n // indices\n var a = (radialSegments + 1) * (_j12 - 1) + (_i86 - 1);\n var b = (radialSegments + 1) * _j12 + (_i86 - 1);\n var c = (radialSegments + 1) * _j12 + _i86;\n var d = (radialSegments + 1) * (_j12 - 1) + _i86; // faces\n\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n } // build geometry\n\n\n _this79.setIndex(indices);\n\n _this79.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n\n _this79.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n\n _this79.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); // this function calculates the current position on the torus curve\n\n\n function calculatePositionOnCurve(u, p, q, radius, position) {\n var cu = Math.cos(u);\n var su = Math.sin(u);\n var quOverP = q / p * u;\n var cs = Math.cos(quOverP);\n position.x = radius * (2 + cs) * 0.5 * cu;\n position.y = radius * (2 + cs) * su * 0.5;\n position.z = radius * Math.sin(quOverP) * 0.5;\n }\n\n return _this79;\n }\n\n _createClass(TorusKnotGeometry, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(TorusKnotGeometry.prototype), \"copy\", this).call(this, source);\n\n this.parameters = Object.assign({}, source.parameters);\n return this;\n }\n }], [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new TorusKnotGeometry(data.radius, data.tube, data.tubularSegments, data.radialSegments, data.p, data.q);\n }\n }]);\n\n return TorusKnotGeometry;\n}(BufferGeometry);\n\nvar TubeGeometry = /*#__PURE__*/function (_BufferGeometry14) {\n _inherits(TubeGeometry, _BufferGeometry14);\n\n var _super89 = _createSuper(TubeGeometry);\n\n function TubeGeometry() {\n var _this80;\n\n var path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new QuadraticBezierCurve3(new Vector3(-1, -1, 0), new Vector3(-1, 1, 0), new Vector3(1, 1, 0));\n var tubularSegments = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 64;\n var radius = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var radialSegments = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 8;\n var closed = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n _classCallCheck(this, TubeGeometry);\n\n _this80 = _super89.call(this);\n _this80.type = 'TubeGeometry';\n _this80.parameters = {\n path: path,\n tubularSegments: tubularSegments,\n radius: radius,\n radialSegments: radialSegments,\n closed: closed\n };\n var frames = path.computeFrenetFrames(tubularSegments, closed); // expose internals\n\n _this80.tangents = frames.tangents;\n _this80.normals = frames.normals;\n _this80.binormals = frames.binormals; // helper variables\n\n var vertex = new Vector3();\n var normal = new Vector3();\n var uv = new Vector2();\n var P = new Vector3(); // buffer\n\n var vertices = [];\n var normals = [];\n var uvs = [];\n var indices = []; // create buffer data\n\n generateBufferData(); // build geometry\n\n _this80.setIndex(indices);\n\n _this80.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n\n _this80.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n\n _this80.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); // functions\n\n\n function generateBufferData() {\n for (var i = 0; i < tubularSegments; i++) {\n generateSegment(i);\n } // if the geometry is not closed, generate the last row of vertices and normals\n // at the regular position on the given path\n //\n // if the geometry is closed, duplicate the first row of vertices and normals (uvs will differ)\n\n\n generateSegment(closed === false ? tubularSegments : 0); // uvs are generated in a separate function.\n // this makes it easy compute correct values for closed geometries\n\n generateUVs(); // finally create faces\n\n generateIndices();\n }\n\n function generateSegment(i) {\n // we use getPointAt to sample evenly distributed points from the given path\n P = path.getPointAt(i / tubularSegments, P); // retrieve corresponding normal and binormal\n\n var N = frames.normals[i];\n var B = frames.binormals[i]; // generate normals and vertices for the current segment\n\n for (var j = 0; j <= radialSegments; j++) {\n var v = j / radialSegments * Math.PI * 2;\n var sin = Math.sin(v);\n var cos = -Math.cos(v); // normal\n\n normal.x = cos * N.x + sin * B.x;\n normal.y = cos * N.y + sin * B.y;\n normal.z = cos * N.z + sin * B.z;\n normal.normalize();\n normals.push(normal.x, normal.y, normal.z); // vertex\n\n vertex.x = P.x + radius * normal.x;\n vertex.y = P.y + radius * normal.y;\n vertex.z = P.z + radius * normal.z;\n vertices.push(vertex.x, vertex.y, vertex.z);\n }\n }\n\n function generateIndices() {\n for (var j = 1; j <= tubularSegments; j++) {\n for (var i = 1; i <= radialSegments; i++) {\n var a = (radialSegments + 1) * (j - 1) + (i - 1);\n var b = (radialSegments + 1) * j + (i - 1);\n var c = (radialSegments + 1) * j + i;\n var d = (radialSegments + 1) * (j - 1) + i; // faces\n\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n }\n }\n\n function generateUVs() {\n for (var i = 0; i <= tubularSegments; i++) {\n for (var j = 0; j <= radialSegments; j++) {\n uv.x = i / tubularSegments;\n uv.y = j / radialSegments;\n uvs.push(uv.x, uv.y);\n }\n }\n }\n\n return _this80;\n }\n\n _createClass(TubeGeometry, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(TubeGeometry.prototype), \"copy\", this).call(this, source);\n\n this.parameters = Object.assign({}, source.parameters);\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var data = _get(_getPrototypeOf(TubeGeometry.prototype), \"toJSON\", this).call(this);\n\n data.path = this.parameters.path.toJSON();\n return data;\n }\n }], [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n // This only works for built-in curves (e.g. CatmullRomCurve3).\n // User defined curves or instances of CurvePath will not be deserialized.\n return new TubeGeometry(new Curves[data.path.type]().fromJSON(data.path), data.tubularSegments, data.radius, data.radialSegments, data.closed);\n }\n }]);\n\n return TubeGeometry;\n}(BufferGeometry);\n\nvar WireframeGeometry = /*#__PURE__*/function (_BufferGeometry15) {\n _inherits(WireframeGeometry, _BufferGeometry15);\n\n var _super90 = _createSuper(WireframeGeometry);\n\n function WireframeGeometry() {\n var _this81;\n\n var geometry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n _classCallCheck(this, WireframeGeometry);\n\n _this81 = _super90.call(this);\n _this81.type = 'WireframeGeometry';\n _this81.parameters = {\n geometry: geometry\n };\n\n if (geometry !== null) {\n // buffer\n var vertices = [];\n var edges = new Set(); // helper variables\n\n var start = new Vector3();\n var end = new Vector3();\n\n if (geometry.index !== null) {\n // indexed BufferGeometry\n var position = geometry.attributes.position;\n var indices = geometry.index;\n var groups = geometry.groups;\n\n if (groups.length === 0) {\n groups = [{\n start: 0,\n count: indices.count,\n materialIndex: 0\n }];\n } // create a data structure that contains all edges without duplicates\n\n\n for (var o = 0, ol = groups.length; o < ol; ++o) {\n var group = groups[o];\n var groupStart = group.start;\n var groupCount = group.count;\n\n for (var i = groupStart, l = groupStart + groupCount; i < l; i += 3) {\n for (var j = 0; j < 3; j++) {\n var index1 = indices.getX(i + j);\n var index2 = indices.getX(i + (j + 1) % 3);\n start.fromBufferAttribute(position, index1);\n end.fromBufferAttribute(position, index2);\n\n if (isUniqueEdge(start, end, edges) === true) {\n vertices.push(start.x, start.y, start.z);\n vertices.push(end.x, end.y, end.z);\n }\n }\n }\n }\n } else {\n // non-indexed BufferGeometry\n var _position2 = geometry.attributes.position;\n\n for (var _i87 = 0, _l11 = _position2.count / 3; _i87 < _l11; _i87++) {\n for (var _j13 = 0; _j13 < 3; _j13++) {\n // three edges per triangle, an edge is represented as (index1, index2)\n // e.g. the first triangle has the following edges: (0,1),(1,2),(2,0)\n var _index = 3 * _i87 + _j13;\n\n var _index2 = 3 * _i87 + (_j13 + 1) % 3;\n\n start.fromBufferAttribute(_position2, _index);\n end.fromBufferAttribute(_position2, _index2);\n\n if (isUniqueEdge(start, end, edges) === true) {\n vertices.push(start.x, start.y, start.z);\n vertices.push(end.x, end.y, end.z);\n }\n }\n }\n } // build geometry\n\n\n _this81.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n }\n\n return _this81;\n }\n\n _createClass(WireframeGeometry, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(WireframeGeometry.prototype), \"copy\", this).call(this, source);\n\n this.parameters = Object.assign({}, source.parameters);\n return this;\n }\n }]);\n\n return WireframeGeometry;\n}(BufferGeometry);\n\nfunction isUniqueEdge(start, end, edges) {\n var hash1 = \"\".concat(start.x, \",\").concat(start.y, \",\").concat(start.z, \"-\").concat(end.x, \",\").concat(end.y, \",\").concat(end.z);\n var hash2 = \"\".concat(end.x, \",\").concat(end.y, \",\").concat(end.z, \"-\").concat(start.x, \",\").concat(start.y, \",\").concat(start.z); // coincident edge\n\n if (edges.has(hash1) === true || edges.has(hash2) === true) {\n return false;\n } else {\n edges.add(hash1);\n edges.add(hash2);\n return true;\n }\n}\n\nvar Geometries = /*#__PURE__*/Object.freeze({\n __proto__: null,\n BoxGeometry: BoxGeometry,\n CapsuleGeometry: CapsuleGeometry,\n CircleGeometry: CircleGeometry,\n ConeGeometry: ConeGeometry,\n CylinderGeometry: CylinderGeometry,\n DodecahedronGeometry: DodecahedronGeometry,\n EdgesGeometry: EdgesGeometry,\n ExtrudeGeometry: ExtrudeGeometry,\n IcosahedronGeometry: IcosahedronGeometry,\n LatheGeometry: LatheGeometry,\n OctahedronGeometry: OctahedronGeometry,\n PlaneGeometry: PlaneGeometry,\n PolyhedronGeometry: PolyhedronGeometry,\n RingGeometry: RingGeometry,\n ShapeGeometry: ShapeGeometry,\n SphereGeometry: SphereGeometry,\n TetrahedronGeometry: TetrahedronGeometry,\n TorusGeometry: TorusGeometry,\n TorusKnotGeometry: TorusKnotGeometry,\n TubeGeometry: TubeGeometry,\n WireframeGeometry: WireframeGeometry\n});\n\nvar ShadowMaterial = /*#__PURE__*/function (_Material8) {\n _inherits(ShadowMaterial, _Material8);\n\n var _super91 = _createSuper(ShadowMaterial);\n\n function ShadowMaterial(parameters) {\n var _this82;\n\n _classCallCheck(this, ShadowMaterial);\n\n _this82 = _super91.call(this);\n _this82.isShadowMaterial = true;\n _this82.type = 'ShadowMaterial';\n _this82.color = new Color(0x000000);\n _this82.transparent = true;\n _this82.fog = true;\n\n _this82.setValues(parameters);\n\n return _this82;\n }\n\n _createClass(ShadowMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(ShadowMaterial.prototype), \"copy\", this).call(this, source);\n\n this.color.copy(source.color);\n this.fog = source.fog;\n return this;\n }\n }]);\n\n return ShadowMaterial;\n}(Material);\n\nvar RawShaderMaterial = /*#__PURE__*/function (_ShaderMaterial) {\n _inherits(RawShaderMaterial, _ShaderMaterial);\n\n var _super92 = _createSuper(RawShaderMaterial);\n\n function RawShaderMaterial(parameters) {\n var _this83;\n\n _classCallCheck(this, RawShaderMaterial);\n\n _this83 = _super92.call(this, parameters);\n _this83.isRawShaderMaterial = true;\n _this83.type = 'RawShaderMaterial';\n return _this83;\n }\n\n return _createClass(RawShaderMaterial);\n}(ShaderMaterial);\n\nvar MeshStandardMaterial = /*#__PURE__*/function (_Material9) {\n _inherits(MeshStandardMaterial, _Material9);\n\n var _super93 = _createSuper(MeshStandardMaterial);\n\n function MeshStandardMaterial(parameters) {\n var _this84;\n\n _classCallCheck(this, MeshStandardMaterial);\n\n _this84 = _super93.call(this);\n _this84.isMeshStandardMaterial = true;\n _this84.defines = {\n 'STANDARD': ''\n };\n _this84.type = 'MeshStandardMaterial';\n _this84.color = new Color(0xffffff); // diffuse\n\n _this84.roughness = 1.0;\n _this84.metalness = 0.0;\n _this84.map = null;\n _this84.lightMap = null;\n _this84.lightMapIntensity = 1.0;\n _this84.aoMap = null;\n _this84.aoMapIntensity = 1.0;\n _this84.emissive = new Color(0x000000);\n _this84.emissiveIntensity = 1.0;\n _this84.emissiveMap = null;\n _this84.bumpMap = null;\n _this84.bumpScale = 1;\n _this84.normalMap = null;\n _this84.normalMapType = TangentSpaceNormalMap;\n _this84.normalScale = new Vector2(1, 1);\n _this84.displacementMap = null;\n _this84.displacementScale = 1;\n _this84.displacementBias = 0;\n _this84.roughnessMap = null;\n _this84.metalnessMap = null;\n _this84.alphaMap = null;\n _this84.envMap = null;\n _this84.envMapIntensity = 1.0;\n _this84.wireframe = false;\n _this84.wireframeLinewidth = 1;\n _this84.wireframeLinecap = 'round';\n _this84.wireframeLinejoin = 'round';\n _this84.flatShading = false;\n _this84.fog = true;\n\n _this84.setValues(parameters);\n\n return _this84;\n }\n\n _createClass(MeshStandardMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(MeshStandardMaterial.prototype), \"copy\", this).call(this, source);\n\n this.defines = {\n 'STANDARD': ''\n };\n this.color.copy(source.color);\n this.roughness = source.roughness;\n this.metalness = source.metalness;\n this.map = source.map;\n this.lightMap = source.lightMap;\n this.lightMapIntensity = source.lightMapIntensity;\n this.aoMap = source.aoMap;\n this.aoMapIntensity = source.aoMapIntensity;\n this.emissive.copy(source.emissive);\n this.emissiveMap = source.emissiveMap;\n this.emissiveIntensity = source.emissiveIntensity;\n this.bumpMap = source.bumpMap;\n this.bumpScale = source.bumpScale;\n this.normalMap = source.normalMap;\n this.normalMapType = source.normalMapType;\n this.normalScale.copy(source.normalScale);\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n this.roughnessMap = source.roughnessMap;\n this.metalnessMap = source.metalnessMap;\n this.alphaMap = source.alphaMap;\n this.envMap = source.envMap;\n this.envMapIntensity = source.envMapIntensity;\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n this.wireframeLinecap = source.wireframeLinecap;\n this.wireframeLinejoin = source.wireframeLinejoin;\n this.flatShading = source.flatShading;\n this.fog = source.fog;\n return this;\n }\n }]);\n\n return MeshStandardMaterial;\n}(Material);\n\nvar MeshPhysicalMaterial = /*#__PURE__*/function (_MeshStandardMaterial) {\n _inherits(MeshPhysicalMaterial, _MeshStandardMaterial);\n\n var _super94 = _createSuper(MeshPhysicalMaterial);\n\n function MeshPhysicalMaterial(parameters) {\n var _this85;\n\n _classCallCheck(this, MeshPhysicalMaterial);\n\n _this85 = _super94.call(this);\n _this85.isMeshPhysicalMaterial = true;\n _this85.defines = {\n 'STANDARD': '',\n 'PHYSICAL': ''\n };\n _this85.type = 'MeshPhysicalMaterial';\n _this85.clearcoatMap = null;\n _this85.clearcoatRoughness = 0.0;\n _this85.clearcoatRoughnessMap = null;\n _this85.clearcoatNormalScale = new Vector2(1, 1);\n _this85.clearcoatNormalMap = null;\n _this85.ior = 1.5;\n Object.defineProperty(_assertThisInitialized(_this85), 'reflectivity', {\n get: function get() {\n return clamp(2.5 * (this.ior - 1) / (this.ior + 1), 0, 1);\n },\n set: function set(reflectivity) {\n this.ior = (1 + 0.4 * reflectivity) / (1 - 0.4 * reflectivity);\n }\n });\n _this85.iridescenceMap = null;\n _this85.iridescenceIOR = 1.3;\n _this85.iridescenceThicknessRange = [100, 400];\n _this85.iridescenceThicknessMap = null;\n _this85.sheenColor = new Color(0x000000);\n _this85.sheenColorMap = null;\n _this85.sheenRoughness = 1.0;\n _this85.sheenRoughnessMap = null;\n _this85.transmissionMap = null;\n _this85.thickness = 0;\n _this85.thicknessMap = null;\n _this85.attenuationDistance = Infinity;\n _this85.attenuationColor = new Color(1, 1, 1);\n _this85.specularIntensity = 1.0;\n _this85.specularIntensityMap = null;\n _this85.specularColor = new Color(1, 1, 1);\n _this85.specularColorMap = null;\n _this85._sheen = 0.0;\n _this85._clearcoat = 0;\n _this85._iridescence = 0;\n _this85._transmission = 0;\n\n _this85.setValues(parameters);\n\n return _this85;\n }\n\n _createClass(MeshPhysicalMaterial, [{\n key: \"sheen\",\n get: function get() {\n return this._sheen;\n },\n set: function set(value) {\n if (this._sheen > 0 !== value > 0) {\n this.version++;\n }\n\n this._sheen = value;\n }\n }, {\n key: \"clearcoat\",\n get: function get() {\n return this._clearcoat;\n },\n set: function set(value) {\n if (this._clearcoat > 0 !== value > 0) {\n this.version++;\n }\n\n this._clearcoat = value;\n }\n }, {\n key: \"iridescence\",\n get: function get() {\n return this._iridescence;\n },\n set: function set(value) {\n if (this._iridescence > 0 !== value > 0) {\n this.version++;\n }\n\n this._iridescence = value;\n }\n }, {\n key: \"transmission\",\n get: function get() {\n return this._transmission;\n },\n set: function set(value) {\n if (this._transmission > 0 !== value > 0) {\n this.version++;\n }\n\n this._transmission = value;\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(MeshPhysicalMaterial.prototype), \"copy\", this).call(this, source);\n\n this.defines = {\n 'STANDARD': '',\n 'PHYSICAL': ''\n };\n this.clearcoat = source.clearcoat;\n this.clearcoatMap = source.clearcoatMap;\n this.clearcoatRoughness = source.clearcoatRoughness;\n this.clearcoatRoughnessMap = source.clearcoatRoughnessMap;\n this.clearcoatNormalMap = source.clearcoatNormalMap;\n this.clearcoatNormalScale.copy(source.clearcoatNormalScale);\n this.ior = source.ior;\n this.iridescence = source.iridescence;\n this.iridescenceMap = source.iridescenceMap;\n this.iridescenceIOR = source.iridescenceIOR;\n this.iridescenceThicknessRange = _toConsumableArray(source.iridescenceThicknessRange);\n this.iridescenceThicknessMap = source.iridescenceThicknessMap;\n this.sheen = source.sheen;\n this.sheenColor.copy(source.sheenColor);\n this.sheenColorMap = source.sheenColorMap;\n this.sheenRoughness = source.sheenRoughness;\n this.sheenRoughnessMap = source.sheenRoughnessMap;\n this.transmission = source.transmission;\n this.transmissionMap = source.transmissionMap;\n this.thickness = source.thickness;\n this.thicknessMap = source.thicknessMap;\n this.attenuationDistance = source.attenuationDistance;\n this.attenuationColor.copy(source.attenuationColor);\n this.specularIntensity = source.specularIntensity;\n this.specularIntensityMap = source.specularIntensityMap;\n this.specularColor.copy(source.specularColor);\n this.specularColorMap = source.specularColorMap;\n return this;\n }\n }]);\n\n return MeshPhysicalMaterial;\n}(MeshStandardMaterial);\n\nvar MeshPhongMaterial = /*#__PURE__*/function (_Material10) {\n _inherits(MeshPhongMaterial, _Material10);\n\n var _super95 = _createSuper(MeshPhongMaterial);\n\n function MeshPhongMaterial(parameters) {\n var _this86;\n\n _classCallCheck(this, MeshPhongMaterial);\n\n _this86 = _super95.call(this);\n _this86.isMeshPhongMaterial = true;\n _this86.type = 'MeshPhongMaterial';\n _this86.color = new Color(0xffffff); // diffuse\n\n _this86.specular = new Color(0x111111);\n _this86.shininess = 30;\n _this86.map = null;\n _this86.lightMap = null;\n _this86.lightMapIntensity = 1.0;\n _this86.aoMap = null;\n _this86.aoMapIntensity = 1.0;\n _this86.emissive = new Color(0x000000);\n _this86.emissiveIntensity = 1.0;\n _this86.emissiveMap = null;\n _this86.bumpMap = null;\n _this86.bumpScale = 1;\n _this86.normalMap = null;\n _this86.normalMapType = TangentSpaceNormalMap;\n _this86.normalScale = new Vector2(1, 1);\n _this86.displacementMap = null;\n _this86.displacementScale = 1;\n _this86.displacementBias = 0;\n _this86.specularMap = null;\n _this86.alphaMap = null;\n _this86.envMap = null;\n _this86.combine = MultiplyOperation;\n _this86.reflectivity = 1;\n _this86.refractionRatio = 0.98;\n _this86.wireframe = false;\n _this86.wireframeLinewidth = 1;\n _this86.wireframeLinecap = 'round';\n _this86.wireframeLinejoin = 'round';\n _this86.flatShading = false;\n _this86.fog = true;\n\n _this86.setValues(parameters);\n\n return _this86;\n }\n\n _createClass(MeshPhongMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(MeshPhongMaterial.prototype), \"copy\", this).call(this, source);\n\n this.color.copy(source.color);\n this.specular.copy(source.specular);\n this.shininess = source.shininess;\n this.map = source.map;\n this.lightMap = source.lightMap;\n this.lightMapIntensity = source.lightMapIntensity;\n this.aoMap = source.aoMap;\n this.aoMapIntensity = source.aoMapIntensity;\n this.emissive.copy(source.emissive);\n this.emissiveMap = source.emissiveMap;\n this.emissiveIntensity = source.emissiveIntensity;\n this.bumpMap = source.bumpMap;\n this.bumpScale = source.bumpScale;\n this.normalMap = source.normalMap;\n this.normalMapType = source.normalMapType;\n this.normalScale.copy(source.normalScale);\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n this.specularMap = source.specularMap;\n this.alphaMap = source.alphaMap;\n this.envMap = source.envMap;\n this.combine = source.combine;\n this.reflectivity = source.reflectivity;\n this.refractionRatio = source.refractionRatio;\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n this.wireframeLinecap = source.wireframeLinecap;\n this.wireframeLinejoin = source.wireframeLinejoin;\n this.flatShading = source.flatShading;\n this.fog = source.fog;\n return this;\n }\n }]);\n\n return MeshPhongMaterial;\n}(Material);\n\nvar MeshToonMaterial = /*#__PURE__*/function (_Material11) {\n _inherits(MeshToonMaterial, _Material11);\n\n var _super96 = _createSuper(MeshToonMaterial);\n\n function MeshToonMaterial(parameters) {\n var _this87;\n\n _classCallCheck(this, MeshToonMaterial);\n\n _this87 = _super96.call(this);\n _this87.isMeshToonMaterial = true;\n _this87.defines = {\n 'TOON': ''\n };\n _this87.type = 'MeshToonMaterial';\n _this87.color = new Color(0xffffff);\n _this87.map = null;\n _this87.gradientMap = null;\n _this87.lightMap = null;\n _this87.lightMapIntensity = 1.0;\n _this87.aoMap = null;\n _this87.aoMapIntensity = 1.0;\n _this87.emissive = new Color(0x000000);\n _this87.emissiveIntensity = 1.0;\n _this87.emissiveMap = null;\n _this87.bumpMap = null;\n _this87.bumpScale = 1;\n _this87.normalMap = null;\n _this87.normalMapType = TangentSpaceNormalMap;\n _this87.normalScale = new Vector2(1, 1);\n _this87.displacementMap = null;\n _this87.displacementScale = 1;\n _this87.displacementBias = 0;\n _this87.alphaMap = null;\n _this87.wireframe = false;\n _this87.wireframeLinewidth = 1;\n _this87.wireframeLinecap = 'round';\n _this87.wireframeLinejoin = 'round';\n _this87.fog = true;\n\n _this87.setValues(parameters);\n\n return _this87;\n }\n\n _createClass(MeshToonMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(MeshToonMaterial.prototype), \"copy\", this).call(this, source);\n\n this.color.copy(source.color);\n this.map = source.map;\n this.gradientMap = source.gradientMap;\n this.lightMap = source.lightMap;\n this.lightMapIntensity = source.lightMapIntensity;\n this.aoMap = source.aoMap;\n this.aoMapIntensity = source.aoMapIntensity;\n this.emissive.copy(source.emissive);\n this.emissiveMap = source.emissiveMap;\n this.emissiveIntensity = source.emissiveIntensity;\n this.bumpMap = source.bumpMap;\n this.bumpScale = source.bumpScale;\n this.normalMap = source.normalMap;\n this.normalMapType = source.normalMapType;\n this.normalScale.copy(source.normalScale);\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n this.alphaMap = source.alphaMap;\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n this.wireframeLinecap = source.wireframeLinecap;\n this.wireframeLinejoin = source.wireframeLinejoin;\n this.fog = source.fog;\n return this;\n }\n }]);\n\n return MeshToonMaterial;\n}(Material);\n\nvar MeshNormalMaterial = /*#__PURE__*/function (_Material12) {\n _inherits(MeshNormalMaterial, _Material12);\n\n var _super97 = _createSuper(MeshNormalMaterial);\n\n function MeshNormalMaterial(parameters) {\n var _this88;\n\n _classCallCheck(this, MeshNormalMaterial);\n\n _this88 = _super97.call(this);\n _this88.isMeshNormalMaterial = true;\n _this88.type = 'MeshNormalMaterial';\n _this88.bumpMap = null;\n _this88.bumpScale = 1;\n _this88.normalMap = null;\n _this88.normalMapType = TangentSpaceNormalMap;\n _this88.normalScale = new Vector2(1, 1);\n _this88.displacementMap = null;\n _this88.displacementScale = 1;\n _this88.displacementBias = 0;\n _this88.wireframe = false;\n _this88.wireframeLinewidth = 1;\n _this88.flatShading = false;\n\n _this88.setValues(parameters);\n\n return _this88;\n }\n\n _createClass(MeshNormalMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(MeshNormalMaterial.prototype), \"copy\", this).call(this, source);\n\n this.bumpMap = source.bumpMap;\n this.bumpScale = source.bumpScale;\n this.normalMap = source.normalMap;\n this.normalMapType = source.normalMapType;\n this.normalScale.copy(source.normalScale);\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n this.flatShading = source.flatShading;\n return this;\n }\n }]);\n\n return MeshNormalMaterial;\n}(Material);\n\nvar MeshLambertMaterial = /*#__PURE__*/function (_Material13) {\n _inherits(MeshLambertMaterial, _Material13);\n\n var _super98 = _createSuper(MeshLambertMaterial);\n\n function MeshLambertMaterial(parameters) {\n var _this89;\n\n _classCallCheck(this, MeshLambertMaterial);\n\n _this89 = _super98.call(this);\n _this89.isMeshLambertMaterial = true;\n _this89.type = 'MeshLambertMaterial';\n _this89.color = new Color(0xffffff); // diffuse\n\n _this89.map = null;\n _this89.lightMap = null;\n _this89.lightMapIntensity = 1.0;\n _this89.aoMap = null;\n _this89.aoMapIntensity = 1.0;\n _this89.emissive = new Color(0x000000);\n _this89.emissiveIntensity = 1.0;\n _this89.emissiveMap = null;\n _this89.bumpMap = null;\n _this89.bumpScale = 1;\n _this89.normalMap = null;\n _this89.normalMapType = TangentSpaceNormalMap;\n _this89.normalScale = new Vector2(1, 1);\n _this89.displacementMap = null;\n _this89.displacementScale = 1;\n _this89.displacementBias = 0;\n _this89.specularMap = null;\n _this89.alphaMap = null;\n _this89.envMap = null;\n _this89.combine = MultiplyOperation;\n _this89.reflectivity = 1;\n _this89.refractionRatio = 0.98;\n _this89.wireframe = false;\n _this89.wireframeLinewidth = 1;\n _this89.wireframeLinecap = 'round';\n _this89.wireframeLinejoin = 'round';\n _this89.flatShading = false;\n _this89.fog = true;\n\n _this89.setValues(parameters);\n\n return _this89;\n }\n\n _createClass(MeshLambertMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(MeshLambertMaterial.prototype), \"copy\", this).call(this, source);\n\n this.color.copy(source.color);\n this.map = source.map;\n this.lightMap = source.lightMap;\n this.lightMapIntensity = source.lightMapIntensity;\n this.aoMap = source.aoMap;\n this.aoMapIntensity = source.aoMapIntensity;\n this.emissive.copy(source.emissive);\n this.emissiveMap = source.emissiveMap;\n this.emissiveIntensity = source.emissiveIntensity;\n this.bumpMap = source.bumpMap;\n this.bumpScale = source.bumpScale;\n this.normalMap = source.normalMap;\n this.normalMapType = source.normalMapType;\n this.normalScale.copy(source.normalScale);\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n this.specularMap = source.specularMap;\n this.alphaMap = source.alphaMap;\n this.envMap = source.envMap;\n this.combine = source.combine;\n this.reflectivity = source.reflectivity;\n this.refractionRatio = source.refractionRatio;\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n this.wireframeLinecap = source.wireframeLinecap;\n this.wireframeLinejoin = source.wireframeLinejoin;\n this.flatShading = source.flatShading;\n this.fog = source.fog;\n return this;\n }\n }]);\n\n return MeshLambertMaterial;\n}(Material);\n\nvar MeshMatcapMaterial = /*#__PURE__*/function (_Material14) {\n _inherits(MeshMatcapMaterial, _Material14);\n\n var _super99 = _createSuper(MeshMatcapMaterial);\n\n function MeshMatcapMaterial(parameters) {\n var _this90;\n\n _classCallCheck(this, MeshMatcapMaterial);\n\n _this90 = _super99.call(this);\n _this90.isMeshMatcapMaterial = true;\n _this90.defines = {\n 'MATCAP': ''\n };\n _this90.type = 'MeshMatcapMaterial';\n _this90.color = new Color(0xffffff); // diffuse\n\n _this90.matcap = null;\n _this90.map = null;\n _this90.bumpMap = null;\n _this90.bumpScale = 1;\n _this90.normalMap = null;\n _this90.normalMapType = TangentSpaceNormalMap;\n _this90.normalScale = new Vector2(1, 1);\n _this90.displacementMap = null;\n _this90.displacementScale = 1;\n _this90.displacementBias = 0;\n _this90.alphaMap = null;\n _this90.flatShading = false;\n _this90.fog = true;\n\n _this90.setValues(parameters);\n\n return _this90;\n }\n\n _createClass(MeshMatcapMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(MeshMatcapMaterial.prototype), \"copy\", this).call(this, source);\n\n this.defines = {\n 'MATCAP': ''\n };\n this.color.copy(source.color);\n this.matcap = source.matcap;\n this.map = source.map;\n this.bumpMap = source.bumpMap;\n this.bumpScale = source.bumpScale;\n this.normalMap = source.normalMap;\n this.normalMapType = source.normalMapType;\n this.normalScale.copy(source.normalScale);\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n this.alphaMap = source.alphaMap;\n this.flatShading = source.flatShading;\n this.fog = source.fog;\n return this;\n }\n }]);\n\n return MeshMatcapMaterial;\n}(Material);\n\nvar LineDashedMaterial = /*#__PURE__*/function (_LineBasicMaterial) {\n _inherits(LineDashedMaterial, _LineBasicMaterial);\n\n var _super100 = _createSuper(LineDashedMaterial);\n\n function LineDashedMaterial(parameters) {\n var _this91;\n\n _classCallCheck(this, LineDashedMaterial);\n\n _this91 = _super100.call(this);\n _this91.isLineDashedMaterial = true;\n _this91.type = 'LineDashedMaterial';\n _this91.scale = 1;\n _this91.dashSize = 3;\n _this91.gapSize = 1;\n\n _this91.setValues(parameters);\n\n return _this91;\n }\n\n _createClass(LineDashedMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(LineDashedMaterial.prototype), \"copy\", this).call(this, source);\n\n this.scale = source.scale;\n this.dashSize = source.dashSize;\n this.gapSize = source.gapSize;\n return this;\n }\n }]);\n\n return LineDashedMaterial;\n}(LineBasicMaterial); // same as Array.prototype.slice, but also works on typed arrays\n\n\nfunction arraySlice(array, from, to) {\n if (isTypedArray(array)) {\n // in ios9 array.subarray(from, undefined) will return empty array\n // but array.subarray(from) or array.subarray(from, len) is correct\n return new array.constructor(array.subarray(from, to !== undefined ? to : array.length));\n }\n\n return array.slice(from, to);\n} // converts an array to a specific type\n\n\nfunction convertArray(array, type, forceClone) {\n if (!array || // let 'undefined' and 'null' pass\n !forceClone && array.constructor === type) return array;\n\n if (typeof type.BYTES_PER_ELEMENT === 'number') {\n return new type(array); // create typed array\n }\n\n return Array.prototype.slice.call(array); // create Array\n}\n\nfunction isTypedArray(object) {\n return ArrayBuffer.isView(object) && !(object instanceof DataView);\n} // returns an array by which times and values can be sorted\n\n\nfunction getKeyframeOrder(times) {\n function compareTime(i, j) {\n return times[i] - times[j];\n }\n\n var n = times.length;\n var result = new Array(n);\n\n for (var i = 0; i !== n; ++i) {\n result[i] = i;\n }\n\n result.sort(compareTime);\n return result;\n} // uses the array previously returned by 'getKeyframeOrder' to sort data\n\n\nfunction sortedArray(values, stride, order) {\n var nValues = values.length;\n var result = new values.constructor(nValues);\n\n for (var i = 0, dstOffset = 0; dstOffset !== nValues; ++i) {\n var srcOffset = order[i] * stride;\n\n for (var j = 0; j !== stride; ++j) {\n result[dstOffset++] = values[srcOffset + j];\n }\n }\n\n return result;\n} // function for parsing AOS keyframe formats\n\n\nfunction flattenJSON(jsonKeys, times, values, valuePropertyName) {\n var i = 1,\n key = jsonKeys[0];\n\n while (key !== undefined && key[valuePropertyName] === undefined) {\n key = jsonKeys[i++];\n }\n\n if (key === undefined) return; // no data\n\n var value = key[valuePropertyName];\n if (value === undefined) return; // no data\n\n if (Array.isArray(value)) {\n do {\n value = key[valuePropertyName];\n\n if (value !== undefined) {\n times.push(key.time);\n values.push.apply(values, value); // push all elements\n }\n\n key = jsonKeys[i++];\n } while (key !== undefined);\n } else if (value.toArray !== undefined) {\n // ...assume THREE.Math-ish\n do {\n value = key[valuePropertyName];\n\n if (value !== undefined) {\n times.push(key.time);\n value.toArray(values, values.length);\n }\n\n key = jsonKeys[i++];\n } while (key !== undefined);\n } else {\n // otherwise push as-is\n do {\n value = key[valuePropertyName];\n\n if (value !== undefined) {\n times.push(key.time);\n values.push(value);\n }\n\n key = jsonKeys[i++];\n } while (key !== undefined);\n }\n}\n\nfunction subclip(sourceClip, name, startFrame, endFrame) {\n var fps = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 30;\n var clip = sourceClip.clone();\n clip.name = name;\n var tracks = [];\n\n for (var i = 0; i < clip.tracks.length; ++i) {\n var track = clip.tracks[i];\n var valueSize = track.getValueSize();\n var times = [];\n var values = [];\n\n for (var j = 0; j < track.times.length; ++j) {\n var frame = track.times[j] * fps;\n if (frame < startFrame || frame >= endFrame) continue;\n times.push(track.times[j]);\n\n for (var k = 0; k < valueSize; ++k) {\n values.push(track.values[j * valueSize + k]);\n }\n }\n\n if (times.length === 0) continue;\n track.times = convertArray(times, track.times.constructor);\n track.values = convertArray(values, track.values.constructor);\n tracks.push(track);\n }\n\n clip.tracks = tracks; // find minimum .times value across all tracks in the trimmed clip\n\n var minStartTime = Infinity;\n\n for (var _i88 = 0; _i88 < clip.tracks.length; ++_i88) {\n if (minStartTime > clip.tracks[_i88].times[0]) {\n minStartTime = clip.tracks[_i88].times[0];\n }\n } // shift all tracks such that clip begins at t=0\n\n\n for (var _i89 = 0; _i89 < clip.tracks.length; ++_i89) {\n clip.tracks[_i89].shift(-1 * minStartTime);\n }\n\n clip.resetDuration();\n return clip;\n}\n\nfunction makeClipAdditive(targetClip) {\n var referenceFrame = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var referenceClip = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : targetClip;\n var fps = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 30;\n if (fps <= 0) fps = 30;\n var numTracks = referenceClip.tracks.length;\n var referenceTime = referenceFrame / fps; // Make each track's values relative to the values at the reference frame\n\n var _loop = function _loop(i) {\n var referenceTrack = referenceClip.tracks[i];\n var referenceTrackType = referenceTrack.ValueTypeName; // Skip this track if it's non-numeric\n\n if (referenceTrackType === 'bool' || referenceTrackType === 'string') return \"continue\"; // Find the track in the target clip whose name and type matches the reference track\n\n var targetTrack = targetClip.tracks.find(function (track) {\n return track.name === referenceTrack.name && track.ValueTypeName === referenceTrackType;\n });\n if (targetTrack === undefined) return \"continue\";\n var referenceOffset = 0;\n var referenceValueSize = referenceTrack.getValueSize();\n\n if (referenceTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline) {\n referenceOffset = referenceValueSize / 3;\n }\n\n var targetOffset = 0;\n var targetValueSize = targetTrack.getValueSize();\n\n if (targetTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline) {\n targetOffset = targetValueSize / 3;\n }\n\n var lastIndex = referenceTrack.times.length - 1;\n var referenceValue = void 0; // Find the value to subtract out of the track\n\n if (referenceTime <= referenceTrack.times[0]) {\n // Reference frame is earlier than the first keyframe, so just use the first keyframe\n var startIndex = referenceOffset;\n var endIndex = referenceValueSize - referenceOffset;\n referenceValue = arraySlice(referenceTrack.values, startIndex, endIndex);\n } else if (referenceTime >= referenceTrack.times[lastIndex]) {\n // Reference frame is after the last keyframe, so just use the last keyframe\n var _startIndex = lastIndex * referenceValueSize + referenceOffset;\n\n var _endIndex = _startIndex + referenceValueSize - referenceOffset;\n\n referenceValue = arraySlice(referenceTrack.values, _startIndex, _endIndex);\n } else {\n // Interpolate to the reference value\n var interpolant = referenceTrack.createInterpolant();\n var _startIndex2 = referenceOffset;\n\n var _endIndex2 = referenceValueSize - referenceOffset;\n\n interpolant.evaluate(referenceTime);\n referenceValue = arraySlice(interpolant.resultBuffer, _startIndex2, _endIndex2);\n } // Conjugate the quaternion\n\n\n if (referenceTrackType === 'quaternion') {\n var referenceQuat = new Quaternion().fromArray(referenceValue).normalize().conjugate();\n referenceQuat.toArray(referenceValue);\n } // Subtract the reference value from all of the track values\n\n\n var numTimes = targetTrack.times.length;\n\n for (var j = 0; j < numTimes; ++j) {\n var valueStart = j * targetValueSize + targetOffset;\n\n if (referenceTrackType === 'quaternion') {\n // Multiply the conjugate for quaternion track types\n Quaternion.multiplyQuaternionsFlat(targetTrack.values, valueStart, referenceValue, 0, targetTrack.values, valueStart);\n } else {\n var valueEnd = targetValueSize - targetOffset * 2; // Subtract each value for all other numeric track types\n\n for (var k = 0; k < valueEnd; ++k) {\n targetTrack.values[valueStart + k] -= referenceValue[k];\n }\n }\n }\n };\n\n for (var i = 0; i < numTracks; ++i) {\n var _ret = _loop(i);\n\n if (_ret === \"continue\") continue;\n }\n\n targetClip.blendMode = AdditiveAnimationBlendMode;\n return targetClip;\n}\n\nvar AnimationUtils = {\n arraySlice: arraySlice,\n convertArray: convertArray,\n isTypedArray: isTypedArray,\n getKeyframeOrder: getKeyframeOrder,\n sortedArray: sortedArray,\n flattenJSON: flattenJSON,\n subclip: subclip,\n makeClipAdditive: makeClipAdditive\n};\n/**\n * Abstract base class of interpolants over parametric samples.\n *\n * The parameter domain is one dimensional, typically the time or a path\n * along a curve defined by the data.\n *\n * The sample values can have any dimensionality and derived classes may\n * apply special interpretations to the data.\n *\n * This class provides the interval seek in a Template Method, deferring\n * the actual interpolation to derived classes.\n *\n * Time complexity is O(1) for linear access crossing at most two points\n * and O(log N) for random access, where N is the number of positions.\n *\n * References:\n *\n * \t\thttp://www.oodesign.com/template-method-pattern.html\n *\n */\n\nvar Interpolant = /*#__PURE__*/function () {\n function Interpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n _classCallCheck(this, Interpolant);\n\n this.parameterPositions = parameterPositions;\n this._cachedIndex = 0;\n this.resultBuffer = resultBuffer !== undefined ? resultBuffer : new sampleValues.constructor(sampleSize);\n this.sampleValues = sampleValues;\n this.valueSize = sampleSize;\n this.settings = null;\n this.DefaultSettings_ = {};\n }\n\n _createClass(Interpolant, [{\n key: \"evaluate\",\n value: function evaluate(t) {\n var pp = this.parameterPositions;\n var i1 = this._cachedIndex,\n t1 = pp[i1],\n t0 = pp[i1 - 1];\n\n validate_interval: {\n seek: {\n var right;\n\n linear_scan: {\n //- See http://jsperf.com/comparison-to-undefined/3\n //- slower code:\n //-\n //- \t\t\t\tif ( t >= t1 || t1 === undefined ) {\n forward_scan: if (!(t < t1)) {\n for (var giveUpAt = i1 + 2;;) {\n if (t1 === undefined) {\n if (t < t0) break forward_scan; // after end\n\n i1 = pp.length;\n this._cachedIndex = i1;\n return this.copySampleValue_(i1 - 1);\n }\n\n if (i1 === giveUpAt) break; // this loop\n\n t0 = t1;\n t1 = pp[++i1];\n\n if (t < t1) {\n // we have arrived at the sought interval\n break seek;\n }\n } // prepare binary search on the right side of the index\n\n\n right = pp.length;\n break linear_scan;\n } //- slower code:\n //-\t\t\t\t\tif ( t < t0 || t0 === undefined ) {\n\n\n if (!(t >= t0)) {\n // looping?\n var t1global = pp[1];\n\n if (t < t1global) {\n i1 = 2; // + 1, using the scan for the details\n\n t0 = t1global;\n } // linear reverse scan\n\n\n for (var _giveUpAt = i1 - 2;;) {\n if (t0 === undefined) {\n // before start\n this._cachedIndex = 0;\n return this.copySampleValue_(0);\n }\n\n if (i1 === _giveUpAt) break; // this loop\n\n t1 = t0;\n t0 = pp[--i1 - 1];\n\n if (t >= t0) {\n // we have arrived at the sought interval\n break seek;\n }\n } // prepare binary search on the left side of the index\n\n\n right = i1;\n i1 = 0;\n break linear_scan;\n } // the interval is valid\n\n\n break validate_interval;\n } // linear scan\n // binary search\n\n\n while (i1 < right) {\n var mid = i1 + right >>> 1;\n\n if (t < pp[mid]) {\n right = mid;\n } else {\n i1 = mid + 1;\n }\n }\n\n t1 = pp[i1];\n t0 = pp[i1 - 1]; // check boundary cases, again\n\n if (t0 === undefined) {\n this._cachedIndex = 0;\n return this.copySampleValue_(0);\n }\n\n if (t1 === undefined) {\n i1 = pp.length;\n this._cachedIndex = i1;\n return this.copySampleValue_(i1 - 1);\n }\n } // seek\n\n\n this._cachedIndex = i1;\n this.intervalChanged_(i1, t0, t1);\n } // validate_interval\n\n\n return this.interpolate_(i1, t0, t, t1);\n }\n }, {\n key: \"getSettings_\",\n value: function getSettings_() {\n return this.settings || this.DefaultSettings_;\n }\n }, {\n key: \"copySampleValue_\",\n value: function copySampleValue_(index) {\n // copies a sample value to the result buffer\n var result = this.resultBuffer,\n values = this.sampleValues,\n stride = this.valueSize,\n offset = index * stride;\n\n for (var i = 0; i !== stride; ++i) {\n result[i] = values[offset + i];\n }\n\n return result;\n } // Template methods for derived classes:\n\n }, {\n key: \"interpolate_\",\n value: function\n /* i1, t0, t, t1 */\n interpolate_() {\n throw new Error('call to abstract method'); // implementations shall return this.resultBuffer\n }\n }, {\n key: \"intervalChanged_\",\n value: function\n /* i1, t0, t1 */\n intervalChanged_() {// empty\n }\n }]);\n\n return Interpolant;\n}();\n/**\n * Fast and simple cubic spline interpolant.\n *\n * It was derived from a Hermitian construction setting the first derivative\n * at each sample position to the linear slope between neighboring positions\n * over their parameter interval.\n */\n\n\nvar CubicInterpolant = /*#__PURE__*/function (_Interpolant) {\n _inherits(CubicInterpolant, _Interpolant);\n\n var _super101 = _createSuper(CubicInterpolant);\n\n function CubicInterpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n var _this92;\n\n _classCallCheck(this, CubicInterpolant);\n\n _this92 = _super101.call(this, parameterPositions, sampleValues, sampleSize, resultBuffer);\n _this92._weightPrev = -0;\n _this92._offsetPrev = -0;\n _this92._weightNext = -0;\n _this92._offsetNext = -0;\n _this92.DefaultSettings_ = {\n endingStart: ZeroCurvatureEnding,\n endingEnd: ZeroCurvatureEnding\n };\n return _this92;\n }\n\n _createClass(CubicInterpolant, [{\n key: \"intervalChanged_\",\n value: function intervalChanged_(i1, t0, t1) {\n var pp = this.parameterPositions;\n var iPrev = i1 - 2,\n iNext = i1 + 1,\n tPrev = pp[iPrev],\n tNext = pp[iNext];\n\n if (tPrev === undefined) {\n switch (this.getSettings_().endingStart) {\n case ZeroSlopeEnding:\n // f'(t0) = 0\n iPrev = i1;\n tPrev = 2 * t0 - t1;\n break;\n\n case WrapAroundEnding:\n // use the other end of the curve\n iPrev = pp.length - 2;\n tPrev = t0 + pp[iPrev] - pp[iPrev + 1];\n break;\n\n default:\n // ZeroCurvatureEnding\n // f''(t0) = 0 a.k.a. Natural Spline\n iPrev = i1;\n tPrev = t1;\n }\n }\n\n if (tNext === undefined) {\n switch (this.getSettings_().endingEnd) {\n case ZeroSlopeEnding:\n // f'(tN) = 0\n iNext = i1;\n tNext = 2 * t1 - t0;\n break;\n\n case WrapAroundEnding:\n // use the other end of the curve\n iNext = 1;\n tNext = t1 + pp[1] - pp[0];\n break;\n\n default:\n // ZeroCurvatureEnding\n // f''(tN) = 0, a.k.a. Natural Spline\n iNext = i1 - 1;\n tNext = t0;\n }\n }\n\n var halfDt = (t1 - t0) * 0.5,\n stride = this.valueSize;\n this._weightPrev = halfDt / (t0 - tPrev);\n this._weightNext = halfDt / (tNext - t1);\n this._offsetPrev = iPrev * stride;\n this._offsetNext = iNext * stride;\n }\n }, {\n key: \"interpolate_\",\n value: function interpolate_(i1, t0, t, t1) {\n var result = this.resultBuffer,\n values = this.sampleValues,\n stride = this.valueSize,\n o1 = i1 * stride,\n o0 = o1 - stride,\n oP = this._offsetPrev,\n oN = this._offsetNext,\n wP = this._weightPrev,\n wN = this._weightNext,\n p = (t - t0) / (t1 - t0),\n pp = p * p,\n ppp = pp * p; // evaluate polynomials\n\n var sP = -wP * ppp + 2 * wP * pp - wP * p;\n var s0 = (1 + wP) * ppp + (-1.5 - 2 * wP) * pp + (-0.5 + wP) * p + 1;\n var s1 = (-1 - wN) * ppp + (1.5 + wN) * pp + 0.5 * p;\n var sN = wN * ppp - wN * pp; // combine data linearly\n\n for (var i = 0; i !== stride; ++i) {\n result[i] = sP * values[oP + i] + s0 * values[o0 + i] + s1 * values[o1 + i] + sN * values[oN + i];\n }\n\n return result;\n }\n }]);\n\n return CubicInterpolant;\n}(Interpolant);\n\nvar LinearInterpolant = /*#__PURE__*/function (_Interpolant2) {\n _inherits(LinearInterpolant, _Interpolant2);\n\n var _super102 = _createSuper(LinearInterpolant);\n\n function LinearInterpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n _classCallCheck(this, LinearInterpolant);\n\n return _super102.call(this, parameterPositions, sampleValues, sampleSize, resultBuffer);\n }\n\n _createClass(LinearInterpolant, [{\n key: \"interpolate_\",\n value: function interpolate_(i1, t0, t, t1) {\n var result = this.resultBuffer,\n values = this.sampleValues,\n stride = this.valueSize,\n offset1 = i1 * stride,\n offset0 = offset1 - stride,\n weight1 = (t - t0) / (t1 - t0),\n weight0 = 1 - weight1;\n\n for (var i = 0; i !== stride; ++i) {\n result[i] = values[offset0 + i] * weight0 + values[offset1 + i] * weight1;\n }\n\n return result;\n }\n }]);\n\n return LinearInterpolant;\n}(Interpolant);\n/**\n *\n * Interpolant that evaluates to the sample value at the position preceding\n * the parameter.\n */\n\n\nvar DiscreteInterpolant = /*#__PURE__*/function (_Interpolant3) {\n _inherits(DiscreteInterpolant, _Interpolant3);\n\n var _super103 = _createSuper(DiscreteInterpolant);\n\n function DiscreteInterpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n _classCallCheck(this, DiscreteInterpolant);\n\n return _super103.call(this, parameterPositions, sampleValues, sampleSize, resultBuffer);\n }\n\n _createClass(DiscreteInterpolant, [{\n key: \"interpolate_\",\n value: function interpolate_(i1\n /*, t0, t, t1 */\n ) {\n return this.copySampleValue_(i1 - 1);\n }\n }]);\n\n return DiscreteInterpolant;\n}(Interpolant);\n\nvar KeyframeTrack = /*#__PURE__*/function () {\n function KeyframeTrack(name, times, values, interpolation) {\n _classCallCheck(this, KeyframeTrack);\n\n if (name === undefined) throw new Error('THREE.KeyframeTrack: track name is undefined');\n if (times === undefined || times.length === 0) throw new Error('THREE.KeyframeTrack: no keyframes in track named ' + name);\n this.name = name;\n this.times = convertArray(times, this.TimeBufferType);\n this.values = convertArray(values, this.ValueBufferType);\n this.setInterpolation(interpolation || this.DefaultInterpolation);\n } // Serialization (in static context, because of constructor invocation\n // and automatic invocation of .toJSON):\n\n\n _createClass(KeyframeTrack, [{\n key: \"InterpolantFactoryMethodDiscrete\",\n value: function InterpolantFactoryMethodDiscrete(result) {\n return new DiscreteInterpolant(this.times, this.values, this.getValueSize(), result);\n }\n }, {\n key: \"InterpolantFactoryMethodLinear\",\n value: function InterpolantFactoryMethodLinear(result) {\n return new LinearInterpolant(this.times, this.values, this.getValueSize(), result);\n }\n }, {\n key: \"InterpolantFactoryMethodSmooth\",\n value: function InterpolantFactoryMethodSmooth(result) {\n return new CubicInterpolant(this.times, this.values, this.getValueSize(), result);\n }\n }, {\n key: \"setInterpolation\",\n value: function setInterpolation(interpolation) {\n var factoryMethod;\n\n switch (interpolation) {\n case InterpolateDiscrete:\n factoryMethod = this.InterpolantFactoryMethodDiscrete;\n break;\n\n case InterpolateLinear:\n factoryMethod = this.InterpolantFactoryMethodLinear;\n break;\n\n case InterpolateSmooth:\n factoryMethod = this.InterpolantFactoryMethodSmooth;\n break;\n }\n\n if (factoryMethod === undefined) {\n var message = 'unsupported interpolation for ' + this.ValueTypeName + ' keyframe track named ' + this.name;\n\n if (this.createInterpolant === undefined) {\n // fall back to default, unless the default itself is messed up\n if (interpolation !== this.DefaultInterpolation) {\n this.setInterpolation(this.DefaultInterpolation);\n } else {\n throw new Error(message); // fatal, in this case\n }\n }\n\n console.warn('THREE.KeyframeTrack:', message);\n return this;\n }\n\n this.createInterpolant = factoryMethod;\n return this;\n }\n }, {\n key: \"getInterpolation\",\n value: function getInterpolation() {\n switch (this.createInterpolant) {\n case this.InterpolantFactoryMethodDiscrete:\n return InterpolateDiscrete;\n\n case this.InterpolantFactoryMethodLinear:\n return InterpolateLinear;\n\n case this.InterpolantFactoryMethodSmooth:\n return InterpolateSmooth;\n }\n }\n }, {\n key: \"getValueSize\",\n value: function getValueSize() {\n return this.values.length / this.times.length;\n } // move all keyframes either forwards or backwards in time\n\n }, {\n key: \"shift\",\n value: function shift(timeOffset) {\n if (timeOffset !== 0.0) {\n var times = this.times;\n\n for (var i = 0, n = times.length; i !== n; ++i) {\n times[i] += timeOffset;\n }\n }\n\n return this;\n } // scale all keyframe times by a factor (useful for frame <-> seconds conversions)\n\n }, {\n key: \"scale\",\n value: function scale(timeScale) {\n if (timeScale !== 1.0) {\n var times = this.times;\n\n for (var i = 0, n = times.length; i !== n; ++i) {\n times[i] *= timeScale;\n }\n }\n\n return this;\n } // removes keyframes before and after animation without changing any values within the range [startTime, endTime].\n // IMPORTANT: We do not shift around keys to the start of the track time, because for interpolated keys this will change their values\n\n }, {\n key: \"trim\",\n value: function trim(startTime, endTime) {\n var times = this.times,\n nKeys = times.length;\n var from = 0,\n to = nKeys - 1;\n\n while (from !== nKeys && times[from] < startTime) {\n ++from;\n }\n\n while (to !== -1 && times[to] > endTime) {\n --to;\n }\n\n ++to; // inclusive -> exclusive bound\n\n if (from !== 0 || to !== nKeys) {\n // empty tracks are forbidden, so keep at least one keyframe\n if (from >= to) {\n to = Math.max(to, 1);\n from = to - 1;\n }\n\n var stride = this.getValueSize();\n this.times = arraySlice(times, from, to);\n this.values = arraySlice(this.values, from * stride, to * stride);\n }\n\n return this;\n } // ensure we do not get a GarbageInGarbageOut situation, make sure tracks are at least minimally viable\n\n }, {\n key: \"validate\",\n value: function validate() {\n var valid = true;\n var valueSize = this.getValueSize();\n\n if (valueSize - Math.floor(valueSize) !== 0) {\n console.error('THREE.KeyframeTrack: Invalid value size in track.', this);\n valid = false;\n }\n\n var times = this.times,\n values = this.values,\n nKeys = times.length;\n\n if (nKeys === 0) {\n console.error('THREE.KeyframeTrack: Track is empty.', this);\n valid = false;\n }\n\n var prevTime = null;\n\n for (var i = 0; i !== nKeys; i++) {\n var currTime = times[i];\n\n if (typeof currTime === 'number' && isNaN(currTime)) {\n console.error('THREE.KeyframeTrack: Time is not a valid number.', this, i, currTime);\n valid = false;\n break;\n }\n\n if (prevTime !== null && prevTime > currTime) {\n console.error('THREE.KeyframeTrack: Out of order keys.', this, i, currTime, prevTime);\n valid = false;\n break;\n }\n\n prevTime = currTime;\n }\n\n if (values !== undefined) {\n if (isTypedArray(values)) {\n for (var _i90 = 0, n = values.length; _i90 !== n; ++_i90) {\n var _value7 = values[_i90];\n\n if (isNaN(_value7)) {\n console.error('THREE.KeyframeTrack: Value is not a valid number.', this, _i90, _value7);\n valid = false;\n break;\n }\n }\n }\n }\n\n return valid;\n } // removes equivalent sequential keys as common in morph target sequences\n // (0,0,0,0,1,1,1,0,0,0,0,0,0,0) --> (0,0,1,1,0,0)\n\n }, {\n key: \"optimize\",\n value: function optimize() {\n // times or values may be shared with other tracks, so overwriting is unsafe\n var times = arraySlice(this.times),\n values = arraySlice(this.values),\n stride = this.getValueSize(),\n smoothInterpolation = this.getInterpolation() === InterpolateSmooth,\n lastIndex = times.length - 1;\n var writeIndex = 1;\n\n for (var i = 1; i < lastIndex; ++i) {\n var keep = false;\n var time = times[i];\n var timeNext = times[i + 1]; // remove adjacent keyframes scheduled at the same time\n\n if (time !== timeNext && (i !== 1 || time !== times[0])) {\n if (!smoothInterpolation) {\n // remove unnecessary keyframes same as their neighbors\n var offset = i * stride,\n offsetP = offset - stride,\n offsetN = offset + stride;\n\n for (var j = 0; j !== stride; ++j) {\n var _value8 = values[offset + j];\n\n if (_value8 !== values[offsetP + j] || _value8 !== values[offsetN + j]) {\n keep = true;\n break;\n }\n }\n } else {\n keep = true;\n }\n } // in-place compaction\n\n\n if (keep) {\n if (i !== writeIndex) {\n times[writeIndex] = times[i];\n var readOffset = i * stride,\n writeOffset = writeIndex * stride;\n\n for (var _j14 = 0; _j14 !== stride; ++_j14) {\n values[writeOffset + _j14] = values[readOffset + _j14];\n }\n }\n\n ++writeIndex;\n }\n } // flush last keyframe (compaction looks ahead)\n\n\n if (lastIndex > 0) {\n times[writeIndex] = times[lastIndex];\n\n for (var _readOffset = lastIndex * stride, _writeOffset = writeIndex * stride, _j15 = 0; _j15 !== stride; ++_j15) {\n values[_writeOffset + _j15] = values[_readOffset + _j15];\n }\n\n ++writeIndex;\n }\n\n if (writeIndex !== times.length) {\n this.times = arraySlice(times, 0, writeIndex);\n this.values = arraySlice(values, 0, writeIndex * stride);\n } else {\n this.times = times;\n this.values = values;\n }\n\n return this;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n var times = arraySlice(this.times, 0);\n var values = arraySlice(this.values, 0);\n var TypedKeyframeTrack = this.constructor;\n var track = new TypedKeyframeTrack(this.name, times, values); // Interpolant argument to constructor is not saved, so copy the factory method directly.\n\n track.createInterpolant = this.createInterpolant;\n return track;\n }\n }], [{\n key: \"toJSON\",\n value: function toJSON(track) {\n var trackType = track.constructor;\n var json; // derived classes can define a static toJSON method\n\n if (trackType.toJSON !== this.toJSON) {\n json = trackType.toJSON(track);\n } else {\n // by default, we assume the data can be serialized as-is\n json = {\n 'name': track.name,\n 'times': convertArray(track.times, Array),\n 'values': convertArray(track.values, Array)\n };\n var interpolation = track.getInterpolation();\n\n if (interpolation !== track.DefaultInterpolation) {\n json.interpolation = interpolation;\n }\n }\n\n json.type = track.ValueTypeName; // mandatory\n\n return json;\n }\n }]);\n\n return KeyframeTrack;\n}();\n\nKeyframeTrack.prototype.TimeBufferType = Float32Array;\nKeyframeTrack.prototype.ValueBufferType = Float32Array;\nKeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear;\n/**\n * A Track of Boolean keyframe values.\n */\n\nvar BooleanKeyframeTrack = /*#__PURE__*/function (_KeyframeTrack) {\n _inherits(BooleanKeyframeTrack, _KeyframeTrack);\n\n var _super104 = _createSuper(BooleanKeyframeTrack);\n\n function BooleanKeyframeTrack() {\n _classCallCheck(this, BooleanKeyframeTrack);\n\n return _super104.apply(this, arguments);\n }\n\n return _createClass(BooleanKeyframeTrack);\n}(KeyframeTrack);\n\nBooleanKeyframeTrack.prototype.ValueTypeName = 'bool';\nBooleanKeyframeTrack.prototype.ValueBufferType = Array;\nBooleanKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n/**\n * A Track of keyframe values that represent color.\n */\n\nvar ColorKeyframeTrack = /*#__PURE__*/function (_KeyframeTrack2) {\n _inherits(ColorKeyframeTrack, _KeyframeTrack2);\n\n var _super105 = _createSuper(ColorKeyframeTrack);\n\n function ColorKeyframeTrack() {\n _classCallCheck(this, ColorKeyframeTrack);\n\n return _super105.apply(this, arguments);\n }\n\n return _createClass(ColorKeyframeTrack);\n}(KeyframeTrack);\n\nColorKeyframeTrack.prototype.ValueTypeName = 'color';\n/**\n * A Track of numeric keyframe values.\n */\n\nvar NumberKeyframeTrack = /*#__PURE__*/function (_KeyframeTrack3) {\n _inherits(NumberKeyframeTrack, _KeyframeTrack3);\n\n var _super106 = _createSuper(NumberKeyframeTrack);\n\n function NumberKeyframeTrack() {\n _classCallCheck(this, NumberKeyframeTrack);\n\n return _super106.apply(this, arguments);\n }\n\n return _createClass(NumberKeyframeTrack);\n}(KeyframeTrack);\n\nNumberKeyframeTrack.prototype.ValueTypeName = 'number';\n/**\n * Spherical linear unit quaternion interpolant.\n */\n\nvar QuaternionLinearInterpolant = /*#__PURE__*/function (_Interpolant4) {\n _inherits(QuaternionLinearInterpolant, _Interpolant4);\n\n var _super107 = _createSuper(QuaternionLinearInterpolant);\n\n function QuaternionLinearInterpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n _classCallCheck(this, QuaternionLinearInterpolant);\n\n return _super107.call(this, parameterPositions, sampleValues, sampleSize, resultBuffer);\n }\n\n _createClass(QuaternionLinearInterpolant, [{\n key: \"interpolate_\",\n value: function interpolate_(i1, t0, t, t1) {\n var result = this.resultBuffer,\n values = this.sampleValues,\n stride = this.valueSize,\n alpha = (t - t0) / (t1 - t0);\n var offset = i1 * stride;\n\n for (var end = offset + stride; offset !== end; offset += 4) {\n Quaternion.slerpFlat(result, 0, values, offset - stride, values, offset, alpha);\n }\n\n return result;\n }\n }]);\n\n return QuaternionLinearInterpolant;\n}(Interpolant);\n/**\n * A Track of quaternion keyframe values.\n */\n\n\nvar QuaternionKeyframeTrack = /*#__PURE__*/function (_KeyframeTrack4) {\n _inherits(QuaternionKeyframeTrack, _KeyframeTrack4);\n\n var _super108 = _createSuper(QuaternionKeyframeTrack);\n\n function QuaternionKeyframeTrack() {\n _classCallCheck(this, QuaternionKeyframeTrack);\n\n return _super108.apply(this, arguments);\n }\n\n _createClass(QuaternionKeyframeTrack, [{\n key: \"InterpolantFactoryMethodLinear\",\n value: function InterpolantFactoryMethodLinear(result) {\n return new QuaternionLinearInterpolant(this.times, this.values, this.getValueSize(), result);\n }\n }]);\n\n return QuaternionKeyframeTrack;\n}(KeyframeTrack);\n\nQuaternionKeyframeTrack.prototype.ValueTypeName = 'quaternion'; // ValueBufferType is inherited\n\nQuaternionKeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear;\nQuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n/**\n * A Track that interpolates Strings\n */\n\nvar StringKeyframeTrack = /*#__PURE__*/function (_KeyframeTrack5) {\n _inherits(StringKeyframeTrack, _KeyframeTrack5);\n\n var _super109 = _createSuper(StringKeyframeTrack);\n\n function StringKeyframeTrack() {\n _classCallCheck(this, StringKeyframeTrack);\n\n return _super109.apply(this, arguments);\n }\n\n return _createClass(StringKeyframeTrack);\n}(KeyframeTrack);\n\nStringKeyframeTrack.prototype.ValueTypeName = 'string';\nStringKeyframeTrack.prototype.ValueBufferType = Array;\nStringKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n/**\n * A Track of vectored keyframe values.\n */\n\nvar VectorKeyframeTrack = /*#__PURE__*/function (_KeyframeTrack6) {\n _inherits(VectorKeyframeTrack, _KeyframeTrack6);\n\n var _super110 = _createSuper(VectorKeyframeTrack);\n\n function VectorKeyframeTrack() {\n _classCallCheck(this, VectorKeyframeTrack);\n\n return _super110.apply(this, arguments);\n }\n\n return _createClass(VectorKeyframeTrack);\n}(KeyframeTrack);\n\nVectorKeyframeTrack.prototype.ValueTypeName = 'vector';\n\nvar AnimationClip = /*#__PURE__*/function () {\n function AnimationClip(name) {\n var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;\n var tracks = arguments.length > 2 ? arguments[2] : undefined;\n var blendMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : NormalAnimationBlendMode;\n\n _classCallCheck(this, AnimationClip);\n\n this.name = name;\n this.tracks = tracks;\n this.duration = duration;\n this.blendMode = blendMode;\n this.uuid = generateUUID(); // this means it should figure out its duration by scanning the tracks\n\n if (this.duration < 0) {\n this.resetDuration();\n }\n }\n\n _createClass(AnimationClip, [{\n key: \"resetDuration\",\n value: function resetDuration() {\n var tracks = this.tracks;\n var duration = 0;\n\n for (var i = 0, n = tracks.length; i !== n; ++i) {\n var track = this.tracks[i];\n duration = Math.max(duration, track.times[track.times.length - 1]);\n }\n\n this.duration = duration;\n return this;\n }\n }, {\n key: \"trim\",\n value: function trim() {\n for (var i = 0; i < this.tracks.length; i++) {\n this.tracks[i].trim(0, this.duration);\n }\n\n return this;\n }\n }, {\n key: \"validate\",\n value: function validate() {\n var valid = true;\n\n for (var i = 0; i < this.tracks.length; i++) {\n valid = valid && this.tracks[i].validate();\n }\n\n return valid;\n }\n }, {\n key: \"optimize\",\n value: function optimize() {\n for (var i = 0; i < this.tracks.length; i++) {\n this.tracks[i].optimize();\n }\n\n return this;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n var tracks = [];\n\n for (var i = 0; i < this.tracks.length; i++) {\n tracks.push(this.tracks[i].clone());\n }\n\n return new this.constructor(this.name, this.duration, tracks, this.blendMode);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.constructor.toJSON(this);\n }\n }], [{\n key: \"parse\",\n value: function parse(json) {\n var tracks = [],\n jsonTracks = json.tracks,\n frameTime = 1.0 / (json.fps || 1.0);\n\n for (var i = 0, n = jsonTracks.length; i !== n; ++i) {\n tracks.push(parseKeyframeTrack(jsonTracks[i]).scale(frameTime));\n }\n\n var clip = new this(json.name, json.duration, tracks, json.blendMode);\n clip.uuid = json.uuid;\n return clip;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON(clip) {\n var tracks = [],\n clipTracks = clip.tracks;\n var json = {\n 'name': clip.name,\n 'duration': clip.duration,\n 'tracks': tracks,\n 'uuid': clip.uuid,\n 'blendMode': clip.blendMode\n };\n\n for (var i = 0, n = clipTracks.length; i !== n; ++i) {\n tracks.push(KeyframeTrack.toJSON(clipTracks[i]));\n }\n\n return json;\n }\n }, {\n key: \"CreateFromMorphTargetSequence\",\n value: function CreateFromMorphTargetSequence(name, morphTargetSequence, fps, noLoop) {\n var numMorphTargets = morphTargetSequence.length;\n var tracks = [];\n\n for (var i = 0; i < numMorphTargets; i++) {\n var times = [];\n var values = [];\n times.push((i + numMorphTargets - 1) % numMorphTargets, i, (i + 1) % numMorphTargets);\n values.push(0, 1, 0);\n var order = getKeyframeOrder(times);\n times = sortedArray(times, 1, order);\n values = sortedArray(values, 1, order); // if there is a key at the first frame, duplicate it as the\n // last frame as well for perfect loop.\n\n if (!noLoop && times[0] === 0) {\n times.push(numMorphTargets);\n values.push(values[0]);\n }\n\n tracks.push(new NumberKeyframeTrack('.morphTargetInfluences[' + morphTargetSequence[i].name + ']', times, values).scale(1.0 / fps));\n }\n\n return new this(name, -1, tracks);\n }\n }, {\n key: \"findByName\",\n value: function findByName(objectOrClipArray, name) {\n var clipArray = objectOrClipArray;\n\n if (!Array.isArray(objectOrClipArray)) {\n var o = objectOrClipArray;\n clipArray = o.geometry && o.geometry.animations || o.animations;\n }\n\n for (var i = 0; i < clipArray.length; i++) {\n if (clipArray[i].name === name) {\n return clipArray[i];\n }\n }\n\n return null;\n }\n }, {\n key: \"CreateClipsFromMorphTargetSequences\",\n value: function CreateClipsFromMorphTargetSequences(morphTargets, fps, noLoop) {\n var animationToMorphTargets = {}; // tested with https://regex101.com/ on trick sequences\n // such flamingo_flyA_003, flamingo_run1_003, crdeath0059\n\n var pattern = /^([\\w-]*?)([\\d]+)$/; // sort morph target names into animation groups based\n // patterns like Walk_001, Walk_002, Run_001, Run_002\n\n for (var i = 0, il = morphTargets.length; i < il; i++) {\n var morphTarget = morphTargets[i];\n var parts = morphTarget.name.match(pattern);\n\n if (parts && parts.length > 1) {\n var name = parts[1];\n var animationMorphTargets = animationToMorphTargets[name];\n\n if (!animationMorphTargets) {\n animationToMorphTargets[name] = animationMorphTargets = [];\n }\n\n animationMorphTargets.push(morphTarget);\n }\n }\n\n var clips = [];\n\n for (var _name4 in animationToMorphTargets) {\n clips.push(this.CreateFromMorphTargetSequence(_name4, animationToMorphTargets[_name4], fps, noLoop));\n }\n\n return clips;\n } // parse the animation.hierarchy format\n\n }, {\n key: \"parseAnimation\",\n value: function parseAnimation(animation, bones) {\n if (!animation) {\n console.error('THREE.AnimationClip: No animation in JSONLoader data.');\n return null;\n }\n\n var addNonemptyTrack = function addNonemptyTrack(trackType, trackName, animationKeys, propertyName, destTracks) {\n // only return track if there are actually keys.\n if (animationKeys.length !== 0) {\n var times = [];\n var values = [];\n flattenJSON(animationKeys, times, values, propertyName); // empty keys are filtered out, so check again\n\n if (times.length !== 0) {\n destTracks.push(new trackType(trackName, times, values));\n }\n }\n };\n\n var tracks = [];\n var clipName = animation.name || 'default';\n var fps = animation.fps || 30;\n var blendMode = animation.blendMode; // automatic length determination in AnimationClip.\n\n var duration = animation.length || -1;\n var hierarchyTracks = animation.hierarchy || [];\n\n for (var h = 0; h < hierarchyTracks.length; h++) {\n var animationKeys = hierarchyTracks[h].keys; // skip empty tracks\n\n if (!animationKeys || animationKeys.length === 0) continue; // process morph targets\n\n if (animationKeys[0].morphTargets) {\n // figure out all morph targets used in this track\n var morphTargetNames = {};\n var k = void 0;\n\n for (k = 0; k < animationKeys.length; k++) {\n if (animationKeys[k].morphTargets) {\n for (var m = 0; m < animationKeys[k].morphTargets.length; m++) {\n morphTargetNames[animationKeys[k].morphTargets[m]] = -1;\n }\n }\n } // create a track for each morph target with all zero\n // morphTargetInfluences except for the keys in which\n // the morphTarget is named.\n\n\n for (var morphTargetName in morphTargetNames) {\n var times = [];\n var values = [];\n\n for (var _m = 0; _m !== animationKeys[k].morphTargets.length; ++_m) {\n var animationKey = animationKeys[k];\n times.push(animationKey.time);\n values.push(animationKey.morphTarget === morphTargetName ? 1 : 0);\n }\n\n tracks.push(new NumberKeyframeTrack('.morphTargetInfluence[' + morphTargetName + ']', times, values));\n }\n\n duration = morphTargetNames.length * fps;\n } else {\n // ...assume skeletal animation\n var boneName = '.bones[' + bones[h].name + ']';\n addNonemptyTrack(VectorKeyframeTrack, boneName + '.position', animationKeys, 'pos', tracks);\n addNonemptyTrack(QuaternionKeyframeTrack, boneName + '.quaternion', animationKeys, 'rot', tracks);\n addNonemptyTrack(VectorKeyframeTrack, boneName + '.scale', animationKeys, 'scl', tracks);\n }\n }\n\n if (tracks.length === 0) {\n return null;\n }\n\n var clip = new this(clipName, duration, tracks, blendMode);\n return clip;\n }\n }]);\n\n return AnimationClip;\n}();\n\nfunction getTrackTypeForValueTypeName(typeName) {\n switch (typeName.toLowerCase()) {\n case 'scalar':\n case 'double':\n case 'float':\n case 'number':\n case 'integer':\n return NumberKeyframeTrack;\n\n case 'vector':\n case 'vector2':\n case 'vector3':\n case 'vector4':\n return VectorKeyframeTrack;\n\n case 'color':\n return ColorKeyframeTrack;\n\n case 'quaternion':\n return QuaternionKeyframeTrack;\n\n case 'bool':\n case 'boolean':\n return BooleanKeyframeTrack;\n\n case 'string':\n return StringKeyframeTrack;\n }\n\n throw new Error('THREE.KeyframeTrack: Unsupported typeName: ' + typeName);\n}\n\nfunction parseKeyframeTrack(json) {\n if (json.type === undefined) {\n throw new Error('THREE.KeyframeTrack: track type undefined, can not parse');\n }\n\n var trackType = getTrackTypeForValueTypeName(json.type);\n\n if (json.times === undefined) {\n var times = [],\n values = [];\n flattenJSON(json.keys, times, values, 'value');\n json.times = times;\n json.values = values;\n } // derived classes can define a static parse method\n\n\n if (trackType.parse !== undefined) {\n return trackType.parse(json);\n } else {\n // by default, we assume a constructor compatible with the base\n return new trackType(json.name, json.times, json.values, json.interpolation);\n }\n}\n\nvar Cache = {\n enabled: false,\n files: {},\n add: function add(key, file) {\n if (this.enabled === false) return; // console.log( 'THREE.Cache', 'Adding key:', key );\n\n this.files[key] = file;\n },\n get: function get(key) {\n if (this.enabled === false) return; // console.log( 'THREE.Cache', 'Checking key:', key );\n\n return this.files[key];\n },\n remove: function remove(key) {\n delete this.files[key];\n },\n clear: function clear() {\n this.files = {};\n }\n};\n\nvar LoadingManager = /*#__PURE__*/_createClass(function LoadingManager(onLoad, onProgress, onError) {\n _classCallCheck(this, LoadingManager);\n\n var scope = this;\n var isLoading = false;\n var itemsLoaded = 0;\n var itemsTotal = 0;\n var urlModifier = undefined;\n var handlers = []; // Refer to #5689 for the reason why we don't set .onStart\n // in the constructor\n\n this.onStart = undefined;\n this.onLoad = onLoad;\n this.onProgress = onProgress;\n this.onError = onError;\n\n this.itemStart = function (url) {\n itemsTotal++;\n\n if (isLoading === false) {\n if (scope.onStart !== undefined) {\n scope.onStart(url, itemsLoaded, itemsTotal);\n }\n }\n\n isLoading = true;\n };\n\n this.itemEnd = function (url) {\n itemsLoaded++;\n\n if (scope.onProgress !== undefined) {\n scope.onProgress(url, itemsLoaded, itemsTotal);\n }\n\n if (itemsLoaded === itemsTotal) {\n isLoading = false;\n\n if (scope.onLoad !== undefined) {\n scope.onLoad();\n }\n }\n };\n\n this.itemError = function (url) {\n if (scope.onError !== undefined) {\n scope.onError(url);\n }\n };\n\n this.resolveURL = function (url) {\n if (urlModifier) {\n return urlModifier(url);\n }\n\n return url;\n };\n\n this.setURLModifier = function (transform) {\n urlModifier = transform;\n return this;\n };\n\n this.addHandler = function (regex, loader) {\n handlers.push(regex, loader);\n return this;\n };\n\n this.removeHandler = function (regex) {\n var index = handlers.indexOf(regex);\n\n if (index !== -1) {\n handlers.splice(index, 2);\n }\n\n return this;\n };\n\n this.getHandler = function (file) {\n for (var i = 0, l = handlers.length; i < l; i += 2) {\n var regex = handlers[i];\n var loader = handlers[i + 1];\n if (regex.global) regex.lastIndex = 0; // see #17920\n\n if (regex.test(file)) {\n return loader;\n }\n }\n\n return null;\n };\n});\n\nvar DefaultLoadingManager = /*@__PURE__*/new LoadingManager();\n\nvar Loader = /*#__PURE__*/function () {\n function Loader(manager) {\n _classCallCheck(this, Loader);\n\n this.manager = manager !== undefined ? manager : DefaultLoadingManager;\n this.crossOrigin = 'anonymous';\n this.withCredentials = false;\n this.path = '';\n this.resourcePath = '';\n this.requestHeader = {};\n }\n\n _createClass(Loader, [{\n key: \"load\",\n value: function\n /* url, onLoad, onProgress, onError */\n load() {}\n }, {\n key: \"loadAsync\",\n value: function loadAsync(url, onProgress) {\n var scope = this;\n return new Promise(function (resolve, reject) {\n scope.load(url, resolve, onProgress, reject);\n });\n }\n }, {\n key: \"parse\",\n value: function\n /* data */\n parse() {}\n }, {\n key: \"setCrossOrigin\",\n value: function setCrossOrigin(crossOrigin) {\n this.crossOrigin = crossOrigin;\n return this;\n }\n }, {\n key: \"setWithCredentials\",\n value: function setWithCredentials(value) {\n this.withCredentials = value;\n return this;\n }\n }, {\n key: \"setPath\",\n value: function setPath(path) {\n this.path = path;\n return this;\n }\n }, {\n key: \"setResourcePath\",\n value: function setResourcePath(resourcePath) {\n this.resourcePath = resourcePath;\n return this;\n }\n }, {\n key: \"setRequestHeader\",\n value: function setRequestHeader(requestHeader) {\n this.requestHeader = requestHeader;\n return this;\n }\n }]);\n\n return Loader;\n}();\n\nvar loading = {};\n\nvar HttpError = /*#__PURE__*/function (_Error) {\n _inherits(HttpError, _Error);\n\n var _super111 = _createSuper(HttpError);\n\n function HttpError(message, response) {\n var _this93;\n\n _classCallCheck(this, HttpError);\n\n _this93 = _super111.call(this, message);\n _this93.response = response;\n return _this93;\n }\n\n return _createClass(HttpError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar FileLoader = /*#__PURE__*/function (_Loader) {\n _inherits(FileLoader, _Loader);\n\n var _super112 = _createSuper(FileLoader);\n\n function FileLoader(manager) {\n _classCallCheck(this, FileLoader);\n\n return _super112.call(this, manager);\n }\n\n _createClass(FileLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var _this94 = this;\n\n if (url === undefined) url = '';\n if (this.path !== undefined) url = this.path + url;\n url = this.manager.resolveURL(url);\n var cached = Cache.get(url);\n\n if (cached !== undefined) {\n this.manager.itemStart(url);\n setTimeout(function () {\n if (onLoad) onLoad(cached);\n\n _this94.manager.itemEnd(url);\n }, 0);\n return cached;\n } // Check if request is duplicate\n\n\n if (loading[url] !== undefined) {\n loading[url].push({\n onLoad: onLoad,\n onProgress: onProgress,\n onError: onError\n });\n return;\n } // Initialise array for duplicate requests\n\n\n loading[url] = [];\n loading[url].push({\n onLoad: onLoad,\n onProgress: onProgress,\n onError: onError\n }); // create request\n\n var req = new Request(url, {\n headers: new Headers(this.requestHeader),\n credentials: this.withCredentials ? 'include' : 'same-origin' // An abort controller could be added within a future PR\n\n }); // record states ( avoid data race )\n\n var mimeType = this.mimeType;\n var responseType = this.responseType; // start the fetch\n\n fetch(req).then(function (response) {\n if (response.status === 200 || response.status === 0) {\n // Some browsers return HTTP Status 0 when using non-http protocol\n // e.g. 'file://' or 'data://'. Handle as success.\n if (response.status === 0) {\n console.warn('THREE.FileLoader: HTTP Status 0 received.');\n } // Workaround: Checking if response.body === undefined for Alipay browser #23548\n\n\n if (typeof ReadableStream === 'undefined' || response.body === undefined || response.body.getReader === undefined) {\n return response;\n }\n\n var callbacks = loading[url];\n var reader = response.body.getReader(); // Nginx needs X-File-Size check\n // https://serverfault.com/questions/482875/why-does-nginx-remove-content-length-header-for-chunked-content\n\n var contentLength = response.headers.get('Content-Length') || response.headers.get('X-File-Size');\n var total = contentLength ? parseInt(contentLength) : 0;\n var lengthComputable = total !== 0;\n var loaded = 0; // periodically read data into the new stream tracking while download progress\n\n var stream = new ReadableStream({\n start: function start(controller) {\n readData();\n\n function readData() {\n reader.read().then(function (_ref2) {\n var done = _ref2.done,\n value = _ref2.value;\n\n if (done) {\n controller.close();\n } else {\n loaded += value.byteLength;\n var event = new ProgressEvent('progress', {\n lengthComputable: lengthComputable,\n loaded: loaded,\n total: total\n });\n\n for (var i = 0, il = callbacks.length; i < il; i++) {\n var callback = callbacks[i];\n if (callback.onProgress) callback.onProgress(event);\n }\n\n controller.enqueue(value);\n readData();\n }\n });\n }\n }\n });\n return new Response(stream);\n } else {\n throw new HttpError(\"fetch for \\\"\".concat(response.url, \"\\\" responded with \").concat(response.status, \": \").concat(response.statusText), response);\n }\n }).then(function (response) {\n switch (responseType) {\n case 'arraybuffer':\n return response.arrayBuffer();\n\n case 'blob':\n return response.blob();\n\n case 'document':\n return response.text().then(function (text) {\n var parser = new DOMParser();\n return parser.parseFromString(text, mimeType);\n });\n\n case 'json':\n return response.json();\n\n default:\n if (mimeType === undefined) {\n return response.text();\n } else {\n // sniff encoding\n var re = /charset=\"?([^;\"\\s]*)\"?/i;\n var exec = re.exec(mimeType);\n var label = exec && exec[1] ? exec[1].toLowerCase() : undefined;\n var decoder = new TextDecoder(label);\n return response.arrayBuffer().then(function (ab) {\n return decoder.decode(ab);\n });\n }\n\n }\n }).then(function (data) {\n // Add to cache only on HTTP success, so that we do not cache\n // error response bodies as proper responses to requests.\n Cache.add(url, data);\n var callbacks = loading[url];\n delete loading[url];\n\n for (var i = 0, il = callbacks.length; i < il; i++) {\n var callback = callbacks[i];\n if (callback.onLoad) callback.onLoad(data);\n }\n }).catch(function (err) {\n // Abort errors and other errors are handled the same\n var callbacks = loading[url];\n\n if (callbacks === undefined) {\n // When onLoad was called and url was deleted in `loading`\n _this94.manager.itemError(url);\n\n throw err;\n }\n\n delete loading[url];\n\n for (var i = 0, il = callbacks.length; i < il; i++) {\n var callback = callbacks[i];\n if (callback.onError) callback.onError(err);\n }\n\n _this94.manager.itemError(url);\n }).finally(function () {\n _this94.manager.itemEnd(url);\n });\n this.manager.itemStart(url);\n }\n }, {\n key: \"setResponseType\",\n value: function setResponseType(value) {\n this.responseType = value;\n return this;\n }\n }, {\n key: \"setMimeType\",\n value: function setMimeType(value) {\n this.mimeType = value;\n return this;\n }\n }]);\n\n return FileLoader;\n}(Loader);\n\nvar AnimationLoader = /*#__PURE__*/function (_Loader2) {\n _inherits(AnimationLoader, _Loader2);\n\n var _super113 = _createSuper(AnimationLoader);\n\n function AnimationLoader(manager) {\n _classCallCheck(this, AnimationLoader);\n\n return _super113.call(this, manager);\n }\n\n _createClass(AnimationLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var loader = new FileLoader(this.manager);\n loader.setPath(this.path);\n loader.setRequestHeader(this.requestHeader);\n loader.setWithCredentials(this.withCredentials);\n loader.load(url, function (text) {\n try {\n onLoad(scope.parse(JSON.parse(text)));\n } catch (e) {\n if (onError) {\n onError(e);\n } else {\n console.error(e);\n }\n\n scope.manager.itemError(url);\n }\n }, onProgress, onError);\n }\n }, {\n key: \"parse\",\n value: function parse(json) {\n var animations = [];\n\n for (var i = 0; i < json.length; i++) {\n var clip = AnimationClip.parse(json[i]);\n animations.push(clip);\n }\n\n return animations;\n }\n }]);\n\n return AnimationLoader;\n}(Loader);\n/**\n * Abstract Base class to block based textures loader (dds, pvr, ...)\n *\n * Sub classes have to implement the parse() method which will be used in load().\n */\n\n\nvar CompressedTextureLoader = /*#__PURE__*/function (_Loader3) {\n _inherits(CompressedTextureLoader, _Loader3);\n\n var _super114 = _createSuper(CompressedTextureLoader);\n\n function CompressedTextureLoader(manager) {\n _classCallCheck(this, CompressedTextureLoader);\n\n return _super114.call(this, manager);\n }\n\n _createClass(CompressedTextureLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var images = [];\n var texture = new CompressedTexture();\n var loader = new FileLoader(this.manager);\n loader.setPath(this.path);\n loader.setResponseType('arraybuffer');\n loader.setRequestHeader(this.requestHeader);\n loader.setWithCredentials(scope.withCredentials);\n var loaded = 0;\n\n function loadTexture(i) {\n loader.load(url[i], function (buffer) {\n var texDatas = scope.parse(buffer, true);\n images[i] = {\n width: texDatas.width,\n height: texDatas.height,\n format: texDatas.format,\n mipmaps: texDatas.mipmaps\n };\n loaded += 1;\n\n if (loaded === 6) {\n if (texDatas.mipmapCount === 1) texture.minFilter = LinearFilter;\n texture.image = images;\n texture.format = texDatas.format;\n texture.needsUpdate = true;\n if (onLoad) onLoad(texture);\n }\n }, onProgress, onError);\n }\n\n if (Array.isArray(url)) {\n for (var i = 0, il = url.length; i < il; ++i) {\n loadTexture(i);\n }\n } else {\n // compressed cubemap texture stored in a single DDS file\n loader.load(url, function (buffer) {\n var texDatas = scope.parse(buffer, true);\n\n if (texDatas.isCubemap) {\n var faces = texDatas.mipmaps.length / texDatas.mipmapCount;\n\n for (var f = 0; f < faces; f++) {\n images[f] = {\n mipmaps: []\n };\n\n for (var _i91 = 0; _i91 < texDatas.mipmapCount; _i91++) {\n images[f].mipmaps.push(texDatas.mipmaps[f * texDatas.mipmapCount + _i91]);\n images[f].format = texDatas.format;\n images[f].width = texDatas.width;\n images[f].height = texDatas.height;\n }\n }\n\n texture.image = images;\n } else {\n texture.image.width = texDatas.width;\n texture.image.height = texDatas.height;\n texture.mipmaps = texDatas.mipmaps;\n }\n\n if (texDatas.mipmapCount === 1) {\n texture.minFilter = LinearFilter;\n }\n\n texture.format = texDatas.format;\n texture.needsUpdate = true;\n if (onLoad) onLoad(texture);\n }, onProgress, onError);\n }\n\n return texture;\n }\n }]);\n\n return CompressedTextureLoader;\n}(Loader);\n\nvar ImageLoader = /*#__PURE__*/function (_Loader4) {\n _inherits(ImageLoader, _Loader4);\n\n var _super115 = _createSuper(ImageLoader);\n\n function ImageLoader(manager) {\n _classCallCheck(this, ImageLoader);\n\n return _super115.call(this, manager);\n }\n\n _createClass(ImageLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n if (this.path !== undefined) url = this.path + url;\n url = this.manager.resolveURL(url);\n var scope = this;\n var cached = Cache.get(url);\n\n if (cached !== undefined) {\n scope.manager.itemStart(url);\n setTimeout(function () {\n if (onLoad) onLoad(cached);\n scope.manager.itemEnd(url);\n }, 0);\n return cached;\n }\n\n var image = createElementNS('img');\n\n function onImageLoad() {\n removeEventListeners();\n Cache.add(url, this);\n if (onLoad) onLoad(this);\n scope.manager.itemEnd(url);\n }\n\n function onImageError(event) {\n removeEventListeners();\n if (onError) onError(event);\n scope.manager.itemError(url);\n scope.manager.itemEnd(url);\n }\n\n function removeEventListeners() {\n image.removeEventListener('load', onImageLoad, false);\n image.removeEventListener('error', onImageError, false);\n }\n\n image.addEventListener('load', onImageLoad, false);\n image.addEventListener('error', onImageError, false);\n\n if (url.slice(0, 5) !== 'data:') {\n if (this.crossOrigin !== undefined) image.crossOrigin = this.crossOrigin;\n }\n\n scope.manager.itemStart(url);\n image.src = url;\n return image;\n }\n }]);\n\n return ImageLoader;\n}(Loader);\n\nvar CubeTextureLoader = /*#__PURE__*/function (_Loader5) {\n _inherits(CubeTextureLoader, _Loader5);\n\n var _super116 = _createSuper(CubeTextureLoader);\n\n function CubeTextureLoader(manager) {\n _classCallCheck(this, CubeTextureLoader);\n\n return _super116.call(this, manager);\n }\n\n _createClass(CubeTextureLoader, [{\n key: \"load\",\n value: function load(urls, onLoad, onProgress, onError) {\n var texture = new CubeTexture();\n var loader = new ImageLoader(this.manager);\n loader.setCrossOrigin(this.crossOrigin);\n loader.setPath(this.path);\n var loaded = 0;\n\n function loadTexture(i) {\n loader.load(urls[i], function (image) {\n texture.images[i] = image;\n loaded++;\n\n if (loaded === 6) {\n texture.needsUpdate = true;\n if (onLoad) onLoad(texture);\n }\n }, undefined, onError);\n }\n\n for (var i = 0; i < urls.length; ++i) {\n loadTexture(i);\n }\n\n return texture;\n }\n }]);\n\n return CubeTextureLoader;\n}(Loader);\n/**\n * Abstract Base class to load generic binary textures formats (rgbe, hdr, ...)\n *\n * Sub classes have to implement the parse() method which will be used in load().\n */\n\n\nvar DataTextureLoader = /*#__PURE__*/function (_Loader6) {\n _inherits(DataTextureLoader, _Loader6);\n\n var _super117 = _createSuper(DataTextureLoader);\n\n function DataTextureLoader(manager) {\n _classCallCheck(this, DataTextureLoader);\n\n return _super117.call(this, manager);\n }\n\n _createClass(DataTextureLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var texture = new DataTexture();\n var loader = new FileLoader(this.manager);\n loader.setResponseType('arraybuffer');\n loader.setRequestHeader(this.requestHeader);\n loader.setPath(this.path);\n loader.setWithCredentials(scope.withCredentials);\n loader.load(url, function (buffer) {\n var texData = scope.parse(buffer);\n if (!texData) return;\n\n if (texData.image !== undefined) {\n texture.image = texData.image;\n } else if (texData.data !== undefined) {\n texture.image.width = texData.width;\n texture.image.height = texData.height;\n texture.image.data = texData.data;\n }\n\n texture.wrapS = texData.wrapS !== undefined ? texData.wrapS : ClampToEdgeWrapping;\n texture.wrapT = texData.wrapT !== undefined ? texData.wrapT : ClampToEdgeWrapping;\n texture.magFilter = texData.magFilter !== undefined ? texData.magFilter : LinearFilter;\n texture.minFilter = texData.minFilter !== undefined ? texData.minFilter : LinearFilter;\n texture.anisotropy = texData.anisotropy !== undefined ? texData.anisotropy : 1;\n\n if (texData.colorSpace !== undefined) {\n texture.colorSpace = texData.colorSpace;\n } else if (texData.encoding !== undefined) {\n // @deprecated, r152\n texture.encoding = texData.encoding;\n }\n\n if (texData.flipY !== undefined) {\n texture.flipY = texData.flipY;\n }\n\n if (texData.format !== undefined) {\n texture.format = texData.format;\n }\n\n if (texData.type !== undefined) {\n texture.type = texData.type;\n }\n\n if (texData.mipmaps !== undefined) {\n texture.mipmaps = texData.mipmaps;\n texture.minFilter = LinearMipmapLinearFilter; // presumably...\n }\n\n if (texData.mipmapCount === 1) {\n texture.minFilter = LinearFilter;\n }\n\n if (texData.generateMipmaps !== undefined) {\n texture.generateMipmaps = texData.generateMipmaps;\n }\n\n texture.needsUpdate = true;\n if (onLoad) onLoad(texture, texData);\n }, onProgress, onError);\n return texture;\n }\n }]);\n\n return DataTextureLoader;\n}(Loader);\n\nvar TextureLoader = /*#__PURE__*/function (_Loader7) {\n _inherits(TextureLoader, _Loader7);\n\n var _super118 = _createSuper(TextureLoader);\n\n function TextureLoader(manager) {\n _classCallCheck(this, TextureLoader);\n\n return _super118.call(this, manager);\n }\n\n _createClass(TextureLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var texture = new Texture();\n var loader = new ImageLoader(this.manager);\n loader.setCrossOrigin(this.crossOrigin);\n loader.setPath(this.path);\n loader.load(url, function (image) {\n texture.image = image;\n texture.needsUpdate = true;\n\n if (onLoad !== undefined) {\n onLoad(texture);\n }\n }, onProgress, onError);\n return texture;\n }\n }]);\n\n return TextureLoader;\n}(Loader);\n\nvar Light = /*#__PURE__*/function (_Object3D11) {\n _inherits(Light, _Object3D11);\n\n var _super119 = _createSuper(Light);\n\n function Light(color) {\n var _this95;\n\n var intensity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n _classCallCheck(this, Light);\n\n _this95 = _super119.call(this);\n _this95.isLight = true;\n _this95.type = 'Light';\n _this95.color = new Color(color);\n _this95.intensity = intensity;\n return _this95;\n }\n\n _createClass(Light, [{\n key: \"dispose\",\n value: function dispose() {// Empty here in base class; some subclasses override.\n }\n }, {\n key: \"copy\",\n value: function copy(source, recursive) {\n _get(_getPrototypeOf(Light.prototype), \"copy\", this).call(this, source, recursive);\n\n this.color.copy(source.color);\n this.intensity = source.intensity;\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON(meta) {\n var data = _get(_getPrototypeOf(Light.prototype), \"toJSON\", this).call(this, meta);\n\n data.object.color = this.color.getHex();\n data.object.intensity = this.intensity;\n if (this.groundColor !== undefined) data.object.groundColor = this.groundColor.getHex();\n if (this.distance !== undefined) data.object.distance = this.distance;\n if (this.angle !== undefined) data.object.angle = this.angle;\n if (this.decay !== undefined) data.object.decay = this.decay;\n if (this.penumbra !== undefined) data.object.penumbra = this.penumbra;\n if (this.shadow !== undefined) data.object.shadow = this.shadow.toJSON();\n return data;\n }\n }]);\n\n return Light;\n}(Object3D);\n\nvar HemisphereLight = /*#__PURE__*/function (_Light) {\n _inherits(HemisphereLight, _Light);\n\n var _super120 = _createSuper(HemisphereLight);\n\n function HemisphereLight(skyColor, groundColor, intensity) {\n var _this96;\n\n _classCallCheck(this, HemisphereLight);\n\n _this96 = _super120.call(this, skyColor, intensity);\n _this96.isHemisphereLight = true;\n _this96.type = 'HemisphereLight';\n\n _this96.position.copy(Object3D.DEFAULT_UP);\n\n _this96.updateMatrix();\n\n _this96.groundColor = new Color(groundColor);\n return _this96;\n }\n\n _createClass(HemisphereLight, [{\n key: \"copy\",\n value: function copy(source, recursive) {\n _get(_getPrototypeOf(HemisphereLight.prototype), \"copy\", this).call(this, source, recursive);\n\n this.groundColor.copy(source.groundColor);\n return this;\n }\n }]);\n\n return HemisphereLight;\n}(Light);\n\nvar _projScreenMatrix$1 = /*@__PURE__*/new Matrix4();\n\nvar _lightPositionWorld$1 = /*@__PURE__*/new Vector3();\n\nvar _lookTarget$1 = /*@__PURE__*/new Vector3();\n\nvar LightShadow = /*#__PURE__*/function () {\n function LightShadow(camera) {\n _classCallCheck(this, LightShadow);\n\n this.camera = camera;\n this.bias = 0;\n this.normalBias = 0;\n this.radius = 1;\n this.blurSamples = 8;\n this.mapSize = new Vector2(512, 512);\n this.map = null;\n this.mapPass = null;\n this.matrix = new Matrix4();\n this.autoUpdate = true;\n this.needsUpdate = false;\n this._frustum = new Frustum();\n this._frameExtents = new Vector2(1, 1);\n this._viewportCount = 1;\n this._viewports = [new Vector4(0, 0, 1, 1)];\n }\n\n _createClass(LightShadow, [{\n key: \"getViewportCount\",\n value: function getViewportCount() {\n return this._viewportCount;\n }\n }, {\n key: \"getFrustum\",\n value: function getFrustum() {\n return this._frustum;\n }\n }, {\n key: \"updateMatrices\",\n value: function updateMatrices(light) {\n var shadowCamera = this.camera;\n var shadowMatrix = this.matrix;\n\n _lightPositionWorld$1.setFromMatrixPosition(light.matrixWorld);\n\n shadowCamera.position.copy(_lightPositionWorld$1);\n\n _lookTarget$1.setFromMatrixPosition(light.target.matrixWorld);\n\n shadowCamera.lookAt(_lookTarget$1);\n shadowCamera.updateMatrixWorld();\n\n _projScreenMatrix$1.multiplyMatrices(shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse);\n\n this._frustum.setFromProjectionMatrix(_projScreenMatrix$1);\n\n shadowMatrix.set(0.5, 0.0, 0.0, 0.5, 0.0, 0.5, 0.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.0, 0.0, 0.0, 1.0);\n shadowMatrix.multiply(_projScreenMatrix$1);\n }\n }, {\n key: \"getViewport\",\n value: function getViewport(viewportIndex) {\n return this._viewports[viewportIndex];\n }\n }, {\n key: \"getFrameExtents\",\n value: function getFrameExtents() {\n return this._frameExtents;\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n if (this.map) {\n this.map.dispose();\n }\n\n if (this.mapPass) {\n this.mapPass.dispose();\n }\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n this.camera = source.camera.clone();\n this.bias = source.bias;\n this.radius = source.radius;\n this.mapSize.copy(source.mapSize);\n return this;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var object = {};\n if (this.bias !== 0) object.bias = this.bias;\n if (this.normalBias !== 0) object.normalBias = this.normalBias;\n if (this.radius !== 1) object.radius = this.radius;\n if (this.mapSize.x !== 512 || this.mapSize.y !== 512) object.mapSize = this.mapSize.toArray();\n object.camera = this.camera.toJSON(false).object;\n delete object.camera.matrix;\n return object;\n }\n }]);\n\n return LightShadow;\n}();\n\nvar SpotLightShadow = /*#__PURE__*/function (_LightShadow) {\n _inherits(SpotLightShadow, _LightShadow);\n\n var _super121 = _createSuper(SpotLightShadow);\n\n function SpotLightShadow() {\n var _this97;\n\n _classCallCheck(this, SpotLightShadow);\n\n _this97 = _super121.call(this, new PerspectiveCamera(50, 1, 0.5, 500));\n _this97.isSpotLightShadow = true;\n _this97.focus = 1;\n return _this97;\n }\n\n _createClass(SpotLightShadow, [{\n key: \"updateMatrices\",\n value: function updateMatrices(light) {\n var camera = this.camera;\n var fov = RAD2DEG * 2 * light.angle * this.focus;\n var aspect = this.mapSize.width / this.mapSize.height;\n var far = light.distance || camera.far;\n\n if (fov !== camera.fov || aspect !== camera.aspect || far !== camera.far) {\n camera.fov = fov;\n camera.aspect = aspect;\n camera.far = far;\n camera.updateProjectionMatrix();\n }\n\n _get(_getPrototypeOf(SpotLightShadow.prototype), \"updateMatrices\", this).call(this, light);\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(SpotLightShadow.prototype), \"copy\", this).call(this, source);\n\n this.focus = source.focus;\n return this;\n }\n }]);\n\n return SpotLightShadow;\n}(LightShadow);\n\nvar SpotLight = /*#__PURE__*/function (_Light2) {\n _inherits(SpotLight, _Light2);\n\n var _super122 = _createSuper(SpotLight);\n\n function SpotLight(color, intensity) {\n var _this98;\n\n var distance = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var angle = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Math.PI / 3;\n var penumbra = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var decay = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 2;\n\n _classCallCheck(this, SpotLight);\n\n _this98 = _super122.call(this, color, intensity);\n _this98.isSpotLight = true;\n _this98.type = 'SpotLight';\n\n _this98.position.copy(Object3D.DEFAULT_UP);\n\n _this98.updateMatrix();\n\n _this98.target = new Object3D();\n _this98.distance = distance;\n _this98.angle = angle;\n _this98.penumbra = penumbra;\n _this98.decay = decay;\n _this98.map = null;\n _this98.shadow = new SpotLightShadow();\n return _this98;\n }\n\n _createClass(SpotLight, [{\n key: \"power\",\n get: function get() {\n // compute the light's luminous power (in lumens) from its intensity (in candela)\n // by convention for a spotlight, luminous power (lm) = π * luminous intensity (cd)\n return this.intensity * Math.PI;\n },\n set: function set(power) {\n // set the light's intensity (in candela) from the desired luminous power (in lumens)\n this.intensity = power / Math.PI;\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n this.shadow.dispose();\n }\n }, {\n key: \"copy\",\n value: function copy(source, recursive) {\n _get(_getPrototypeOf(SpotLight.prototype), \"copy\", this).call(this, source, recursive);\n\n this.distance = source.distance;\n this.angle = source.angle;\n this.penumbra = source.penumbra;\n this.decay = source.decay;\n this.target = source.target.clone();\n this.shadow = source.shadow.clone();\n return this;\n }\n }]);\n\n return SpotLight;\n}(Light);\n\nvar _projScreenMatrix = /*@__PURE__*/new Matrix4();\n\nvar _lightPositionWorld = /*@__PURE__*/new Vector3();\n\nvar _lookTarget = /*@__PURE__*/new Vector3();\n\nvar PointLightShadow = /*#__PURE__*/function (_LightShadow2) {\n _inherits(PointLightShadow, _LightShadow2);\n\n var _super123 = _createSuper(PointLightShadow);\n\n function PointLightShadow() {\n var _this99;\n\n _classCallCheck(this, PointLightShadow);\n\n _this99 = _super123.call(this, new PerspectiveCamera(90, 1, 0.5, 500));\n _this99.isPointLightShadow = true;\n _this99._frameExtents = new Vector2(4, 2);\n _this99._viewportCount = 6;\n _this99._viewports = [// These viewports map a cube-map onto a 2D texture with the\n // following orientation:\n //\n // xzXZ\n // y Y\n //\n // X - Positive x direction\n // x - Negative x direction\n // Y - Positive y direction\n // y - Negative y direction\n // Z - Positive z direction\n // z - Negative z direction\n // positive X\n new Vector4(2, 1, 1, 1), // negative X\n new Vector4(0, 1, 1, 1), // positive Z\n new Vector4(3, 1, 1, 1), // negative Z\n new Vector4(1, 1, 1, 1), // positive Y\n new Vector4(3, 0, 1, 1), // negative Y\n new Vector4(1, 0, 1, 1)];\n _this99._cubeDirections = [new Vector3(1, 0, 0), new Vector3(-1, 0, 0), new Vector3(0, 0, 1), new Vector3(0, 0, -1), new Vector3(0, 1, 0), new Vector3(0, -1, 0)];\n _this99._cubeUps = [new Vector3(0, 1, 0), new Vector3(0, 1, 0), new Vector3(0, 1, 0), new Vector3(0, 1, 0), new Vector3(0, 0, 1), new Vector3(0, 0, -1)];\n return _this99;\n }\n\n _createClass(PointLightShadow, [{\n key: \"updateMatrices\",\n value: function updateMatrices(light) {\n var viewportIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var camera = this.camera;\n var shadowMatrix = this.matrix;\n var far = light.distance || camera.far;\n\n if (far !== camera.far) {\n camera.far = far;\n camera.updateProjectionMatrix();\n }\n\n _lightPositionWorld.setFromMatrixPosition(light.matrixWorld);\n\n camera.position.copy(_lightPositionWorld);\n\n _lookTarget.copy(camera.position);\n\n _lookTarget.add(this._cubeDirections[viewportIndex]);\n\n camera.up.copy(this._cubeUps[viewportIndex]);\n camera.lookAt(_lookTarget);\n camera.updateMatrixWorld();\n shadowMatrix.makeTranslation(-_lightPositionWorld.x, -_lightPositionWorld.y, -_lightPositionWorld.z);\n\n _projScreenMatrix.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse);\n\n this._frustum.setFromProjectionMatrix(_projScreenMatrix);\n }\n }]);\n\n return PointLightShadow;\n}(LightShadow);\n\nvar PointLight = /*#__PURE__*/function (_Light3) {\n _inherits(PointLight, _Light3);\n\n var _super124 = _createSuper(PointLight);\n\n function PointLight(color, intensity) {\n var _this100;\n\n var distance = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var decay = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 2;\n\n _classCallCheck(this, PointLight);\n\n _this100 = _super124.call(this, color, intensity);\n _this100.isPointLight = true;\n _this100.type = 'PointLight';\n _this100.distance = distance;\n _this100.decay = decay;\n _this100.shadow = new PointLightShadow();\n return _this100;\n }\n\n _createClass(PointLight, [{\n key: \"power\",\n get: function get() {\n // compute the light's luminous power (in lumens) from its intensity (in candela)\n // for an isotropic light source, luminous power (lm) = 4 π luminous intensity (cd)\n return this.intensity * 4 * Math.PI;\n },\n set: function set(power) {\n // set the light's intensity (in candela) from the desired luminous power (in lumens)\n this.intensity = power / (4 * Math.PI);\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n this.shadow.dispose();\n }\n }, {\n key: \"copy\",\n value: function copy(source, recursive) {\n _get(_getPrototypeOf(PointLight.prototype), \"copy\", this).call(this, source, recursive);\n\n this.distance = source.distance;\n this.decay = source.decay;\n this.shadow = source.shadow.clone();\n return this;\n }\n }]);\n\n return PointLight;\n}(Light);\n\nvar DirectionalLightShadow = /*#__PURE__*/function (_LightShadow3) {\n _inherits(DirectionalLightShadow, _LightShadow3);\n\n var _super125 = _createSuper(DirectionalLightShadow);\n\n function DirectionalLightShadow() {\n var _this101;\n\n _classCallCheck(this, DirectionalLightShadow);\n\n _this101 = _super125.call(this, new OrthographicCamera(-5, 5, 5, -5, 0.5, 500));\n _this101.isDirectionalLightShadow = true;\n return _this101;\n }\n\n return _createClass(DirectionalLightShadow);\n}(LightShadow);\n\nvar DirectionalLight = /*#__PURE__*/function (_Light4) {\n _inherits(DirectionalLight, _Light4);\n\n var _super126 = _createSuper(DirectionalLight);\n\n function DirectionalLight(color, intensity) {\n var _this102;\n\n _classCallCheck(this, DirectionalLight);\n\n _this102 = _super126.call(this, color, intensity);\n _this102.isDirectionalLight = true;\n _this102.type = 'DirectionalLight';\n\n _this102.position.copy(Object3D.DEFAULT_UP);\n\n _this102.updateMatrix();\n\n _this102.target = new Object3D();\n _this102.shadow = new DirectionalLightShadow();\n return _this102;\n }\n\n _createClass(DirectionalLight, [{\n key: \"dispose\",\n value: function dispose() {\n this.shadow.dispose();\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(DirectionalLight.prototype), \"copy\", this).call(this, source);\n\n this.target = source.target.clone();\n this.shadow = source.shadow.clone();\n return this;\n }\n }]);\n\n return DirectionalLight;\n}(Light);\n\nvar AmbientLight = /*#__PURE__*/function (_Light5) {\n _inherits(AmbientLight, _Light5);\n\n var _super127 = _createSuper(AmbientLight);\n\n function AmbientLight(color, intensity) {\n var _this103;\n\n _classCallCheck(this, AmbientLight);\n\n _this103 = _super127.call(this, color, intensity);\n _this103.isAmbientLight = true;\n _this103.type = 'AmbientLight';\n return _this103;\n }\n\n return _createClass(AmbientLight);\n}(Light);\n\nvar RectAreaLight = /*#__PURE__*/function (_Light6) {\n _inherits(RectAreaLight, _Light6);\n\n var _super128 = _createSuper(RectAreaLight);\n\n function RectAreaLight(color, intensity) {\n var _this104;\n\n var width = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;\n var height = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;\n\n _classCallCheck(this, RectAreaLight);\n\n _this104 = _super128.call(this, color, intensity);\n _this104.isRectAreaLight = true;\n _this104.type = 'RectAreaLight';\n _this104.width = width;\n _this104.height = height;\n return _this104;\n }\n\n _createClass(RectAreaLight, [{\n key: \"power\",\n get: function get() {\n // compute the light's luminous power (in lumens) from its intensity (in nits)\n return this.intensity * this.width * this.height * Math.PI;\n },\n set: function set(power) {\n // set the light's intensity (in nits) from the desired luminous power (in lumens)\n this.intensity = power / (this.width * this.height * Math.PI);\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(RectAreaLight.prototype), \"copy\", this).call(this, source);\n\n this.width = source.width;\n this.height = source.height;\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON(meta) {\n var data = _get(_getPrototypeOf(RectAreaLight.prototype), \"toJSON\", this).call(this, meta);\n\n data.object.width = this.width;\n data.object.height = this.height;\n return data;\n }\n }]);\n\n return RectAreaLight;\n}(Light);\n/**\n * Primary reference:\n * https://graphics.stanford.edu/papers/envmap/envmap.pdf\n *\n * Secondary reference:\n * https://www.ppsloan.org/publications/StupidSH36.pdf\n */\n// 3-band SH defined by 9 coefficients\n\n\nvar SphericalHarmonics3 = /*#__PURE__*/function () {\n function SphericalHarmonics3() {\n _classCallCheck(this, SphericalHarmonics3);\n\n this.isSphericalHarmonics3 = true;\n this.coefficients = [];\n\n for (var i = 0; i < 9; i++) {\n this.coefficients.push(new Vector3());\n }\n }\n\n _createClass(SphericalHarmonics3, [{\n key: \"set\",\n value: function set(coefficients) {\n for (var i = 0; i < 9; i++) {\n this.coefficients[i].copy(coefficients[i]);\n }\n\n return this;\n }\n }, {\n key: \"zero\",\n value: function zero() {\n for (var i = 0; i < 9; i++) {\n this.coefficients[i].set(0, 0, 0);\n }\n\n return this;\n } // get the radiance in the direction of the normal\n // target is a Vector3\n\n }, {\n key: \"getAt\",\n value: function getAt(normal, target) {\n // normal is assumed to be unit length\n var x = normal.x,\n y = normal.y,\n z = normal.z;\n var coeff = this.coefficients; // band 0\n\n target.copy(coeff[0]).multiplyScalar(0.282095); // band 1\n\n target.addScaledVector(coeff[1], 0.488603 * y);\n target.addScaledVector(coeff[2], 0.488603 * z);\n target.addScaledVector(coeff[3], 0.488603 * x); // band 2\n\n target.addScaledVector(coeff[4], 1.092548 * (x * y));\n target.addScaledVector(coeff[5], 1.092548 * (y * z));\n target.addScaledVector(coeff[6], 0.315392 * (3.0 * z * z - 1.0));\n target.addScaledVector(coeff[7], 1.092548 * (x * z));\n target.addScaledVector(coeff[8], 0.546274 * (x * x - y * y));\n return target;\n } // get the irradiance (radiance convolved with cosine lobe) in the direction of the normal\n // target is a Vector3\n // https://graphics.stanford.edu/papers/envmap/envmap.pdf\n\n }, {\n key: \"getIrradianceAt\",\n value: function getIrradianceAt(normal, target) {\n // normal is assumed to be unit length\n var x = normal.x,\n y = normal.y,\n z = normal.z;\n var coeff = this.coefficients; // band 0\n\n target.copy(coeff[0]).multiplyScalar(0.886227); // π * 0.282095\n // band 1\n\n target.addScaledVector(coeff[1], 2.0 * 0.511664 * y); // ( 2 * π / 3 ) * 0.488603\n\n target.addScaledVector(coeff[2], 2.0 * 0.511664 * z);\n target.addScaledVector(coeff[3], 2.0 * 0.511664 * x); // band 2\n\n target.addScaledVector(coeff[4], 2.0 * 0.429043 * x * y); // ( π / 4 ) * 1.092548\n\n target.addScaledVector(coeff[5], 2.0 * 0.429043 * y * z);\n target.addScaledVector(coeff[6], 0.743125 * z * z - 0.247708); // ( π / 4 ) * 0.315392 * 3\n\n target.addScaledVector(coeff[7], 2.0 * 0.429043 * x * z);\n target.addScaledVector(coeff[8], 0.429043 * (x * x - y * y)); // ( π / 4 ) * 0.546274\n\n return target;\n }\n }, {\n key: \"add\",\n value: function add(sh) {\n for (var i = 0; i < 9; i++) {\n this.coefficients[i].add(sh.coefficients[i]);\n }\n\n return this;\n }\n }, {\n key: \"addScaledSH\",\n value: function addScaledSH(sh, s) {\n for (var i = 0; i < 9; i++) {\n this.coefficients[i].addScaledVector(sh.coefficients[i], s);\n }\n\n return this;\n }\n }, {\n key: \"scale\",\n value: function scale(s) {\n for (var i = 0; i < 9; i++) {\n this.coefficients[i].multiplyScalar(s);\n }\n\n return this;\n }\n }, {\n key: \"lerp\",\n value: function lerp(sh, alpha) {\n for (var i = 0; i < 9; i++) {\n this.coefficients[i].lerp(sh.coefficients[i], alpha);\n }\n\n return this;\n }\n }, {\n key: \"equals\",\n value: function equals(sh) {\n for (var i = 0; i < 9; i++) {\n if (!this.coefficients[i].equals(sh.coefficients[i])) {\n return false;\n }\n }\n\n return true;\n }\n }, {\n key: \"copy\",\n value: function copy(sh) {\n return this.set(sh.coefficients);\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n }\n }, {\n key: \"fromArray\",\n value: function fromArray(array) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var coefficients = this.coefficients;\n\n for (var i = 0; i < 9; i++) {\n coefficients[i].fromArray(array, offset + i * 3);\n }\n\n return this;\n }\n }, {\n key: \"toArray\",\n value: function toArray() {\n var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var coefficients = this.coefficients;\n\n for (var i = 0; i < 9; i++) {\n coefficients[i].toArray(array, offset + i * 3);\n }\n\n return array;\n } // evaluate the basis functions\n // shBasis is an Array[ 9 ]\n\n }], [{\n key: \"getBasisAt\",\n value: function getBasisAt(normal, shBasis) {\n // normal is assumed to be unit length\n var x = normal.x,\n y = normal.y,\n z = normal.z; // band 0\n\n shBasis[0] = 0.282095; // band 1\n\n shBasis[1] = 0.488603 * y;\n shBasis[2] = 0.488603 * z;\n shBasis[3] = 0.488603 * x; // band 2\n\n shBasis[4] = 1.092548 * x * y;\n shBasis[5] = 1.092548 * y * z;\n shBasis[6] = 0.315392 * (3 * z * z - 1);\n shBasis[7] = 1.092548 * x * z;\n shBasis[8] = 0.546274 * (x * x - y * y);\n }\n }]);\n\n return SphericalHarmonics3;\n}();\n\nvar LightProbe = /*#__PURE__*/function (_Light7) {\n _inherits(LightProbe, _Light7);\n\n var _super129 = _createSuper(LightProbe);\n\n function LightProbe() {\n var _this105;\n\n var sh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new SphericalHarmonics3();\n var intensity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n _classCallCheck(this, LightProbe);\n\n _this105 = _super129.call(this, undefined, intensity);\n _this105.isLightProbe = true;\n _this105.sh = sh;\n return _this105;\n }\n\n _createClass(LightProbe, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(LightProbe.prototype), \"copy\", this).call(this, source);\n\n this.sh.copy(source.sh);\n return this;\n }\n }, {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n this.intensity = json.intensity; // TODO: Move this bit to Light.fromJSON();\n\n this.sh.fromArray(json.sh);\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON(meta) {\n var data = _get(_getPrototypeOf(LightProbe.prototype), \"toJSON\", this).call(this, meta);\n\n data.object.sh = this.sh.toArray();\n return data;\n }\n }]);\n\n return LightProbe;\n}(Light);\n\nvar MaterialLoader = /*#__PURE__*/function (_Loader8) {\n _inherits(MaterialLoader, _Loader8);\n\n var _super130 = _createSuper(MaterialLoader);\n\n function MaterialLoader(manager) {\n var _this106;\n\n _classCallCheck(this, MaterialLoader);\n\n _this106 = _super130.call(this, manager);\n _this106.textures = {};\n return _this106;\n }\n\n _createClass(MaterialLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var loader = new FileLoader(scope.manager);\n loader.setPath(scope.path);\n loader.setRequestHeader(scope.requestHeader);\n loader.setWithCredentials(scope.withCredentials);\n loader.load(url, function (text) {\n try {\n onLoad(scope.parse(JSON.parse(text)));\n } catch (e) {\n if (onError) {\n onError(e);\n } else {\n console.error(e);\n }\n\n scope.manager.itemError(url);\n }\n }, onProgress, onError);\n }\n }, {\n key: \"parse\",\n value: function parse(json) {\n var textures = this.textures;\n\n function getTexture(name) {\n if (textures[name] === undefined) {\n console.warn('THREE.MaterialLoader: Undefined texture', name);\n }\n\n return textures[name];\n }\n\n var material = MaterialLoader.createMaterialFromType(json.type);\n if (json.uuid !== undefined) material.uuid = json.uuid;\n if (json.name !== undefined) material.name = json.name;\n if (json.color !== undefined && material.color !== undefined) material.color.setHex(json.color);\n if (json.roughness !== undefined) material.roughness = json.roughness;\n if (json.metalness !== undefined) material.metalness = json.metalness;\n if (json.sheen !== undefined) material.sheen = json.sheen;\n if (json.sheenColor !== undefined) material.sheenColor = new Color().setHex(json.sheenColor);\n if (json.sheenRoughness !== undefined) material.sheenRoughness = json.sheenRoughness;\n if (json.emissive !== undefined && material.emissive !== undefined) material.emissive.setHex(json.emissive);\n if (json.specular !== undefined && material.specular !== undefined) material.specular.setHex(json.specular);\n if (json.specularIntensity !== undefined) material.specularIntensity = json.specularIntensity;\n if (json.specularColor !== undefined && material.specularColor !== undefined) material.specularColor.setHex(json.specularColor);\n if (json.shininess !== undefined) material.shininess = json.shininess;\n if (json.clearcoat !== undefined) material.clearcoat = json.clearcoat;\n if (json.clearcoatRoughness !== undefined) material.clearcoatRoughness = json.clearcoatRoughness;\n if (json.iridescence !== undefined) material.iridescence = json.iridescence;\n if (json.iridescenceIOR !== undefined) material.iridescenceIOR = json.iridescenceIOR;\n if (json.iridescenceThicknessRange !== undefined) material.iridescenceThicknessRange = json.iridescenceThicknessRange;\n if (json.transmission !== undefined) material.transmission = json.transmission;\n if (json.thickness !== undefined) material.thickness = json.thickness;\n if (json.attenuationDistance !== undefined) material.attenuationDistance = json.attenuationDistance;\n if (json.attenuationColor !== undefined && material.attenuationColor !== undefined) material.attenuationColor.setHex(json.attenuationColor);\n if (json.fog !== undefined) material.fog = json.fog;\n if (json.flatShading !== undefined) material.flatShading = json.flatShading;\n if (json.blending !== undefined) material.blending = json.blending;\n if (json.combine !== undefined) material.combine = json.combine;\n if (json.side !== undefined) material.side = json.side;\n if (json.shadowSide !== undefined) material.shadowSide = json.shadowSide;\n if (json.opacity !== undefined) material.opacity = json.opacity;\n if (json.transparent !== undefined) material.transparent = json.transparent;\n if (json.alphaTest !== undefined) material.alphaTest = json.alphaTest;\n if (json.depthTest !== undefined) material.depthTest = json.depthTest;\n if (json.depthWrite !== undefined) material.depthWrite = json.depthWrite;\n if (json.colorWrite !== undefined) material.colorWrite = json.colorWrite;\n if (json.stencilWrite !== undefined) material.stencilWrite = json.stencilWrite;\n if (json.stencilWriteMask !== undefined) material.stencilWriteMask = json.stencilWriteMask;\n if (json.stencilFunc !== undefined) material.stencilFunc = json.stencilFunc;\n if (json.stencilRef !== undefined) material.stencilRef = json.stencilRef;\n if (json.stencilFuncMask !== undefined) material.stencilFuncMask = json.stencilFuncMask;\n if (json.stencilFail !== undefined) material.stencilFail = json.stencilFail;\n if (json.stencilZFail !== undefined) material.stencilZFail = json.stencilZFail;\n if (json.stencilZPass !== undefined) material.stencilZPass = json.stencilZPass;\n if (json.wireframe !== undefined) material.wireframe = json.wireframe;\n if (json.wireframeLinewidth !== undefined) material.wireframeLinewidth = json.wireframeLinewidth;\n if (json.wireframeLinecap !== undefined) material.wireframeLinecap = json.wireframeLinecap;\n if (json.wireframeLinejoin !== undefined) material.wireframeLinejoin = json.wireframeLinejoin;\n if (json.rotation !== undefined) material.rotation = json.rotation;\n if (json.linewidth !== 1) material.linewidth = json.linewidth;\n if (json.dashSize !== undefined) material.dashSize = json.dashSize;\n if (json.gapSize !== undefined) material.gapSize = json.gapSize;\n if (json.scale !== undefined) material.scale = json.scale;\n if (json.polygonOffset !== undefined) material.polygonOffset = json.polygonOffset;\n if (json.polygonOffsetFactor !== undefined) material.polygonOffsetFactor = json.polygonOffsetFactor;\n if (json.polygonOffsetUnits !== undefined) material.polygonOffsetUnits = json.polygonOffsetUnits;\n if (json.dithering !== undefined) material.dithering = json.dithering;\n if (json.alphaToCoverage !== undefined) material.alphaToCoverage = json.alphaToCoverage;\n if (json.premultipliedAlpha !== undefined) material.premultipliedAlpha = json.premultipliedAlpha;\n if (json.forceSinglePass !== undefined) material.forceSinglePass = json.forceSinglePass;\n if (json.visible !== undefined) material.visible = json.visible;\n if (json.toneMapped !== undefined) material.toneMapped = json.toneMapped;\n if (json.userData !== undefined) material.userData = json.userData;\n\n if (json.vertexColors !== undefined) {\n if (typeof json.vertexColors === 'number') {\n material.vertexColors = json.vertexColors > 0 ? true : false;\n } else {\n material.vertexColors = json.vertexColors;\n }\n } // Shader Material\n\n\n if (json.uniforms !== undefined) {\n for (var name in json.uniforms) {\n var uniform = json.uniforms[name];\n material.uniforms[name] = {};\n\n switch (uniform.type) {\n case 't':\n material.uniforms[name].value = getTexture(uniform.value);\n break;\n\n case 'c':\n material.uniforms[name].value = new Color().setHex(uniform.value);\n break;\n\n case 'v2':\n material.uniforms[name].value = new Vector2().fromArray(uniform.value);\n break;\n\n case 'v3':\n material.uniforms[name].value = new Vector3().fromArray(uniform.value);\n break;\n\n case 'v4':\n material.uniforms[name].value = new Vector4().fromArray(uniform.value);\n break;\n\n case 'm3':\n material.uniforms[name].value = new Matrix3().fromArray(uniform.value);\n break;\n\n case 'm4':\n material.uniforms[name].value = new Matrix4().fromArray(uniform.value);\n break;\n\n default:\n material.uniforms[name].value = uniform.value;\n }\n }\n }\n\n if (json.defines !== undefined) material.defines = json.defines;\n if (json.vertexShader !== undefined) material.vertexShader = json.vertexShader;\n if (json.fragmentShader !== undefined) material.fragmentShader = json.fragmentShader;\n if (json.glslVersion !== undefined) material.glslVersion = json.glslVersion;\n\n if (json.extensions !== undefined) {\n for (var key in json.extensions) {\n material.extensions[key] = json.extensions[key];\n }\n }\n\n if (json.lights !== undefined) material.lights = json.lights;\n if (json.clipping !== undefined) material.clipping = json.clipping; // for PointsMaterial\n\n if (json.size !== undefined) material.size = json.size;\n if (json.sizeAttenuation !== undefined) material.sizeAttenuation = json.sizeAttenuation; // maps\n\n if (json.map !== undefined) material.map = getTexture(json.map);\n if (json.matcap !== undefined) material.matcap = getTexture(json.matcap);\n if (json.alphaMap !== undefined) material.alphaMap = getTexture(json.alphaMap);\n if (json.bumpMap !== undefined) material.bumpMap = getTexture(json.bumpMap);\n if (json.bumpScale !== undefined) material.bumpScale = json.bumpScale;\n if (json.normalMap !== undefined) material.normalMap = getTexture(json.normalMap);\n if (json.normalMapType !== undefined) material.normalMapType = json.normalMapType;\n\n if (json.normalScale !== undefined) {\n var normalScale = json.normalScale;\n\n if (Array.isArray(normalScale) === false) {\n // Blender exporter used to export a scalar. See #7459\n normalScale = [normalScale, normalScale];\n }\n\n material.normalScale = new Vector2().fromArray(normalScale);\n }\n\n if (json.displacementMap !== undefined) material.displacementMap = getTexture(json.displacementMap);\n if (json.displacementScale !== undefined) material.displacementScale = json.displacementScale;\n if (json.displacementBias !== undefined) material.displacementBias = json.displacementBias;\n if (json.roughnessMap !== undefined) material.roughnessMap = getTexture(json.roughnessMap);\n if (json.metalnessMap !== undefined) material.metalnessMap = getTexture(json.metalnessMap);\n if (json.emissiveMap !== undefined) material.emissiveMap = getTexture(json.emissiveMap);\n if (json.emissiveIntensity !== undefined) material.emissiveIntensity = json.emissiveIntensity;\n if (json.specularMap !== undefined) material.specularMap = getTexture(json.specularMap);\n if (json.specularIntensityMap !== undefined) material.specularIntensityMap = getTexture(json.specularIntensityMap);\n if (json.specularColorMap !== undefined) material.specularColorMap = getTexture(json.specularColorMap);\n if (json.envMap !== undefined) material.envMap = getTexture(json.envMap);\n if (json.envMapIntensity !== undefined) material.envMapIntensity = json.envMapIntensity;\n if (json.reflectivity !== undefined) material.reflectivity = json.reflectivity;\n if (json.refractionRatio !== undefined) material.refractionRatio = json.refractionRatio;\n if (json.lightMap !== undefined) material.lightMap = getTexture(json.lightMap);\n if (json.lightMapIntensity !== undefined) material.lightMapIntensity = json.lightMapIntensity;\n if (json.aoMap !== undefined) material.aoMap = getTexture(json.aoMap);\n if (json.aoMapIntensity !== undefined) material.aoMapIntensity = json.aoMapIntensity;\n if (json.gradientMap !== undefined) material.gradientMap = getTexture(json.gradientMap);\n if (json.clearcoatMap !== undefined) material.clearcoatMap = getTexture(json.clearcoatMap);\n if (json.clearcoatRoughnessMap !== undefined) material.clearcoatRoughnessMap = getTexture(json.clearcoatRoughnessMap);\n if (json.clearcoatNormalMap !== undefined) material.clearcoatNormalMap = getTexture(json.clearcoatNormalMap);\n if (json.clearcoatNormalScale !== undefined) material.clearcoatNormalScale = new Vector2().fromArray(json.clearcoatNormalScale);\n if (json.iridescenceMap !== undefined) material.iridescenceMap = getTexture(json.iridescenceMap);\n if (json.iridescenceThicknessMap !== undefined) material.iridescenceThicknessMap = getTexture(json.iridescenceThicknessMap);\n if (json.transmissionMap !== undefined) material.transmissionMap = getTexture(json.transmissionMap);\n if (json.thicknessMap !== undefined) material.thicknessMap = getTexture(json.thicknessMap);\n if (json.sheenColorMap !== undefined) material.sheenColorMap = getTexture(json.sheenColorMap);\n if (json.sheenRoughnessMap !== undefined) material.sheenRoughnessMap = getTexture(json.sheenRoughnessMap);\n return material;\n }\n }, {\n key: \"setTextures\",\n value: function setTextures(value) {\n this.textures = value;\n return this;\n }\n }], [{\n key: \"createMaterialFromType\",\n value: function createMaterialFromType(type) {\n var materialLib = {\n ShadowMaterial: ShadowMaterial,\n SpriteMaterial: SpriteMaterial,\n RawShaderMaterial: RawShaderMaterial,\n ShaderMaterial: ShaderMaterial,\n PointsMaterial: PointsMaterial,\n MeshPhysicalMaterial: MeshPhysicalMaterial,\n MeshStandardMaterial: MeshStandardMaterial,\n MeshPhongMaterial: MeshPhongMaterial,\n MeshToonMaterial: MeshToonMaterial,\n MeshNormalMaterial: MeshNormalMaterial,\n MeshLambertMaterial: MeshLambertMaterial,\n MeshDepthMaterial: MeshDepthMaterial,\n MeshDistanceMaterial: MeshDistanceMaterial,\n MeshBasicMaterial: MeshBasicMaterial,\n MeshMatcapMaterial: MeshMatcapMaterial,\n LineDashedMaterial: LineDashedMaterial,\n LineBasicMaterial: LineBasicMaterial,\n Material: Material\n };\n return new materialLib[type]();\n }\n }]);\n\n return MaterialLoader;\n}(Loader);\n\nvar LoaderUtils = /*#__PURE__*/function () {\n function LoaderUtils() {\n _classCallCheck(this, LoaderUtils);\n }\n\n _createClass(LoaderUtils, null, [{\n key: \"decodeText\",\n value: function decodeText(array) {\n if (typeof TextDecoder !== 'undefined') {\n return new TextDecoder().decode(array);\n } // Avoid the String.fromCharCode.apply(null, array) shortcut, which\n // throws a \"maximum call stack size exceeded\" error for large arrays.\n\n\n var s = '';\n\n for (var i = 0, il = array.length; i < il; i++) {\n // Implicitly assumes little-endian.\n s += String.fromCharCode(array[i]);\n }\n\n try {\n // merges multi-byte utf-8 characters.\n return decodeURIComponent(escape(s));\n } catch (e) {\n // see #16358\n return s;\n }\n }\n }, {\n key: \"extractUrlBase\",\n value: function extractUrlBase(url) {\n var index = url.lastIndexOf('/');\n if (index === -1) return './';\n return url.slice(0, index + 1);\n }\n }, {\n key: \"resolveURL\",\n value: function resolveURL(url, path) {\n // Invalid URL\n if (typeof url !== 'string' || url === '') return ''; // Host Relative URL\n\n if (/^https?:\\/\\//i.test(path) && /^\\//.test(url)) {\n path = path.replace(/(^https?:\\/\\/[^\\/]+).*/i, '$1');\n } // Absolute URL http://,https://,//\n\n\n if (/^(https?:)?\\/\\//i.test(url)) return url; // Data URI\n\n if (/^data:.*,.*$/i.test(url)) return url; // Blob URL\n\n if (/^blob:.*$/i.test(url)) return url; // Relative URL\n\n return path + url;\n }\n }]);\n\n return LoaderUtils;\n}();\n\nvar InstancedBufferGeometry = /*#__PURE__*/function (_BufferGeometry16) {\n _inherits(InstancedBufferGeometry, _BufferGeometry16);\n\n var _super131 = _createSuper(InstancedBufferGeometry);\n\n function InstancedBufferGeometry() {\n var _this107;\n\n _classCallCheck(this, InstancedBufferGeometry);\n\n _this107 = _super131.call(this);\n _this107.isInstancedBufferGeometry = true;\n _this107.type = 'InstancedBufferGeometry';\n _this107.instanceCount = Infinity;\n return _this107;\n }\n\n _createClass(InstancedBufferGeometry, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(InstancedBufferGeometry.prototype), \"copy\", this).call(this, source);\n\n this.instanceCount = source.instanceCount;\n return this;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var data = _get(_getPrototypeOf(InstancedBufferGeometry.prototype), \"toJSON\", this).call(this);\n\n data.instanceCount = this.instanceCount;\n data.isInstancedBufferGeometry = true;\n return data;\n }\n }]);\n\n return InstancedBufferGeometry;\n}(BufferGeometry);\n\nvar BufferGeometryLoader = /*#__PURE__*/function (_Loader9) {\n _inherits(BufferGeometryLoader, _Loader9);\n\n var _super132 = _createSuper(BufferGeometryLoader);\n\n function BufferGeometryLoader(manager) {\n _classCallCheck(this, BufferGeometryLoader);\n\n return _super132.call(this, manager);\n }\n\n _createClass(BufferGeometryLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var loader = new FileLoader(scope.manager);\n loader.setPath(scope.path);\n loader.setRequestHeader(scope.requestHeader);\n loader.setWithCredentials(scope.withCredentials);\n loader.load(url, function (text) {\n try {\n onLoad(scope.parse(JSON.parse(text)));\n } catch (e) {\n if (onError) {\n onError(e);\n } else {\n console.error(e);\n }\n\n scope.manager.itemError(url);\n }\n }, onProgress, onError);\n }\n }, {\n key: \"parse\",\n value: function parse(json) {\n var interleavedBufferMap = {};\n var arrayBufferMap = {};\n\n function getInterleavedBuffer(json, uuid) {\n if (interleavedBufferMap[uuid] !== undefined) return interleavedBufferMap[uuid];\n var interleavedBuffers = json.interleavedBuffers;\n var interleavedBuffer = interleavedBuffers[uuid];\n var buffer = getArrayBuffer(json, interleavedBuffer.buffer);\n var array = getTypedArray(interleavedBuffer.type, buffer);\n var ib = new InterleavedBuffer(array, interleavedBuffer.stride);\n ib.uuid = interleavedBuffer.uuid;\n interleavedBufferMap[uuid] = ib;\n return ib;\n }\n\n function getArrayBuffer(json, uuid) {\n if (arrayBufferMap[uuid] !== undefined) return arrayBufferMap[uuid];\n var arrayBuffers = json.arrayBuffers;\n var arrayBuffer = arrayBuffers[uuid];\n var ab = new Uint32Array(arrayBuffer).buffer;\n arrayBufferMap[uuid] = ab;\n return ab;\n }\n\n var geometry = json.isInstancedBufferGeometry ? new InstancedBufferGeometry() : new BufferGeometry();\n var index = json.data.index;\n\n if (index !== undefined) {\n var typedArray = getTypedArray(index.type, index.array);\n geometry.setIndex(new BufferAttribute(typedArray, 1));\n }\n\n var attributes = json.data.attributes;\n\n for (var key in attributes) {\n var attribute = attributes[key];\n var bufferAttribute = void 0;\n\n if (attribute.isInterleavedBufferAttribute) {\n var interleavedBuffer = getInterleavedBuffer(json.data, attribute.data);\n bufferAttribute = new InterleavedBufferAttribute(interleavedBuffer, attribute.itemSize, attribute.offset, attribute.normalized);\n } else {\n var _typedArray = getTypedArray(attribute.type, attribute.array);\n\n var bufferAttributeConstr = attribute.isInstancedBufferAttribute ? InstancedBufferAttribute : BufferAttribute;\n bufferAttribute = new bufferAttributeConstr(_typedArray, attribute.itemSize, attribute.normalized);\n }\n\n if (attribute.name !== undefined) bufferAttribute.name = attribute.name;\n if (attribute.usage !== undefined) bufferAttribute.setUsage(attribute.usage);\n\n if (attribute.updateRange !== undefined) {\n bufferAttribute.updateRange.offset = attribute.updateRange.offset;\n bufferAttribute.updateRange.count = attribute.updateRange.count;\n }\n\n geometry.setAttribute(key, bufferAttribute);\n }\n\n var morphAttributes = json.data.morphAttributes;\n\n if (morphAttributes) {\n for (var _key3 in morphAttributes) {\n var attributeArray = morphAttributes[_key3];\n var array = [];\n\n for (var i = 0, il = attributeArray.length; i < il; i++) {\n var _attribute3 = attributeArray[i];\n\n var _bufferAttribute = void 0;\n\n if (_attribute3.isInterleavedBufferAttribute) {\n var _interleavedBuffer = getInterleavedBuffer(json.data, _attribute3.data);\n\n _bufferAttribute = new InterleavedBufferAttribute(_interleavedBuffer, _attribute3.itemSize, _attribute3.offset, _attribute3.normalized);\n } else {\n var _typedArray2 = getTypedArray(_attribute3.type, _attribute3.array);\n\n _bufferAttribute = new BufferAttribute(_typedArray2, _attribute3.itemSize, _attribute3.normalized);\n }\n\n if (_attribute3.name !== undefined) _bufferAttribute.name = _attribute3.name;\n array.push(_bufferAttribute);\n }\n\n geometry.morphAttributes[_key3] = array;\n }\n }\n\n var morphTargetsRelative = json.data.morphTargetsRelative;\n\n if (morphTargetsRelative) {\n geometry.morphTargetsRelative = true;\n }\n\n var groups = json.data.groups || json.data.drawcalls || json.data.offsets;\n\n if (groups !== undefined) {\n for (var _i92 = 0, n = groups.length; _i92 !== n; ++_i92) {\n var group = groups[_i92];\n geometry.addGroup(group.start, group.count, group.materialIndex);\n }\n }\n\n var boundingSphere = json.data.boundingSphere;\n\n if (boundingSphere !== undefined) {\n var center = new Vector3();\n\n if (boundingSphere.center !== undefined) {\n center.fromArray(boundingSphere.center);\n }\n\n geometry.boundingSphere = new Sphere(center, boundingSphere.radius);\n }\n\n if (json.name) geometry.name = json.name;\n if (json.userData) geometry.userData = json.userData;\n return geometry;\n }\n }]);\n\n return BufferGeometryLoader;\n}(Loader);\n\nvar ObjectLoader = /*#__PURE__*/function (_Loader10) {\n _inherits(ObjectLoader, _Loader10);\n\n var _super133 = _createSuper(ObjectLoader);\n\n function ObjectLoader(manager) {\n _classCallCheck(this, ObjectLoader);\n\n return _super133.call(this, manager);\n }\n\n _createClass(ObjectLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var path = this.path === '' ? LoaderUtils.extractUrlBase(url) : this.path;\n this.resourcePath = this.resourcePath || path;\n var loader = new FileLoader(this.manager);\n loader.setPath(this.path);\n loader.setRequestHeader(this.requestHeader);\n loader.setWithCredentials(this.withCredentials);\n loader.load(url, function (text) {\n var json = null;\n\n try {\n json = JSON.parse(text);\n } catch (error) {\n if (onError !== undefined) onError(error);\n console.error('THREE:ObjectLoader: Can\\'t parse ' + url + '.', error.message);\n return;\n }\n\n var metadata = json.metadata;\n\n if (metadata === undefined || metadata.type === undefined || metadata.type.toLowerCase() === 'geometry') {\n if (onError !== undefined) onError(new Error('THREE.ObjectLoader: Can\\'t load ' + url));\n console.error('THREE.ObjectLoader: Can\\'t load ' + url);\n return;\n }\n\n scope.parse(json, onLoad);\n }, onProgress, onError);\n }\n }, {\n key: \"loadAsync\",\n value: function () {\n var _loadAsync = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(url, onProgress) {\n var scope, path, loader, text, json, metadata;\n return _regeneratorRuntime().wrap(function _callee2$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n scope = this;\n path = this.path === '' ? LoaderUtils.extractUrlBase(url) : this.path;\n this.resourcePath = this.resourcePath || path;\n loader = new FileLoader(this.manager);\n loader.setPath(this.path);\n loader.setRequestHeader(this.requestHeader);\n loader.setWithCredentials(this.withCredentials);\n _context10.next = 9;\n return loader.loadAsync(url, onProgress);\n\n case 9:\n text = _context10.sent;\n json = JSON.parse(text);\n metadata = json.metadata;\n\n if (!(metadata === undefined || metadata.type === undefined || metadata.type.toLowerCase() === 'geometry')) {\n _context10.next = 14;\n break;\n }\n\n throw new Error('THREE.ObjectLoader: Can\\'t load ' + url);\n\n case 14:\n _context10.next = 16;\n return scope.parseAsync(json);\n\n case 16:\n return _context10.abrupt(\"return\", _context10.sent);\n\n case 17:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function loadAsync(_x7, _x8) {\n return _loadAsync.apply(this, arguments);\n }\n\n return loadAsync;\n }()\n }, {\n key: \"parse\",\n value: function parse(json, onLoad) {\n var animations = this.parseAnimations(json.animations);\n var shapes = this.parseShapes(json.shapes);\n var geometries = this.parseGeometries(json.geometries, shapes);\n var images = this.parseImages(json.images, function () {\n if (onLoad !== undefined) onLoad(object);\n });\n var textures = this.parseTextures(json.textures, images);\n var materials = this.parseMaterials(json.materials, textures);\n var object = this.parseObject(json.object, geometries, materials, textures, animations);\n var skeletons = this.parseSkeletons(json.skeletons, object);\n this.bindSkeletons(object, skeletons); //\n\n if (onLoad !== undefined) {\n var hasImages = false;\n\n for (var uuid in images) {\n if (images[uuid].data instanceof HTMLImageElement) {\n hasImages = true;\n break;\n }\n }\n\n if (hasImages === false) onLoad(object);\n }\n\n return object;\n }\n }, {\n key: \"parseAsync\",\n value: function () {\n var _parseAsync = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(json) {\n var animations, shapes, geometries, images, textures, materials, object, skeletons;\n return _regeneratorRuntime().wrap(function _callee3$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n animations = this.parseAnimations(json.animations);\n shapes = this.parseShapes(json.shapes);\n geometries = this.parseGeometries(json.geometries, shapes);\n _context11.next = 5;\n return this.parseImagesAsync(json.images);\n\n case 5:\n images = _context11.sent;\n textures = this.parseTextures(json.textures, images);\n materials = this.parseMaterials(json.materials, textures);\n object = this.parseObject(json.object, geometries, materials, textures, animations);\n skeletons = this.parseSkeletons(json.skeletons, object);\n this.bindSkeletons(object, skeletons);\n return _context11.abrupt(\"return\", object);\n\n case 12:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function parseAsync(_x9) {\n return _parseAsync.apply(this, arguments);\n }\n\n return parseAsync;\n }()\n }, {\n key: \"parseShapes\",\n value: function parseShapes(json) {\n var shapes = {};\n\n if (json !== undefined) {\n for (var i = 0, l = json.length; i < l; i++) {\n var shape = new Shape().fromJSON(json[i]);\n shapes[shape.uuid] = shape;\n }\n }\n\n return shapes;\n }\n }, {\n key: \"parseSkeletons\",\n value: function parseSkeletons(json, object) {\n var skeletons = {};\n var bones = {}; // generate bone lookup table\n\n object.traverse(function (child) {\n if (child.isBone) bones[child.uuid] = child;\n }); // create skeletons\n\n if (json !== undefined) {\n for (var i = 0, l = json.length; i < l; i++) {\n var skeleton = new Skeleton().fromJSON(json[i], bones);\n skeletons[skeleton.uuid] = skeleton;\n }\n }\n\n return skeletons;\n }\n }, {\n key: \"parseGeometries\",\n value: function parseGeometries(json, shapes) {\n var geometries = {};\n\n if (json !== undefined) {\n var bufferGeometryLoader = new BufferGeometryLoader();\n\n for (var i = 0, l = json.length; i < l; i++) {\n var geometry = void 0;\n var data = json[i];\n\n switch (data.type) {\n case 'BufferGeometry':\n case 'InstancedBufferGeometry':\n geometry = bufferGeometryLoader.parse(data);\n break;\n\n default:\n if (data.type in Geometries) {\n geometry = Geometries[data.type].fromJSON(data, shapes);\n } else {\n console.warn(\"THREE.ObjectLoader: Unsupported geometry type \\\"\".concat(data.type, \"\\\"\"));\n }\n\n }\n\n geometry.uuid = data.uuid;\n if (data.name !== undefined) geometry.name = data.name;\n if (data.userData !== undefined) geometry.userData = data.userData;\n geometries[data.uuid] = geometry;\n }\n }\n\n return geometries;\n }\n }, {\n key: \"parseMaterials\",\n value: function parseMaterials(json, textures) {\n var cache = {}; // MultiMaterial\n\n var materials = {};\n\n if (json !== undefined) {\n var loader = new MaterialLoader();\n loader.setTextures(textures);\n\n for (var i = 0, l = json.length; i < l; i++) {\n var data = json[i];\n\n if (cache[data.uuid] === undefined) {\n cache[data.uuid] = loader.parse(data);\n }\n\n materials[data.uuid] = cache[data.uuid];\n }\n }\n\n return materials;\n }\n }, {\n key: \"parseAnimations\",\n value: function parseAnimations(json) {\n var animations = {};\n\n if (json !== undefined) {\n for (var i = 0; i < json.length; i++) {\n var data = json[i];\n var clip = AnimationClip.parse(data);\n animations[clip.uuid] = clip;\n }\n }\n\n return animations;\n }\n }, {\n key: \"parseImages\",\n value: function parseImages(json, onLoad) {\n var scope = this;\n var images = {};\n var loader;\n\n function loadImage(url) {\n scope.manager.itemStart(url);\n return loader.load(url, function () {\n scope.manager.itemEnd(url);\n }, undefined, function () {\n scope.manager.itemError(url);\n scope.manager.itemEnd(url);\n });\n }\n\n function deserializeImage(image) {\n if (typeof image === 'string') {\n var url = image;\n var path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(url) ? url : scope.resourcePath + url;\n return loadImage(path);\n } else {\n if (image.data) {\n return {\n data: getTypedArray(image.type, image.data),\n width: image.width,\n height: image.height\n };\n } else {\n return null;\n }\n }\n }\n\n if (json !== undefined && json.length > 0) {\n var manager = new LoadingManager(onLoad);\n loader = new ImageLoader(manager);\n loader.setCrossOrigin(this.crossOrigin);\n\n for (var i = 0, il = json.length; i < il; i++) {\n var image = json[i];\n var url = image.url;\n\n if (Array.isArray(url)) {\n // load array of images e.g CubeTexture\n var imageArray = [];\n\n for (var j = 0, jl = url.length; j < jl; j++) {\n var currentUrl = url[j];\n var deserializedImage = deserializeImage(currentUrl);\n\n if (deserializedImage !== null) {\n if (deserializedImage instanceof HTMLImageElement) {\n imageArray.push(deserializedImage);\n } else {\n // special case: handle array of data textures for cube textures\n imageArray.push(new DataTexture(deserializedImage.data, deserializedImage.width, deserializedImage.height));\n }\n }\n }\n\n images[image.uuid] = new Source(imageArray);\n } else {\n // load single image\n var _deserializedImage = deserializeImage(image.url);\n\n images[image.uuid] = new Source(_deserializedImage);\n }\n }\n }\n\n return images;\n }\n }, {\n key: \"parseImagesAsync\",\n value: function () {\n var _parseImagesAsync = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(json) {\n var scope, images, loader, deserializeImage, _deserializeImage, i, il, image, url, imageArray, j, jl, currentUrl, deserializedImage, _deserializedImage2;\n\n return _regeneratorRuntime().wrap(function _callee5$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n _deserializeImage = function _deserializeImage3() {\n _deserializeImage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(image) {\n var _url, path;\n\n return _regeneratorRuntime().wrap(function _callee4$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n if (!(typeof image === 'string')) {\n _context12.next = 8;\n break;\n }\n\n _url = image;\n path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(_url) ? _url : scope.resourcePath + _url;\n _context12.next = 5;\n return loader.loadAsync(path);\n\n case 5:\n return _context12.abrupt(\"return\", _context12.sent);\n\n case 8:\n if (!image.data) {\n _context12.next = 12;\n break;\n }\n\n return _context12.abrupt(\"return\", {\n data: getTypedArray(image.type, image.data),\n width: image.width,\n height: image.height\n });\n\n case 12:\n return _context12.abrupt(\"return\", null);\n\n case 13:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee4);\n }));\n return _deserializeImage.apply(this, arguments);\n };\n\n deserializeImage = function _deserializeImage2(_x11) {\n return _deserializeImage.apply(this, arguments);\n };\n\n scope = this;\n images = {};\n\n if (!(json !== undefined && json.length > 0)) {\n _context13.next = 33;\n break;\n }\n\n loader = new ImageLoader(this.manager);\n loader.setCrossOrigin(this.crossOrigin);\n i = 0, il = json.length;\n\n case 8:\n if (!(i < il)) {\n _context13.next = 33;\n break;\n }\n\n image = json[i];\n url = image.url;\n\n if (!Array.isArray(url)) {\n _context13.next = 26;\n break;\n }\n\n // load array of images e.g CubeTexture\n imageArray = [];\n j = 0, jl = url.length;\n\n case 14:\n if (!(j < jl)) {\n _context13.next = 23;\n break;\n }\n\n currentUrl = url[j];\n _context13.next = 18;\n return deserializeImage(currentUrl);\n\n case 18:\n deserializedImage = _context13.sent;\n\n if (deserializedImage !== null) {\n if (deserializedImage instanceof HTMLImageElement) {\n imageArray.push(deserializedImage);\n } else {\n // special case: handle array of data textures for cube textures\n imageArray.push(new DataTexture(deserializedImage.data, deserializedImage.width, deserializedImage.height));\n }\n }\n\n case 20:\n j++;\n _context13.next = 14;\n break;\n\n case 23:\n images[image.uuid] = new Source(imageArray);\n _context13.next = 30;\n break;\n\n case 26:\n _context13.next = 28;\n return deserializeImage(image.url);\n\n case 28:\n _deserializedImage2 = _context13.sent;\n images[image.uuid] = new Source(_deserializedImage2);\n\n case 30:\n i++;\n _context13.next = 8;\n break;\n\n case 33:\n return _context13.abrupt(\"return\", images);\n\n case 34:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee5, this);\n }));\n\n function parseImagesAsync(_x10) {\n return _parseImagesAsync.apply(this, arguments);\n }\n\n return parseImagesAsync;\n }()\n }, {\n key: \"parseTextures\",\n value: function parseTextures(json, images) {\n function parseConstant(value, type) {\n if (typeof value === 'number') return value;\n console.warn('THREE.ObjectLoader.parseTexture: Constant should be in numeric form.', value);\n return type[value];\n }\n\n var textures = {};\n\n if (json !== undefined) {\n for (var i = 0, l = json.length; i < l; i++) {\n var data = json[i];\n\n if (data.image === undefined) {\n console.warn('THREE.ObjectLoader: No \"image\" specified for', data.uuid);\n }\n\n if (images[data.image] === undefined) {\n console.warn('THREE.ObjectLoader: Undefined image', data.image);\n }\n\n var source = images[data.image];\n var image = source.data;\n var texture = void 0;\n\n if (Array.isArray(image)) {\n texture = new CubeTexture();\n if (image.length === 6) texture.needsUpdate = true;\n } else {\n if (image && image.data) {\n texture = new DataTexture();\n } else {\n texture = new Texture();\n }\n\n if (image) texture.needsUpdate = true; // textures can have undefined image data\n }\n\n texture.source = source;\n texture.uuid = data.uuid;\n if (data.name !== undefined) texture.name = data.name;\n if (data.mapping !== undefined) texture.mapping = parseConstant(data.mapping, TEXTURE_MAPPING);\n if (data.channel !== undefined) texture.channel = data.channel;\n if (data.offset !== undefined) texture.offset.fromArray(data.offset);\n if (data.repeat !== undefined) texture.repeat.fromArray(data.repeat);\n if (data.center !== undefined) texture.center.fromArray(data.center);\n if (data.rotation !== undefined) texture.rotation = data.rotation;\n\n if (data.wrap !== undefined) {\n texture.wrapS = parseConstant(data.wrap[0], TEXTURE_WRAPPING);\n texture.wrapT = parseConstant(data.wrap[1], TEXTURE_WRAPPING);\n }\n\n if (data.format !== undefined) texture.format = data.format;\n if (data.internalFormat !== undefined) texture.internalFormat = data.internalFormat;\n if (data.type !== undefined) texture.type = data.type;\n if (data.colorSpace !== undefined) texture.colorSpace = data.colorSpace;\n if (data.encoding !== undefined) texture.encoding = data.encoding; // @deprecated, r152\n\n if (data.minFilter !== undefined) texture.minFilter = parseConstant(data.minFilter, TEXTURE_FILTER);\n if (data.magFilter !== undefined) texture.magFilter = parseConstant(data.magFilter, TEXTURE_FILTER);\n if (data.anisotropy !== undefined) texture.anisotropy = data.anisotropy;\n if (data.flipY !== undefined) texture.flipY = data.flipY;\n if (data.generateMipmaps !== undefined) texture.generateMipmaps = data.generateMipmaps;\n if (data.premultiplyAlpha !== undefined) texture.premultiplyAlpha = data.premultiplyAlpha;\n if (data.unpackAlignment !== undefined) texture.unpackAlignment = data.unpackAlignment;\n if (data.userData !== undefined) texture.userData = data.userData;\n textures[data.uuid] = texture;\n }\n }\n\n return textures;\n }\n }, {\n key: \"parseObject\",\n value: function parseObject(data, geometries, materials, textures, animations) {\n var object;\n\n function getGeometry(name) {\n if (geometries[name] === undefined) {\n console.warn('THREE.ObjectLoader: Undefined geometry', name);\n }\n\n return geometries[name];\n }\n\n function getMaterial(name) {\n if (name === undefined) return undefined;\n\n if (Array.isArray(name)) {\n var array = [];\n\n for (var i = 0, l = name.length; i < l; i++) {\n var uuid = name[i];\n\n if (materials[uuid] === undefined) {\n console.warn('THREE.ObjectLoader: Undefined material', uuid);\n }\n\n array.push(materials[uuid]);\n }\n\n return array;\n }\n\n if (materials[name] === undefined) {\n console.warn('THREE.ObjectLoader: Undefined material', name);\n }\n\n return materials[name];\n }\n\n function getTexture(uuid) {\n if (textures[uuid] === undefined) {\n console.warn('THREE.ObjectLoader: Undefined texture', uuid);\n }\n\n return textures[uuid];\n }\n\n var geometry, material;\n\n switch (data.type) {\n case 'Scene':\n object = new Scene();\n\n if (data.background !== undefined) {\n if (Number.isInteger(data.background)) {\n object.background = new Color(data.background);\n } else {\n object.background = getTexture(data.background);\n }\n }\n\n if (data.environment !== undefined) {\n object.environment = getTexture(data.environment);\n }\n\n if (data.fog !== undefined) {\n if (data.fog.type === 'Fog') {\n object.fog = new Fog(data.fog.color, data.fog.near, data.fog.far);\n } else if (data.fog.type === 'FogExp2') {\n object.fog = new FogExp2(data.fog.color, data.fog.density);\n }\n }\n\n if (data.backgroundBlurriness !== undefined) object.backgroundBlurriness = data.backgroundBlurriness;\n if (data.backgroundIntensity !== undefined) object.backgroundIntensity = data.backgroundIntensity;\n break;\n\n case 'PerspectiveCamera':\n object = new PerspectiveCamera(data.fov, data.aspect, data.near, data.far);\n if (data.focus !== undefined) object.focus = data.focus;\n if (data.zoom !== undefined) object.zoom = data.zoom;\n if (data.filmGauge !== undefined) object.filmGauge = data.filmGauge;\n if (data.filmOffset !== undefined) object.filmOffset = data.filmOffset;\n if (data.view !== undefined) object.view = Object.assign({}, data.view);\n break;\n\n case 'OrthographicCamera':\n object = new OrthographicCamera(data.left, data.right, data.top, data.bottom, data.near, data.far);\n if (data.zoom !== undefined) object.zoom = data.zoom;\n if (data.view !== undefined) object.view = Object.assign({}, data.view);\n break;\n\n case 'AmbientLight':\n object = new AmbientLight(data.color, data.intensity);\n break;\n\n case 'DirectionalLight':\n object = new DirectionalLight(data.color, data.intensity);\n break;\n\n case 'PointLight':\n object = new PointLight(data.color, data.intensity, data.distance, data.decay);\n break;\n\n case 'RectAreaLight':\n object = new RectAreaLight(data.color, data.intensity, data.width, data.height);\n break;\n\n case 'SpotLight':\n object = new SpotLight(data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay);\n break;\n\n case 'HemisphereLight':\n object = new HemisphereLight(data.color, data.groundColor, data.intensity);\n break;\n\n case 'LightProbe':\n object = new LightProbe().fromJSON(data);\n break;\n\n case 'SkinnedMesh':\n geometry = getGeometry(data.geometry);\n material = getMaterial(data.material);\n object = new SkinnedMesh(geometry, material);\n if (data.bindMode !== undefined) object.bindMode = data.bindMode;\n if (data.bindMatrix !== undefined) object.bindMatrix.fromArray(data.bindMatrix);\n if (data.skeleton !== undefined) object.skeleton = data.skeleton;\n break;\n\n case 'Mesh':\n geometry = getGeometry(data.geometry);\n material = getMaterial(data.material);\n object = new Mesh(geometry, material);\n break;\n\n case 'InstancedMesh':\n geometry = getGeometry(data.geometry);\n material = getMaterial(data.material);\n var count = data.count;\n var instanceMatrix = data.instanceMatrix;\n var instanceColor = data.instanceColor;\n object = new InstancedMesh(geometry, material, count);\n object.instanceMatrix = new InstancedBufferAttribute(new Float32Array(instanceMatrix.array), 16);\n if (instanceColor !== undefined) object.instanceColor = new InstancedBufferAttribute(new Float32Array(instanceColor.array), instanceColor.itemSize);\n break;\n\n case 'LOD':\n object = new LOD();\n break;\n\n case 'Line':\n object = new Line(getGeometry(data.geometry), getMaterial(data.material));\n break;\n\n case 'LineLoop':\n object = new LineLoop(getGeometry(data.geometry), getMaterial(data.material));\n break;\n\n case 'LineSegments':\n object = new LineSegments(getGeometry(data.geometry), getMaterial(data.material));\n break;\n\n case 'PointCloud':\n case 'Points':\n object = new Points(getGeometry(data.geometry), getMaterial(data.material));\n break;\n\n case 'Sprite':\n object = new Sprite(getMaterial(data.material));\n break;\n\n case 'Group':\n object = new Group();\n break;\n\n case 'Bone':\n object = new Bone();\n break;\n\n default:\n object = new Object3D();\n }\n\n object.uuid = data.uuid;\n if (data.name !== undefined) object.name = data.name;\n\n if (data.matrix !== undefined) {\n object.matrix.fromArray(data.matrix);\n if (data.matrixAutoUpdate !== undefined) object.matrixAutoUpdate = data.matrixAutoUpdate;\n if (object.matrixAutoUpdate) object.matrix.decompose(object.position, object.quaternion, object.scale);\n } else {\n if (data.position !== undefined) object.position.fromArray(data.position);\n if (data.rotation !== undefined) object.rotation.fromArray(data.rotation);\n if (data.quaternion !== undefined) object.quaternion.fromArray(data.quaternion);\n if (data.scale !== undefined) object.scale.fromArray(data.scale);\n }\n\n if (data.up !== undefined) object.up.fromArray(data.up);\n if (data.castShadow !== undefined) object.castShadow = data.castShadow;\n if (data.receiveShadow !== undefined) object.receiveShadow = data.receiveShadow;\n\n if (data.shadow) {\n if (data.shadow.bias !== undefined) object.shadow.bias = data.shadow.bias;\n if (data.shadow.normalBias !== undefined) object.shadow.normalBias = data.shadow.normalBias;\n if (data.shadow.radius !== undefined) object.shadow.radius = data.shadow.radius;\n if (data.shadow.mapSize !== undefined) object.shadow.mapSize.fromArray(data.shadow.mapSize);\n if (data.shadow.camera !== undefined) object.shadow.camera = this.parseObject(data.shadow.camera);\n }\n\n if (data.visible !== undefined) object.visible = data.visible;\n if (data.frustumCulled !== undefined) object.frustumCulled = data.frustumCulled;\n if (data.renderOrder !== undefined) object.renderOrder = data.renderOrder;\n if (data.userData !== undefined) object.userData = data.userData;\n if (data.layers !== undefined) object.layers.mask = data.layers;\n\n if (data.children !== undefined) {\n var children = data.children;\n\n for (var i = 0; i < children.length; i++) {\n object.add(this.parseObject(children[i], geometries, materials, textures, animations));\n }\n }\n\n if (data.animations !== undefined) {\n var objectAnimations = data.animations;\n\n for (var _i93 = 0; _i93 < objectAnimations.length; _i93++) {\n var uuid = objectAnimations[_i93];\n object.animations.push(animations[uuid]);\n }\n }\n\n if (data.type === 'LOD') {\n if (data.autoUpdate !== undefined) object.autoUpdate = data.autoUpdate;\n var levels = data.levels;\n\n for (var l = 0; l < levels.length; l++) {\n var level = levels[l];\n var child = object.getObjectByProperty('uuid', level.object);\n\n if (child !== undefined) {\n object.addLevel(child, level.distance, level.hysteresis);\n }\n }\n }\n\n return object;\n }\n }, {\n key: \"bindSkeletons\",\n value: function bindSkeletons(object, skeletons) {\n if (Object.keys(skeletons).length === 0) return;\n object.traverse(function (child) {\n if (child.isSkinnedMesh === true && child.skeleton !== undefined) {\n var skeleton = skeletons[child.skeleton];\n\n if (skeleton === undefined) {\n console.warn('THREE.ObjectLoader: No skeleton found with UUID:', child.skeleton);\n } else {\n child.bind(skeleton, child.bindMatrix);\n }\n }\n });\n }\n }]);\n\n return ObjectLoader;\n}(Loader);\n\nvar TEXTURE_MAPPING = {\n UVMapping: UVMapping,\n CubeReflectionMapping: CubeReflectionMapping,\n CubeRefractionMapping: CubeRefractionMapping,\n EquirectangularReflectionMapping: EquirectangularReflectionMapping,\n EquirectangularRefractionMapping: EquirectangularRefractionMapping,\n CubeUVReflectionMapping: CubeUVReflectionMapping\n};\nvar TEXTURE_WRAPPING = {\n RepeatWrapping: RepeatWrapping,\n ClampToEdgeWrapping: ClampToEdgeWrapping,\n MirroredRepeatWrapping: MirroredRepeatWrapping\n};\nvar TEXTURE_FILTER = {\n NearestFilter: NearestFilter,\n NearestMipmapNearestFilter: NearestMipmapNearestFilter,\n NearestMipmapLinearFilter: NearestMipmapLinearFilter,\n LinearFilter: LinearFilter,\n LinearMipmapNearestFilter: LinearMipmapNearestFilter,\n LinearMipmapLinearFilter: LinearMipmapLinearFilter\n};\n\nvar ImageBitmapLoader = /*#__PURE__*/function (_Loader11) {\n _inherits(ImageBitmapLoader, _Loader11);\n\n var _super134 = _createSuper(ImageBitmapLoader);\n\n function ImageBitmapLoader(manager) {\n var _this108;\n\n _classCallCheck(this, ImageBitmapLoader);\n\n _this108 = _super134.call(this, manager);\n _this108.isImageBitmapLoader = true;\n\n if (typeof createImageBitmap === 'undefined') {\n console.warn('THREE.ImageBitmapLoader: createImageBitmap() not supported.');\n }\n\n if (typeof fetch === 'undefined') {\n console.warn('THREE.ImageBitmapLoader: fetch() not supported.');\n }\n\n _this108.options = {\n premultiplyAlpha: 'none'\n };\n return _this108;\n }\n\n _createClass(ImageBitmapLoader, [{\n key: \"setOptions\",\n value: function setOptions(options) {\n this.options = options;\n return this;\n }\n }, {\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n if (url === undefined) url = '';\n if (this.path !== undefined) url = this.path + url;\n url = this.manager.resolveURL(url);\n var scope = this;\n var cached = Cache.get(url);\n\n if (cached !== undefined) {\n scope.manager.itemStart(url);\n setTimeout(function () {\n if (onLoad) onLoad(cached);\n scope.manager.itemEnd(url);\n }, 0);\n return cached;\n }\n\n var fetchOptions = {};\n fetchOptions.credentials = this.crossOrigin === 'anonymous' ? 'same-origin' : 'include';\n fetchOptions.headers = this.requestHeader;\n fetch(url, fetchOptions).then(function (res) {\n return res.blob();\n }).then(function (blob) {\n return createImageBitmap(blob, Object.assign(scope.options, {\n colorSpaceConversion: 'none'\n }));\n }).then(function (imageBitmap) {\n Cache.add(url, imageBitmap);\n if (onLoad) onLoad(imageBitmap);\n scope.manager.itemEnd(url);\n }).catch(function (e) {\n if (onError) onError(e);\n scope.manager.itemError(url);\n scope.manager.itemEnd(url);\n });\n scope.manager.itemStart(url);\n }\n }]);\n\n return ImageBitmapLoader;\n}(Loader);\n\nvar _context;\n\nvar AudioContext = /*#__PURE__*/function () {\n function AudioContext() {\n _classCallCheck(this, AudioContext);\n }\n\n _createClass(AudioContext, null, [{\n key: \"getContext\",\n value: function getContext() {\n if (_context === undefined) {\n _context = new (window.AudioContext || window.webkitAudioContext)();\n }\n\n return _context;\n }\n }, {\n key: \"setContext\",\n value: function setContext(value) {\n _context = value;\n }\n }]);\n\n return AudioContext;\n}();\n\nvar AudioLoader = /*#__PURE__*/function (_Loader12) {\n _inherits(AudioLoader, _Loader12);\n\n var _super135 = _createSuper(AudioLoader);\n\n function AudioLoader(manager) {\n _classCallCheck(this, AudioLoader);\n\n return _super135.call(this, manager);\n }\n\n _createClass(AudioLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var loader = new FileLoader(this.manager);\n loader.setResponseType('arraybuffer');\n loader.setPath(this.path);\n loader.setRequestHeader(this.requestHeader);\n loader.setWithCredentials(this.withCredentials);\n loader.load(url, function (buffer) {\n try {\n // Create a copy of the buffer. The `decodeAudioData` method\n // detaches the buffer when complete, preventing reuse.\n var bufferCopy = buffer.slice(0);\n var context = AudioContext.getContext();\n context.decodeAudioData(bufferCopy, function (audioBuffer) {\n onLoad(audioBuffer);\n }, handleError);\n } catch (e) {\n handleError(e);\n }\n }, onProgress, onError);\n\n function handleError(e) {\n if (onError) {\n onError(e);\n } else {\n console.error(e);\n }\n\n scope.manager.itemError(url);\n }\n }\n }]);\n\n return AudioLoader;\n}(Loader);\n\nvar HemisphereLightProbe = /*#__PURE__*/function (_LightProbe) {\n _inherits(HemisphereLightProbe, _LightProbe);\n\n var _super136 = _createSuper(HemisphereLightProbe);\n\n function HemisphereLightProbe(skyColor, groundColor) {\n var _this109;\n\n var intensity = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n _classCallCheck(this, HemisphereLightProbe);\n\n _this109 = _super136.call(this, undefined, intensity);\n _this109.isHemisphereLightProbe = true;\n var color1 = new Color().set(skyColor);\n var color2 = new Color().set(groundColor);\n var sky = new Vector3(color1.r, color1.g, color1.b);\n var ground = new Vector3(color2.r, color2.g, color2.b); // without extra factor of PI in the shader, should = 1 / Math.sqrt( Math.PI );\n\n var c0 = Math.sqrt(Math.PI);\n var c1 = c0 * Math.sqrt(0.75);\n\n _this109.sh.coefficients[0].copy(sky).add(ground).multiplyScalar(c0);\n\n _this109.sh.coefficients[1].copy(sky).sub(ground).multiplyScalar(c1);\n\n return _this109;\n }\n\n return _createClass(HemisphereLightProbe);\n}(LightProbe);\n\nvar AmbientLightProbe = /*#__PURE__*/function (_LightProbe2) {\n _inherits(AmbientLightProbe, _LightProbe2);\n\n var _super137 = _createSuper(AmbientLightProbe);\n\n function AmbientLightProbe(color) {\n var _this110;\n\n var intensity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n _classCallCheck(this, AmbientLightProbe);\n\n _this110 = _super137.call(this, undefined, intensity);\n _this110.isAmbientLightProbe = true;\n var color1 = new Color().set(color); // without extra factor of PI in the shader, would be 2 / Math.sqrt( Math.PI );\n\n _this110.sh.coefficients[0].set(color1.r, color1.g, color1.b).multiplyScalar(2 * Math.sqrt(Math.PI));\n\n return _this110;\n }\n\n return _createClass(AmbientLightProbe);\n}(LightProbe);\n\nvar _eyeRight = /*@__PURE__*/new Matrix4();\n\nvar _eyeLeft = /*@__PURE__*/new Matrix4();\n\nvar _projectionMatrix = /*@__PURE__*/new Matrix4();\n\nvar StereoCamera = /*#__PURE__*/function () {\n function StereoCamera() {\n _classCallCheck(this, StereoCamera);\n\n this.type = 'StereoCamera';\n this.aspect = 1;\n this.eyeSep = 0.064;\n this.cameraL = new PerspectiveCamera();\n this.cameraL.layers.enable(1);\n this.cameraL.matrixAutoUpdate = false;\n this.cameraR = new PerspectiveCamera();\n this.cameraR.layers.enable(2);\n this.cameraR.matrixAutoUpdate = false;\n this._cache = {\n focus: null,\n fov: null,\n aspect: null,\n near: null,\n far: null,\n zoom: null,\n eyeSep: null\n };\n }\n\n _createClass(StereoCamera, [{\n key: \"update\",\n value: function update(camera) {\n var cache = this._cache;\n var needsUpdate = cache.focus !== camera.focus || cache.fov !== camera.fov || cache.aspect !== camera.aspect * this.aspect || cache.near !== camera.near || cache.far !== camera.far || cache.zoom !== camera.zoom || cache.eyeSep !== this.eyeSep;\n\n if (needsUpdate) {\n cache.focus = camera.focus;\n cache.fov = camera.fov;\n cache.aspect = camera.aspect * this.aspect;\n cache.near = camera.near;\n cache.far = camera.far;\n cache.zoom = camera.zoom;\n cache.eyeSep = this.eyeSep; // Off-axis stereoscopic effect based on\n // http://paulbourke.net/stereographics/stereorender/\n\n _projectionMatrix.copy(camera.projectionMatrix);\n\n var eyeSepHalf = cache.eyeSep / 2;\n var eyeSepOnProjection = eyeSepHalf * cache.near / cache.focus;\n var ymax = cache.near * Math.tan(DEG2RAD * cache.fov * 0.5) / cache.zoom;\n var xmin, xmax; // translate xOffset\n\n _eyeLeft.elements[12] = -eyeSepHalf;\n _eyeRight.elements[12] = eyeSepHalf; // for left eye\n\n xmin = -ymax * cache.aspect + eyeSepOnProjection;\n xmax = ymax * cache.aspect + eyeSepOnProjection;\n _projectionMatrix.elements[0] = 2 * cache.near / (xmax - xmin);\n _projectionMatrix.elements[8] = (xmax + xmin) / (xmax - xmin);\n this.cameraL.projectionMatrix.copy(_projectionMatrix); // for right eye\n\n xmin = -ymax * cache.aspect - eyeSepOnProjection;\n xmax = ymax * cache.aspect - eyeSepOnProjection;\n _projectionMatrix.elements[0] = 2 * cache.near / (xmax - xmin);\n _projectionMatrix.elements[8] = (xmax + xmin) / (xmax - xmin);\n this.cameraR.projectionMatrix.copy(_projectionMatrix);\n }\n\n this.cameraL.matrixWorld.copy(camera.matrixWorld).multiply(_eyeLeft);\n this.cameraR.matrixWorld.copy(camera.matrixWorld).multiply(_eyeRight);\n }\n }]);\n\n return StereoCamera;\n}();\n\nvar Clock = /*#__PURE__*/function () {\n function Clock() {\n var autoStart = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n _classCallCheck(this, Clock);\n\n this.autoStart = autoStart;\n this.startTime = 0;\n this.oldTime = 0;\n this.elapsedTime = 0;\n this.running = false;\n }\n\n _createClass(Clock, [{\n key: \"start\",\n value: function start() {\n this.startTime = now();\n this.oldTime = this.startTime;\n this.elapsedTime = 0;\n this.running = true;\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.getElapsedTime();\n this.running = false;\n this.autoStart = false;\n }\n }, {\n key: \"getElapsedTime\",\n value: function getElapsedTime() {\n this.getDelta();\n return this.elapsedTime;\n }\n }, {\n key: \"getDelta\",\n value: function getDelta() {\n var diff = 0;\n\n if (this.autoStart && !this.running) {\n this.start();\n return 0;\n }\n\n if (this.running) {\n var newTime = now();\n diff = (newTime - this.oldTime) / 1000;\n this.oldTime = newTime;\n this.elapsedTime += diff;\n }\n\n return diff;\n }\n }]);\n\n return Clock;\n}();\n\nfunction now() {\n return (typeof performance === 'undefined' ? Date : performance).now(); // see #10732\n}\n\nvar _position$1 = /*@__PURE__*/new Vector3();\n\nvar _quaternion$1 = /*@__PURE__*/new Quaternion();\n\nvar _scale$1 = /*@__PURE__*/new Vector3();\n\nvar _orientation$1 = /*@__PURE__*/new Vector3();\n\nvar AudioListener = /*#__PURE__*/function (_Object3D12) {\n _inherits(AudioListener, _Object3D12);\n\n var _super138 = _createSuper(AudioListener);\n\n function AudioListener() {\n var _this111;\n\n _classCallCheck(this, AudioListener);\n\n _this111 = _super138.call(this);\n _this111.type = 'AudioListener';\n _this111.context = AudioContext.getContext();\n _this111.gain = _this111.context.createGain();\n\n _this111.gain.connect(_this111.context.destination);\n\n _this111.filter = null;\n _this111.timeDelta = 0; // private\n\n _this111._clock = new Clock();\n return _this111;\n }\n\n _createClass(AudioListener, [{\n key: \"getInput\",\n value: function getInput() {\n return this.gain;\n }\n }, {\n key: \"removeFilter\",\n value: function removeFilter() {\n if (this.filter !== null) {\n this.gain.disconnect(this.filter);\n this.filter.disconnect(this.context.destination);\n this.gain.connect(this.context.destination);\n this.filter = null;\n }\n\n return this;\n }\n }, {\n key: \"getFilter\",\n value: function getFilter() {\n return this.filter;\n }\n }, {\n key: \"setFilter\",\n value: function setFilter(value) {\n if (this.filter !== null) {\n this.gain.disconnect(this.filter);\n this.filter.disconnect(this.context.destination);\n } else {\n this.gain.disconnect(this.context.destination);\n }\n\n this.filter = value;\n this.gain.connect(this.filter);\n this.filter.connect(this.context.destination);\n return this;\n }\n }, {\n key: \"getMasterVolume\",\n value: function getMasterVolume() {\n return this.gain.gain.value;\n }\n }, {\n key: \"setMasterVolume\",\n value: function setMasterVolume(value) {\n this.gain.gain.setTargetAtTime(value, this.context.currentTime, 0.01);\n return this;\n }\n }, {\n key: \"updateMatrixWorld\",\n value: function updateMatrixWorld(force) {\n _get(_getPrototypeOf(AudioListener.prototype), \"updateMatrixWorld\", this).call(this, force);\n\n var listener = this.context.listener;\n var up = this.up;\n this.timeDelta = this._clock.getDelta();\n this.matrixWorld.decompose(_position$1, _quaternion$1, _scale$1);\n\n _orientation$1.set(0, 0, -1).applyQuaternion(_quaternion$1);\n\n if (listener.positionX) {\n // code path for Chrome (see #14393)\n var endTime = this.context.currentTime + this.timeDelta;\n listener.positionX.linearRampToValueAtTime(_position$1.x, endTime);\n listener.positionY.linearRampToValueAtTime(_position$1.y, endTime);\n listener.positionZ.linearRampToValueAtTime(_position$1.z, endTime);\n listener.forwardX.linearRampToValueAtTime(_orientation$1.x, endTime);\n listener.forwardY.linearRampToValueAtTime(_orientation$1.y, endTime);\n listener.forwardZ.linearRampToValueAtTime(_orientation$1.z, endTime);\n listener.upX.linearRampToValueAtTime(up.x, endTime);\n listener.upY.linearRampToValueAtTime(up.y, endTime);\n listener.upZ.linearRampToValueAtTime(up.z, endTime);\n } else {\n listener.setPosition(_position$1.x, _position$1.y, _position$1.z);\n listener.setOrientation(_orientation$1.x, _orientation$1.y, _orientation$1.z, up.x, up.y, up.z);\n }\n }\n }]);\n\n return AudioListener;\n}(Object3D);\n\nvar Audio = /*#__PURE__*/function (_Object3D13) {\n _inherits(Audio, _Object3D13);\n\n var _super139 = _createSuper(Audio);\n\n function Audio(listener) {\n var _this112;\n\n _classCallCheck(this, Audio);\n\n _this112 = _super139.call(this);\n _this112.type = 'Audio';\n _this112.listener = listener;\n _this112.context = listener.context;\n _this112.gain = _this112.context.createGain();\n\n _this112.gain.connect(listener.getInput());\n\n _this112.autoplay = false;\n _this112.buffer = null;\n _this112.detune = 0;\n _this112.loop = false;\n _this112.loopStart = 0;\n _this112.loopEnd = 0;\n _this112.offset = 0;\n _this112.duration = undefined;\n _this112.playbackRate = 1;\n _this112.isPlaying = false;\n _this112.hasPlaybackControl = true;\n _this112.source = null;\n _this112.sourceType = 'empty';\n _this112._startedAt = 0;\n _this112._progress = 0;\n _this112._connected = false;\n _this112.filters = [];\n return _this112;\n }\n\n _createClass(Audio, [{\n key: \"getOutput\",\n value: function getOutput() {\n return this.gain;\n }\n }, {\n key: \"setNodeSource\",\n value: function setNodeSource(audioNode) {\n this.hasPlaybackControl = false;\n this.sourceType = 'audioNode';\n this.source = audioNode;\n this.connect();\n return this;\n }\n }, {\n key: \"setMediaElementSource\",\n value: function setMediaElementSource(mediaElement) {\n this.hasPlaybackControl = false;\n this.sourceType = 'mediaNode';\n this.source = this.context.createMediaElementSource(mediaElement);\n this.connect();\n return this;\n }\n }, {\n key: \"setMediaStreamSource\",\n value: function setMediaStreamSource(mediaStream) {\n this.hasPlaybackControl = false;\n this.sourceType = 'mediaStreamNode';\n this.source = this.context.createMediaStreamSource(mediaStream);\n this.connect();\n return this;\n }\n }, {\n key: \"setBuffer\",\n value: function setBuffer(audioBuffer) {\n this.buffer = audioBuffer;\n this.sourceType = 'buffer';\n if (this.autoplay) this.play();\n return this;\n }\n }, {\n key: \"play\",\n value: function play() {\n var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.isPlaying === true) {\n console.warn('THREE.Audio: Audio is already playing.');\n return;\n }\n\n if (this.hasPlaybackControl === false) {\n console.warn('THREE.Audio: this Audio has no playback control.');\n return;\n }\n\n this._startedAt = this.context.currentTime + delay;\n var source = this.context.createBufferSource();\n source.buffer = this.buffer;\n source.loop = this.loop;\n source.loopStart = this.loopStart;\n source.loopEnd = this.loopEnd;\n source.onended = this.onEnded.bind(this);\n source.start(this._startedAt, this._progress + this.offset, this.duration);\n this.isPlaying = true;\n this.source = source;\n this.setDetune(this.detune);\n this.setPlaybackRate(this.playbackRate);\n return this.connect();\n }\n }, {\n key: \"pause\",\n value: function pause() {\n if (this.hasPlaybackControl === false) {\n console.warn('THREE.Audio: this Audio has no playback control.');\n return;\n }\n\n if (this.isPlaying === true) {\n // update current progress\n this._progress += Math.max(this.context.currentTime - this._startedAt, 0) * this.playbackRate;\n\n if (this.loop === true) {\n // ensure _progress does not exceed duration with looped audios\n this._progress = this._progress % (this.duration || this.buffer.duration);\n }\n\n this.source.stop();\n this.source.onended = null;\n this.isPlaying = false;\n }\n\n return this;\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.hasPlaybackControl === false) {\n console.warn('THREE.Audio: this Audio has no playback control.');\n return;\n }\n\n this._progress = 0;\n\n if (this.source !== null) {\n this.source.stop();\n this.source.onended = null;\n }\n\n this.isPlaying = false;\n return this;\n }\n }, {\n key: \"connect\",\n value: function connect() {\n if (this.filters.length > 0) {\n this.source.connect(this.filters[0]);\n\n for (var i = 1, l = this.filters.length; i < l; i++) {\n this.filters[i - 1].connect(this.filters[i]);\n }\n\n this.filters[this.filters.length - 1].connect(this.getOutput());\n } else {\n this.source.connect(this.getOutput());\n }\n\n this._connected = true;\n return this;\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n if (this.filters.length > 0) {\n this.source.disconnect(this.filters[0]);\n\n for (var i = 1, l = this.filters.length; i < l; i++) {\n this.filters[i - 1].disconnect(this.filters[i]);\n }\n\n this.filters[this.filters.length - 1].disconnect(this.getOutput());\n } else {\n this.source.disconnect(this.getOutput());\n }\n\n this._connected = false;\n return this;\n }\n }, {\n key: \"getFilters\",\n value: function getFilters() {\n return this.filters;\n }\n }, {\n key: \"setFilters\",\n value: function setFilters(value) {\n if (!value) value = [];\n\n if (this._connected === true) {\n this.disconnect();\n this.filters = value.slice();\n this.connect();\n } else {\n this.filters = value.slice();\n }\n\n return this;\n }\n }, {\n key: \"setDetune\",\n value: function setDetune(value) {\n this.detune = value;\n if (this.source.detune === undefined) return; // only set detune when available\n\n if (this.isPlaying === true) {\n this.source.detune.setTargetAtTime(this.detune, this.context.currentTime, 0.01);\n }\n\n return this;\n }\n }, {\n key: \"getDetune\",\n value: function getDetune() {\n return this.detune;\n }\n }, {\n key: \"getFilter\",\n value: function getFilter() {\n return this.getFilters()[0];\n }\n }, {\n key: \"setFilter\",\n value: function setFilter(filter) {\n return this.setFilters(filter ? [filter] : []);\n }\n }, {\n key: \"setPlaybackRate\",\n value: function setPlaybackRate(value) {\n if (this.hasPlaybackControl === false) {\n console.warn('THREE.Audio: this Audio has no playback control.');\n return;\n }\n\n this.playbackRate = value;\n\n if (this.isPlaying === true) {\n this.source.playbackRate.setTargetAtTime(this.playbackRate, this.context.currentTime, 0.01);\n }\n\n return this;\n }\n }, {\n key: \"getPlaybackRate\",\n value: function getPlaybackRate() {\n return this.playbackRate;\n }\n }, {\n key: \"onEnded\",\n value: function onEnded() {\n this.isPlaying = false;\n }\n }, {\n key: \"getLoop\",\n value: function getLoop() {\n if (this.hasPlaybackControl === false) {\n console.warn('THREE.Audio: this Audio has no playback control.');\n return false;\n }\n\n return this.loop;\n }\n }, {\n key: \"setLoop\",\n value: function setLoop(value) {\n if (this.hasPlaybackControl === false) {\n console.warn('THREE.Audio: this Audio has no playback control.');\n return;\n }\n\n this.loop = value;\n\n if (this.isPlaying === true) {\n this.source.loop = this.loop;\n }\n\n return this;\n }\n }, {\n key: \"setLoopStart\",\n value: function setLoopStart(value) {\n this.loopStart = value;\n return this;\n }\n }, {\n key: \"setLoopEnd\",\n value: function setLoopEnd(value) {\n this.loopEnd = value;\n return this;\n }\n }, {\n key: \"getVolume\",\n value: function getVolume() {\n return this.gain.gain.value;\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(value) {\n this.gain.gain.setTargetAtTime(value, this.context.currentTime, 0.01);\n return this;\n }\n }]);\n\n return Audio;\n}(Object3D);\n\nvar _position = /*@__PURE__*/new Vector3();\n\nvar _quaternion = /*@__PURE__*/new Quaternion();\n\nvar _scale = /*@__PURE__*/new Vector3();\n\nvar _orientation = /*@__PURE__*/new Vector3();\n\nvar PositionalAudio = /*#__PURE__*/function (_Audio) {\n _inherits(PositionalAudio, _Audio);\n\n var _super140 = _createSuper(PositionalAudio);\n\n function PositionalAudio(listener) {\n var _this113;\n\n _classCallCheck(this, PositionalAudio);\n\n _this113 = _super140.call(this, listener);\n _this113.panner = _this113.context.createPanner();\n _this113.panner.panningModel = 'HRTF';\n\n _this113.panner.connect(_this113.gain);\n\n return _this113;\n }\n\n _createClass(PositionalAudio, [{\n key: \"disconnect\",\n value: function disconnect() {\n _get(_getPrototypeOf(PositionalAudio.prototype), \"disconnect\", this).call(this);\n\n this.panner.disconnect(this.gain);\n }\n }, {\n key: \"getOutput\",\n value: function getOutput() {\n return this.panner;\n }\n }, {\n key: \"getRefDistance\",\n value: function getRefDistance() {\n return this.panner.refDistance;\n }\n }, {\n key: \"setRefDistance\",\n value: function setRefDistance(value) {\n this.panner.refDistance = value;\n return this;\n }\n }, {\n key: \"getRolloffFactor\",\n value: function getRolloffFactor() {\n return this.panner.rolloffFactor;\n }\n }, {\n key: \"setRolloffFactor\",\n value: function setRolloffFactor(value) {\n this.panner.rolloffFactor = value;\n return this;\n }\n }, {\n key: \"getDistanceModel\",\n value: function getDistanceModel() {\n return this.panner.distanceModel;\n }\n }, {\n key: \"setDistanceModel\",\n value: function setDistanceModel(value) {\n this.panner.distanceModel = value;\n return this;\n }\n }, {\n key: \"getMaxDistance\",\n value: function getMaxDistance() {\n return this.panner.maxDistance;\n }\n }, {\n key: \"setMaxDistance\",\n value: function setMaxDistance(value) {\n this.panner.maxDistance = value;\n return this;\n }\n }, {\n key: \"setDirectionalCone\",\n value: function setDirectionalCone(coneInnerAngle, coneOuterAngle, coneOuterGain) {\n this.panner.coneInnerAngle = coneInnerAngle;\n this.panner.coneOuterAngle = coneOuterAngle;\n this.panner.coneOuterGain = coneOuterGain;\n return this;\n }\n }, {\n key: \"updateMatrixWorld\",\n value: function updateMatrixWorld(force) {\n _get(_getPrototypeOf(PositionalAudio.prototype), \"updateMatrixWorld\", this).call(this, force);\n\n if (this.hasPlaybackControl === true && this.isPlaying === false) return;\n this.matrixWorld.decompose(_position, _quaternion, _scale);\n\n _orientation.set(0, 0, 1).applyQuaternion(_quaternion);\n\n var panner = this.panner;\n\n if (panner.positionX) {\n // code path for Chrome and Firefox (see #14393)\n var endTime = this.context.currentTime + this.listener.timeDelta;\n panner.positionX.linearRampToValueAtTime(_position.x, endTime);\n panner.positionY.linearRampToValueAtTime(_position.y, endTime);\n panner.positionZ.linearRampToValueAtTime(_position.z, endTime);\n panner.orientationX.linearRampToValueAtTime(_orientation.x, endTime);\n panner.orientationY.linearRampToValueAtTime(_orientation.y, endTime);\n panner.orientationZ.linearRampToValueAtTime(_orientation.z, endTime);\n } else {\n panner.setPosition(_position.x, _position.y, _position.z);\n panner.setOrientation(_orientation.x, _orientation.y, _orientation.z);\n }\n }\n }]);\n\n return PositionalAudio;\n}(Audio);\n\nvar AudioAnalyser = /*#__PURE__*/function () {\n function AudioAnalyser(audio) {\n var fftSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2048;\n\n _classCallCheck(this, AudioAnalyser);\n\n this.analyser = audio.context.createAnalyser();\n this.analyser.fftSize = fftSize;\n this.data = new Uint8Array(this.analyser.frequencyBinCount);\n audio.getOutput().connect(this.analyser);\n }\n\n _createClass(AudioAnalyser, [{\n key: \"getFrequencyData\",\n value: function getFrequencyData() {\n this.analyser.getByteFrequencyData(this.data);\n return this.data;\n }\n }, {\n key: \"getAverageFrequency\",\n value: function getAverageFrequency() {\n var value = 0;\n var data = this.getFrequencyData();\n\n for (var i = 0; i < data.length; i++) {\n value += data[i];\n }\n\n return value / data.length;\n }\n }]);\n\n return AudioAnalyser;\n}();\n\nvar PropertyMixer = /*#__PURE__*/function () {\n function PropertyMixer(binding, typeName, valueSize) {\n _classCallCheck(this, PropertyMixer);\n\n this.binding = binding;\n this.valueSize = valueSize;\n var mixFunction, mixFunctionAdditive, setIdentity; // buffer layout: [ incoming | accu0 | accu1 | orig | addAccu | (optional work) ]\n //\n // interpolators can use .buffer as their .result\n // the data then goes to 'incoming'\n //\n // 'accu0' and 'accu1' are used frame-interleaved for\n // the cumulative result and are compared to detect\n // changes\n //\n // 'orig' stores the original state of the property\n //\n // 'add' is used for additive cumulative results\n //\n // 'work' is optional and is only present for quaternion types. It is used\n // to store intermediate quaternion multiplication results\n\n switch (typeName) {\n case 'quaternion':\n mixFunction = this._slerp;\n mixFunctionAdditive = this._slerpAdditive;\n setIdentity = this._setAdditiveIdentityQuaternion;\n this.buffer = new Float64Array(valueSize * 6);\n this._workIndex = 5;\n break;\n\n case 'string':\n case 'bool':\n mixFunction = this._select; // Use the regular mix function and for additive on these types,\n // additive is not relevant for non-numeric types\n\n mixFunctionAdditive = this._select;\n setIdentity = this._setAdditiveIdentityOther;\n this.buffer = new Array(valueSize * 5);\n break;\n\n default:\n mixFunction = this._lerp;\n mixFunctionAdditive = this._lerpAdditive;\n setIdentity = this._setAdditiveIdentityNumeric;\n this.buffer = new Float64Array(valueSize * 5);\n }\n\n this._mixBufferRegion = mixFunction;\n this._mixBufferRegionAdditive = mixFunctionAdditive;\n this._setIdentity = setIdentity;\n this._origIndex = 3;\n this._addIndex = 4;\n this.cumulativeWeight = 0;\n this.cumulativeWeightAdditive = 0;\n this.useCount = 0;\n this.referenceCount = 0;\n } // accumulate data in the 'incoming' region into 'accu'\n\n\n _createClass(PropertyMixer, [{\n key: \"accumulate\",\n value: function accumulate(accuIndex, weight) {\n // note: happily accumulating nothing when weight = 0, the caller knows\n // the weight and shouldn't have made the call in the first place\n var buffer = this.buffer,\n stride = this.valueSize,\n offset = accuIndex * stride + stride;\n var currentWeight = this.cumulativeWeight;\n\n if (currentWeight === 0) {\n // accuN := incoming * weight\n for (var i = 0; i !== stride; ++i) {\n buffer[offset + i] = buffer[i];\n }\n\n currentWeight = weight;\n } else {\n // accuN := accuN + incoming * weight\n currentWeight += weight;\n var mix = weight / currentWeight;\n\n this._mixBufferRegion(buffer, offset, 0, mix, stride);\n }\n\n this.cumulativeWeight = currentWeight;\n } // accumulate data in the 'incoming' region into 'add'\n\n }, {\n key: \"accumulateAdditive\",\n value: function accumulateAdditive(weight) {\n var buffer = this.buffer,\n stride = this.valueSize,\n offset = stride * this._addIndex;\n\n if (this.cumulativeWeightAdditive === 0) {\n // add = identity\n this._setIdentity();\n } // add := add + incoming * weight\n\n\n this._mixBufferRegionAdditive(buffer, offset, 0, weight, stride);\n\n this.cumulativeWeightAdditive += weight;\n } // apply the state of 'accu' to the binding when accus differ\n\n }, {\n key: \"apply\",\n value: function apply(accuIndex) {\n var stride = this.valueSize,\n buffer = this.buffer,\n offset = accuIndex * stride + stride,\n weight = this.cumulativeWeight,\n weightAdditive = this.cumulativeWeightAdditive,\n binding = this.binding;\n this.cumulativeWeight = 0;\n this.cumulativeWeightAdditive = 0;\n\n if (weight < 1) {\n // accuN := accuN + original * ( 1 - cumulativeWeight )\n var originalValueOffset = stride * this._origIndex;\n\n this._mixBufferRegion(buffer, offset, originalValueOffset, 1 - weight, stride);\n }\n\n if (weightAdditive > 0) {\n // accuN := accuN + additive accuN\n this._mixBufferRegionAdditive(buffer, offset, this._addIndex * stride, 1, stride);\n }\n\n for (var i = stride, e = stride + stride; i !== e; ++i) {\n if (buffer[i] !== buffer[i + stride]) {\n // value has changed -> update scene graph\n binding.setValue(buffer, offset);\n break;\n }\n }\n } // remember the state of the bound property and copy it to both accus\n\n }, {\n key: \"saveOriginalState\",\n value: function saveOriginalState() {\n var binding = this.binding;\n var buffer = this.buffer,\n stride = this.valueSize,\n originalValueOffset = stride * this._origIndex;\n binding.getValue(buffer, originalValueOffset); // accu[0..1] := orig -- initially detect changes against the original\n\n for (var i = stride, e = originalValueOffset; i !== e; ++i) {\n buffer[i] = buffer[originalValueOffset + i % stride];\n } // Add to identity for additive\n\n\n this._setIdentity();\n\n this.cumulativeWeight = 0;\n this.cumulativeWeightAdditive = 0;\n } // apply the state previously taken via 'saveOriginalState' to the binding\n\n }, {\n key: \"restoreOriginalState\",\n value: function restoreOriginalState() {\n var originalValueOffset = this.valueSize * 3;\n this.binding.setValue(this.buffer, originalValueOffset);\n }\n }, {\n key: \"_setAdditiveIdentityNumeric\",\n value: function _setAdditiveIdentityNumeric() {\n var startIndex = this._addIndex * this.valueSize;\n var endIndex = startIndex + this.valueSize;\n\n for (var i = startIndex; i < endIndex; i++) {\n this.buffer[i] = 0;\n }\n }\n }, {\n key: \"_setAdditiveIdentityQuaternion\",\n value: function _setAdditiveIdentityQuaternion() {\n this._setAdditiveIdentityNumeric();\n\n this.buffer[this._addIndex * this.valueSize + 3] = 1;\n }\n }, {\n key: \"_setAdditiveIdentityOther\",\n value: function _setAdditiveIdentityOther() {\n var startIndex = this._origIndex * this.valueSize;\n var targetIndex = this._addIndex * this.valueSize;\n\n for (var i = 0; i < this.valueSize; i++) {\n this.buffer[targetIndex + i] = this.buffer[startIndex + i];\n }\n } // mix functions\n\n }, {\n key: \"_select\",\n value: function _select(buffer, dstOffset, srcOffset, t, stride) {\n if (t >= 0.5) {\n for (var i = 0; i !== stride; ++i) {\n buffer[dstOffset + i] = buffer[srcOffset + i];\n }\n }\n }\n }, {\n key: \"_slerp\",\n value: function _slerp(buffer, dstOffset, srcOffset, t) {\n Quaternion.slerpFlat(buffer, dstOffset, buffer, dstOffset, buffer, srcOffset, t);\n }\n }, {\n key: \"_slerpAdditive\",\n value: function _slerpAdditive(buffer, dstOffset, srcOffset, t, stride) {\n var workOffset = this._workIndex * stride; // Store result in intermediate buffer offset\n\n Quaternion.multiplyQuaternionsFlat(buffer, workOffset, buffer, dstOffset, buffer, srcOffset); // Slerp to the intermediate result\n\n Quaternion.slerpFlat(buffer, dstOffset, buffer, dstOffset, buffer, workOffset, t);\n }\n }, {\n key: \"_lerp\",\n value: function _lerp(buffer, dstOffset, srcOffset, t, stride) {\n var s = 1 - t;\n\n for (var i = 0; i !== stride; ++i) {\n var j = dstOffset + i;\n buffer[j] = buffer[j] * s + buffer[srcOffset + i] * t;\n }\n }\n }, {\n key: \"_lerpAdditive\",\n value: function _lerpAdditive(buffer, dstOffset, srcOffset, t, stride) {\n for (var i = 0; i !== stride; ++i) {\n var j = dstOffset + i;\n buffer[j] = buffer[j] + buffer[srcOffset + i] * t;\n }\n }\n }]);\n\n return PropertyMixer;\n}(); // Characters [].:/ are reserved for track binding syntax.\n\n\nvar _RESERVED_CHARS_RE = '\\\\[\\\\]\\\\.:\\\\/';\n\nvar _reservedRe = new RegExp('[' + _RESERVED_CHARS_RE + ']', 'g'); // Attempts to allow node names from any language. ES5's `\\w` regexp matches\n// only latin characters, and the unicode \\p{L} is not yet supported. So\n// instead, we exclude reserved characters and match everything else.\n\n\nvar _wordChar = '[^' + _RESERVED_CHARS_RE + ']';\n\nvar _wordCharOrDot = '[^' + _RESERVED_CHARS_RE.replace('\\\\.', '') + ']'; // Parent directories, delimited by '/' or ':'. Currently unused, but must\n// be matched to parse the rest of the track name.\n\n\nvar _directoryRe = /*@__PURE__*/ /((?:WC+[\\/:])*)/.source.replace('WC', _wordChar); // Target node. May contain word characters (a-zA-Z0-9_) and '.' or '-'.\n\n\nvar _nodeRe = /*@__PURE__*/ /(WCOD+)?/.source.replace('WCOD', _wordCharOrDot); // Object on target node, and accessor. May not contain reserved\n// characters. Accessor may contain any character except closing bracket.\n\n\nvar _objectRe = /*@__PURE__*/ /(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace('WC', _wordChar); // Property and accessor. May not contain reserved characters. Accessor may\n// contain any non-bracket characters.\n\n\nvar _propertyRe = /*@__PURE__*/ /\\.(WC+)(?:\\[(.+)\\])?/.source.replace('WC', _wordChar);\n\nvar _trackRe = new RegExp('' + '^' + _directoryRe + _nodeRe + _objectRe + _propertyRe + '$');\n\nvar _supportedObjectNames = ['material', 'materials', 'bones', 'map'];\n\nvar Composite = /*#__PURE__*/function () {\n function Composite(targetGroup, path, optionalParsedPath) {\n _classCallCheck(this, Composite);\n\n var parsedPath = optionalParsedPath || PropertyBinding.parseTrackName(path);\n this._targetGroup = targetGroup;\n this._bindings = targetGroup.subscribe_(path, parsedPath);\n }\n\n _createClass(Composite, [{\n key: \"getValue\",\n value: function getValue(array, offset) {\n this.bind(); // bind all binding\n\n var firstValidIndex = this._targetGroup.nCachedObjects_,\n binding = this._bindings[firstValidIndex]; // and only call .getValue on the first\n\n if (binding !== undefined) binding.getValue(array, offset);\n }\n }, {\n key: \"setValue\",\n value: function setValue(array, offset) {\n var bindings = this._bindings;\n\n for (var i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) {\n bindings[i].setValue(array, offset);\n }\n }\n }, {\n key: \"bind\",\n value: function bind() {\n var bindings = this._bindings;\n\n for (var i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) {\n bindings[i].bind();\n }\n }\n }, {\n key: \"unbind\",\n value: function unbind() {\n var bindings = this._bindings;\n\n for (var i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) {\n bindings[i].unbind();\n }\n }\n }]);\n\n return Composite;\n}(); // Note: This class uses a State pattern on a per-method basis:\n// 'bind' sets 'this.getValue' / 'setValue' and shadows the\n// prototype version of these methods with one that represents\n// the bound state. When the property is not found, the methods\n// become no-ops.\n\n\nvar PropertyBinding = /*#__PURE__*/function () {\n function PropertyBinding(rootNode, path, parsedPath) {\n _classCallCheck(this, PropertyBinding);\n\n this.path = path;\n this.parsedPath = parsedPath || PropertyBinding.parseTrackName(path);\n this.node = PropertyBinding.findNode(rootNode, this.parsedPath.nodeName);\n this.rootNode = rootNode; // initial state of these methods that calls 'bind'\n\n this.getValue = this._getValue_unbound;\n this.setValue = this._setValue_unbound;\n }\n\n _createClass(PropertyBinding, [{\n key: \"_getValue_unavailable\",\n value: // these are used to \"bind\" a nonexistent property\n function _getValue_unavailable() {}\n }, {\n key: \"_setValue_unavailable\",\n value: function _setValue_unavailable() {} // Getters\n\n }, {\n key: \"_getValue_direct\",\n value: function _getValue_direct(buffer, offset) {\n buffer[offset] = this.targetObject[this.propertyName];\n }\n }, {\n key: \"_getValue_array\",\n value: function _getValue_array(buffer, offset) {\n var source = this.resolvedProperty;\n\n for (var i = 0, n = source.length; i !== n; ++i) {\n buffer[offset++] = source[i];\n }\n }\n }, {\n key: \"_getValue_arrayElement\",\n value: function _getValue_arrayElement(buffer, offset) {\n buffer[offset] = this.resolvedProperty[this.propertyIndex];\n }\n }, {\n key: \"_getValue_toArray\",\n value: function _getValue_toArray(buffer, offset) {\n this.resolvedProperty.toArray(buffer, offset);\n } // Direct\n\n }, {\n key: \"_setValue_direct\",\n value: function _setValue_direct(buffer, offset) {\n this.targetObject[this.propertyName] = buffer[offset];\n }\n }, {\n key: \"_setValue_direct_setNeedsUpdate\",\n value: function _setValue_direct_setNeedsUpdate(buffer, offset) {\n this.targetObject[this.propertyName] = buffer[offset];\n this.targetObject.needsUpdate = true;\n }\n }, {\n key: \"_setValue_direct_setMatrixWorldNeedsUpdate\",\n value: function _setValue_direct_setMatrixWorldNeedsUpdate(buffer, offset) {\n this.targetObject[this.propertyName] = buffer[offset];\n this.targetObject.matrixWorldNeedsUpdate = true;\n } // EntireArray\n\n }, {\n key: \"_setValue_array\",\n value: function _setValue_array(buffer, offset) {\n var dest = this.resolvedProperty;\n\n for (var i = 0, n = dest.length; i !== n; ++i) {\n dest[i] = buffer[offset++];\n }\n }\n }, {\n key: \"_setValue_array_setNeedsUpdate\",\n value: function _setValue_array_setNeedsUpdate(buffer, offset) {\n var dest = this.resolvedProperty;\n\n for (var i = 0, n = dest.length; i !== n; ++i) {\n dest[i] = buffer[offset++];\n }\n\n this.targetObject.needsUpdate = true;\n }\n }, {\n key: \"_setValue_array_setMatrixWorldNeedsUpdate\",\n value: function _setValue_array_setMatrixWorldNeedsUpdate(buffer, offset) {\n var dest = this.resolvedProperty;\n\n for (var i = 0, n = dest.length; i !== n; ++i) {\n dest[i] = buffer[offset++];\n }\n\n this.targetObject.matrixWorldNeedsUpdate = true;\n } // ArrayElement\n\n }, {\n key: \"_setValue_arrayElement\",\n value: function _setValue_arrayElement(buffer, offset) {\n this.resolvedProperty[this.propertyIndex] = buffer[offset];\n }\n }, {\n key: \"_setValue_arrayElement_setNeedsUpdate\",\n value: function _setValue_arrayElement_setNeedsUpdate(buffer, offset) {\n this.resolvedProperty[this.propertyIndex] = buffer[offset];\n this.targetObject.needsUpdate = true;\n }\n }, {\n key: \"_setValue_arrayElement_setMatrixWorldNeedsUpdate\",\n value: function _setValue_arrayElement_setMatrixWorldNeedsUpdate(buffer, offset) {\n this.resolvedProperty[this.propertyIndex] = buffer[offset];\n this.targetObject.matrixWorldNeedsUpdate = true;\n } // HasToFromArray\n\n }, {\n key: \"_setValue_fromArray\",\n value: function _setValue_fromArray(buffer, offset) {\n this.resolvedProperty.fromArray(buffer, offset);\n }\n }, {\n key: \"_setValue_fromArray_setNeedsUpdate\",\n value: function _setValue_fromArray_setNeedsUpdate(buffer, offset) {\n this.resolvedProperty.fromArray(buffer, offset);\n this.targetObject.needsUpdate = true;\n }\n }, {\n key: \"_setValue_fromArray_setMatrixWorldNeedsUpdate\",\n value: function _setValue_fromArray_setMatrixWorldNeedsUpdate(buffer, offset) {\n this.resolvedProperty.fromArray(buffer, offset);\n this.targetObject.matrixWorldNeedsUpdate = true;\n }\n }, {\n key: \"_getValue_unbound\",\n value: function _getValue_unbound(targetArray, offset) {\n this.bind();\n this.getValue(targetArray, offset);\n }\n }, {\n key: \"_setValue_unbound\",\n value: function _setValue_unbound(sourceArray, offset) {\n this.bind();\n this.setValue(sourceArray, offset);\n } // create getter / setter pair for a property in the scene graph\n\n }, {\n key: \"bind\",\n value: function bind() {\n var targetObject = this.node;\n var parsedPath = this.parsedPath;\n var objectName = parsedPath.objectName;\n var propertyName = parsedPath.propertyName;\n var propertyIndex = parsedPath.propertyIndex;\n\n if (!targetObject) {\n targetObject = PropertyBinding.findNode(this.rootNode, parsedPath.nodeName);\n this.node = targetObject;\n } // set fail state so we can just 'return' on error\n\n\n this.getValue = this._getValue_unavailable;\n this.setValue = this._setValue_unavailable; // ensure there is a value node\n\n if (!targetObject) {\n console.error('THREE.PropertyBinding: Trying to update node for track: ' + this.path + ' but it wasn\\'t found.');\n return;\n }\n\n if (objectName) {\n var objectIndex = parsedPath.objectIndex; // special cases were we need to reach deeper into the hierarchy to get the face materials....\n\n switch (objectName) {\n case 'materials':\n if (!targetObject.material) {\n console.error('THREE.PropertyBinding: Can not bind to material as node does not have a material.', this);\n return;\n }\n\n if (!targetObject.material.materials) {\n console.error('THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.', this);\n return;\n }\n\n targetObject = targetObject.material.materials;\n break;\n\n case 'bones':\n if (!targetObject.skeleton) {\n console.error('THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.', this);\n return;\n } // potential future optimization: skip this if propertyIndex is already an integer\n // and convert the integer string to a true integer.\n\n\n targetObject = targetObject.skeleton.bones; // support resolving morphTarget names into indices.\n\n for (var i = 0; i < targetObject.length; i++) {\n if (targetObject[i].name === objectIndex) {\n objectIndex = i;\n break;\n }\n }\n\n break;\n\n case 'map':\n if ('map' in targetObject) {\n targetObject = targetObject.map;\n break;\n }\n\n if (!targetObject.material) {\n console.error('THREE.PropertyBinding: Can not bind to material as node does not have a material.', this);\n return;\n }\n\n if (!targetObject.material.map) {\n console.error('THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.', this);\n return;\n }\n\n targetObject = targetObject.material.map;\n break;\n\n default:\n if (targetObject[objectName] === undefined) {\n console.error('THREE.PropertyBinding: Can not bind to objectName of node undefined.', this);\n return;\n }\n\n targetObject = targetObject[objectName];\n }\n\n if (objectIndex !== undefined) {\n if (targetObject[objectIndex] === undefined) {\n console.error('THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.', this, targetObject);\n return;\n }\n\n targetObject = targetObject[objectIndex];\n }\n } // resolve property\n\n\n var nodeProperty = targetObject[propertyName];\n\n if (nodeProperty === undefined) {\n var nodeName = parsedPath.nodeName;\n console.error('THREE.PropertyBinding: Trying to update property for track: ' + nodeName + '.' + propertyName + ' but it wasn\\'t found.', targetObject);\n return;\n } // determine versioning scheme\n\n\n var versioning = this.Versioning.None;\n this.targetObject = targetObject;\n\n if (targetObject.needsUpdate !== undefined) {\n // material\n versioning = this.Versioning.NeedsUpdate;\n } else if (targetObject.matrixWorldNeedsUpdate !== undefined) {\n // node transform\n versioning = this.Versioning.MatrixWorldNeedsUpdate;\n } // determine how the property gets bound\n\n\n var bindingType = this.BindingType.Direct;\n\n if (propertyIndex !== undefined) {\n // access a sub element of the property array (only primitives are supported right now)\n if (propertyName === 'morphTargetInfluences') {\n // potential optimization, skip this if propertyIndex is already an integer, and convert the integer string to a true integer.\n // support resolving morphTarget names into indices.\n if (!targetObject.geometry) {\n console.error('THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.', this);\n return;\n }\n\n if (!targetObject.geometry.morphAttributes) {\n console.error('THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.', this);\n return;\n }\n\n if (targetObject.morphTargetDictionary[propertyIndex] !== undefined) {\n propertyIndex = targetObject.morphTargetDictionary[propertyIndex];\n }\n }\n\n bindingType = this.BindingType.ArrayElement;\n this.resolvedProperty = nodeProperty;\n this.propertyIndex = propertyIndex;\n } else if (nodeProperty.fromArray !== undefined && nodeProperty.toArray !== undefined) {\n // must use copy for Object3D.Euler/Quaternion\n bindingType = this.BindingType.HasFromToArray;\n this.resolvedProperty = nodeProperty;\n } else if (Array.isArray(nodeProperty)) {\n bindingType = this.BindingType.EntireArray;\n this.resolvedProperty = nodeProperty;\n } else {\n this.propertyName = propertyName;\n } // select getter / setter\n\n\n this.getValue = this.GetterByBindingType[bindingType];\n this.setValue = this.SetterByBindingTypeAndVersioning[bindingType][versioning];\n }\n }, {\n key: \"unbind\",\n value: function unbind() {\n this.node = null; // back to the prototype version of getValue / setValue\n // note: avoiding to mutate the shape of 'this' via 'delete'\n\n this.getValue = this._getValue_unbound;\n this.setValue = this._setValue_unbound;\n }\n }], [{\n key: \"create\",\n value: function create(root, path, parsedPath) {\n if (!(root && root.isAnimationObjectGroup)) {\n return new PropertyBinding(root, path, parsedPath);\n } else {\n return new PropertyBinding.Composite(root, path, parsedPath);\n }\n }\n /**\n * Replaces spaces with underscores and removes unsupported characters from\n * node names, to ensure compatibility with parseTrackName().\n *\n * @param {string} name Node name to be sanitized.\n * @return {string}\n */\n\n }, {\n key: \"sanitizeNodeName\",\n value: function sanitizeNodeName(name) {\n return name.replace(/\\s/g, '_').replace(_reservedRe, '');\n }\n }, {\n key: \"parseTrackName\",\n value: function parseTrackName(trackName) {\n var matches = _trackRe.exec(trackName);\n\n if (matches === null) {\n throw new Error('PropertyBinding: Cannot parse trackName: ' + trackName);\n }\n\n var results = {\n // directoryName: matches[ 1 ], // (tschw) currently unused\n nodeName: matches[2],\n objectName: matches[3],\n objectIndex: matches[4],\n propertyName: matches[5],\n // required\n propertyIndex: matches[6]\n };\n var lastDot = results.nodeName && results.nodeName.lastIndexOf('.');\n\n if (lastDot !== undefined && lastDot !== -1) {\n var objectName = results.nodeName.substring(lastDot + 1); // Object names must be checked against an allowlist. Otherwise, there\n // is no way to parse 'foo.bar.baz': 'baz' must be a property, but\n // 'bar' could be the objectName, or part of a nodeName (which can\n // include '.' characters).\n\n if (_supportedObjectNames.indexOf(objectName) !== -1) {\n results.nodeName = results.nodeName.substring(0, lastDot);\n results.objectName = objectName;\n }\n }\n\n if (results.propertyName === null || results.propertyName.length === 0) {\n throw new Error('PropertyBinding: can not parse propertyName from trackName: ' + trackName);\n }\n\n return results;\n }\n }, {\n key: \"findNode\",\n value: function findNode(root, nodeName) {\n if (nodeName === undefined || nodeName === '' || nodeName === '.' || nodeName === -1 || nodeName === root.name || nodeName === root.uuid) {\n return root;\n } // search into skeleton bones.\n\n\n if (root.skeleton) {\n var bone = root.skeleton.getBoneByName(nodeName);\n\n if (bone !== undefined) {\n return bone;\n }\n } // search into node subtree.\n\n\n if (root.children) {\n var searchNodeSubtree = function searchNodeSubtree(children) {\n for (var i = 0; i < children.length; i++) {\n var childNode = children[i];\n\n if (childNode.name === nodeName || childNode.uuid === nodeName) {\n return childNode;\n }\n\n var result = searchNodeSubtree(childNode.children);\n if (result) return result;\n }\n\n return null;\n };\n\n var subTreeNode = searchNodeSubtree(root.children);\n\n if (subTreeNode) {\n return subTreeNode;\n }\n }\n\n return null;\n }\n }]);\n\n return PropertyBinding;\n}();\n\nPropertyBinding.Composite = Composite;\nPropertyBinding.prototype.BindingType = {\n Direct: 0,\n EntireArray: 1,\n ArrayElement: 2,\n HasFromToArray: 3\n};\nPropertyBinding.prototype.Versioning = {\n None: 0,\n NeedsUpdate: 1,\n MatrixWorldNeedsUpdate: 2\n};\nPropertyBinding.prototype.GetterByBindingType = [PropertyBinding.prototype._getValue_direct, PropertyBinding.prototype._getValue_array, PropertyBinding.prototype._getValue_arrayElement, PropertyBinding.prototype._getValue_toArray];\nPropertyBinding.prototype.SetterByBindingTypeAndVersioning = [[// Direct\nPropertyBinding.prototype._setValue_direct, PropertyBinding.prototype._setValue_direct_setNeedsUpdate, PropertyBinding.prototype._setValue_direct_setMatrixWorldNeedsUpdate], [// EntireArray\nPropertyBinding.prototype._setValue_array, PropertyBinding.prototype._setValue_array_setNeedsUpdate, PropertyBinding.prototype._setValue_array_setMatrixWorldNeedsUpdate], [// ArrayElement\nPropertyBinding.prototype._setValue_arrayElement, PropertyBinding.prototype._setValue_arrayElement_setNeedsUpdate, PropertyBinding.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate], [// HasToFromArray\nPropertyBinding.prototype._setValue_fromArray, PropertyBinding.prototype._setValue_fromArray_setNeedsUpdate, PropertyBinding.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];\n/**\n *\n * A group of objects that receives a shared animation state.\n *\n * Usage:\n *\n * - Add objects you would otherwise pass as 'root' to the\n * constructor or the .clipAction method of AnimationMixer.\n *\n * - Instead pass this object as 'root'.\n *\n * - You can also add and remove objects later when the mixer\n * is running.\n *\n * Note:\n *\n * Objects of this class appear as one object to the mixer,\n * so cache control of the individual objects must be done\n * on the group.\n *\n * Limitation:\n *\n * - The animated properties must be compatible among the\n * all objects in the group.\n *\n * - A single property can either be controlled through a\n * target group or directly, but not both.\n */\n\nvar AnimationObjectGroup = /*#__PURE__*/function () {\n function AnimationObjectGroup() {\n _classCallCheck(this, AnimationObjectGroup);\n\n this.isAnimationObjectGroup = true;\n this.uuid = generateUUID(); // cached objects followed by the active ones\n\n this._objects = Array.prototype.slice.call(arguments);\n this.nCachedObjects_ = 0; // threshold\n // note: read by PropertyBinding.Composite\n\n var indices = {};\n this._indicesByUUID = indices; // for bookkeeping\n\n for (var i = 0, n = arguments.length; i !== n; ++i) {\n indices[arguments[i].uuid] = i;\n }\n\n this._paths = []; // inside: string\n\n this._parsedPaths = []; // inside: { we don't care, here }\n\n this._bindings = []; // inside: Array< PropertyBinding >\n\n this._bindingsIndicesByPath = {}; // inside: indices in these arrays\n\n var scope = this;\n this.stats = {\n objects: {\n get total() {\n return scope._objects.length;\n },\n\n get inUse() {\n return this.total - scope.nCachedObjects_;\n }\n\n },\n\n get bindingsPerObject() {\n return scope._bindings.length;\n }\n\n };\n }\n\n _createClass(AnimationObjectGroup, [{\n key: \"add\",\n value: function add() {\n var objects = this._objects,\n indicesByUUID = this._indicesByUUID,\n paths = this._paths,\n parsedPaths = this._parsedPaths,\n bindings = this._bindings,\n nBindings = bindings.length;\n var knownObject = undefined,\n nObjects = objects.length,\n nCachedObjects = this.nCachedObjects_;\n\n for (var i = 0, n = arguments.length; i !== n; ++i) {\n var object = arguments[i],\n uuid = object.uuid;\n var index = indicesByUUID[uuid];\n\n if (index === undefined) {\n // unknown object -> add it to the ACTIVE region\n index = nObjects++;\n indicesByUUID[uuid] = index;\n objects.push(object); // accounting is done, now do the same for all bindings\n\n for (var j = 0, m = nBindings; j !== m; ++j) {\n bindings[j].push(new PropertyBinding(object, paths[j], parsedPaths[j]));\n }\n } else if (index < nCachedObjects) {\n knownObject = objects[index]; // move existing object to the ACTIVE region\n\n var firstActiveIndex = --nCachedObjects,\n lastCachedObject = objects[firstActiveIndex];\n indicesByUUID[lastCachedObject.uuid] = index;\n objects[index] = lastCachedObject;\n indicesByUUID[uuid] = firstActiveIndex;\n objects[firstActiveIndex] = object; // accounting is done, now do the same for all bindings\n\n for (var _j16 = 0, _m2 = nBindings; _j16 !== _m2; ++_j16) {\n var bindingsForPath = bindings[_j16],\n lastCached = bindingsForPath[firstActiveIndex];\n var binding = bindingsForPath[index];\n bindingsForPath[index] = lastCached;\n\n if (binding === undefined) {\n // since we do not bother to create new bindings\n // for objects that are cached, the binding may\n // or may not exist\n binding = new PropertyBinding(object, paths[_j16], parsedPaths[_j16]);\n }\n\n bindingsForPath[firstActiveIndex] = binding;\n }\n } else if (objects[index] !== knownObject) {\n console.error('THREE.AnimationObjectGroup: Different objects with the same UUID ' + 'detected. Clean the caches or recreate your infrastructure when reloading scenes.');\n } // else the object is already where we want it to be\n\n } // for arguments\n\n\n this.nCachedObjects_ = nCachedObjects;\n }\n }, {\n key: \"remove\",\n value: function remove() {\n var objects = this._objects,\n indicesByUUID = this._indicesByUUID,\n bindings = this._bindings,\n nBindings = bindings.length;\n var nCachedObjects = this.nCachedObjects_;\n\n for (var i = 0, n = arguments.length; i !== n; ++i) {\n var object = arguments[i],\n uuid = object.uuid,\n index = indicesByUUID[uuid];\n\n if (index !== undefined && index >= nCachedObjects) {\n // move existing object into the CACHED region\n var lastCachedIndex = nCachedObjects++,\n firstActiveObject = objects[lastCachedIndex];\n indicesByUUID[firstActiveObject.uuid] = index;\n objects[index] = firstActiveObject;\n indicesByUUID[uuid] = lastCachedIndex;\n objects[lastCachedIndex] = object; // accounting is done, now do the same for all bindings\n\n for (var j = 0, m = nBindings; j !== m; ++j) {\n var bindingsForPath = bindings[j],\n firstActive = bindingsForPath[lastCachedIndex],\n binding = bindingsForPath[index];\n bindingsForPath[index] = firstActive;\n bindingsForPath[lastCachedIndex] = binding;\n }\n }\n } // for arguments\n\n\n this.nCachedObjects_ = nCachedObjects;\n } // remove & forget\n\n }, {\n key: \"uncache\",\n value: function uncache() {\n var objects = this._objects,\n indicesByUUID = this._indicesByUUID,\n bindings = this._bindings,\n nBindings = bindings.length;\n var nCachedObjects = this.nCachedObjects_,\n nObjects = objects.length;\n\n for (var i = 0, n = arguments.length; i !== n; ++i) {\n var object = arguments[i],\n uuid = object.uuid,\n index = indicesByUUID[uuid];\n\n if (index !== undefined) {\n delete indicesByUUID[uuid];\n\n if (index < nCachedObjects) {\n // object is cached, shrink the CACHED region\n var firstActiveIndex = --nCachedObjects,\n lastCachedObject = objects[firstActiveIndex],\n lastIndex = --nObjects,\n lastObject = objects[lastIndex]; // last cached object takes this object's place\n\n indicesByUUID[lastCachedObject.uuid] = index;\n objects[index] = lastCachedObject; // last object goes to the activated slot and pop\n\n indicesByUUID[lastObject.uuid] = firstActiveIndex;\n objects[firstActiveIndex] = lastObject;\n objects.pop(); // accounting is done, now do the same for all bindings\n\n for (var j = 0, m = nBindings; j !== m; ++j) {\n var bindingsForPath = bindings[j],\n lastCached = bindingsForPath[firstActiveIndex],\n last = bindingsForPath[lastIndex];\n bindingsForPath[index] = lastCached;\n bindingsForPath[firstActiveIndex] = last;\n bindingsForPath.pop();\n }\n } else {\n // object is active, just swap with the last and pop\n var _lastIndex = --nObjects,\n _lastObject = objects[_lastIndex];\n\n if (_lastIndex > 0) {\n indicesByUUID[_lastObject.uuid] = index;\n }\n\n objects[index] = _lastObject;\n objects.pop(); // accounting is done, now do the same for all bindings\n\n for (var _j17 = 0, _m4 = nBindings; _j17 !== _m4; ++_j17) {\n var _bindingsForPath = bindings[_j17];\n _bindingsForPath[index] = _bindingsForPath[_lastIndex];\n\n _bindingsForPath.pop();\n }\n } // cached or active\n\n } // if object is known\n\n } // for arguments\n\n\n this.nCachedObjects_ = nCachedObjects;\n } // Internal interface used by befriended PropertyBinding.Composite:\n\n }, {\n key: \"subscribe_\",\n value: function subscribe_(path, parsedPath) {\n // returns an array of bindings for the given path that is changed\n // according to the contained objects in the group\n var indicesByPath = this._bindingsIndicesByPath;\n var index = indicesByPath[path];\n var bindings = this._bindings;\n if (index !== undefined) return bindings[index];\n var paths = this._paths,\n parsedPaths = this._parsedPaths,\n objects = this._objects,\n nObjects = objects.length,\n nCachedObjects = this.nCachedObjects_,\n bindingsForPath = new Array(nObjects);\n index = bindings.length;\n indicesByPath[path] = index;\n paths.push(path);\n parsedPaths.push(parsedPath);\n bindings.push(bindingsForPath);\n\n for (var i = nCachedObjects, n = objects.length; i !== n; ++i) {\n var object = objects[i];\n bindingsForPath[i] = new PropertyBinding(object, path, parsedPath);\n }\n\n return bindingsForPath;\n }\n }, {\n key: \"unsubscribe_\",\n value: function unsubscribe_(path) {\n // tells the group to forget about a property path and no longer\n // update the array previously obtained with 'subscribe_'\n var indicesByPath = this._bindingsIndicesByPath,\n index = indicesByPath[path];\n\n if (index !== undefined) {\n var paths = this._paths,\n parsedPaths = this._parsedPaths,\n bindings = this._bindings,\n lastBindingsIndex = bindings.length - 1,\n lastBindings = bindings[lastBindingsIndex],\n lastBindingsPath = path[lastBindingsIndex];\n indicesByPath[lastBindingsPath] = index;\n bindings[index] = lastBindings;\n bindings.pop();\n parsedPaths[index] = parsedPaths[lastBindingsIndex];\n parsedPaths.pop();\n paths[index] = paths[lastBindingsIndex];\n paths.pop();\n }\n }\n }]);\n\n return AnimationObjectGroup;\n}();\n\nvar AnimationAction = /*#__PURE__*/function () {\n function AnimationAction(mixer, clip) {\n var localRoot = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var blendMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : clip.blendMode;\n\n _classCallCheck(this, AnimationAction);\n\n this._mixer = mixer;\n this._clip = clip;\n this._localRoot = localRoot;\n this.blendMode = blendMode;\n var tracks = clip.tracks,\n nTracks = tracks.length,\n interpolants = new Array(nTracks);\n var interpolantSettings = {\n endingStart: ZeroCurvatureEnding,\n endingEnd: ZeroCurvatureEnding\n };\n\n for (var i = 0; i !== nTracks; ++i) {\n var interpolant = tracks[i].createInterpolant(null);\n interpolants[i] = interpolant;\n interpolant.settings = interpolantSettings;\n }\n\n this._interpolantSettings = interpolantSettings;\n this._interpolants = interpolants; // bound by the mixer\n // inside: PropertyMixer (managed by the mixer)\n\n this._propertyBindings = new Array(nTracks);\n this._cacheIndex = null; // for the memory manager\n\n this._byClipCacheIndex = null; // for the memory manager\n\n this._timeScaleInterpolant = null;\n this._weightInterpolant = null;\n this.loop = LoopRepeat;\n this._loopCount = -1; // global mixer time when the action is to be started\n // it's set back to 'null' upon start of the action\n\n this._startTime = null; // scaled local time of the action\n // gets clamped or wrapped to 0..clip.duration according to loop\n\n this.time = 0;\n this.timeScale = 1;\n this._effectiveTimeScale = 1;\n this.weight = 1;\n this._effectiveWeight = 1;\n this.repetitions = Infinity; // no. of repetitions when looping\n\n this.paused = false; // true -> zero effective time scale\n\n this.enabled = true; // false -> zero effective weight\n\n this.clampWhenFinished = false; // keep feeding the last frame?\n\n this.zeroSlopeAtStart = true; // for smooth interpolation w/o separate\n\n this.zeroSlopeAtEnd = true; // clips for start, loop and end\n } // State & Scheduling\n\n\n _createClass(AnimationAction, [{\n key: \"play\",\n value: function play() {\n this._mixer._activateAction(this);\n\n return this;\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this._mixer._deactivateAction(this);\n\n return this.reset();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.paused = false;\n this.enabled = true;\n this.time = 0; // restart clip\n\n this._loopCount = -1; // forget previous loops\n\n this._startTime = null; // forget scheduling\n\n return this.stopFading().stopWarping();\n }\n }, {\n key: \"isRunning\",\n value: function isRunning() {\n return this.enabled && !this.paused && this.timeScale !== 0 && this._startTime === null && this._mixer._isActiveAction(this);\n } // return true when play has been called\n\n }, {\n key: \"isScheduled\",\n value: function isScheduled() {\n return this._mixer._isActiveAction(this);\n }\n }, {\n key: \"startAt\",\n value: function startAt(time) {\n this._startTime = time;\n return this;\n }\n }, {\n key: \"setLoop\",\n value: function setLoop(mode, repetitions) {\n this.loop = mode;\n this.repetitions = repetitions;\n return this;\n } // Weight\n // set the weight stopping any scheduled fading\n // although .enabled = false yields an effective weight of zero, this\n // method does *not* change .enabled, because it would be confusing\n\n }, {\n key: \"setEffectiveWeight\",\n value: function setEffectiveWeight(weight) {\n this.weight = weight; // note: same logic as when updated at runtime\n\n this._effectiveWeight = this.enabled ? weight : 0;\n return this.stopFading();\n } // return the weight considering fading and .enabled\n\n }, {\n key: \"getEffectiveWeight\",\n value: function getEffectiveWeight() {\n return this._effectiveWeight;\n }\n }, {\n key: \"fadeIn\",\n value: function fadeIn(duration) {\n return this._scheduleFading(duration, 0, 1);\n }\n }, {\n key: \"fadeOut\",\n value: function fadeOut(duration) {\n return this._scheduleFading(duration, 1, 0);\n }\n }, {\n key: \"crossFadeFrom\",\n value: function crossFadeFrom(fadeOutAction, duration, warp) {\n fadeOutAction.fadeOut(duration);\n this.fadeIn(duration);\n\n if (warp) {\n var fadeInDuration = this._clip.duration,\n fadeOutDuration = fadeOutAction._clip.duration,\n startEndRatio = fadeOutDuration / fadeInDuration,\n endStartRatio = fadeInDuration / fadeOutDuration;\n fadeOutAction.warp(1.0, startEndRatio, duration);\n this.warp(endStartRatio, 1.0, duration);\n }\n\n return this;\n }\n }, {\n key: \"crossFadeTo\",\n value: function crossFadeTo(fadeInAction, duration, warp) {\n return fadeInAction.crossFadeFrom(this, duration, warp);\n }\n }, {\n key: \"stopFading\",\n value: function stopFading() {\n var weightInterpolant = this._weightInterpolant;\n\n if (weightInterpolant !== null) {\n this._weightInterpolant = null;\n\n this._mixer._takeBackControlInterpolant(weightInterpolant);\n }\n\n return this;\n } // Time Scale Control\n // set the time scale stopping any scheduled warping\n // although .paused = true yields an effective time scale of zero, this\n // method does *not* change .paused, because it would be confusing\n\n }, {\n key: \"setEffectiveTimeScale\",\n value: function setEffectiveTimeScale(timeScale) {\n this.timeScale = timeScale;\n this._effectiveTimeScale = this.paused ? 0 : timeScale;\n return this.stopWarping();\n } // return the time scale considering warping and .paused\n\n }, {\n key: \"getEffectiveTimeScale\",\n value: function getEffectiveTimeScale() {\n return this._effectiveTimeScale;\n }\n }, {\n key: \"setDuration\",\n value: function setDuration(duration) {\n this.timeScale = this._clip.duration / duration;\n return this.stopWarping();\n }\n }, {\n key: \"syncWith\",\n value: function syncWith(action) {\n this.time = action.time;\n this.timeScale = action.timeScale;\n return this.stopWarping();\n }\n }, {\n key: \"halt\",\n value: function halt(duration) {\n return this.warp(this._effectiveTimeScale, 0, duration);\n }\n }, {\n key: \"warp\",\n value: function warp(startTimeScale, endTimeScale, duration) {\n var mixer = this._mixer,\n now = mixer.time,\n timeScale = this.timeScale;\n var interpolant = this._timeScaleInterpolant;\n\n if (interpolant === null) {\n interpolant = mixer._lendControlInterpolant();\n this._timeScaleInterpolant = interpolant;\n }\n\n var times = interpolant.parameterPositions,\n values = interpolant.sampleValues;\n times[0] = now;\n times[1] = now + duration;\n values[0] = startTimeScale / timeScale;\n values[1] = endTimeScale / timeScale;\n return this;\n }\n }, {\n key: \"stopWarping\",\n value: function stopWarping() {\n var timeScaleInterpolant = this._timeScaleInterpolant;\n\n if (timeScaleInterpolant !== null) {\n this._timeScaleInterpolant = null;\n\n this._mixer._takeBackControlInterpolant(timeScaleInterpolant);\n }\n\n return this;\n } // Object Accessors\n\n }, {\n key: \"getMixer\",\n value: function getMixer() {\n return this._mixer;\n }\n }, {\n key: \"getClip\",\n value: function getClip() {\n return this._clip;\n }\n }, {\n key: \"getRoot\",\n value: function getRoot() {\n return this._localRoot || this._mixer._root;\n } // Interna\n\n }, {\n key: \"_update\",\n value: function _update(time, deltaTime, timeDirection, accuIndex) {\n // called by the mixer\n if (!this.enabled) {\n // call ._updateWeight() to update ._effectiveWeight\n this._updateWeight(time);\n\n return;\n }\n\n var startTime = this._startTime;\n\n if (startTime !== null) {\n // check for scheduled start of action\n var timeRunning = (time - startTime) * timeDirection;\n\n if (timeRunning < 0 || timeDirection === 0) {\n deltaTime = 0;\n } else {\n this._startTime = null; // unschedule\n\n deltaTime = timeDirection * timeRunning;\n }\n } // apply time scale and advance time\n\n\n deltaTime *= this._updateTimeScale(time);\n\n var clipTime = this._updateTime(deltaTime); // note: _updateTime may disable the action resulting in\n // an effective weight of 0\n\n\n var weight = this._updateWeight(time);\n\n if (weight > 0) {\n var interpolants = this._interpolants;\n var propertyMixers = this._propertyBindings;\n\n switch (this.blendMode) {\n case AdditiveAnimationBlendMode:\n for (var j = 0, m = interpolants.length; j !== m; ++j) {\n interpolants[j].evaluate(clipTime);\n propertyMixers[j].accumulateAdditive(weight);\n }\n\n break;\n\n case NormalAnimationBlendMode:\n default:\n for (var _j18 = 0, _m5 = interpolants.length; _j18 !== _m5; ++_j18) {\n interpolants[_j18].evaluate(clipTime);\n\n propertyMixers[_j18].accumulate(accuIndex, weight);\n }\n\n }\n }\n }\n }, {\n key: \"_updateWeight\",\n value: function _updateWeight(time) {\n var weight = 0;\n\n if (this.enabled) {\n weight = this.weight;\n var interpolant = this._weightInterpolant;\n\n if (interpolant !== null) {\n var interpolantValue = interpolant.evaluate(time)[0];\n weight *= interpolantValue;\n\n if (time > interpolant.parameterPositions[1]) {\n this.stopFading();\n\n if (interpolantValue === 0) {\n // faded out, disable\n this.enabled = false;\n }\n }\n }\n }\n\n this._effectiveWeight = weight;\n return weight;\n }\n }, {\n key: \"_updateTimeScale\",\n value: function _updateTimeScale(time) {\n var timeScale = 0;\n\n if (!this.paused) {\n timeScale = this.timeScale;\n var interpolant = this._timeScaleInterpolant;\n\n if (interpolant !== null) {\n var interpolantValue = interpolant.evaluate(time)[0];\n timeScale *= interpolantValue;\n\n if (time > interpolant.parameterPositions[1]) {\n this.stopWarping();\n\n if (timeScale === 0) {\n // motion has halted, pause\n this.paused = true;\n } else {\n // warp done - apply final time scale\n this.timeScale = timeScale;\n }\n }\n }\n }\n\n this._effectiveTimeScale = timeScale;\n return timeScale;\n }\n }, {\n key: \"_updateTime\",\n value: function _updateTime(deltaTime) {\n var duration = this._clip.duration;\n var loop = this.loop;\n var time = this.time + deltaTime;\n var loopCount = this._loopCount;\n var pingPong = loop === LoopPingPong;\n\n if (deltaTime === 0) {\n if (loopCount === -1) return time;\n return pingPong && (loopCount & 1) === 1 ? duration - time : time;\n }\n\n if (loop === LoopOnce) {\n if (loopCount === -1) {\n // just started\n this._loopCount = 0;\n\n this._setEndings(true, true, false);\n }\n\n handle_stop: {\n if (time >= duration) {\n time = duration;\n } else if (time < 0) {\n time = 0;\n } else {\n this.time = time;\n break handle_stop;\n }\n\n if (this.clampWhenFinished) this.paused = true;else this.enabled = false;\n this.time = time;\n\n this._mixer.dispatchEvent({\n type: 'finished',\n action: this,\n direction: deltaTime < 0 ? -1 : 1\n });\n }\n } else {\n // repetitive Repeat or PingPong\n if (loopCount === -1) {\n // just started\n if (deltaTime >= 0) {\n loopCount = 0;\n\n this._setEndings(true, this.repetitions === 0, pingPong);\n } else {\n // when looping in reverse direction, the initial\n // transition through zero counts as a repetition,\n // so leave loopCount at -1\n this._setEndings(this.repetitions === 0, true, pingPong);\n }\n }\n\n if (time >= duration || time < 0) {\n // wrap around\n var loopDelta = Math.floor(time / duration); // signed\n\n time -= duration * loopDelta;\n loopCount += Math.abs(loopDelta);\n var pending = this.repetitions - loopCount;\n\n if (pending <= 0) {\n // have to stop (switch state, clamp time, fire event)\n if (this.clampWhenFinished) this.paused = true;else this.enabled = false;\n time = deltaTime > 0 ? duration : 0;\n this.time = time;\n\n this._mixer.dispatchEvent({\n type: 'finished',\n action: this,\n direction: deltaTime > 0 ? 1 : -1\n });\n } else {\n // keep running\n if (pending === 1) {\n // entering the last round\n var atStart = deltaTime < 0;\n\n this._setEndings(atStart, !atStart, pingPong);\n } else {\n this._setEndings(false, false, pingPong);\n }\n\n this._loopCount = loopCount;\n this.time = time;\n\n this._mixer.dispatchEvent({\n type: 'loop',\n action: this,\n loopDelta: loopDelta\n });\n }\n } else {\n this.time = time;\n }\n\n if (pingPong && (loopCount & 1) === 1) {\n // invert time for the \"pong round\"\n return duration - time;\n }\n }\n\n return time;\n }\n }, {\n key: \"_setEndings\",\n value: function _setEndings(atStart, atEnd, pingPong) {\n var settings = this._interpolantSettings;\n\n if (pingPong) {\n settings.endingStart = ZeroSlopeEnding;\n settings.endingEnd = ZeroSlopeEnding;\n } else {\n // assuming for LoopOnce atStart == atEnd == true\n if (atStart) {\n settings.endingStart = this.zeroSlopeAtStart ? ZeroSlopeEnding : ZeroCurvatureEnding;\n } else {\n settings.endingStart = WrapAroundEnding;\n }\n\n if (atEnd) {\n settings.endingEnd = this.zeroSlopeAtEnd ? ZeroSlopeEnding : ZeroCurvatureEnding;\n } else {\n settings.endingEnd = WrapAroundEnding;\n }\n }\n }\n }, {\n key: \"_scheduleFading\",\n value: function _scheduleFading(duration, weightNow, weightThen) {\n var mixer = this._mixer,\n now = mixer.time;\n var interpolant = this._weightInterpolant;\n\n if (interpolant === null) {\n interpolant = mixer._lendControlInterpolant();\n this._weightInterpolant = interpolant;\n }\n\n var times = interpolant.parameterPositions,\n values = interpolant.sampleValues;\n times[0] = now;\n values[0] = weightNow;\n times[1] = now + duration;\n values[1] = weightThen;\n return this;\n }\n }]);\n\n return AnimationAction;\n}();\n\nvar _controlInterpolantsResultBuffer = new Float32Array(1);\n\nvar AnimationMixer = /*#__PURE__*/function (_EventDispatcher7) {\n _inherits(AnimationMixer, _EventDispatcher7);\n\n var _super141 = _createSuper(AnimationMixer);\n\n function AnimationMixer(root) {\n var _this114;\n\n _classCallCheck(this, AnimationMixer);\n\n _this114 = _super141.call(this);\n _this114._root = root;\n\n _this114._initMemoryManager();\n\n _this114._accuIndex = 0;\n _this114.time = 0;\n _this114.timeScale = 1.0;\n return _this114;\n }\n\n _createClass(AnimationMixer, [{\n key: \"_bindAction\",\n value: function _bindAction(action, prototypeAction) {\n var root = action._localRoot || this._root,\n tracks = action._clip.tracks,\n nTracks = tracks.length,\n bindings = action._propertyBindings,\n interpolants = action._interpolants,\n rootUuid = root.uuid,\n bindingsByRoot = this._bindingsByRootAndName;\n var bindingsByName = bindingsByRoot[rootUuid];\n\n if (bindingsByName === undefined) {\n bindingsByName = {};\n bindingsByRoot[rootUuid] = bindingsByName;\n }\n\n for (var i = 0; i !== nTracks; ++i) {\n var track = tracks[i],\n trackName = track.name;\n var binding = bindingsByName[trackName];\n\n if (binding !== undefined) {\n ++binding.referenceCount;\n bindings[i] = binding;\n } else {\n binding = bindings[i];\n\n if (binding !== undefined) {\n // existing binding, make sure the cache knows\n if (binding._cacheIndex === null) {\n ++binding.referenceCount;\n\n this._addInactiveBinding(binding, rootUuid, trackName);\n }\n\n continue;\n }\n\n var path = prototypeAction && prototypeAction._propertyBindings[i].binding.parsedPath;\n binding = new PropertyMixer(PropertyBinding.create(root, trackName, path), track.ValueTypeName, track.getValueSize());\n ++binding.referenceCount;\n\n this._addInactiveBinding(binding, rootUuid, trackName);\n\n bindings[i] = binding;\n }\n\n interpolants[i].resultBuffer = binding.buffer;\n }\n }\n }, {\n key: \"_activateAction\",\n value: function _activateAction(action) {\n if (!this._isActiveAction(action)) {\n if (action._cacheIndex === null) {\n // this action has been forgotten by the cache, but the user\n // appears to be still using it -> rebind\n var rootUuid = (action._localRoot || this._root).uuid,\n clipUuid = action._clip.uuid,\n actionsForClip = this._actionsByClip[clipUuid];\n\n this._bindAction(action, actionsForClip && actionsForClip.knownActions[0]);\n\n this._addInactiveAction(action, clipUuid, rootUuid);\n }\n\n var bindings = action._propertyBindings; // increment reference counts / sort out state\n\n for (var i = 0, n = bindings.length; i !== n; ++i) {\n var binding = bindings[i];\n\n if (binding.useCount++ === 0) {\n this._lendBinding(binding);\n\n binding.saveOriginalState();\n }\n }\n\n this._lendAction(action);\n }\n }\n }, {\n key: \"_deactivateAction\",\n value: function _deactivateAction(action) {\n if (this._isActiveAction(action)) {\n var bindings = action._propertyBindings; // decrement reference counts / sort out state\n\n for (var i = 0, n = bindings.length; i !== n; ++i) {\n var binding = bindings[i];\n\n if (--binding.useCount === 0) {\n binding.restoreOriginalState();\n\n this._takeBackBinding(binding);\n }\n }\n\n this._takeBackAction(action);\n }\n } // Memory manager\n\n }, {\n key: \"_initMemoryManager\",\n value: function _initMemoryManager() {\n this._actions = []; // 'nActiveActions' followed by inactive ones\n\n this._nActiveActions = 0;\n this._actionsByClip = {}; // inside:\n // {\n // \tknownActions: Array< AnimationAction > - used as prototypes\n // \tactionByRoot: AnimationAction - lookup\n // }\n\n this._bindings = []; // 'nActiveBindings' followed by inactive ones\n\n this._nActiveBindings = 0;\n this._bindingsByRootAndName = {}; // inside: Map< name, PropertyMixer >\n\n this._controlInterpolants = []; // same game as above\n\n this._nActiveControlInterpolants = 0;\n var scope = this;\n this.stats = {\n actions: {\n get total() {\n return scope._actions.length;\n },\n\n get inUse() {\n return scope._nActiveActions;\n }\n\n },\n bindings: {\n get total() {\n return scope._bindings.length;\n },\n\n get inUse() {\n return scope._nActiveBindings;\n }\n\n },\n controlInterpolants: {\n get total() {\n return scope._controlInterpolants.length;\n },\n\n get inUse() {\n return scope._nActiveControlInterpolants;\n }\n\n }\n };\n } // Memory management for AnimationAction objects\n\n }, {\n key: \"_isActiveAction\",\n value: function _isActiveAction(action) {\n var index = action._cacheIndex;\n return index !== null && index < this._nActiveActions;\n }\n }, {\n key: \"_addInactiveAction\",\n value: function _addInactiveAction(action, clipUuid, rootUuid) {\n var actions = this._actions,\n actionsByClip = this._actionsByClip;\n var actionsForClip = actionsByClip[clipUuid];\n\n if (actionsForClip === undefined) {\n actionsForClip = {\n knownActions: [action],\n actionByRoot: {}\n };\n action._byClipCacheIndex = 0;\n actionsByClip[clipUuid] = actionsForClip;\n } else {\n var knownActions = actionsForClip.knownActions;\n action._byClipCacheIndex = knownActions.length;\n knownActions.push(action);\n }\n\n action._cacheIndex = actions.length;\n actions.push(action);\n actionsForClip.actionByRoot[rootUuid] = action;\n }\n }, {\n key: \"_removeInactiveAction\",\n value: function _removeInactiveAction(action) {\n var actions = this._actions,\n lastInactiveAction = actions[actions.length - 1],\n cacheIndex = action._cacheIndex;\n lastInactiveAction._cacheIndex = cacheIndex;\n actions[cacheIndex] = lastInactiveAction;\n actions.pop();\n action._cacheIndex = null;\n var clipUuid = action._clip.uuid,\n actionsByClip = this._actionsByClip,\n actionsForClip = actionsByClip[clipUuid],\n knownActionsForClip = actionsForClip.knownActions,\n lastKnownAction = knownActionsForClip[knownActionsForClip.length - 1],\n byClipCacheIndex = action._byClipCacheIndex;\n lastKnownAction._byClipCacheIndex = byClipCacheIndex;\n knownActionsForClip[byClipCacheIndex] = lastKnownAction;\n knownActionsForClip.pop();\n action._byClipCacheIndex = null;\n var actionByRoot = actionsForClip.actionByRoot,\n rootUuid = (action._localRoot || this._root).uuid;\n delete actionByRoot[rootUuid];\n\n if (knownActionsForClip.length === 0) {\n delete actionsByClip[clipUuid];\n }\n\n this._removeInactiveBindingsForAction(action);\n }\n }, {\n key: \"_removeInactiveBindingsForAction\",\n value: function _removeInactiveBindingsForAction(action) {\n var bindings = action._propertyBindings;\n\n for (var i = 0, n = bindings.length; i !== n; ++i) {\n var binding = bindings[i];\n\n if (--binding.referenceCount === 0) {\n this._removeInactiveBinding(binding);\n }\n }\n }\n }, {\n key: \"_lendAction\",\n value: function _lendAction(action) {\n // [ active actions | inactive actions ]\n // [ active actions >| inactive actions ]\n // s a\n // <-swap->\n // a s\n var actions = this._actions,\n prevIndex = action._cacheIndex,\n lastActiveIndex = this._nActiveActions++,\n firstInactiveAction = actions[lastActiveIndex];\n action._cacheIndex = lastActiveIndex;\n actions[lastActiveIndex] = action;\n firstInactiveAction._cacheIndex = prevIndex;\n actions[prevIndex] = firstInactiveAction;\n }\n }, {\n key: \"_takeBackAction\",\n value: function _takeBackAction(action) {\n // [ active actions | inactive actions ]\n // [ active actions |< inactive actions ]\n // a s\n // <-swap->\n // s a\n var actions = this._actions,\n prevIndex = action._cacheIndex,\n firstInactiveIndex = --this._nActiveActions,\n lastActiveAction = actions[firstInactiveIndex];\n action._cacheIndex = firstInactiveIndex;\n actions[firstInactiveIndex] = action;\n lastActiveAction._cacheIndex = prevIndex;\n actions[prevIndex] = lastActiveAction;\n } // Memory management for PropertyMixer objects\n\n }, {\n key: \"_addInactiveBinding\",\n value: function _addInactiveBinding(binding, rootUuid, trackName) {\n var bindingsByRoot = this._bindingsByRootAndName,\n bindings = this._bindings;\n var bindingByName = bindingsByRoot[rootUuid];\n\n if (bindingByName === undefined) {\n bindingByName = {};\n bindingsByRoot[rootUuid] = bindingByName;\n }\n\n bindingByName[trackName] = binding;\n binding._cacheIndex = bindings.length;\n bindings.push(binding);\n }\n }, {\n key: \"_removeInactiveBinding\",\n value: function _removeInactiveBinding(binding) {\n var bindings = this._bindings,\n propBinding = binding.binding,\n rootUuid = propBinding.rootNode.uuid,\n trackName = propBinding.path,\n bindingsByRoot = this._bindingsByRootAndName,\n bindingByName = bindingsByRoot[rootUuid],\n lastInactiveBinding = bindings[bindings.length - 1],\n cacheIndex = binding._cacheIndex;\n lastInactiveBinding._cacheIndex = cacheIndex;\n bindings[cacheIndex] = lastInactiveBinding;\n bindings.pop();\n delete bindingByName[trackName];\n\n if (Object.keys(bindingByName).length === 0) {\n delete bindingsByRoot[rootUuid];\n }\n }\n }, {\n key: \"_lendBinding\",\n value: function _lendBinding(binding) {\n var bindings = this._bindings,\n prevIndex = binding._cacheIndex,\n lastActiveIndex = this._nActiveBindings++,\n firstInactiveBinding = bindings[lastActiveIndex];\n binding._cacheIndex = lastActiveIndex;\n bindings[lastActiveIndex] = binding;\n firstInactiveBinding._cacheIndex = prevIndex;\n bindings[prevIndex] = firstInactiveBinding;\n }\n }, {\n key: \"_takeBackBinding\",\n value: function _takeBackBinding(binding) {\n var bindings = this._bindings,\n prevIndex = binding._cacheIndex,\n firstInactiveIndex = --this._nActiveBindings,\n lastActiveBinding = bindings[firstInactiveIndex];\n binding._cacheIndex = firstInactiveIndex;\n bindings[firstInactiveIndex] = binding;\n lastActiveBinding._cacheIndex = prevIndex;\n bindings[prevIndex] = lastActiveBinding;\n } // Memory management of Interpolants for weight and time scale\n\n }, {\n key: \"_lendControlInterpolant\",\n value: function _lendControlInterpolant() {\n var interpolants = this._controlInterpolants,\n lastActiveIndex = this._nActiveControlInterpolants++;\n var interpolant = interpolants[lastActiveIndex];\n\n if (interpolant === undefined) {\n interpolant = new LinearInterpolant(new Float32Array(2), new Float32Array(2), 1, _controlInterpolantsResultBuffer);\n interpolant.__cacheIndex = lastActiveIndex;\n interpolants[lastActiveIndex] = interpolant;\n }\n\n return interpolant;\n }\n }, {\n key: \"_takeBackControlInterpolant\",\n value: function _takeBackControlInterpolant(interpolant) {\n var interpolants = this._controlInterpolants,\n prevIndex = interpolant.__cacheIndex,\n firstInactiveIndex = --this._nActiveControlInterpolants,\n lastActiveInterpolant = interpolants[firstInactiveIndex];\n interpolant.__cacheIndex = firstInactiveIndex;\n interpolants[firstInactiveIndex] = interpolant;\n lastActiveInterpolant.__cacheIndex = prevIndex;\n interpolants[prevIndex] = lastActiveInterpolant;\n } // return an action for a clip optionally using a custom root target\n // object (this method allocates a lot of dynamic memory in case a\n // previously unknown clip/root combination is specified)\n\n }, {\n key: \"clipAction\",\n value: function clipAction(clip, optionalRoot, blendMode) {\n var root = optionalRoot || this._root,\n rootUuid = root.uuid;\n var clipObject = typeof clip === 'string' ? AnimationClip.findByName(root, clip) : clip;\n var clipUuid = clipObject !== null ? clipObject.uuid : clip;\n var actionsForClip = this._actionsByClip[clipUuid];\n var prototypeAction = null;\n\n if (blendMode === undefined) {\n if (clipObject !== null) {\n blendMode = clipObject.blendMode;\n } else {\n blendMode = NormalAnimationBlendMode;\n }\n }\n\n if (actionsForClip !== undefined) {\n var existingAction = actionsForClip.actionByRoot[rootUuid];\n\n if (existingAction !== undefined && existingAction.blendMode === blendMode) {\n return existingAction;\n } // we know the clip, so we don't have to parse all\n // the bindings again but can just copy\n\n\n prototypeAction = actionsForClip.knownActions[0]; // also, take the clip from the prototype action\n\n if (clipObject === null) clipObject = prototypeAction._clip;\n } // clip must be known when specified via string\n\n\n if (clipObject === null) return null; // allocate all resources required to run it\n\n var newAction = new AnimationAction(this, clipObject, optionalRoot, blendMode);\n\n this._bindAction(newAction, prototypeAction); // and make the action known to the memory manager\n\n\n this._addInactiveAction(newAction, clipUuid, rootUuid);\n\n return newAction;\n } // get an existing action\n\n }, {\n key: \"existingAction\",\n value: function existingAction(clip, optionalRoot) {\n var root = optionalRoot || this._root,\n rootUuid = root.uuid,\n clipObject = typeof clip === 'string' ? AnimationClip.findByName(root, clip) : clip,\n clipUuid = clipObject ? clipObject.uuid : clip,\n actionsForClip = this._actionsByClip[clipUuid];\n\n if (actionsForClip !== undefined) {\n return actionsForClip.actionByRoot[rootUuid] || null;\n }\n\n return null;\n } // deactivates all previously scheduled actions\n\n }, {\n key: \"stopAllAction\",\n value: function stopAllAction() {\n var actions = this._actions,\n nActions = this._nActiveActions;\n\n for (var i = nActions - 1; i >= 0; --i) {\n actions[i].stop();\n }\n\n return this;\n } // advance the time and update apply the animation\n\n }, {\n key: \"update\",\n value: function update(deltaTime) {\n deltaTime *= this.timeScale;\n var actions = this._actions,\n nActions = this._nActiveActions,\n time = this.time += deltaTime,\n timeDirection = Math.sign(deltaTime),\n accuIndex = this._accuIndex ^= 1; // run active actions\n\n for (var i = 0; i !== nActions; ++i) {\n var action = actions[i];\n\n action._update(time, deltaTime, timeDirection, accuIndex);\n } // update scene graph\n\n\n var bindings = this._bindings,\n nBindings = this._nActiveBindings;\n\n for (var _i94 = 0; _i94 !== nBindings; ++_i94) {\n bindings[_i94].apply(accuIndex);\n }\n\n return this;\n } // Allows you to seek to a specific time in an animation.\n\n }, {\n key: \"setTime\",\n value: function setTime(timeInSeconds) {\n this.time = 0; // Zero out time attribute for AnimationMixer object;\n\n for (var i = 0; i < this._actions.length; i++) {\n this._actions[i].time = 0; // Zero out time attribute for all associated AnimationAction objects.\n }\n\n return this.update(timeInSeconds); // Update used to set exact time. Returns \"this\" AnimationMixer object.\n } // return this mixer's root target object\n\n }, {\n key: \"getRoot\",\n value: function getRoot() {\n return this._root;\n } // free all resources specific to a particular clip\n\n }, {\n key: \"uncacheClip\",\n value: function uncacheClip(clip) {\n var actions = this._actions,\n clipUuid = clip.uuid,\n actionsByClip = this._actionsByClip,\n actionsForClip = actionsByClip[clipUuid];\n\n if (actionsForClip !== undefined) {\n // note: just calling _removeInactiveAction would mess up the\n // iteration state and also require updating the state we can\n // just throw away\n var actionsToRemove = actionsForClip.knownActions;\n\n for (var i = 0, n = actionsToRemove.length; i !== n; ++i) {\n var action = actionsToRemove[i];\n\n this._deactivateAction(action);\n\n var cacheIndex = action._cacheIndex,\n lastInactiveAction = actions[actions.length - 1];\n action._cacheIndex = null;\n action._byClipCacheIndex = null;\n lastInactiveAction._cacheIndex = cacheIndex;\n actions[cacheIndex] = lastInactiveAction;\n actions.pop();\n\n this._removeInactiveBindingsForAction(action);\n }\n\n delete actionsByClip[clipUuid];\n }\n } // free all resources specific to a particular root target object\n\n }, {\n key: \"uncacheRoot\",\n value: function uncacheRoot(root) {\n var rootUuid = root.uuid,\n actionsByClip = this._actionsByClip;\n\n for (var clipUuid in actionsByClip) {\n var actionByRoot = actionsByClip[clipUuid].actionByRoot,\n action = actionByRoot[rootUuid];\n\n if (action !== undefined) {\n this._deactivateAction(action);\n\n this._removeInactiveAction(action);\n }\n }\n\n var bindingsByRoot = this._bindingsByRootAndName,\n bindingByName = bindingsByRoot[rootUuid];\n\n if (bindingByName !== undefined) {\n for (var trackName in bindingByName) {\n var binding = bindingByName[trackName];\n binding.restoreOriginalState();\n\n this._removeInactiveBinding(binding);\n }\n }\n } // remove a targeted clip from the cache\n\n }, {\n key: \"uncacheAction\",\n value: function uncacheAction(clip, optionalRoot) {\n var action = this.existingAction(clip, optionalRoot);\n\n if (action !== null) {\n this._deactivateAction(action);\n\n this._removeInactiveAction(action);\n }\n }\n }]);\n\n return AnimationMixer;\n}(EventDispatcher);\n\nvar Uniform = /*#__PURE__*/function () {\n function Uniform(value) {\n _classCallCheck(this, Uniform);\n\n this.value = value;\n }\n\n _createClass(Uniform, [{\n key: \"clone\",\n value: function clone() {\n return new Uniform(this.value.clone === undefined ? this.value : this.value.clone());\n }\n }]);\n\n return Uniform;\n}();\n\nvar id = 0;\n\nvar UniformsGroup = /*#__PURE__*/function (_EventDispatcher8) {\n _inherits(UniformsGroup, _EventDispatcher8);\n\n var _super142 = _createSuper(UniformsGroup);\n\n function UniformsGroup() {\n var _this115;\n\n _classCallCheck(this, UniformsGroup);\n\n _this115 = _super142.call(this);\n _this115.isUniformsGroup = true;\n Object.defineProperty(_assertThisInitialized(_this115), 'id', {\n value: id++\n });\n _this115.name = '';\n _this115.usage = StaticDrawUsage;\n _this115.uniforms = [];\n return _this115;\n }\n\n _createClass(UniformsGroup, [{\n key: \"add\",\n value: function add(uniform) {\n this.uniforms.push(uniform);\n return this;\n }\n }, {\n key: \"remove\",\n value: function remove(uniform) {\n var index = this.uniforms.indexOf(uniform);\n if (index !== -1) this.uniforms.splice(index, 1);\n return this;\n }\n }, {\n key: \"setName\",\n value: function setName(name) {\n this.name = name;\n return this;\n }\n }, {\n key: \"setUsage\",\n value: function setUsage(value) {\n this.usage = value;\n return this;\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n this.dispatchEvent({\n type: 'dispose'\n });\n return this;\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n this.name = source.name;\n this.usage = source.usage;\n var uniformsSource = source.uniforms;\n this.uniforms.length = 0;\n\n for (var i = 0, l = uniformsSource.length; i < l; i++) {\n this.uniforms.push(uniformsSource[i].clone());\n }\n\n return this;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n }\n }]);\n\n return UniformsGroup;\n}(EventDispatcher);\n\nvar InstancedInterleavedBuffer = /*#__PURE__*/function (_InterleavedBuffer) {\n _inherits(InstancedInterleavedBuffer, _InterleavedBuffer);\n\n var _super143 = _createSuper(InstancedInterleavedBuffer);\n\n function InstancedInterleavedBuffer(array, stride) {\n var _this116;\n\n var meshPerAttribute = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n _classCallCheck(this, InstancedInterleavedBuffer);\n\n _this116 = _super143.call(this, array, stride);\n _this116.isInstancedInterleavedBuffer = true;\n _this116.meshPerAttribute = meshPerAttribute;\n return _this116;\n }\n\n _createClass(InstancedInterleavedBuffer, [{\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(InstancedInterleavedBuffer.prototype), \"copy\", this).call(this, source);\n\n this.meshPerAttribute = source.meshPerAttribute;\n return this;\n }\n }, {\n key: \"clone\",\n value: function clone(data) {\n var ib = _get(_getPrototypeOf(InstancedInterleavedBuffer.prototype), \"clone\", this).call(this, data);\n\n ib.meshPerAttribute = this.meshPerAttribute;\n return ib;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON(data) {\n var json = _get(_getPrototypeOf(InstancedInterleavedBuffer.prototype), \"toJSON\", this).call(this, data);\n\n json.isInstancedInterleavedBuffer = true;\n json.meshPerAttribute = this.meshPerAttribute;\n return json;\n }\n }]);\n\n return InstancedInterleavedBuffer;\n}(InterleavedBuffer);\n\nvar GLBufferAttribute = /*#__PURE__*/function () {\n function GLBufferAttribute(buffer, type, itemSize, elementSize, count) {\n _classCallCheck(this, GLBufferAttribute);\n\n this.isGLBufferAttribute = true;\n this.name = '';\n this.buffer = buffer;\n this.type = type;\n this.itemSize = itemSize;\n this.elementSize = elementSize;\n this.count = count;\n this.version = 0;\n }\n\n _createClass(GLBufferAttribute, [{\n key: \"needsUpdate\",\n set: function set(value) {\n if (value === true) this.version++;\n }\n }, {\n key: \"setBuffer\",\n value: function setBuffer(buffer) {\n this.buffer = buffer;\n return this;\n }\n }, {\n key: \"setType\",\n value: function setType(type, elementSize) {\n this.type = type;\n this.elementSize = elementSize;\n return this;\n }\n }, {\n key: \"setItemSize\",\n value: function setItemSize(itemSize) {\n this.itemSize = itemSize;\n return this;\n }\n }, {\n key: \"setCount\",\n value: function setCount(count) {\n this.count = count;\n return this;\n }\n }]);\n\n return GLBufferAttribute;\n}();\n\nvar Raycaster = /*#__PURE__*/function () {\n function Raycaster(origin, direction) {\n var near = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var far = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Infinity;\n\n _classCallCheck(this, Raycaster);\n\n this.ray = new Ray(origin, direction); // direction is assumed to be normalized (for accurate distance calculations)\n\n this.near = near;\n this.far = far;\n this.camera = null;\n this.layers = new Layers();\n this.params = {\n Mesh: {},\n Line: {\n threshold: 1\n },\n LOD: {},\n Points: {\n threshold: 1\n },\n Sprite: {}\n };\n }\n\n _createClass(Raycaster, [{\n key: \"set\",\n value: function set(origin, direction) {\n // direction is assumed to be normalized (for accurate distance calculations)\n this.ray.set(origin, direction);\n }\n }, {\n key: \"setFromCamera\",\n value: function setFromCamera(coords, camera) {\n if (camera.isPerspectiveCamera) {\n this.ray.origin.setFromMatrixPosition(camera.matrixWorld);\n this.ray.direction.set(coords.x, coords.y, 0.5).unproject(camera).sub(this.ray.origin).normalize();\n this.camera = camera;\n } else if (camera.isOrthographicCamera) {\n this.ray.origin.set(coords.x, coords.y, (camera.near + camera.far) / (camera.near - camera.far)).unproject(camera); // set origin in plane of camera\n\n this.ray.direction.set(0, 0, -1).transformDirection(camera.matrixWorld);\n this.camera = camera;\n } else {\n console.error('THREE.Raycaster: Unsupported camera type: ' + camera.type);\n }\n }\n }, {\n key: \"intersectObject\",\n value: function intersectObject(object) {\n var recursive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var intersects = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n _intersectObject(object, this, intersects, recursive);\n\n intersects.sort(ascSort);\n return intersects;\n }\n }, {\n key: \"intersectObjects\",\n value: function intersectObjects(objects) {\n var recursive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var intersects = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n for (var i = 0, l = objects.length; i < l; i++) {\n _intersectObject(objects[i], this, intersects, recursive);\n }\n\n intersects.sort(ascSort);\n return intersects;\n }\n }]);\n\n return Raycaster;\n}();\n\nfunction ascSort(a, b) {\n return a.distance - b.distance;\n}\n\nfunction _intersectObject(object, raycaster, intersects, recursive) {\n if (object.layers.test(raycaster.layers)) {\n object.raycast(raycaster, intersects);\n }\n\n if (recursive === true) {\n var children = object.children;\n\n for (var i = 0, l = children.length; i < l; i++) {\n _intersectObject(children[i], raycaster, intersects, true);\n }\n }\n}\n/**\n * Ref: https://en.wikipedia.org/wiki/Spherical_coordinate_system\n *\n * The polar angle (phi) is measured from the positive y-axis. The positive y-axis is up.\n * The azimuthal angle (theta) is measured from the positive z-axis.\n */\n\n\nvar Spherical = /*#__PURE__*/function () {\n function Spherical() {\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var phi = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var theta = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n _classCallCheck(this, Spherical);\n\n this.radius = radius;\n this.phi = phi; // polar angle\n\n this.theta = theta; // azimuthal angle\n\n return this;\n }\n\n _createClass(Spherical, [{\n key: \"set\",\n value: function set(radius, phi, theta) {\n this.radius = radius;\n this.phi = phi;\n this.theta = theta;\n return this;\n }\n }, {\n key: \"copy\",\n value: function copy(other) {\n this.radius = other.radius;\n this.phi = other.phi;\n this.theta = other.theta;\n return this;\n } // restrict phi to be between EPS and PI-EPS\n\n }, {\n key: \"makeSafe\",\n value: function makeSafe() {\n var EPS = 0.000001;\n this.phi = Math.max(EPS, Math.min(Math.PI - EPS, this.phi));\n return this;\n }\n }, {\n key: \"setFromVector3\",\n value: function setFromVector3(v) {\n return this.setFromCartesianCoords(v.x, v.y, v.z);\n }\n }, {\n key: \"setFromCartesianCoords\",\n value: function setFromCartesianCoords(x, y, z) {\n this.radius = Math.sqrt(x * x + y * y + z * z);\n\n if (this.radius === 0) {\n this.theta = 0;\n this.phi = 0;\n } else {\n this.theta = Math.atan2(x, z);\n this.phi = Math.acos(clamp(y / this.radius, -1, 1));\n }\n\n return this;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n }\n }]);\n\n return Spherical;\n}();\n/**\n * Ref: https://en.wikipedia.org/wiki/Cylindrical_coordinate_system\n */\n\n\nvar Cylindrical = /*#__PURE__*/function () {\n function Cylindrical() {\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var theta = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n _classCallCheck(this, Cylindrical);\n\n this.radius = radius; // distance from the origin to a point in the x-z plane\n\n this.theta = theta; // counterclockwise angle in the x-z plane measured in radians from the positive z-axis\n\n this.y = y; // height above the x-z plane\n\n return this;\n }\n\n _createClass(Cylindrical, [{\n key: \"set\",\n value: function set(radius, theta, y) {\n this.radius = radius;\n this.theta = theta;\n this.y = y;\n return this;\n }\n }, {\n key: \"copy\",\n value: function copy(other) {\n this.radius = other.radius;\n this.theta = other.theta;\n this.y = other.y;\n return this;\n }\n }, {\n key: \"setFromVector3\",\n value: function setFromVector3(v) {\n return this.setFromCartesianCoords(v.x, v.y, v.z);\n }\n }, {\n key: \"setFromCartesianCoords\",\n value: function setFromCartesianCoords(x, y, z) {\n this.radius = Math.sqrt(x * x + z * z);\n this.theta = Math.atan2(x, z);\n this.y = y;\n return this;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n }\n }]);\n\n return Cylindrical;\n}();\n\nvar _vector$4 = /*@__PURE__*/new Vector2();\n\nvar Box2 = /*#__PURE__*/function () {\n function Box2() {\n var min = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Vector2(+Infinity, +Infinity);\n var max = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector2(-Infinity, -Infinity);\n\n _classCallCheck(this, Box2);\n\n this.isBox2 = true;\n this.min = min;\n this.max = max;\n }\n\n _createClass(Box2, [{\n key: \"set\",\n value: function set(min, max) {\n this.min.copy(min);\n this.max.copy(max);\n return this;\n }\n }, {\n key: \"setFromPoints\",\n value: function setFromPoints(points) {\n this.makeEmpty();\n\n for (var i = 0, il = points.length; i < il; i++) {\n this.expandByPoint(points[i]);\n }\n\n return this;\n }\n }, {\n key: \"setFromCenterAndSize\",\n value: function setFromCenterAndSize(center, size) {\n var halfSize = _vector$4.copy(size).multiplyScalar(0.5);\n\n this.min.copy(center).sub(halfSize);\n this.max.copy(center).add(halfSize);\n return this;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n }\n }, {\n key: \"copy\",\n value: function copy(box) {\n this.min.copy(box.min);\n this.max.copy(box.max);\n return this;\n }\n }, {\n key: \"makeEmpty\",\n value: function makeEmpty() {\n this.min.x = this.min.y = +Infinity;\n this.max.x = this.max.y = -Infinity;\n return this;\n }\n }, {\n key: \"isEmpty\",\n value: function isEmpty() {\n // this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\n return this.max.x < this.min.x || this.max.y < this.min.y;\n }\n }, {\n key: \"getCenter\",\n value: function getCenter(target) {\n return this.isEmpty() ? target.set(0, 0) : target.addVectors(this.min, this.max).multiplyScalar(0.5);\n }\n }, {\n key: \"getSize\",\n value: function getSize(target) {\n return this.isEmpty() ? target.set(0, 0) : target.subVectors(this.max, this.min);\n }\n }, {\n key: \"expandByPoint\",\n value: function expandByPoint(point) {\n this.min.min(point);\n this.max.max(point);\n return this;\n }\n }, {\n key: \"expandByVector\",\n value: function expandByVector(vector) {\n this.min.sub(vector);\n this.max.add(vector);\n return this;\n }\n }, {\n key: \"expandByScalar\",\n value: function expandByScalar(scalar) {\n this.min.addScalar(-scalar);\n this.max.addScalar(scalar);\n return this;\n }\n }, {\n key: \"containsPoint\",\n value: function containsPoint(point) {\n return point.x < this.min.x || point.x > this.max.x || point.y < this.min.y || point.y > this.max.y ? false : true;\n }\n }, {\n key: \"containsBox\",\n value: function containsBox(box) {\n return this.min.x <= box.min.x && box.max.x <= this.max.x && this.min.y <= box.min.y && box.max.y <= this.max.y;\n }\n }, {\n key: \"getParameter\",\n value: function getParameter(point, target) {\n // This can potentially have a divide by zero if the box\n // has a size dimension of 0.\n return target.set((point.x - this.min.x) / (this.max.x - this.min.x), (point.y - this.min.y) / (this.max.y - this.min.y));\n }\n }, {\n key: \"intersectsBox\",\n value: function intersectsBox(box) {\n // using 4 splitting planes to rule out intersections\n return box.max.x < this.min.x || box.min.x > this.max.x || box.max.y < this.min.y || box.min.y > this.max.y ? false : true;\n }\n }, {\n key: \"clampPoint\",\n value: function clampPoint(point, target) {\n return target.copy(point).clamp(this.min, this.max);\n }\n }, {\n key: \"distanceToPoint\",\n value: function distanceToPoint(point) {\n return this.clampPoint(point, _vector$4).distanceTo(point);\n }\n }, {\n key: \"intersect\",\n value: function intersect(box) {\n this.min.max(box.min);\n this.max.min(box.max);\n if (this.isEmpty()) this.makeEmpty();\n return this;\n }\n }, {\n key: \"union\",\n value: function union(box) {\n this.min.min(box.min);\n this.max.max(box.max);\n return this;\n }\n }, {\n key: \"translate\",\n value: function translate(offset) {\n this.min.add(offset);\n this.max.add(offset);\n return this;\n }\n }, {\n key: \"equals\",\n value: function equals(box) {\n return box.min.equals(this.min) && box.max.equals(this.max);\n }\n }]);\n\n return Box2;\n}();\n\nvar _startP = /*@__PURE__*/new Vector3();\n\nvar _startEnd = /*@__PURE__*/new Vector3();\n\nvar Line3 = /*#__PURE__*/function () {\n function Line3() {\n var start = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Vector3();\n var end = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector3();\n\n _classCallCheck(this, Line3);\n\n this.start = start;\n this.end = end;\n }\n\n _createClass(Line3, [{\n key: \"set\",\n value: function set(start, end) {\n this.start.copy(start);\n this.end.copy(end);\n return this;\n }\n }, {\n key: \"copy\",\n value: function copy(line) {\n this.start.copy(line.start);\n this.end.copy(line.end);\n return this;\n }\n }, {\n key: \"getCenter\",\n value: function getCenter(target) {\n return target.addVectors(this.start, this.end).multiplyScalar(0.5);\n }\n }, {\n key: \"delta\",\n value: function delta(target) {\n return target.subVectors(this.end, this.start);\n }\n }, {\n key: \"distanceSq\",\n value: function distanceSq() {\n return this.start.distanceToSquared(this.end);\n }\n }, {\n key: \"distance\",\n value: function distance() {\n return this.start.distanceTo(this.end);\n }\n }, {\n key: \"at\",\n value: function at(t, target) {\n return this.delta(target).multiplyScalar(t).add(this.start);\n }\n }, {\n key: \"closestPointToPointParameter\",\n value: function closestPointToPointParameter(point, clampToLine) {\n _startP.subVectors(point, this.start);\n\n _startEnd.subVectors(this.end, this.start);\n\n var startEnd2 = _startEnd.dot(_startEnd);\n\n var startEnd_startP = _startEnd.dot(_startP);\n\n var t = startEnd_startP / startEnd2;\n\n if (clampToLine) {\n t = clamp(t, 0, 1);\n }\n\n return t;\n }\n }, {\n key: \"closestPointToPoint\",\n value: function closestPointToPoint(point, clampToLine, target) {\n var t = this.closestPointToPointParameter(point, clampToLine);\n return this.delta(target).multiplyScalar(t).add(this.start);\n }\n }, {\n key: \"applyMatrix4\",\n value: function applyMatrix4(matrix) {\n this.start.applyMatrix4(matrix);\n this.end.applyMatrix4(matrix);\n return this;\n }\n }, {\n key: \"equals\",\n value: function equals(line) {\n return line.start.equals(this.start) && line.end.equals(this.end);\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n }\n }]);\n\n return Line3;\n}();\n\nvar _vector$3 = /*@__PURE__*/new Vector3();\n\nvar SpotLightHelper = /*#__PURE__*/function (_Object3D14) {\n _inherits(SpotLightHelper, _Object3D14);\n\n var _super144 = _createSuper(SpotLightHelper);\n\n function SpotLightHelper(light, color) {\n var _this117;\n\n _classCallCheck(this, SpotLightHelper);\n\n _this117 = _super144.call(this);\n _this117.light = light;\n _this117.matrix = light.matrixWorld;\n _this117.matrixAutoUpdate = false;\n _this117.color = color;\n _this117.type = 'SpotLightHelper';\n var geometry = new BufferGeometry();\n var positions = [0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, -1, 1];\n\n for (var i = 0, j = 1, l = 32; i < l; i++, j++) {\n var p1 = i / l * Math.PI * 2;\n var p2 = j / l * Math.PI * 2;\n positions.push(Math.cos(p1), Math.sin(p1), 1, Math.cos(p2), Math.sin(p2), 1);\n }\n\n geometry.setAttribute('position', new Float32BufferAttribute(positions, 3));\n var material = new LineBasicMaterial({\n fog: false,\n toneMapped: false\n });\n _this117.cone = new LineSegments(geometry, material);\n\n _this117.add(_this117.cone);\n\n _this117.update();\n\n return _this117;\n }\n\n _createClass(SpotLightHelper, [{\n key: \"dispose\",\n value: function dispose() {\n this.cone.geometry.dispose();\n this.cone.material.dispose();\n }\n }, {\n key: \"update\",\n value: function update() {\n this.light.updateWorldMatrix(true, false);\n this.light.target.updateWorldMatrix(true, false);\n var coneLength = this.light.distance ? this.light.distance : 1000;\n var coneWidth = coneLength * Math.tan(this.light.angle);\n this.cone.scale.set(coneWidth, coneWidth, coneLength);\n\n _vector$3.setFromMatrixPosition(this.light.target.matrixWorld);\n\n this.cone.lookAt(_vector$3);\n\n if (this.color !== undefined) {\n this.cone.material.color.set(this.color);\n } else {\n this.cone.material.color.copy(this.light.color);\n }\n }\n }]);\n\n return SpotLightHelper;\n}(Object3D);\n\nvar _vector$2 = /*@__PURE__*/new Vector3();\n\nvar _boneMatrix = /*@__PURE__*/new Matrix4();\n\nvar _matrixWorldInv = /*@__PURE__*/new Matrix4();\n\nvar SkeletonHelper = /*#__PURE__*/function (_LineSegments) {\n _inherits(SkeletonHelper, _LineSegments);\n\n var _super145 = _createSuper(SkeletonHelper);\n\n function SkeletonHelper(object) {\n var _this118;\n\n _classCallCheck(this, SkeletonHelper);\n\n var bones = getBoneList(object);\n var geometry = new BufferGeometry();\n var vertices = [];\n var colors = [];\n var color1 = new Color(0, 0, 1);\n var color2 = new Color(0, 1, 0);\n\n for (var i = 0; i < bones.length; i++) {\n var bone = bones[i];\n\n if (bone.parent && bone.parent.isBone) {\n vertices.push(0, 0, 0);\n vertices.push(0, 0, 0);\n colors.push(color1.r, color1.g, color1.b);\n colors.push(color2.r, color2.g, color2.b);\n }\n }\n\n geometry.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n geometry.setAttribute('color', new Float32BufferAttribute(colors, 3));\n var material = new LineBasicMaterial({\n vertexColors: true,\n depthTest: false,\n depthWrite: false,\n toneMapped: false,\n transparent: true\n });\n _this118 = _super145.call(this, geometry, material);\n _this118.isSkeletonHelper = true;\n _this118.type = 'SkeletonHelper';\n _this118.root = object;\n _this118.bones = bones;\n _this118.matrix = object.matrixWorld;\n _this118.matrixAutoUpdate = false;\n return _this118;\n }\n\n _createClass(SkeletonHelper, [{\n key: \"updateMatrixWorld\",\n value: function updateMatrixWorld(force) {\n var bones = this.bones;\n var geometry = this.geometry;\n var position = geometry.getAttribute('position');\n\n _matrixWorldInv.copy(this.root.matrixWorld).invert();\n\n for (var i = 0, j = 0; i < bones.length; i++) {\n var bone = bones[i];\n\n if (bone.parent && bone.parent.isBone) {\n _boneMatrix.multiplyMatrices(_matrixWorldInv, bone.matrixWorld);\n\n _vector$2.setFromMatrixPosition(_boneMatrix);\n\n position.setXYZ(j, _vector$2.x, _vector$2.y, _vector$2.z);\n\n _boneMatrix.multiplyMatrices(_matrixWorldInv, bone.parent.matrixWorld);\n\n _vector$2.setFromMatrixPosition(_boneMatrix);\n\n position.setXYZ(j + 1, _vector$2.x, _vector$2.y, _vector$2.z);\n j += 2;\n }\n }\n\n geometry.getAttribute('position').needsUpdate = true;\n\n _get(_getPrototypeOf(SkeletonHelper.prototype), \"updateMatrixWorld\", this).call(this, force);\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n this.geometry.dispose();\n this.material.dispose();\n }\n }]);\n\n return SkeletonHelper;\n}(LineSegments);\n\nfunction getBoneList(object) {\n var boneList = [];\n\n if (object.isBone === true) {\n boneList.push(object);\n }\n\n for (var i = 0; i < object.children.length; i++) {\n boneList.push.apply(boneList, getBoneList(object.children[i]));\n }\n\n return boneList;\n}\n\nvar PointLightHelper = /*#__PURE__*/function (_Mesh3) {\n _inherits(PointLightHelper, _Mesh3);\n\n var _super146 = _createSuper(PointLightHelper);\n\n function PointLightHelper(light, sphereSize, color) {\n var _this119;\n\n _classCallCheck(this, PointLightHelper);\n\n var geometry = new SphereGeometry(sphereSize, 4, 2);\n var material = new MeshBasicMaterial({\n wireframe: true,\n fog: false,\n toneMapped: false\n });\n _this119 = _super146.call(this, geometry, material);\n _this119.light = light;\n _this119.color = color;\n _this119.type = 'PointLightHelper';\n _this119.matrix = _this119.light.matrixWorld;\n _this119.matrixAutoUpdate = false;\n\n _this119.update();\n /*\n // TODO: delete this comment?\n const distanceGeometry = new THREE.IcosahedronGeometry( 1, 2 );\n const distanceMaterial = new THREE.MeshBasicMaterial( { color: hexColor, fog: false, wireframe: true, opacity: 0.1, transparent: true } );\n this.lightSphere = new THREE.Mesh( bulbGeometry, bulbMaterial );\n this.lightDistance = new THREE.Mesh( distanceGeometry, distanceMaterial );\n const d = light.distance;\n if ( d === 0.0 ) {\n \tthis.lightDistance.visible = false;\n } else {\n \tthis.lightDistance.scale.set( d, d, d );\n }\n this.add( this.lightDistance );\n */\n\n\n return _this119;\n }\n\n _createClass(PointLightHelper, [{\n key: \"dispose\",\n value: function dispose() {\n this.geometry.dispose();\n this.material.dispose();\n }\n }, {\n key: \"update\",\n value: function update() {\n this.light.updateWorldMatrix(true, false);\n\n if (this.color !== undefined) {\n this.material.color.set(this.color);\n } else {\n this.material.color.copy(this.light.color);\n }\n /*\n const d = this.light.distance;\n \tif ( d === 0.0 ) {\n \t\tthis.lightDistance.visible = false;\n \t} else {\n \t\tthis.lightDistance.visible = true;\n \tthis.lightDistance.scale.set( d, d, d );\n \t}\n */\n\n }\n }]);\n\n return PointLightHelper;\n}(Mesh);\n\nvar _vector$1 = /*@__PURE__*/new Vector3();\n\nvar _color1 = /*@__PURE__*/new Color();\n\nvar _color2 = /*@__PURE__*/new Color();\n\nvar HemisphereLightHelper = /*#__PURE__*/function (_Object3D15) {\n _inherits(HemisphereLightHelper, _Object3D15);\n\n var _super147 = _createSuper(HemisphereLightHelper);\n\n function HemisphereLightHelper(light, size, color) {\n var _this120;\n\n _classCallCheck(this, HemisphereLightHelper);\n\n _this120 = _super147.call(this);\n _this120.light = light;\n _this120.matrix = light.matrixWorld;\n _this120.matrixAutoUpdate = false;\n _this120.color = color;\n _this120.type = 'HemisphereLightHelper';\n var geometry = new OctahedronGeometry(size);\n geometry.rotateY(Math.PI * 0.5);\n _this120.material = new MeshBasicMaterial({\n wireframe: true,\n fog: false,\n toneMapped: false\n });\n if (_this120.color === undefined) _this120.material.vertexColors = true;\n var position = geometry.getAttribute('position');\n var colors = new Float32Array(position.count * 3);\n geometry.setAttribute('color', new BufferAttribute(colors, 3));\n\n _this120.add(new Mesh(geometry, _this120.material));\n\n _this120.update();\n\n return _this120;\n }\n\n _createClass(HemisphereLightHelper, [{\n key: \"dispose\",\n value: function dispose() {\n this.children[0].geometry.dispose();\n this.children[0].material.dispose();\n }\n }, {\n key: \"update\",\n value: function update() {\n var mesh = this.children[0];\n\n if (this.color !== undefined) {\n this.material.color.set(this.color);\n } else {\n var colors = mesh.geometry.getAttribute('color');\n\n _color1.copy(this.light.color);\n\n _color2.copy(this.light.groundColor);\n\n for (var i = 0, l = colors.count; i < l; i++) {\n var color = i < l / 2 ? _color1 : _color2;\n colors.setXYZ(i, color.r, color.g, color.b);\n }\n\n colors.needsUpdate = true;\n }\n\n this.light.updateWorldMatrix(true, false);\n mesh.lookAt(_vector$1.setFromMatrixPosition(this.light.matrixWorld).negate());\n }\n }]);\n\n return HemisphereLightHelper;\n}(Object3D);\n\nvar GridHelper = /*#__PURE__*/function (_LineSegments2) {\n _inherits(GridHelper, _LineSegments2);\n\n var _super148 = _createSuper(GridHelper);\n\n function GridHelper() {\n var _this121;\n\n var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n var divisions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;\n var color1 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0x444444;\n var color2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0x888888;\n\n _classCallCheck(this, GridHelper);\n\n color1 = new Color(color1);\n color2 = new Color(color2);\n var center = divisions / 2;\n var step = size / divisions;\n var halfSize = size / 2;\n var vertices = [],\n colors = [];\n\n for (var i = 0, j = 0, k = -halfSize; i <= divisions; i++, k += step) {\n vertices.push(-halfSize, 0, k, halfSize, 0, k);\n vertices.push(k, 0, -halfSize, k, 0, halfSize);\n var color = i === center ? color1 : color2;\n color.toArray(colors, j);\n j += 3;\n color.toArray(colors, j);\n j += 3;\n color.toArray(colors, j);\n j += 3;\n color.toArray(colors, j);\n j += 3;\n }\n\n var geometry = new BufferGeometry();\n geometry.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n geometry.setAttribute('color', new Float32BufferAttribute(colors, 3));\n var material = new LineBasicMaterial({\n vertexColors: true,\n toneMapped: false\n });\n _this121 = _super148.call(this, geometry, material);\n _this121.type = 'GridHelper';\n return _this121;\n }\n\n _createClass(GridHelper, [{\n key: \"dispose\",\n value: function dispose() {\n this.geometry.dispose();\n this.material.dispose();\n }\n }]);\n\n return GridHelper;\n}(LineSegments);\n\nvar PolarGridHelper = /*#__PURE__*/function (_LineSegments3) {\n _inherits(PolarGridHelper, _LineSegments3);\n\n var _super149 = _createSuper(PolarGridHelper);\n\n function PolarGridHelper() {\n var _this122;\n\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n var sectors = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 16;\n var rings = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 8;\n var divisions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 64;\n var color1 = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0x444444;\n var color2 = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0x888888;\n\n _classCallCheck(this, PolarGridHelper);\n\n color1 = new Color(color1);\n color2 = new Color(color2);\n var vertices = [];\n var colors = []; // create the sectors\n\n if (sectors > 1) {\n for (var i = 0; i < sectors; i++) {\n var v = i / sectors * (Math.PI * 2);\n var x = Math.sin(v) * radius;\n var z = Math.cos(v) * radius;\n vertices.push(0, 0, 0);\n vertices.push(x, 0, z);\n var color = i & 1 ? color1 : color2;\n colors.push(color.r, color.g, color.b);\n colors.push(color.r, color.g, color.b);\n }\n } // create the rings\n\n\n for (var _i95 = 0; _i95 < rings; _i95++) {\n var _color3 = _i95 & 1 ? color1 : color2;\n\n var r = radius - radius / rings * _i95;\n\n for (var j = 0; j < divisions; j++) {\n // first vertex\n var _v = j / divisions * (Math.PI * 2);\n\n var _x12 = Math.sin(_v) * r;\n\n var _z3 = Math.cos(_v) * r;\n\n vertices.push(_x12, 0, _z3);\n colors.push(_color3.r, _color3.g, _color3.b); // second vertex\n\n _v = (j + 1) / divisions * (Math.PI * 2);\n _x12 = Math.sin(_v) * r;\n _z3 = Math.cos(_v) * r;\n vertices.push(_x12, 0, _z3);\n colors.push(_color3.r, _color3.g, _color3.b);\n }\n }\n\n var geometry = new BufferGeometry();\n geometry.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n geometry.setAttribute('color', new Float32BufferAttribute(colors, 3));\n var material = new LineBasicMaterial({\n vertexColors: true,\n toneMapped: false\n });\n _this122 = _super149.call(this, geometry, material);\n _this122.type = 'PolarGridHelper';\n return _this122;\n }\n\n _createClass(PolarGridHelper, [{\n key: \"dispose\",\n value: function dispose() {\n this.geometry.dispose();\n this.material.dispose();\n }\n }]);\n\n return PolarGridHelper;\n}(LineSegments);\n\nvar _v1 = /*@__PURE__*/new Vector3();\n\nvar _v2 = /*@__PURE__*/new Vector3();\n\nvar _v3 = /*@__PURE__*/new Vector3();\n\nvar DirectionalLightHelper = /*#__PURE__*/function (_Object3D16) {\n _inherits(DirectionalLightHelper, _Object3D16);\n\n var _super150 = _createSuper(DirectionalLightHelper);\n\n function DirectionalLightHelper(light, size, color) {\n var _this123;\n\n _classCallCheck(this, DirectionalLightHelper);\n\n _this123 = _super150.call(this);\n _this123.light = light;\n _this123.matrix = light.matrixWorld;\n _this123.matrixAutoUpdate = false;\n _this123.color = color;\n _this123.type = 'DirectionalLightHelper';\n if (size === undefined) size = 1;\n var geometry = new BufferGeometry();\n geometry.setAttribute('position', new Float32BufferAttribute([-size, size, 0, size, size, 0, size, -size, 0, -size, -size, 0, -size, size, 0], 3));\n var material = new LineBasicMaterial({\n fog: false,\n toneMapped: false\n });\n _this123.lightPlane = new Line(geometry, material);\n\n _this123.add(_this123.lightPlane);\n\n geometry = new BufferGeometry();\n geometry.setAttribute('position', new Float32BufferAttribute([0, 0, 0, 0, 0, 1], 3));\n _this123.targetLine = new Line(geometry, material);\n\n _this123.add(_this123.targetLine);\n\n _this123.update();\n\n return _this123;\n }\n\n _createClass(DirectionalLightHelper, [{\n key: \"dispose\",\n value: function dispose() {\n this.lightPlane.geometry.dispose();\n this.lightPlane.material.dispose();\n this.targetLine.geometry.dispose();\n this.targetLine.material.dispose();\n }\n }, {\n key: \"update\",\n value: function update() {\n this.light.updateWorldMatrix(true, false);\n this.light.target.updateWorldMatrix(true, false);\n\n _v1.setFromMatrixPosition(this.light.matrixWorld);\n\n _v2.setFromMatrixPosition(this.light.target.matrixWorld);\n\n _v3.subVectors(_v2, _v1);\n\n this.lightPlane.lookAt(_v2);\n\n if (this.color !== undefined) {\n this.lightPlane.material.color.set(this.color);\n this.targetLine.material.color.set(this.color);\n } else {\n this.lightPlane.material.color.copy(this.light.color);\n this.targetLine.material.color.copy(this.light.color);\n }\n\n this.targetLine.lookAt(_v2);\n this.targetLine.scale.z = _v3.length();\n }\n }]);\n\n return DirectionalLightHelper;\n}(Object3D);\n\nvar _vector = /*@__PURE__*/new Vector3();\n\nvar _camera = /*@__PURE__*/new Camera();\n/**\n *\t- shows frustum, line of sight and up of the camera\n *\t- suitable for fast updates\n * \t- based on frustum visualization in lightgl.js shadowmap example\n *\t\thttps://github.com/evanw/lightgl.js/blob/master/tests/shadowmap.html\n */\n\n\nvar CameraHelper = /*#__PURE__*/function (_LineSegments4) {\n _inherits(CameraHelper, _LineSegments4);\n\n var _super151 = _createSuper(CameraHelper);\n\n function CameraHelper(camera) {\n var _this124;\n\n _classCallCheck(this, CameraHelper);\n\n var geometry = new BufferGeometry();\n var material = new LineBasicMaterial({\n color: 0xffffff,\n vertexColors: true,\n toneMapped: false\n });\n var vertices = [];\n var colors = [];\n var pointMap = {}; // near\n\n addLine('n1', 'n2');\n addLine('n2', 'n4');\n addLine('n4', 'n3');\n addLine('n3', 'n1'); // far\n\n addLine('f1', 'f2');\n addLine('f2', 'f4');\n addLine('f4', 'f3');\n addLine('f3', 'f1'); // sides\n\n addLine('n1', 'f1');\n addLine('n2', 'f2');\n addLine('n3', 'f3');\n addLine('n4', 'f4'); // cone\n\n addLine('p', 'n1');\n addLine('p', 'n2');\n addLine('p', 'n3');\n addLine('p', 'n4'); // up\n\n addLine('u1', 'u2');\n addLine('u2', 'u3');\n addLine('u3', 'u1'); // target\n\n addLine('c', 't');\n addLine('p', 'c'); // cross\n\n addLine('cn1', 'cn2');\n addLine('cn3', 'cn4');\n addLine('cf1', 'cf2');\n addLine('cf3', 'cf4');\n\n function addLine(a, b) {\n addPoint(a);\n addPoint(b);\n }\n\n function addPoint(id) {\n vertices.push(0, 0, 0);\n colors.push(0, 0, 0);\n\n if (pointMap[id] === undefined) {\n pointMap[id] = [];\n }\n\n pointMap[id].push(vertices.length / 3 - 1);\n }\n\n geometry.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n geometry.setAttribute('color', new Float32BufferAttribute(colors, 3));\n _this124 = _super151.call(this, geometry, material);\n _this124.type = 'CameraHelper';\n _this124.camera = camera;\n if (_this124.camera.updateProjectionMatrix) _this124.camera.updateProjectionMatrix();\n _this124.matrix = camera.matrixWorld;\n _this124.matrixAutoUpdate = false;\n _this124.pointMap = pointMap;\n\n _this124.update(); // colors\n\n\n var colorFrustum = new Color(0xffaa00);\n var colorCone = new Color(0xff0000);\n var colorUp = new Color(0x00aaff);\n var colorTarget = new Color(0xffffff);\n var colorCross = new Color(0x333333);\n\n _this124.setColors(colorFrustum, colorCone, colorUp, colorTarget, colorCross);\n\n return _this124;\n }\n\n _createClass(CameraHelper, [{\n key: \"setColors\",\n value: function setColors(frustum, cone, up, target, cross) {\n var geometry = this.geometry;\n var colorAttribute = geometry.getAttribute('color'); // near\n\n colorAttribute.setXYZ(0, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(1, frustum.r, frustum.g, frustum.b); // n1, n2\n\n colorAttribute.setXYZ(2, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(3, frustum.r, frustum.g, frustum.b); // n2, n4\n\n colorAttribute.setXYZ(4, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(5, frustum.r, frustum.g, frustum.b); // n4, n3\n\n colorAttribute.setXYZ(6, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(7, frustum.r, frustum.g, frustum.b); // n3, n1\n // far\n\n colorAttribute.setXYZ(8, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(9, frustum.r, frustum.g, frustum.b); // f1, f2\n\n colorAttribute.setXYZ(10, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(11, frustum.r, frustum.g, frustum.b); // f2, f4\n\n colorAttribute.setXYZ(12, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(13, frustum.r, frustum.g, frustum.b); // f4, f3\n\n colorAttribute.setXYZ(14, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(15, frustum.r, frustum.g, frustum.b); // f3, f1\n // sides\n\n colorAttribute.setXYZ(16, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(17, frustum.r, frustum.g, frustum.b); // n1, f1\n\n colorAttribute.setXYZ(18, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(19, frustum.r, frustum.g, frustum.b); // n2, f2\n\n colorAttribute.setXYZ(20, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(21, frustum.r, frustum.g, frustum.b); // n3, f3\n\n colorAttribute.setXYZ(22, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(23, frustum.r, frustum.g, frustum.b); // n4, f4\n // cone\n\n colorAttribute.setXYZ(24, cone.r, cone.g, cone.b);\n colorAttribute.setXYZ(25, cone.r, cone.g, cone.b); // p, n1\n\n colorAttribute.setXYZ(26, cone.r, cone.g, cone.b);\n colorAttribute.setXYZ(27, cone.r, cone.g, cone.b); // p, n2\n\n colorAttribute.setXYZ(28, cone.r, cone.g, cone.b);\n colorAttribute.setXYZ(29, cone.r, cone.g, cone.b); // p, n3\n\n colorAttribute.setXYZ(30, cone.r, cone.g, cone.b);\n colorAttribute.setXYZ(31, cone.r, cone.g, cone.b); // p, n4\n // up\n\n colorAttribute.setXYZ(32, up.r, up.g, up.b);\n colorAttribute.setXYZ(33, up.r, up.g, up.b); // u1, u2\n\n colorAttribute.setXYZ(34, up.r, up.g, up.b);\n colorAttribute.setXYZ(35, up.r, up.g, up.b); // u2, u3\n\n colorAttribute.setXYZ(36, up.r, up.g, up.b);\n colorAttribute.setXYZ(37, up.r, up.g, up.b); // u3, u1\n // target\n\n colorAttribute.setXYZ(38, target.r, target.g, target.b);\n colorAttribute.setXYZ(39, target.r, target.g, target.b); // c, t\n\n colorAttribute.setXYZ(40, cross.r, cross.g, cross.b);\n colorAttribute.setXYZ(41, cross.r, cross.g, cross.b); // p, c\n // cross\n\n colorAttribute.setXYZ(42, cross.r, cross.g, cross.b);\n colorAttribute.setXYZ(43, cross.r, cross.g, cross.b); // cn1, cn2\n\n colorAttribute.setXYZ(44, cross.r, cross.g, cross.b);\n colorAttribute.setXYZ(45, cross.r, cross.g, cross.b); // cn3, cn4\n\n colorAttribute.setXYZ(46, cross.r, cross.g, cross.b);\n colorAttribute.setXYZ(47, cross.r, cross.g, cross.b); // cf1, cf2\n\n colorAttribute.setXYZ(48, cross.r, cross.g, cross.b);\n colorAttribute.setXYZ(49, cross.r, cross.g, cross.b); // cf3, cf4\n\n colorAttribute.needsUpdate = true;\n }\n }, {\n key: \"update\",\n value: function update() {\n var geometry = this.geometry;\n var pointMap = this.pointMap;\n var w = 1,\n h = 1; // we need just camera projection matrix inverse\n // world matrix must be identity\n\n _camera.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse); // center / target\n\n\n setPoint('c', pointMap, geometry, _camera, 0, 0, -1);\n setPoint('t', pointMap, geometry, _camera, 0, 0, 1); // near\n\n setPoint('n1', pointMap, geometry, _camera, -w, -h, -1);\n setPoint('n2', pointMap, geometry, _camera, w, -h, -1);\n setPoint('n3', pointMap, geometry, _camera, -w, h, -1);\n setPoint('n4', pointMap, geometry, _camera, w, h, -1); // far\n\n setPoint('f1', pointMap, geometry, _camera, -w, -h, 1);\n setPoint('f2', pointMap, geometry, _camera, w, -h, 1);\n setPoint('f3', pointMap, geometry, _camera, -w, h, 1);\n setPoint('f4', pointMap, geometry, _camera, w, h, 1); // up\n\n setPoint('u1', pointMap, geometry, _camera, w * 0.7, h * 1.1, -1);\n setPoint('u2', pointMap, geometry, _camera, -w * 0.7, h * 1.1, -1);\n setPoint('u3', pointMap, geometry, _camera, 0, h * 2, -1); // cross\n\n setPoint('cf1', pointMap, geometry, _camera, -w, 0, 1);\n setPoint('cf2', pointMap, geometry, _camera, w, 0, 1);\n setPoint('cf3', pointMap, geometry, _camera, 0, -h, 1);\n setPoint('cf4', pointMap, geometry, _camera, 0, h, 1);\n setPoint('cn1', pointMap, geometry, _camera, -w, 0, -1);\n setPoint('cn2', pointMap, geometry, _camera, w, 0, -1);\n setPoint('cn3', pointMap, geometry, _camera, 0, -h, -1);\n setPoint('cn4', pointMap, geometry, _camera, 0, h, -1);\n geometry.getAttribute('position').needsUpdate = true;\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n this.geometry.dispose();\n this.material.dispose();\n }\n }]);\n\n return CameraHelper;\n}(LineSegments);\n\nfunction setPoint(point, pointMap, geometry, camera, x, y, z) {\n _vector.set(x, y, z).unproject(camera);\n\n var points = pointMap[point];\n\n if (points !== undefined) {\n var position = geometry.getAttribute('position');\n\n for (var i = 0, l = points.length; i < l; i++) {\n position.setXYZ(points[i], _vector.x, _vector.y, _vector.z);\n }\n }\n}\n\nvar _box = /*@__PURE__*/new Box3();\n\nvar BoxHelper = /*#__PURE__*/function (_LineSegments5) {\n _inherits(BoxHelper, _LineSegments5);\n\n var _super152 = _createSuper(BoxHelper);\n\n function BoxHelper(object) {\n var _this125;\n\n var color = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0xffff00;\n\n _classCallCheck(this, BoxHelper);\n\n var indices = new Uint16Array([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7]);\n var positions = new Float32Array(8 * 3);\n var geometry = new BufferGeometry();\n geometry.setIndex(new BufferAttribute(indices, 1));\n geometry.setAttribute('position', new BufferAttribute(positions, 3));\n _this125 = _super152.call(this, geometry, new LineBasicMaterial({\n color: color,\n toneMapped: false\n }));\n _this125.object = object;\n _this125.type = 'BoxHelper';\n _this125.matrixAutoUpdate = false;\n\n _this125.update();\n\n return _this125;\n }\n\n _createClass(BoxHelper, [{\n key: \"update\",\n value: function update(object) {\n if (object !== undefined) {\n console.warn('THREE.BoxHelper: .update() has no longer arguments.');\n }\n\n if (this.object !== undefined) {\n _box.setFromObject(this.object);\n }\n\n if (_box.isEmpty()) return;\n var min = _box.min;\n var max = _box.max;\n /*\n \t5____4\n 1/___0/|\n | 6__|_7\n 2/___3/\n \t0: max.x, max.y, max.z\n 1: min.x, max.y, max.z\n 2: min.x, min.y, max.z\n 3: max.x, min.y, max.z\n 4: max.x, max.y, min.z\n 5: min.x, max.y, min.z\n 6: min.x, min.y, min.z\n 7: max.x, min.y, min.z\n */\n\n var position = this.geometry.attributes.position;\n var array = position.array;\n array[0] = max.x;\n array[1] = max.y;\n array[2] = max.z;\n array[3] = min.x;\n array[4] = max.y;\n array[5] = max.z;\n array[6] = min.x;\n array[7] = min.y;\n array[8] = max.z;\n array[9] = max.x;\n array[10] = min.y;\n array[11] = max.z;\n array[12] = max.x;\n array[13] = max.y;\n array[14] = min.z;\n array[15] = min.x;\n array[16] = max.y;\n array[17] = min.z;\n array[18] = min.x;\n array[19] = min.y;\n array[20] = min.z;\n array[21] = max.x;\n array[22] = min.y;\n array[23] = min.z;\n position.needsUpdate = true;\n this.geometry.computeBoundingSphere();\n }\n }, {\n key: \"setFromObject\",\n value: function setFromObject(object) {\n this.object = object;\n this.update();\n return this;\n }\n }, {\n key: \"copy\",\n value: function copy(source, recursive) {\n _get(_getPrototypeOf(BoxHelper.prototype), \"copy\", this).call(this, source, recursive);\n\n this.object = source.object;\n return this;\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n this.geometry.dispose();\n this.material.dispose();\n }\n }]);\n\n return BoxHelper;\n}(LineSegments);\n\nvar Box3Helper = /*#__PURE__*/function (_LineSegments6) {\n _inherits(Box3Helper, _LineSegments6);\n\n var _super153 = _createSuper(Box3Helper);\n\n function Box3Helper(box) {\n var _this126;\n\n var color = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0xffff00;\n\n _classCallCheck(this, Box3Helper);\n\n var indices = new Uint16Array([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7]);\n var positions = [1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1];\n var geometry = new BufferGeometry();\n geometry.setIndex(new BufferAttribute(indices, 1));\n geometry.setAttribute('position', new Float32BufferAttribute(positions, 3));\n _this126 = _super153.call(this, geometry, new LineBasicMaterial({\n color: color,\n toneMapped: false\n }));\n _this126.box = box;\n _this126.type = 'Box3Helper';\n\n _this126.geometry.computeBoundingSphere();\n\n return _this126;\n }\n\n _createClass(Box3Helper, [{\n key: \"updateMatrixWorld\",\n value: function updateMatrixWorld(force) {\n var box = this.box;\n if (box.isEmpty()) return;\n box.getCenter(this.position);\n box.getSize(this.scale);\n this.scale.multiplyScalar(0.5);\n\n _get(_getPrototypeOf(Box3Helper.prototype), \"updateMatrixWorld\", this).call(this, force);\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n this.geometry.dispose();\n this.material.dispose();\n }\n }]);\n\n return Box3Helper;\n}(LineSegments);\n\nvar PlaneHelper = /*#__PURE__*/function (_Line3) {\n _inherits(PlaneHelper, _Line3);\n\n var _super154 = _createSuper(PlaneHelper);\n\n function PlaneHelper(plane) {\n var _this127;\n\n var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var hex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0xffff00;\n\n _classCallCheck(this, PlaneHelper);\n\n var color = hex;\n var positions = [1, -1, 0, -1, 1, 0, -1, -1, 0, 1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0, 1, 1, 0];\n var geometry = new BufferGeometry();\n geometry.setAttribute('position', new Float32BufferAttribute(positions, 3));\n geometry.computeBoundingSphere();\n _this127 = _super154.call(this, geometry, new LineBasicMaterial({\n color: color,\n toneMapped: false\n }));\n _this127.type = 'PlaneHelper';\n _this127.plane = plane;\n _this127.size = size;\n var positions2 = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, 1, 0, -1, -1, 0, 1, -1, 0];\n var geometry2 = new BufferGeometry();\n geometry2.setAttribute('position', new Float32BufferAttribute(positions2, 3));\n geometry2.computeBoundingSphere();\n\n _this127.add(new Mesh(geometry2, new MeshBasicMaterial({\n color: color,\n opacity: 0.2,\n transparent: true,\n depthWrite: false,\n toneMapped: false\n })));\n\n return _this127;\n }\n\n _createClass(PlaneHelper, [{\n key: \"updateMatrixWorld\",\n value: function updateMatrixWorld(force) {\n this.position.set(0, 0, 0);\n this.scale.set(0.5 * this.size, 0.5 * this.size, 1);\n this.lookAt(this.plane.normal);\n this.translateZ(-this.plane.constant);\n\n _get(_getPrototypeOf(PlaneHelper.prototype), \"updateMatrixWorld\", this).call(this, force);\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n this.geometry.dispose();\n this.material.dispose();\n this.children[0].geometry.dispose();\n this.children[0].material.dispose();\n }\n }]);\n\n return PlaneHelper;\n}(Line);\n\nvar _axis = /*@__PURE__*/new Vector3();\n\nvar _lineGeometry, _coneGeometry;\n\nvar ArrowHelper = /*#__PURE__*/function (_Object3D17) {\n _inherits(ArrowHelper, _Object3D17);\n\n var _super155 = _createSuper(ArrowHelper);\n\n // dir is assumed to be normalized\n function ArrowHelper() {\n var _this128;\n\n var dir = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Vector3(0, 0, 1);\n var origin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector3(0, 0, 0);\n var length = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var color = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0xffff00;\n var headLength = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : length * 0.2;\n var headWidth = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : headLength * 0.2;\n\n _classCallCheck(this, ArrowHelper);\n\n _this128 = _super155.call(this);\n _this128.type = 'ArrowHelper';\n\n if (_lineGeometry === undefined) {\n _lineGeometry = new BufferGeometry();\n\n _lineGeometry.setAttribute('position', new Float32BufferAttribute([0, 0, 0, 0, 1, 0], 3));\n\n _coneGeometry = new CylinderGeometry(0, 0.5, 1, 5, 1);\n\n _coneGeometry.translate(0, -0.5, 0);\n }\n\n _this128.position.copy(origin);\n\n _this128.line = new Line(_lineGeometry, new LineBasicMaterial({\n color: color,\n toneMapped: false\n }));\n _this128.line.matrixAutoUpdate = false;\n\n _this128.add(_this128.line);\n\n _this128.cone = new Mesh(_coneGeometry, new MeshBasicMaterial({\n color: color,\n toneMapped: false\n }));\n _this128.cone.matrixAutoUpdate = false;\n\n _this128.add(_this128.cone);\n\n _this128.setDirection(dir);\n\n _this128.setLength(length, headLength, headWidth);\n\n return _this128;\n }\n\n _createClass(ArrowHelper, [{\n key: \"setDirection\",\n value: function setDirection(dir) {\n // dir is assumed to be normalized\n if (dir.y > 0.99999) {\n this.quaternion.set(0, 0, 0, 1);\n } else if (dir.y < -0.99999) {\n this.quaternion.set(1, 0, 0, 0);\n } else {\n _axis.set(dir.z, 0, -dir.x).normalize();\n\n var radians = Math.acos(dir.y);\n this.quaternion.setFromAxisAngle(_axis, radians);\n }\n }\n }, {\n key: \"setLength\",\n value: function setLength(length) {\n var headLength = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : length * 0.2;\n var headWidth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : headLength * 0.2;\n this.line.scale.set(1, Math.max(0.0001, length - headLength), 1); // see #17458\n\n this.line.updateMatrix();\n this.cone.scale.set(headWidth, headLength, headWidth);\n this.cone.position.y = length;\n this.cone.updateMatrix();\n }\n }, {\n key: \"setColor\",\n value: function setColor(color) {\n this.line.material.color.set(color);\n this.cone.material.color.set(color);\n }\n }, {\n key: \"copy\",\n value: function copy(source) {\n _get(_getPrototypeOf(ArrowHelper.prototype), \"copy\", this).call(this, source, false);\n\n this.line.copy(source.line);\n this.cone.copy(source.cone);\n return this;\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n this.line.geometry.dispose();\n this.line.material.dispose();\n this.cone.geometry.dispose();\n this.cone.material.dispose();\n }\n }]);\n\n return ArrowHelper;\n}(Object3D);\n\nvar AxesHelper = /*#__PURE__*/function (_LineSegments7) {\n _inherits(AxesHelper, _LineSegments7);\n\n var _super156 = _createSuper(AxesHelper);\n\n function AxesHelper() {\n var _this129;\n\n var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n\n _classCallCheck(this, AxesHelper);\n\n var vertices = [0, 0, 0, size, 0, 0, 0, 0, 0, 0, size, 0, 0, 0, 0, 0, 0, size];\n var colors = [1, 0, 0, 1, 0.6, 0, 0, 1, 0, 0.6, 1, 0, 0, 0, 1, 0, 0.6, 1];\n var geometry = new BufferGeometry();\n geometry.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n geometry.setAttribute('color', new Float32BufferAttribute(colors, 3));\n var material = new LineBasicMaterial({\n vertexColors: true,\n toneMapped: false\n });\n _this129 = _super156.call(this, geometry, material);\n _this129.type = 'AxesHelper';\n return _this129;\n }\n\n _createClass(AxesHelper, [{\n key: \"setColors\",\n value: function setColors(xAxisColor, yAxisColor, zAxisColor) {\n var color = new Color();\n var array = this.geometry.attributes.color.array;\n color.set(xAxisColor);\n color.toArray(array, 0);\n color.toArray(array, 3);\n color.set(yAxisColor);\n color.toArray(array, 6);\n color.toArray(array, 9);\n color.set(zAxisColor);\n color.toArray(array, 12);\n color.toArray(array, 15);\n this.geometry.attributes.color.needsUpdate = true;\n return this;\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n this.geometry.dispose();\n this.material.dispose();\n }\n }]);\n\n return AxesHelper;\n}(LineSegments);\n\nvar ShapePath = /*#__PURE__*/function () {\n function ShapePath() {\n _classCallCheck(this, ShapePath);\n\n this.type = 'ShapePath';\n this.color = new Color();\n this.subPaths = [];\n this.currentPath = null;\n }\n\n _createClass(ShapePath, [{\n key: \"moveTo\",\n value: function moveTo(x, y) {\n this.currentPath = new Path();\n this.subPaths.push(this.currentPath);\n this.currentPath.moveTo(x, y);\n return this;\n }\n }, {\n key: \"lineTo\",\n value: function lineTo(x, y) {\n this.currentPath.lineTo(x, y);\n return this;\n }\n }, {\n key: \"quadraticCurveTo\",\n value: function quadraticCurveTo(aCPx, aCPy, aX, aY) {\n this.currentPath.quadraticCurveTo(aCPx, aCPy, aX, aY);\n return this;\n }\n }, {\n key: \"bezierCurveTo\",\n value: function bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) {\n this.currentPath.bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY);\n return this;\n }\n }, {\n key: \"splineThru\",\n value: function splineThru(pts) {\n this.currentPath.splineThru(pts);\n return this;\n }\n }, {\n key: \"toShapes\",\n value: function toShapes(isCCW) {\n function toShapesNoHoles(inSubpaths) {\n var shapes = [];\n\n for (var i = 0, l = inSubpaths.length; i < l; i++) {\n var _tmpPath = inSubpaths[i];\n\n var _tmpShape = new Shape();\n\n _tmpShape.curves = _tmpPath.curves;\n shapes.push(_tmpShape);\n }\n\n return shapes;\n }\n\n function isPointInsidePolygon(inPt, inPolygon) {\n var polyLen = inPolygon.length; // inPt on polygon contour => immediate success or\n // toggling of inside/outside at every single! intersection point of an edge\n // with the horizontal line through inPt, left of inPt\n // not counting lowerY endpoints of edges and whole edges on that line\n\n var inside = false;\n\n for (var p = polyLen - 1, q = 0; q < polyLen; p = q++) {\n var edgeLowPt = inPolygon[p];\n var edgeHighPt = inPolygon[q];\n var edgeDx = edgeHighPt.x - edgeLowPt.x;\n var edgeDy = edgeHighPt.y - edgeLowPt.y;\n\n if (Math.abs(edgeDy) > Number.EPSILON) {\n // not parallel\n if (edgeDy < 0) {\n edgeLowPt = inPolygon[q];\n edgeDx = -edgeDx;\n edgeHighPt = inPolygon[p];\n edgeDy = -edgeDy;\n }\n\n if (inPt.y < edgeLowPt.y || inPt.y > edgeHighPt.y) continue;\n\n if (inPt.y === edgeLowPt.y) {\n if (inPt.x === edgeLowPt.x) return true; // inPt is on contour ?\n // continue;\t\t\t\t// no intersection or edgeLowPt => doesn't count !!!\n } else {\n var perpEdge = edgeDy * (inPt.x - edgeLowPt.x) - edgeDx * (inPt.y - edgeLowPt.y);\n if (perpEdge === 0) return true; // inPt is on contour ?\n\n if (perpEdge < 0) continue;\n inside = !inside; // true intersection left of inPt\n }\n } else {\n // parallel or collinear\n if (inPt.y !== edgeLowPt.y) continue; // parallel\n // edge lies on the same horizontal line as inPt\n\n if (edgeHighPt.x <= inPt.x && inPt.x <= edgeLowPt.x || edgeLowPt.x <= inPt.x && inPt.x <= edgeHighPt.x) return true; // inPt: Point on contour !\n // continue;\n }\n }\n\n return inside;\n }\n\n var isClockWise = ShapeUtils.isClockWise;\n var subPaths = this.subPaths;\n if (subPaths.length === 0) return [];\n var solid, tmpPath, tmpShape;\n var shapes = [];\n\n if (subPaths.length === 1) {\n tmpPath = subPaths[0];\n tmpShape = new Shape();\n tmpShape.curves = tmpPath.curves;\n shapes.push(tmpShape);\n return shapes;\n }\n\n var holesFirst = !isClockWise(subPaths[0].getPoints());\n holesFirst = isCCW ? !holesFirst : holesFirst; // console.log(\"Holes first\", holesFirst);\n\n var betterShapeHoles = [];\n var newShapes = [];\n var newShapeHoles = [];\n var mainIdx = 0;\n var tmpPoints;\n newShapes[mainIdx] = undefined;\n newShapeHoles[mainIdx] = [];\n\n for (var i = 0, l = subPaths.length; i < l; i++) {\n tmpPath = subPaths[i];\n tmpPoints = tmpPath.getPoints();\n solid = isClockWise(tmpPoints);\n solid = isCCW ? !solid : solid;\n\n if (solid) {\n if (!holesFirst && newShapes[mainIdx]) mainIdx++;\n newShapes[mainIdx] = {\n s: new Shape(),\n p: tmpPoints\n };\n newShapes[mainIdx].s.curves = tmpPath.curves;\n if (holesFirst) mainIdx++;\n newShapeHoles[mainIdx] = []; //console.log('cw', i);\n } else {\n newShapeHoles[mainIdx].push({\n h: tmpPath,\n p: tmpPoints[0]\n }); //console.log('ccw', i);\n }\n } // only Holes? -> probably all Shapes with wrong orientation\n\n\n if (!newShapes[0]) return toShapesNoHoles(subPaths);\n\n if (newShapes.length > 1) {\n var ambiguous = false;\n var toChange = 0;\n\n for (var sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx++) {\n betterShapeHoles[sIdx] = [];\n }\n\n for (var _sIdx = 0, _sLen = newShapes.length; _sIdx < _sLen; _sIdx++) {\n var sho = newShapeHoles[_sIdx];\n\n for (var hIdx = 0; hIdx < sho.length; hIdx++) {\n var ho = sho[hIdx];\n var hole_unassigned = true;\n\n for (var s2Idx = 0; s2Idx < newShapes.length; s2Idx++) {\n if (isPointInsidePolygon(ho.p, newShapes[s2Idx].p)) {\n if (_sIdx !== s2Idx) toChange++;\n\n if (hole_unassigned) {\n hole_unassigned = false;\n betterShapeHoles[s2Idx].push(ho);\n } else {\n ambiguous = true;\n }\n }\n }\n\n if (hole_unassigned) {\n betterShapeHoles[_sIdx].push(ho);\n }\n }\n }\n\n if (toChange > 0 && ambiguous === false) {\n newShapeHoles = betterShapeHoles;\n }\n }\n\n var tmpHoles;\n\n for (var _i96 = 0, il = newShapes.length; _i96 < il; _i96++) {\n tmpShape = newShapes[_i96].s;\n shapes.push(tmpShape);\n tmpHoles = newShapeHoles[_i96];\n\n for (var j = 0, jl = tmpHoles.length; j < jl; j++) {\n tmpShape.holes.push(tmpHoles[j].h);\n }\n } //console.log(\"shape\", shapes);\n\n\n return shapes;\n }\n }]);\n\n return ShapePath;\n}();\n\nvar BoxBufferGeometry = /*#__PURE__*/function (_BoxGeometry) {\n _inherits(BoxBufferGeometry, _BoxGeometry);\n\n var _super157 = _createSuper(BoxBufferGeometry);\n\n // @deprecated, r144\n function BoxBufferGeometry(width, height, depth, widthSegments, heightSegments, depthSegments) {\n _classCallCheck(this, BoxBufferGeometry);\n\n console.warn('THREE.BoxBufferGeometry has been renamed to THREE.BoxGeometry.');\n return _super157.call(this, width, height, depth, widthSegments, heightSegments, depthSegments);\n }\n\n return _createClass(BoxBufferGeometry);\n}(BoxGeometry);\n\nvar CapsuleBufferGeometry = /*#__PURE__*/function (_CapsuleGeometry) {\n _inherits(CapsuleBufferGeometry, _CapsuleGeometry);\n\n var _super158 = _createSuper(CapsuleBufferGeometry);\n\n // @deprecated, r144\n function CapsuleBufferGeometry(radius, length, capSegments, radialSegments) {\n _classCallCheck(this, CapsuleBufferGeometry);\n\n console.warn('THREE.CapsuleBufferGeometry has been renamed to THREE.CapsuleGeometry.');\n return _super158.call(this, radius, length, capSegments, radialSegments);\n }\n\n return _createClass(CapsuleBufferGeometry);\n}(CapsuleGeometry);\n\nvar CircleBufferGeometry = /*#__PURE__*/function (_CircleGeometry) {\n _inherits(CircleBufferGeometry, _CircleGeometry);\n\n var _super159 = _createSuper(CircleBufferGeometry);\n\n // @deprecated, r144\n function CircleBufferGeometry(radius, segments, thetaStart, thetaLength) {\n _classCallCheck(this, CircleBufferGeometry);\n\n console.warn('THREE.CircleBufferGeometry has been renamed to THREE.CircleGeometry.');\n return _super159.call(this, radius, segments, thetaStart, thetaLength);\n }\n\n return _createClass(CircleBufferGeometry);\n}(CircleGeometry);\n\nvar ConeBufferGeometry = /*#__PURE__*/function (_ConeGeometry) {\n _inherits(ConeBufferGeometry, _ConeGeometry);\n\n var _super160 = _createSuper(ConeBufferGeometry);\n\n // @deprecated, r144\n function ConeBufferGeometry(radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength) {\n _classCallCheck(this, ConeBufferGeometry);\n\n console.warn('THREE.ConeBufferGeometry has been renamed to THREE.ConeGeometry.');\n return _super160.call(this, radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength);\n }\n\n return _createClass(ConeBufferGeometry);\n}(ConeGeometry);\n\nvar CylinderBufferGeometry = /*#__PURE__*/function (_CylinderGeometry2) {\n _inherits(CylinderBufferGeometry, _CylinderGeometry2);\n\n var _super161 = _createSuper(CylinderBufferGeometry);\n\n // @deprecated, r144\n function CylinderBufferGeometry(radiusTop, radiusBottom, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength) {\n _classCallCheck(this, CylinderBufferGeometry);\n\n console.warn('THREE.CylinderBufferGeometry has been renamed to THREE.CylinderGeometry.');\n return _super161.call(this, radiusTop, radiusBottom, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength);\n }\n\n return _createClass(CylinderBufferGeometry);\n}(CylinderGeometry);\n\nvar DodecahedronBufferGeometry = /*#__PURE__*/function (_DodecahedronGeometry) {\n _inherits(DodecahedronBufferGeometry, _DodecahedronGeometry);\n\n var _super162 = _createSuper(DodecahedronBufferGeometry);\n\n // @deprecated, r144\n function DodecahedronBufferGeometry(radius, detail) {\n _classCallCheck(this, DodecahedronBufferGeometry);\n\n console.warn('THREE.DodecahedronBufferGeometry has been renamed to THREE.DodecahedronGeometry.');\n return _super162.call(this, radius, detail);\n }\n\n return _createClass(DodecahedronBufferGeometry);\n}(DodecahedronGeometry);\n\nvar ExtrudeBufferGeometry = /*#__PURE__*/function (_ExtrudeGeometry) {\n _inherits(ExtrudeBufferGeometry, _ExtrudeGeometry);\n\n var _super163 = _createSuper(ExtrudeBufferGeometry);\n\n // @deprecated, r144\n function ExtrudeBufferGeometry(shapes, options) {\n _classCallCheck(this, ExtrudeBufferGeometry);\n\n console.warn('THREE.ExtrudeBufferGeometry has been renamed to THREE.ExtrudeGeometry.');\n return _super163.call(this, shapes, options);\n }\n\n return _createClass(ExtrudeBufferGeometry);\n}(ExtrudeGeometry);\n\nvar IcosahedronBufferGeometry = /*#__PURE__*/function (_IcosahedronGeometry) {\n _inherits(IcosahedronBufferGeometry, _IcosahedronGeometry);\n\n var _super164 = _createSuper(IcosahedronBufferGeometry);\n\n // @deprecated, r144\n function IcosahedronBufferGeometry(radius, detail) {\n _classCallCheck(this, IcosahedronBufferGeometry);\n\n console.warn('THREE.IcosahedronBufferGeometry has been renamed to THREE.IcosahedronGeometry.');\n return _super164.call(this, radius, detail);\n }\n\n return _createClass(IcosahedronBufferGeometry);\n}(IcosahedronGeometry);\n\nvar LatheBufferGeometry = /*#__PURE__*/function (_LatheGeometry2) {\n _inherits(LatheBufferGeometry, _LatheGeometry2);\n\n var _super165 = _createSuper(LatheBufferGeometry);\n\n // @deprecated, r144\n function LatheBufferGeometry(points, segments, phiStart, phiLength) {\n _classCallCheck(this, LatheBufferGeometry);\n\n console.warn('THREE.LatheBufferGeometry has been renamed to THREE.LatheGeometry.');\n return _super165.call(this, points, segments, phiStart, phiLength);\n }\n\n return _createClass(LatheBufferGeometry);\n}(LatheGeometry);\n\nvar OctahedronBufferGeometry = /*#__PURE__*/function (_OctahedronGeometry) {\n _inherits(OctahedronBufferGeometry, _OctahedronGeometry);\n\n var _super166 = _createSuper(OctahedronBufferGeometry);\n\n // @deprecated, r144\n function OctahedronBufferGeometry(radius, detail) {\n _classCallCheck(this, OctahedronBufferGeometry);\n\n console.warn('THREE.OctahedronBufferGeometry has been renamed to THREE.OctahedronGeometry.');\n return _super166.call(this, radius, detail);\n }\n\n return _createClass(OctahedronBufferGeometry);\n}(OctahedronGeometry);\n\nvar PlaneBufferGeometry = /*#__PURE__*/function (_PlaneGeometry) {\n _inherits(PlaneBufferGeometry, _PlaneGeometry);\n\n var _super167 = _createSuper(PlaneBufferGeometry);\n\n // @deprecated, r144\n function PlaneBufferGeometry(width, height, widthSegments, heightSegments) {\n _classCallCheck(this, PlaneBufferGeometry);\n\n console.warn('THREE.PlaneBufferGeometry has been renamed to THREE.PlaneGeometry.');\n return _super167.call(this, width, height, widthSegments, heightSegments);\n }\n\n return _createClass(PlaneBufferGeometry);\n}(PlaneGeometry);\n\nvar PolyhedronBufferGeometry = /*#__PURE__*/function (_PolyhedronGeometry5) {\n _inherits(PolyhedronBufferGeometry, _PolyhedronGeometry5);\n\n var _super168 = _createSuper(PolyhedronBufferGeometry);\n\n // @deprecated, r144\n function PolyhedronBufferGeometry(vertices, indices, radius, detail) {\n _classCallCheck(this, PolyhedronBufferGeometry);\n\n console.warn('THREE.PolyhedronBufferGeometry has been renamed to THREE.PolyhedronGeometry.');\n return _super168.call(this, vertices, indices, radius, detail);\n }\n\n return _createClass(PolyhedronBufferGeometry);\n}(PolyhedronGeometry);\n\nvar RingBufferGeometry = /*#__PURE__*/function (_RingGeometry) {\n _inherits(RingBufferGeometry, _RingGeometry);\n\n var _super169 = _createSuper(RingBufferGeometry);\n\n // @deprecated, r144\n function RingBufferGeometry(innerRadius, outerRadius, thetaSegments, phiSegments, thetaStart, thetaLength) {\n _classCallCheck(this, RingBufferGeometry);\n\n console.warn('THREE.RingBufferGeometry has been renamed to THREE.RingGeometry.');\n return _super169.call(this, innerRadius, outerRadius, thetaSegments, phiSegments, thetaStart, thetaLength);\n }\n\n return _createClass(RingBufferGeometry);\n}(RingGeometry);\n\nvar ShapeBufferGeometry = /*#__PURE__*/function (_ShapeGeometry) {\n _inherits(ShapeBufferGeometry, _ShapeGeometry);\n\n var _super170 = _createSuper(ShapeBufferGeometry);\n\n // @deprecated, r144\n function ShapeBufferGeometry(shapes, curveSegments) {\n _classCallCheck(this, ShapeBufferGeometry);\n\n console.warn('THREE.ShapeBufferGeometry has been renamed to THREE.ShapeGeometry.');\n return _super170.call(this, shapes, curveSegments);\n }\n\n return _createClass(ShapeBufferGeometry);\n}(ShapeGeometry);\n\nvar SphereBufferGeometry = /*#__PURE__*/function (_SphereGeometry) {\n _inherits(SphereBufferGeometry, _SphereGeometry);\n\n var _super171 = _createSuper(SphereBufferGeometry);\n\n // @deprecated, r144\n function SphereBufferGeometry(radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength) {\n _classCallCheck(this, SphereBufferGeometry);\n\n console.warn('THREE.SphereBufferGeometry has been renamed to THREE.SphereGeometry.');\n return _super171.call(this, radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength);\n }\n\n return _createClass(SphereBufferGeometry);\n}(SphereGeometry);\n\nvar TetrahedronBufferGeometry = /*#__PURE__*/function (_TetrahedronGeometry) {\n _inherits(TetrahedronBufferGeometry, _TetrahedronGeometry);\n\n var _super172 = _createSuper(TetrahedronBufferGeometry);\n\n // @deprecated, r144\n function TetrahedronBufferGeometry(radius, detail) {\n _classCallCheck(this, TetrahedronBufferGeometry);\n\n console.warn('THREE.TetrahedronBufferGeometry has been renamed to THREE.TetrahedronGeometry.');\n return _super172.call(this, radius, detail);\n }\n\n return _createClass(TetrahedronBufferGeometry);\n}(TetrahedronGeometry);\n\nvar TorusBufferGeometry = /*#__PURE__*/function (_TorusGeometry) {\n _inherits(TorusBufferGeometry, _TorusGeometry);\n\n var _super173 = _createSuper(TorusBufferGeometry);\n\n // @deprecated, r144\n function TorusBufferGeometry(radius, tube, radialSegments, tubularSegments, arc) {\n _classCallCheck(this, TorusBufferGeometry);\n\n console.warn('THREE.TorusBufferGeometry has been renamed to THREE.TorusGeometry.');\n return _super173.call(this, radius, tube, radialSegments, tubularSegments, arc);\n }\n\n return _createClass(TorusBufferGeometry);\n}(TorusGeometry);\n\nvar TorusKnotBufferGeometry = /*#__PURE__*/function (_TorusKnotGeometry) {\n _inherits(TorusKnotBufferGeometry, _TorusKnotGeometry);\n\n var _super174 = _createSuper(TorusKnotBufferGeometry);\n\n // @deprecated, r144\n function TorusKnotBufferGeometry(radius, tube, tubularSegments, radialSegments, p, q) {\n _classCallCheck(this, TorusKnotBufferGeometry);\n\n console.warn('THREE.TorusKnotBufferGeometry has been renamed to THREE.TorusKnotGeometry.');\n return _super174.call(this, radius, tube, tubularSegments, radialSegments, p, q);\n }\n\n return _createClass(TorusKnotBufferGeometry);\n}(TorusKnotGeometry);\n\nvar TubeBufferGeometry = /*#__PURE__*/function (_TubeGeometry) {\n _inherits(TubeBufferGeometry, _TubeGeometry);\n\n var _super175 = _createSuper(TubeBufferGeometry);\n\n // @deprecated, r144\n function TubeBufferGeometry(path, tubularSegments, radius, radialSegments, closed) {\n _classCallCheck(this, TubeBufferGeometry);\n\n console.warn('THREE.TubeBufferGeometry has been renamed to THREE.TubeGeometry.');\n return _super175.call(this, path, tubularSegments, radius, radialSegments, closed);\n }\n\n return _createClass(TubeBufferGeometry);\n}(TubeGeometry);\n\nif (typeof __THREE_DEVTOOLS__ !== 'undefined') {\n __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent('register', {\n detail: {\n revision: REVISION\n }\n }));\n}\n\nif (typeof window !== 'undefined') {\n if (window.__THREE__) {\n console.warn('WARNING: Multiple instances of Three.js being imported.');\n } else {\n window.__THREE__ = REVISION;\n }\n}\n\nexport { ACESFilmicToneMapping, AddEquation, AddOperation, AdditiveAnimationBlendMode, AdditiveBlending, AlphaFormat, AlwaysDepth, AlwaysStencilFunc, AmbientLight, AmbientLightProbe, AnimationAction, AnimationClip, AnimationLoader, AnimationMixer, AnimationObjectGroup, AnimationUtils, ArcCurve, ArrayCamera, ArrowHelper, Audio, AudioAnalyser, AudioContext, AudioListener, AudioLoader, AxesHelper, BackSide, BasicDepthPacking, BasicShadowMap, Bone, BooleanKeyframeTrack, Box2, Box3, Box3Helper, BoxBufferGeometry, BoxGeometry, BoxHelper, BufferAttribute, BufferGeometry, BufferGeometryLoader, ByteType, Cache, Camera, CameraHelper, CanvasTexture, CapsuleBufferGeometry, CapsuleGeometry, CatmullRomCurve3, CineonToneMapping, CircleBufferGeometry, CircleGeometry, ClampToEdgeWrapping, Clock, Color, ColorKeyframeTrack, ColorManagement, CompressedArrayTexture, CompressedTexture, CompressedTextureLoader, ConeBufferGeometry, ConeGeometry, CubeCamera, CubeReflectionMapping, CubeRefractionMapping, CubeTexture, CubeTextureLoader, CubeUVReflectionMapping, CubicBezierCurve, CubicBezierCurve3, CubicInterpolant, CullFaceBack, CullFaceFront, CullFaceFrontBack, CullFaceNone, Curve, CurvePath, CustomBlending, CustomToneMapping, CylinderBufferGeometry, CylinderGeometry, Cylindrical, Data3DTexture, DataArrayTexture, DataTexture, DataTextureLoader, DataUtils, DecrementStencilOp, DecrementWrapStencilOp, DefaultLoadingManager, DepthFormat, DepthStencilFormat, DepthTexture, DirectionalLight, DirectionalLightHelper, DiscreteInterpolant, DisplayP3ColorSpace, DodecahedronBufferGeometry, DodecahedronGeometry, DoubleSide, DstAlphaFactor, DstColorFactor, DynamicCopyUsage, DynamicDrawUsage, DynamicReadUsage, EdgesGeometry, EllipseCurve, EqualDepth, EqualStencilFunc, EquirectangularReflectionMapping, EquirectangularRefractionMapping, Euler, EventDispatcher, ExtrudeBufferGeometry, ExtrudeGeometry, FileLoader, Float16BufferAttribute, Float32BufferAttribute, Float64BufferAttribute, FloatType, Fog, FogExp2, FramebufferTexture, FrontSide, Frustum, GLBufferAttribute, GLSL1, GLSL3, GreaterDepth, GreaterEqualDepth, GreaterEqualStencilFunc, GreaterStencilFunc, GridHelper, Group, HalfFloatType, HemisphereLight, HemisphereLightHelper, HemisphereLightProbe, IcosahedronBufferGeometry, IcosahedronGeometry, ImageBitmapLoader, ImageLoader, ImageUtils, IncrementStencilOp, IncrementWrapStencilOp, InstancedBufferAttribute, InstancedBufferGeometry, InstancedInterleavedBuffer, InstancedMesh, Int16BufferAttribute, Int32BufferAttribute, Int8BufferAttribute, IntType, InterleavedBuffer, InterleavedBufferAttribute, Interpolant, InterpolateDiscrete, InterpolateLinear, InterpolateSmooth, InvertStencilOp, KeepStencilOp, KeyframeTrack, LOD, LatheBufferGeometry, LatheGeometry, Layers, LessDepth, LessEqualDepth, LessEqualStencilFunc, LessStencilFunc, Light, LightProbe, Line, Line3, LineBasicMaterial, LineCurve, LineCurve3, LineDashedMaterial, LineLoop, LineSegments, LinearEncoding, LinearFilter, LinearInterpolant, LinearMipMapLinearFilter, LinearMipMapNearestFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, LinearSRGBColorSpace, LinearToneMapping, Loader, LoaderUtils, LoadingManager, LoopOnce, LoopPingPong, LoopRepeat, LuminanceAlphaFormat, LuminanceFormat, MOUSE, Material, MaterialLoader, MathUtils, Matrix3, Matrix4, MaxEquation, Mesh, MeshBasicMaterial, MeshDepthMaterial, MeshDistanceMaterial, MeshLambertMaterial, MeshMatcapMaterial, MeshNormalMaterial, MeshPhongMaterial, MeshPhysicalMaterial, MeshStandardMaterial, MeshToonMaterial, MinEquation, MirroredRepeatWrapping, MixOperation, MultiplyBlending, MultiplyOperation, NearestFilter, NearestMipMapLinearFilter, NearestMipMapNearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, NeverDepth, NeverStencilFunc, NoBlending, NoColorSpace, NoToneMapping, NormalAnimationBlendMode, NormalBlending, NotEqualDepth, NotEqualStencilFunc, NumberKeyframeTrack, Object3D, ObjectLoader, ObjectSpaceNormalMap, OctahedronBufferGeometry, OctahedronGeometry, OneFactor, OneMinusDstAlphaFactor, OneMinusDstColorFactor, OneMinusSrcAlphaFactor, OneMinusSrcColorFactor, OrthographicCamera, PCFShadowMap, PCFSoftShadowMap, PMREMGenerator, Path, PerspectiveCamera, Plane, PlaneBufferGeometry, PlaneGeometry, PlaneHelper, PointLight, PointLightHelper, Points, PointsMaterial, PolarGridHelper, PolyhedronBufferGeometry, PolyhedronGeometry, PositionalAudio, PropertyBinding, PropertyMixer, QuadraticBezierCurve, QuadraticBezierCurve3, Quaternion, QuaternionKeyframeTrack, QuaternionLinearInterpolant, RED_GREEN_RGTC2_Format, RED_RGTC1_Format, REVISION, RGBADepthPacking, RGBAFormat, RGBAIntegerFormat, RGBA_ASTC_10x10_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_BPTC_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGB_S3TC_DXT1_Format, RGFormat, RGIntegerFormat, RawShaderMaterial, Ray, Raycaster, RectAreaLight, RedFormat, RedIntegerFormat, ReinhardToneMapping, RepeatWrapping, ReplaceStencilOp, ReverseSubtractEquation, RingBufferGeometry, RingGeometry, SIGNED_RED_GREEN_RGTC2_Format, SIGNED_RED_RGTC1_Format, SRGBColorSpace, Scene, ShaderChunk, ShaderLib, ShaderMaterial, ShadowMaterial, Shape, ShapeBufferGeometry, ShapeGeometry, ShapePath, ShapeUtils, ShortType, Skeleton, SkeletonHelper, SkinnedMesh, Source, Sphere, SphereBufferGeometry, SphereGeometry, Spherical, SphericalHarmonics3, SplineCurve, SpotLight, SpotLightHelper, Sprite, SpriteMaterial, SrcAlphaFactor, SrcAlphaSaturateFactor, SrcColorFactor, StaticCopyUsage, StaticDrawUsage, StaticReadUsage, StereoCamera, StreamCopyUsage, StreamDrawUsage, StreamReadUsage, StringKeyframeTrack, SubtractEquation, SubtractiveBlending, TOUCH, TangentSpaceNormalMap, TetrahedronBufferGeometry, TetrahedronGeometry, Texture, TextureLoader, TorusBufferGeometry, TorusGeometry, TorusKnotBufferGeometry, TorusKnotGeometry, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeBufferGeometry, TubeGeometry, TwoPassDoubleSide, UVMapping, Uint16BufferAttribute, Uint32BufferAttribute, Uint8BufferAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsGroup, UniformsLib, UniformsUtils, UnsignedByteType, UnsignedInt248Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, VSMShadowMap, Vector2, Vector3, Vector4, VectorKeyframeTrack, VideoTexture, WebGL1Renderer, WebGL3DRenderTarget, WebGLArrayRenderTarget, WebGLCubeRenderTarget, WebGLMultipleRenderTargets, WebGLRenderTarget, WebGLRenderer, WebGLUtils, WireframeGeometry, WrapAroundEnding, ZeroCurvatureEnding, ZeroFactor, ZeroSlopeEnding, ZeroStencilOp, _SRGBAFormat, sRGBEncoding };","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n\n function classNames() {\n var classes = [];\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n var argType = typeof arg;\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n var inner = classNames.apply(null, arg);\n\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === 'object') {\n if (arg.toString === Object.prototype.toString) {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n } else {\n classes.push(arg.toString());\n }\n }\n }\n\n return classes.join(' ');\n }\n\n if (typeof module !== 'undefined' && module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport * from \"./abstractComponent\";\nexport * from \"./abstractComponent2\";\nexport * from \"./abstractPureComponent\";\nexport * from \"./abstractPureComponent2\";\nexport * from \"./alignment\";\nexport * from \"./boundary\";\nexport { Colors } from \"./colors\";\nexport * from \"./constructor\";\nexport * from \"./elevation\";\nexport * from \"./intent\";\nexport * from \"./position\";\nexport * from \"./props\";\nexport * from \"./refs\";\nimport * as Classes from \"./classes\";\nimport * as Keys from \"./keys\";\nimport * as Utils from \"./utils\";\nexport { Classes, Keys, Utils }; // NOTE: Errors is not exported in public API","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n return function () {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (isNativeReflectConstruct()) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","var global = require('../internals/global');\n\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar isForced = require('../internals/is-forced');\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\n\n\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n\n if (target) for (key in source) {\n sourceProperty = source[key];\n\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); // contained in target\n\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n } // add a flag to not completely full polyfills\n\n\n if (options.sham || targetProperty && targetProperty.sham) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ReactCSS = exports.loop = exports.handleActive = exports.handleHover = exports.hover = undefined;\n\nvar _flattenNames = require('./flattenNames');\n\nvar _flattenNames2 = _interopRequireDefault(_flattenNames);\n\nvar _mergeClasses = require('./mergeClasses');\n\nvar _mergeClasses2 = _interopRequireDefault(_mergeClasses);\n\nvar _autoprefix = require('./autoprefix');\n\nvar _autoprefix2 = _interopRequireDefault(_autoprefix);\n\nvar _hover2 = require('./components/hover');\n\nvar _hover3 = _interopRequireDefault(_hover2);\n\nvar _active = require('./components/active');\n\nvar _active2 = _interopRequireDefault(_active);\n\nvar _loop2 = require('./loop');\n\nvar _loop3 = _interopRequireDefault(_loop2);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.hover = _hover3.default;\nexports.handleHover = _hover3.default;\nexports.handleActive = _active2.default;\nexports.loop = _loop3.default;\n\nvar ReactCSS = exports.ReactCSS = function ReactCSS(classes) {\n for (var _len = arguments.length, activations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n activations[_key - 1] = arguments[_key];\n }\n\n var activeNames = (0, _flattenNames2.default)(activations);\n var merged = (0, _mergeClasses2.default)(classes, activeNames);\n return (0, _autoprefix2.default)(merged);\n};\n\nexports.default = ReactCSS;","var check = function check(it) {\n return it && it.Math == Math && it;\n}; // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n\n\nmodule.exports = // eslint-disable-next-line es-x/no-global-this -- safe\ncheck(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || // eslint-disable-next-line no-restricted-globals -- safe\ncheck(typeof self == 'object' && self) || check(typeof global == 'object' && global) || // eslint-disable-next-line no-new-func -- fallback\nfunction () {\n return this;\n}() || Function('return this')();","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign } from \"tslib\";\nexport var DISPLAYNAME_PREFIX = \"Blueprint3\";\n/** A collection of curated prop keys used across our Components which are not valid HTMLElement props. */\n\nvar INVALID_PROPS = [\"active\", \"alignText\", \"asyncControl\", \"containerRef\", \"current\", \"elementRef\", \"fill\", \"icon\", \"inputRef\", \"intent\", \"inline\", \"large\", \"loading\", \"leftElement\", \"leftIcon\", \"minimal\", \"onRemove\", \"outlined\", \"panel\", \"panelClassName\", \"popoverProps\", \"rightElement\", \"rightIcon\", \"round\", \"small\", \"text\"];\n/**\n * Typically applied to HTMLElements to filter out disallowed props. When applied to a Component,\n * can filter props from being passed down to the children. Can also filter by a combined list of\n * supplied prop keys and the denylist (only appropriate for HTMLElements).\n *\n * @param props The original props object to filter down.\n * @param {string[]} invalidProps If supplied, overwrites the default denylist.\n * @param {boolean} shouldMerge If true, will merge supplied invalidProps and denylist together.\n */\n\nexport function removeNonHTMLProps(props, invalidProps, shouldMerge) {\n if (invalidProps === void 0) {\n invalidProps = INVALID_PROPS;\n }\n\n if (shouldMerge === void 0) {\n shouldMerge = false;\n }\n\n if (shouldMerge) {\n invalidProps = invalidProps.concat(INVALID_PROPS);\n }\n\n return invalidProps.reduce(function (prev, curr) {\n // Props with hyphens (e.g. data-*) are always considered html props\n if (curr.indexOf(\"-\") !== -1) {\n return prev;\n }\n\n if (prev.hasOwnProperty(curr)) {\n delete prev[curr];\n }\n\n return prev;\n }, __assign({}, props));\n}","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\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 */\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n } // Binding \"this\" is important for shallow renderer support.\n\n\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(prevProps, prevState);\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n} // React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\n\n\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (typeof Component.getDerivedStateFromProps !== 'function' && typeof prototype.getSnapshotBeforeUpdate !== 'function') {\n return Component;\n } // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n\n\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n\n if (foundWillMountName !== null || foundWillReceivePropsName !== null || foundWillUpdateName !== null) {\n var componentName = Component.displayName || Component.name;\n var newApiName = typeof Component.getDerivedStateFromProps === 'function' ? 'getDerivedStateFromProps()' : 'getSnapshotBeforeUpdate()';\n throw Error('Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' + componentName + ' uses ' + newApiName + ' but also contains the following legacy lifecycles:' + (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') + (foundWillReceivePropsName !== null ? '\\n ' + foundWillReceivePropsName : '') + (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') + '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' + 'https://fb.me/react-async-component-lifecycle-hooks');\n } // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n\n\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n } // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n\n\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error('Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype');\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(prevProps, prevState, maybeSnapshot) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag ? this.__reactInternalSnapshot : maybeSnapshot;\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };","var global = require('../internals/global');\n\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError; // `Assert: Type(argument) is Object`\n\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","import Stylis from 'stylis/stylis.min';\nimport _insertRulePlugin from 'stylis-rule-sheet';\nimport React, { cloneElement, createContext, Component, createElement } from 'react';\nimport unitless from '@emotion/unitless';\nimport { isElement, isValidElementType, ForwardRef } from 'react-is';\nimport memoize from 'memoize-one';\nimport PropTypes from 'prop-types';\nimport validAttr from '@emotion/is-prop-valid';\nimport merge from 'merge-anything'; // \n\nvar interleave = function interleave(strings, interpolations) {\n var result = [strings[0]];\n\n for (var i = 0, len = interpolations.length; i < len; i += 1) {\n result.push(interpolations[i], strings[i + 1]);\n }\n\n return result;\n};\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}; // \n\n\nvar isPlainObject = function isPlainObject(x) {\n return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x.constructor === Object;\n}; // \n\n\nvar EMPTY_ARRAY = Object.freeze([]);\nvar EMPTY_OBJECT = Object.freeze({}); // \n\nfunction isFunction(test) {\n return typeof test === 'function';\n} // \n\n\nfunction getComponentName(target) {\n return (process.env.NODE_ENV !== 'production' ? typeof target === 'string' && target : false) || target.displayName || target.name || 'Component';\n} // \n\n\nfunction isStatelessFunction(test) {\n return typeof test === 'function' && !(test.prototype && test.prototype.isReactComponent);\n} // \n\n\nfunction isStyledComponent(target) {\n return target && typeof target.styledComponentId === 'string';\n} // \n\n\nvar SC_ATTR = typeof process !== 'undefined' && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || 'data-styled';\nvar SC_VERSION_ATTR = 'data-styled-version';\nvar SC_STREAM_ATTR = 'data-styled-streamed';\nvar IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\nvar DISABLE_SPEEDY = typeof SC_DISABLE_SPEEDY === 'boolean' && SC_DISABLE_SPEEDY || typeof process !== 'undefined' && (process.env.REACT_APP_SC_DISABLE_SPEEDY || process.env.SC_DISABLE_SPEEDY) || process.env.NODE_ENV !== 'production'; // Shared empty execution context when generating static styles\n\nvar STATIC_EXECUTION_CONTEXT = {}; // \n\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n */\n\nvar ERRORS = process.env.NODE_ENV !== 'production' ? {\n \"1\": \"Cannot create styled-component for component: %s.\\n\\n\",\n \"2\": \"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",\n \"3\": \"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",\n \"4\": \"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",\n \"5\": \"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",\n \"6\": \"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",\n \"7\": \"ThemeProvider: Please return an object from your \\\"theme\\\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n\",\n \"8\": \"ThemeProvider: Please make your \\\"theme\\\" prop an object.\\n\\n\",\n \"9\": \"Missing document ``\\n\\n\",\n \"10\": \"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",\n \"11\": \"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",\n \"12\": \"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",\n \"13\": \"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\"\n} : {};\n/**\n * super basic version of sprintf\n */\n\nfunction format() {\n var a = arguments.length <= 0 ? undefined : arguments[0];\n var b = [];\n\n for (var c = 1, len = arguments.length; c < len; c += 1) {\n b.push(arguments.length <= c ? undefined : arguments[c]);\n }\n\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n return a;\n}\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n */\n\n\nvar StyledComponentsError = function (_Error) {\n inherits(StyledComponentsError, _Error);\n\n function StyledComponentsError(code) {\n classCallCheck(this, StyledComponentsError);\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (process.env.NODE_ENV === 'production') {\n var _this = possibleConstructorReturn(this, _Error.call(this, 'An error occurred. See https://github.com/styled-components/styled-components/blob/master/packages/styled-components/src/utils/errors.md#' + code + ' for more information.' + (interpolations.length > 0 ? ' Additional arguments: ' + interpolations.join(', ') : '')));\n } else {\n var _this = possibleConstructorReturn(this, _Error.call(this, format.apply(undefined, [ERRORS[code]].concat(interpolations)).trim()));\n }\n\n return possibleConstructorReturn(_this);\n }\n\n return StyledComponentsError;\n}(Error); // \n\n\nvar SC_COMPONENT_ID = /^[^\\S\\n]*?\\/\\* sc-component-id:\\s*(\\S+)\\s+\\*\\//gm;\n\nvar extractComps = function extractComps(maybeCSS) {\n var css = '' + (maybeCSS || ''); // Definitely a string, and a clone\n\n var existingComponents = [];\n css.replace(SC_COMPONENT_ID, function (match, componentId, matchIndex) {\n existingComponents.push({\n componentId: componentId,\n matchIndex: matchIndex\n });\n return match;\n });\n return existingComponents.map(function (_ref, i) {\n var componentId = _ref.componentId,\n matchIndex = _ref.matchIndex;\n var nextComp = existingComponents[i + 1];\n var cssFromDOM = nextComp ? css.slice(matchIndex, nextComp.matchIndex) : css.slice(matchIndex);\n return {\n componentId: componentId,\n cssFromDOM: cssFromDOM\n };\n });\n}; // \n\n\nvar COMMENT_REGEX = /^\\s*\\/\\/.*$/gm; // NOTE: This stylis instance is only used to split rules from SSR'd style tags\n\nvar stylisSplitter = new Stylis({\n global: false,\n cascade: true,\n keyframe: false,\n prefix: false,\n compress: false,\n semicolon: true\n});\nvar stylis = new Stylis({\n global: false,\n cascade: true,\n keyframe: false,\n prefix: true,\n compress: false,\n semicolon: false // NOTE: This means \"autocomplete missing semicolons\"\n\n}); // Wrap `insertRulePlugin to build a list of rules,\n// and then make our own plugin to return the rules. This\n// makes it easier to hook into the existing SSR architecture\n\nvar parsingRules = []; // eslint-disable-next-line consistent-return\n\nvar returnRulesPlugin = function returnRulesPlugin(context) {\n if (context === -2) {\n var parsedRules = parsingRules;\n parsingRules = [];\n return parsedRules;\n }\n};\n\nvar parseRulesPlugin = _insertRulePlugin(function (rule) {\n parsingRules.push(rule);\n});\n\nvar _componentId = void 0;\n\nvar _selector = void 0;\n\nvar _selectorRegexp = void 0;\n\nvar selfReferenceReplacer = function selfReferenceReplacer(match, offset, string) {\n if ( // the first self-ref is always untouched\n offset > 0 && // there should be at least two self-refs to do a replacement (.b > .b)\n string.slice(0, offset).indexOf(_selector) !== -1 && // no consecutive self refs (.b.b); that is a precedence boost and treated differently\n string.slice(offset - _selector.length, offset) !== _selector) {\n return '.' + _componentId;\n }\n\n return match;\n};\n/**\n * When writing a style like\n *\n * & + & {\n * color: red;\n * }\n *\n * The second ampersand should be a reference to the static component class. stylis\n * has no knowledge of static class so we have to intelligently replace the base selector.\n */\n\n\nvar selfReferenceReplacementPlugin = function selfReferenceReplacementPlugin(context, _, selectors) {\n if (context === 2 && selectors.length && selectors[0].lastIndexOf(_selector) > 0) {\n // eslint-disable-next-line no-param-reassign\n selectors[0] = selectors[0].replace(_selectorRegexp, selfReferenceReplacer);\n }\n};\n\nstylis.use([selfReferenceReplacementPlugin, parseRulesPlugin, returnRulesPlugin]);\nstylisSplitter.use([parseRulesPlugin, returnRulesPlugin]);\n\nvar splitByRules = function splitByRules(css) {\n return stylisSplitter('', css);\n};\n\nfunction stringifyRules(rules, selector, prefix) {\n var componentId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '&';\n var flatCSS = rules.join('').replace(COMMENT_REGEX, ''); // replace JS comments\n\n var cssStr = selector && prefix ? prefix + ' ' + selector + ' { ' + flatCSS + ' }' : flatCSS; // stylis has no concept of state to be passed to plugins\n // but since JS is single=threaded, we can rely on that to ensure\n // these properties stay in sync with the current stylis run\n\n _componentId = componentId;\n _selector = selector;\n _selectorRegexp = new RegExp('\\\\' + _selector + '\\\\b', 'g');\n return stylis(prefix || !selector ? '' : selector, cssStr);\n} // \n\n/* eslint-disable camelcase, no-undef */\n\n\nvar getNonce = function getNonce() {\n return typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n}; // \n\n/* These are helpers for the StyleTags to keep track of the injected\n * rule names for each (component) ID that they're keeping track of.\n * They're crucial for detecting whether a name has already been\n * injected.\n * (This excludes rehydrated names) */\n\n/* adds a new ID:name pairing to a names dictionary */\n\n\nvar addNameForId = function addNameForId(names, id, name) {\n if (name) {\n // eslint-disable-next-line no-param-reassign\n var namesForId = names[id] || (names[id] = Object.create(null));\n namesForId[name] = true;\n }\n};\n/* resets an ID entirely by overwriting it in the dictionary */\n\n\nvar resetIdNames = function resetIdNames(names, id) {\n // eslint-disable-next-line no-param-reassign\n names[id] = Object.create(null);\n};\n/* factory for a names dictionary checking the existance of an ID:name pairing */\n\n\nvar hasNameForId = function hasNameForId(names) {\n return function (id, name) {\n return names[id] !== undefined && names[id][name];\n };\n};\n/* stringifies names for the html/element output */\n\n\nvar stringifyNames = function stringifyNames(names) {\n var str = ''; // eslint-disable-next-line guard-for-in\n\n for (var id in names) {\n str += Object.keys(names[id]).join(' ') + ' ';\n }\n\n return str.trim();\n};\n/* clones the nested names dictionary */\n\n\nvar cloneNames = function cloneNames(names) {\n var clone = Object.create(null); // eslint-disable-next-line guard-for-in\n\n for (var id in names) {\n clone[id] = _extends({}, names[id]);\n }\n\n return clone;\n}; // \n\n/* These are helpers that deal with the insertRule (aka speedy) API\n * They are used in the StyleTags and specifically the speedy tag\n */\n\n/* retrieve a sheet for a given style tag */\n\n\nvar sheetForTag = function sheetForTag(tag) {\n // $FlowFixMe\n if (tag.sheet) return tag.sheet;\n /* Firefox quirk requires us to step through all stylesheets to find one owned by the given tag */\n\n var size = tag.ownerDocument.styleSheets.length;\n\n for (var i = 0; i < size; i += 1) {\n var sheet = tag.ownerDocument.styleSheets[i]; // $FlowFixMe\n\n if (sheet.ownerNode === tag) return sheet;\n }\n /* we should always be able to find a tag */\n\n\n throw new StyledComponentsError(10);\n};\n/* insert a rule safely and return whether it was actually injected */\n\n\nvar safeInsertRule = function safeInsertRule(sheet, cssRule, index) {\n /* abort early if cssRule string is falsy */\n if (!cssRule) return false;\n var maxIndex = sheet.cssRules.length;\n\n try {\n /* use insertRule and cap passed index with maxIndex (no of cssRules) */\n sheet.insertRule(cssRule, index <= maxIndex ? index : maxIndex);\n } catch (err) {\n /* any error indicates an invalid rule */\n return false;\n }\n\n return true;\n};\n/* deletes `size` rules starting from `removalIndex` */\n\n\nvar deleteRules = function deleteRules(sheet, removalIndex, size) {\n var lowerBound = removalIndex - size;\n\n for (var i = removalIndex; i > lowerBound; i -= 1) {\n sheet.deleteRule(i);\n }\n}; // \n\n/* this marker separates component styles and is important for rehydration */\n\n\nvar makeTextMarker = function makeTextMarker(id) {\n return '\\n/* sc-component-id: ' + id + ' */\\n';\n};\n/* add up all numbers in array up until and including the index */\n\n\nvar addUpUntilIndex = function addUpUntilIndex(sizes, index) {\n var totalUpToIndex = 0;\n\n for (var i = 0; i <= index; i += 1) {\n totalUpToIndex += sizes[i];\n }\n\n return totalUpToIndex;\n};\n/* create a new style tag after lastEl */\n\n\nvar makeStyleTag = function makeStyleTag(target, tagEl, insertBefore) {\n var targetDocument = document;\n if (target) targetDocument = target.ownerDocument;else if (tagEl) targetDocument = tagEl.ownerDocument;\n var el = targetDocument.createElement('style');\n el.setAttribute(SC_ATTR, '');\n el.setAttribute(SC_VERSION_ATTR, \"4.4.1\");\n var nonce = getNonce();\n\n if (nonce) {\n el.setAttribute('nonce', nonce);\n }\n /* Work around insertRule quirk in EdgeHTML */\n\n\n el.appendChild(targetDocument.createTextNode(''));\n\n if (target && !tagEl) {\n /* Append to target when no previous element was passed */\n target.appendChild(el);\n } else {\n if (!tagEl || !target || !tagEl.parentNode) {\n throw new StyledComponentsError(6);\n }\n /* Insert new style tag after the previous one */\n\n\n tagEl.parentNode.insertBefore(el, insertBefore ? tagEl : tagEl.nextSibling);\n }\n\n return el;\n};\n/* takes a css factory function and outputs an html styled tag factory */\n\n\nvar wrapAsHtmlTag = function wrapAsHtmlTag(css, names) {\n return function (additionalAttrs) {\n var nonce = getNonce();\n var attrs = [nonce && 'nonce=\"' + nonce + '\"', SC_ATTR + '=\"' + stringifyNames(names) + '\"', SC_VERSION_ATTR + '=\"' + \"4.4.1\" + '\"', additionalAttrs];\n var htmlAttr = attrs.filter(Boolean).join(' ');\n return '';\n };\n};\n/* takes a css factory function and outputs an element factory */\n\n\nvar wrapAsElement = function wrapAsElement(css, names) {\n return function () {\n var _props;\n\n var props = (_props = {}, _props[SC_ATTR] = stringifyNames(names), _props[SC_VERSION_ATTR] = \"4.4.1\", _props);\n var nonce = getNonce();\n\n if (nonce) {\n // $FlowFixMe\n props.nonce = nonce;\n } // eslint-disable-next-line react/no-danger\n\n\n return React.createElement('style', _extends({}, props, {\n dangerouslySetInnerHTML: {\n __html: css()\n }\n }));\n };\n};\n\nvar getIdsFromMarkersFactory = function getIdsFromMarkersFactory(markers) {\n return function () {\n return Object.keys(markers);\n };\n};\n/* speedy tags utilise insertRule */\n\n\nvar makeSpeedyTag = function makeSpeedyTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n var sizes = [];\n var extractImport = getImportRuleTag !== undefined;\n /* indicates whether getImportRuleTag was called */\n\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = sizes.length;\n sizes.push(0);\n resetIdNames(names, id);\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var sheet = sheetForTag(el);\n var insertIndex = addUpUntilIndex(sizes, marker);\n var injectedRules = 0;\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var cssRule = cssRules[i];\n var mayHaveImport = extractImport;\n /* @import rules are reordered to appear first */\n\n if (mayHaveImport && cssRule.indexOf('@import') !== -1) {\n importRules.push(cssRule);\n } else if (safeInsertRule(sheet, cssRule, insertIndex + injectedRules)) {\n mayHaveImport = false;\n injectedRules += 1;\n }\n }\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true; // $FlowFixMe\n\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n\n sizes[marker] += injectedRules;\n /* add up no of injected rules */\n\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return; // $FlowFixMe\n\n if (el.isConnected === false) return;\n var size = sizes[marker];\n var sheet = sheetForTag(el);\n var removalIndex = addUpUntilIndex(sizes, marker) - 1;\n deleteRules(sheet, removalIndex, size);\n sizes[marker] = 0;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var _sheetForTag = sheetForTag(el),\n cssRules = _sheetForTag.cssRules;\n\n var str = ''; // eslint-disable-next-line guard-for-in\n\n for (var id in markers) {\n str += makeTextMarker(id);\n var marker = markers[id];\n var end = addUpUntilIndex(sizes, marker);\n var size = sizes[marker];\n\n for (var i = end - size; i < end; i += 1) {\n var rule = cssRules[i];\n\n if (rule !== undefined) {\n str += rule.cssText;\n }\n }\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeTextNode = function makeTextNode(targetDocument, id) {\n return targetDocument.createTextNode(makeTextMarker(id));\n};\n\nvar makeBrowserTag = function makeBrowserTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n var extractImport = getImportRuleTag !== undefined;\n /* indicates whether getImportRuleTag was called */\n\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = makeTextNode(el.ownerDocument, id);\n el.appendChild(markers[id]);\n names[id] = Object.create(null);\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var rule = cssRules[i];\n var mayHaveImport = extractImport;\n\n if (mayHaveImport && rule.indexOf('@import') !== -1) {\n importRules.push(rule);\n } else {\n mayHaveImport = false;\n var separator = i === cssRulesSize - 1 ? '' : ' ';\n marker.appendData('' + rule + separator);\n }\n }\n\n addNameForId(names, id, name);\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true; // $FlowFixMe\n\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n /* create new empty text node and replace the current one */\n\n var newMarker = makeTextNode(el.ownerDocument, id);\n el.replaceChild(newMarker, marker);\n markers[id] = newMarker;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var str = ''; // eslint-disable-next-line guard-for-in\n\n for (var id in markers) {\n str += markers[id].data;\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeServerTag = function makeServerTag(namesArg, markersArg) {\n var names = namesArg === undefined ? Object.create(null) : namesArg;\n var markers = markersArg === undefined ? Object.create(null) : markersArg;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n\n if (prev !== undefined) {\n return prev;\n }\n\n return markers[id] = [''];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n marker[0] += cssRules.join(' ');\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n marker[0] = '';\n resetIdNames(names, id);\n };\n\n var css = function css() {\n var str = ''; // eslint-disable-next-line guard-for-in\n\n for (var id in markers) {\n var cssForId = markers[id][0];\n\n if (cssForId) {\n str += makeTextMarker(id) + cssForId;\n }\n }\n\n return str;\n };\n\n var clone = function clone() {\n var namesClone = cloneNames(names);\n var markersClone = Object.create(null); // eslint-disable-next-line guard-for-in\n\n for (var id in markers) {\n markersClone[id] = [markers[id][0]];\n }\n\n return makeServerTag(namesClone, markersClone);\n };\n\n var tag = {\n clone: clone,\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: null,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n return tag;\n};\n\nvar makeTag = function makeTag(target, tagEl, forceServer, insertBefore, getImportRuleTag) {\n if (IS_BROWSER && !forceServer) {\n var el = makeStyleTag(target, tagEl, insertBefore);\n\n if (DISABLE_SPEEDY) {\n return makeBrowserTag(el, getImportRuleTag);\n } else {\n return makeSpeedyTag(el, getImportRuleTag);\n }\n }\n\n return makeServerTag();\n};\n\nvar rehydrate = function rehydrate(tag, els, extracted) {\n /* add all extracted components to the new tag */\n for (var i = 0, len = extracted.length; i < len; i += 1) {\n var _extracted$i = extracted[i],\n componentId = _extracted$i.componentId,\n cssFromDOM = _extracted$i.cssFromDOM;\n var cssRules = splitByRules(cssFromDOM);\n tag.insertRules(componentId, cssRules);\n }\n /* remove old HTMLStyleElements, since they have been rehydrated */\n\n\n for (var _i = 0, _len = els.length; _i < _len; _i += 1) {\n var el = els[_i];\n\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n }\n}; // \n\n\nvar SPLIT_REGEX = /\\s+/;\n/* determine the maximum number of components before tags are sharded */\n\nvar MAX_SIZE = void 0;\n\nif (IS_BROWSER) {\n /* in speedy mode we can keep a lot more rules in a sheet before a slowdown can be expected */\n MAX_SIZE = DISABLE_SPEEDY ? 40 : 1000;\n} else {\n /* for servers we do not need to shard at all */\n MAX_SIZE = -1;\n}\n\nvar sheetRunningId = 0;\nvar master = void 0;\n\nvar StyleSheet = function () {\n /* a map from ids to tags */\n\n /* deferred rules for a given id */\n\n /* this is used for not reinjecting rules via hasNameForId() */\n\n /* when rules for an id are removed using remove() we have to ignore rehydratedNames for it */\n\n /* a list of tags belonging to this StyleSheet */\n\n /* a tag for import rules */\n\n /* current capacity until a new tag must be created */\n\n /* children (aka clones) of this StyleSheet inheriting all and future injections */\n function StyleSheet() {\n var _this = this;\n\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : IS_BROWSER ? document.head : null;\n var forceServer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n classCallCheck(this, StyleSheet);\n\n this.getImportRuleTag = function () {\n var importRuleTag = _this.importRuleTag;\n\n if (importRuleTag !== undefined) {\n return importRuleTag;\n }\n\n var firstTag = _this.tags[0];\n var insertBefore = true;\n return _this.importRuleTag = makeTag(_this.target, firstTag ? firstTag.styleTag : null, _this.forceServer, insertBefore);\n };\n\n sheetRunningId += 1;\n this.id = sheetRunningId;\n this.forceServer = forceServer;\n this.target = forceServer ? null : target;\n this.tagMap = {};\n this.deferred = {};\n this.rehydratedNames = {};\n this.ignoreRehydratedNames = {};\n this.tags = [];\n this.capacity = 1;\n this.clones = [];\n }\n /* rehydrate all SSR'd style tags */\n\n\n StyleSheet.prototype.rehydrate = function rehydrate$$1() {\n if (!IS_BROWSER || this.forceServer) return this;\n var els = [];\n var extracted = [];\n var isStreamed = false;\n /* retrieve all of our SSR style elements from the DOM */\n\n var nodes = document.querySelectorAll('style[' + SC_ATTR + '][' + SC_VERSION_ATTR + '=\"' + \"4.4.1\" + '\"]');\n var nodesSize = nodes.length;\n /* abort rehydration if no previous style tags were found */\n\n if (!nodesSize) return this;\n\n for (var i = 0; i < nodesSize; i += 1) {\n var el = nodes[i];\n /* check if style tag is a streamed tag */\n\n if (!isStreamed) isStreamed = !!el.getAttribute(SC_STREAM_ATTR);\n /* retrieve all component names */\n\n var elNames = (el.getAttribute(SC_ATTR) || '').trim().split(SPLIT_REGEX);\n var elNamesSize = elNames.length;\n\n for (var j = 0, name; j < elNamesSize; j += 1) {\n name = elNames[j];\n /* add rehydrated name to sheet to avoid re-adding styles */\n\n this.rehydratedNames[name] = true;\n }\n /* extract all components and their CSS */\n\n\n extracted.push.apply(extracted, extractComps(el.textContent));\n /* store original HTMLStyleElement */\n\n els.push(el);\n }\n /* abort rehydration if nothing was extracted */\n\n\n var extractedSize = extracted.length;\n if (!extractedSize) return this;\n /* create a tag to be used for rehydration */\n\n var tag = this.makeTag(null);\n rehydrate(tag, els, extracted);\n /* reset capacity and adjust MAX_SIZE by the initial size of the rehydration */\n\n this.capacity = Math.max(1, MAX_SIZE - extractedSize);\n this.tags.push(tag);\n /* retrieve all component ids */\n\n for (var _j = 0; _j < extractedSize; _j += 1) {\n this.tagMap[extracted[_j].componentId] = tag;\n }\n\n return this;\n };\n /* retrieve a \"master\" instance of StyleSheet which is typically used when no other is available\n * The master StyleSheet is targeted by createGlobalStyle, keyframes, and components outside of any\n * StyleSheetManager's context */\n\n /* reset the internal \"master\" instance */\n\n\n StyleSheet.reset = function reset() {\n var forceServer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n master = new StyleSheet(undefined, forceServer).rehydrate();\n };\n /* adds \"children\" to the StyleSheet that inherit all of the parents' rules\n * while their own rules do not affect the parent */\n\n\n StyleSheet.prototype.clone = function clone() {\n var sheet = new StyleSheet(this.target, this.forceServer);\n /* add to clone array */\n\n this.clones.push(sheet);\n /* clone all tags */\n\n sheet.tags = this.tags.map(function (tag) {\n var ids = tag.getIds();\n var newTag = tag.clone();\n /* reconstruct tagMap */\n\n for (var i = 0; i < ids.length; i += 1) {\n sheet.tagMap[ids[i]] = newTag;\n }\n\n return newTag;\n });\n /* clone other maps */\n\n sheet.rehydratedNames = _extends({}, this.rehydratedNames);\n sheet.deferred = _extends({}, this.deferred);\n return sheet;\n };\n /* force StyleSheet to create a new tag on the next injection */\n\n\n StyleSheet.prototype.sealAllTags = function sealAllTags() {\n this.capacity = 1;\n this.tags.forEach(function (tag) {\n // eslint-disable-next-line no-param-reassign\n tag.sealed = true;\n });\n };\n\n StyleSheet.prototype.makeTag = function makeTag$$1(tag) {\n var lastEl = tag ? tag.styleTag : null;\n var insertBefore = false;\n return makeTag(this.target, lastEl, this.forceServer, insertBefore, this.getImportRuleTag);\n };\n /* get a tag for a given componentId, assign the componentId to one, or shard */\n\n\n StyleSheet.prototype.getTagForId = function getTagForId(id) {\n /* simply return a tag, when the componentId was already assigned one */\n var prev = this.tagMap[id];\n\n if (prev !== undefined && !prev.sealed) {\n return prev;\n }\n\n var tag = this.tags[this.tags.length - 1];\n /* shard (create a new tag) if the tag is exhausted (See MAX_SIZE) */\n\n this.capacity -= 1;\n\n if (this.capacity === 0) {\n this.capacity = MAX_SIZE;\n tag = this.makeTag(tag);\n this.tags.push(tag);\n }\n\n return this.tagMap[id] = tag;\n };\n /* mainly for createGlobalStyle to check for its id */\n\n\n StyleSheet.prototype.hasId = function hasId(id) {\n return this.tagMap[id] !== undefined;\n };\n /* caching layer checking id+name to already have a corresponding tag and injected rules */\n\n\n StyleSheet.prototype.hasNameForId = function hasNameForId(id, name) {\n /* exception for rehydrated names which are checked separately */\n if (this.ignoreRehydratedNames[id] === undefined && this.rehydratedNames[name]) {\n return true;\n }\n\n var tag = this.tagMap[id];\n return tag !== undefined && tag.hasNameForId(id, name);\n };\n /* registers a componentId and registers it on its tag */\n\n\n StyleSheet.prototype.deferredInject = function deferredInject(id, cssRules) {\n /* don't inject when the id is already registered */\n if (this.tagMap[id] !== undefined) return;\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].deferredInject(id, cssRules);\n }\n\n this.getTagForId(id).insertMarker(id);\n this.deferred[id] = cssRules;\n };\n /* injects rules for a given id with a name that will need to be cached */\n\n\n StyleSheet.prototype.inject = function inject(id, cssRules, name) {\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].inject(id, cssRules, name);\n }\n\n var tag = this.getTagForId(id);\n /* add deferred rules for component */\n\n if (this.deferred[id] !== undefined) {\n // Combine passed cssRules with previously deferred CSS rules\n // NOTE: We cannot mutate the deferred array itself as all clones\n // do the same (see clones[i].inject)\n var rules = this.deferred[id].concat(cssRules);\n tag.insertRules(id, rules, name);\n this.deferred[id] = undefined;\n } else {\n tag.insertRules(id, cssRules, name);\n }\n };\n /* removes all rules for a given id, which doesn't remove its marker but resets it */\n\n\n StyleSheet.prototype.remove = function remove(id) {\n var tag = this.tagMap[id];\n if (tag === undefined) return;\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].remove(id);\n }\n /* remove all rules from the tag */\n\n\n tag.removeRules(id);\n /* ignore possible rehydrated names */\n\n this.ignoreRehydratedNames[id] = true;\n /* delete possible deferred rules */\n\n this.deferred[id] = undefined;\n };\n\n StyleSheet.prototype.toHTML = function toHTML() {\n return this.tags.map(function (tag) {\n return tag.toHTML();\n }).join('');\n };\n\n StyleSheet.prototype.toReactElements = function toReactElements() {\n var id = this.id;\n return this.tags.map(function (tag, i) {\n var key = 'sc-' + id + '-' + i;\n return cloneElement(tag.toElement(), {\n key: key\n });\n });\n };\n\n createClass(StyleSheet, null, [{\n key: 'master',\n get: function get$$1() {\n return master || (master = new StyleSheet().rehydrate());\n }\n /* NOTE: This is just for backwards-compatibility with jest-styled-components */\n\n }, {\n key: 'instance',\n get: function get$$1() {\n return StyleSheet.master;\n }\n }]);\n return StyleSheet;\n}(); // \n\n\nvar Keyframes = function () {\n function Keyframes(name, rules) {\n var _this = this;\n\n classCallCheck(this, Keyframes);\n\n this.inject = function (styleSheet) {\n if (!styleSheet.hasNameForId(_this.id, _this.name)) {\n styleSheet.inject(_this.id, _this.rules, _this.name);\n }\n };\n\n this.toString = function () {\n throw new StyledComponentsError(12, String(_this.name));\n };\n\n this.name = name;\n this.rules = rules;\n this.id = 'sc-keyframes-' + name;\n }\n\n Keyframes.prototype.getName = function getName() {\n return this.name;\n };\n\n return Keyframes;\n}(); // \n\n/**\n * inlined version of\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js\n */\n\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\n\nfunction hyphenateStyleName(string) {\n return string.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n} // \n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\n\n\nfunction addUnitIfNeeded(name, value) {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n // $FlowFixMe\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless)) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return String(value).trim();\n} // \n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\n\n\nvar isFalsish = function isFalsish(chunk) {\n return chunk === undefined || chunk === null || chunk === false || chunk === '';\n};\n\nvar objToCssArray = function objToCssArray(obj, prevKey) {\n var rules = [];\n var keys = Object.keys(obj);\n keys.forEach(function (key) {\n if (!isFalsish(obj[key])) {\n if (isPlainObject(obj[key])) {\n rules.push.apply(rules, objToCssArray(obj[key], key));\n return rules;\n } else if (isFunction(obj[key])) {\n rules.push(hyphenateStyleName(key) + ':', obj[key], ';');\n return rules;\n }\n\n rules.push(hyphenateStyleName(key) + ': ' + addUnitIfNeeded(key, obj[key]) + ';');\n }\n\n return rules;\n });\n return prevKey ? [prevKey + ' {'].concat(rules, ['}']) : rules;\n};\n\nfunction flatten(chunk, executionContext, styleSheet) {\n if (Array.isArray(chunk)) {\n var ruleSet = [];\n\n for (var i = 0, len = chunk.length, result; i < len; i += 1) {\n result = flatten(chunk[i], executionContext, styleSheet);\n if (result === null) continue;else if (Array.isArray(result)) ruleSet.push.apply(ruleSet, result);else ruleSet.push(result);\n }\n\n return ruleSet;\n }\n\n if (isFalsish(chunk)) {\n return null;\n }\n /* Handle other components */\n\n\n if (isStyledComponent(chunk)) {\n return '.' + chunk.styledComponentId;\n }\n /* Either execute or defer the function */\n\n\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n var _result = chunk(executionContext);\n\n if (process.env.NODE_ENV !== 'production' && isElement(_result)) {\n // eslint-disable-next-line no-console\n console.warn(getComponentName(chunk) + ' is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.');\n }\n\n return flatten(_result, executionContext, styleSheet);\n } else return chunk;\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet);\n return chunk.getName();\n } else return chunk;\n }\n /* Handle objects */\n\n\n return isPlainObject(chunk) ? objToCssArray(chunk) : chunk.toString();\n} // \n\n\nfunction css(styles) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (isFunction(styles) || isPlainObject(styles)) {\n // $FlowFixMe\n return flatten(interleave(EMPTY_ARRAY, [styles].concat(interpolations)));\n } // $FlowFixMe\n\n\n return flatten(interleave(styles, interpolations));\n} // \n\n\nfunction constructWithOptions(componentConstructor, tag) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n if (!isValidElementType(tag)) {\n throw new StyledComponentsError(1, String(tag));\n }\n /* This is callable directly as a template function */\n // $FlowFixMe: Not typed to avoid destructuring arguments\n\n\n var templateFunction = function templateFunction() {\n return componentConstructor(tag, options, css.apply(undefined, arguments));\n };\n /* If config methods are called, wrap up a new template function and merge options */\n\n\n templateFunction.withConfig = function (config) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, config));\n };\n /* Modify/inject new props at runtime */\n\n\n templateFunction.attrs = function (attrs) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, {\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean)\n }));\n };\n\n return templateFunction;\n} // \n// Source: https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\n\n\nfunction murmurhash(c) {\n for (var e = c.length | 0, a = e | 0, d = 0, b; e >= 4;) {\n b = c.charCodeAt(d) & 255 | (c.charCodeAt(++d) & 255) << 8 | (c.charCodeAt(++d) & 255) << 16 | (c.charCodeAt(++d) & 255) << 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), b ^= b >>> 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16) ^ b, e -= 4, ++d;\n }\n\n switch (e) {\n case 3:\n a ^= (c.charCodeAt(d + 2) & 255) << 16;\n\n case 2:\n a ^= (c.charCodeAt(d + 1) & 255) << 8;\n\n case 1:\n a ^= c.charCodeAt(d) & 255, a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n }\n\n a ^= a >>> 13;\n a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n return (a ^ a >>> 15) >>> 0;\n} // \n\n/* eslint-disable no-bitwise */\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\n\n\nvar charsLength = 52;\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\n\nvar getAlphabeticChar = function getAlphabeticChar(code) {\n return String.fromCharCode(code + (code > 25 ? 39 : 97));\n};\n/* input a number, usually a hash and convert it to base-52 */\n\n\nfunction generateAlphabeticName(code) {\n var name = '';\n var x = void 0;\n /* get a char and divide by alphabet-length */\n\n for (x = code; x > charsLength; x = Math.floor(x / charsLength)) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return getAlphabeticChar(x % charsLength) + name;\n} // \n\n\nfunction hasFunctionObjectKey(obj) {\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (var key in obj) {\n if (isFunction(obj[key])) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isStaticRules(rules, attrs) {\n for (var i = 0; i < rules.length; i += 1) {\n var rule = rules[i]; // recursive case\n\n if (Array.isArray(rule) && !isStaticRules(rule, attrs)) {\n return false;\n } else if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n if (attrs.some(function (x) {\n return isFunction(x) || hasFunctionObjectKey(x);\n })) return false;\n return true;\n} // \n\n/* combines hashStr (murmurhash) and nameGenerator for convenience */\n\n\nvar hasher = function hasher(str) {\n return generateAlphabeticName(murmurhash(str));\n};\n/*\n ComponentStyle is all the CSS-specific stuff, not\n the React-specific stuff.\n */\n\n\nvar ComponentStyle = function () {\n function ComponentStyle(rules, attrs, componentId) {\n classCallCheck(this, ComponentStyle);\n this.rules = rules;\n this.isStatic = process.env.NODE_ENV === 'production' && isStaticRules(rules, attrs);\n this.componentId = componentId;\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a .hash1234 {}\n * Returns the hash to be injected on render()\n * */\n\n\n ComponentStyle.prototype.generateAndInjectStyles = function generateAndInjectStyles(executionContext, styleSheet) {\n var isStatic = this.isStatic,\n componentId = this.componentId,\n lastClassName = this.lastClassName;\n\n if (IS_BROWSER && isStatic && typeof lastClassName === 'string' && styleSheet.hasNameForId(componentId, lastClassName)) {\n return lastClassName;\n }\n\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var name = hasher(this.componentId + flatCSS.join(''));\n\n if (!styleSheet.hasNameForId(componentId, name)) {\n styleSheet.inject(this.componentId, stringifyRules(flatCSS, '.' + name, undefined, componentId), name);\n }\n\n this.lastClassName = name;\n return name;\n };\n\n ComponentStyle.generateName = function generateName(str) {\n return hasher(str);\n };\n\n return ComponentStyle;\n}(); // \n\n\nvar LIMIT = 200;\n\nvar createWarnTooManyClasses = function createWarnTooManyClasses(displayName) {\n var generatedClasses = {};\n var warningSeen = false;\n return function (className) {\n if (!warningSeen) {\n generatedClasses[className] = true;\n\n if (Object.keys(generatedClasses).length >= LIMIT) {\n // Unable to find latestRule in test environment.\n\n /* eslint-disable no-console, prefer-template */\n console.warn('Over ' + LIMIT + ' classes were generated for component ' + displayName + '. \\n' + 'Consider using the attrs method, together with a style object for frequently changed styles.\\n' + 'Example:\\n' + ' const Component = styled.div.attrs(props => ({\\n' + ' style: {\\n' + ' background: props.background,\\n' + ' },\\n' + ' }))`width: 100%;`\\n\\n' + ' ');\n warningSeen = true;\n generatedClasses = {};\n }\n }\n };\n}; // \n\n\nvar determineTheme = function determineTheme(props, fallbackTheme) {\n var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT; // Props should take precedence over ThemeProvider, which should take precedence over\n // defaultProps, but React automatically puts defaultProps on props.\n\n /* eslint-disable react/prop-types, flowtype-errors/show-errors */\n\n var isDefaultTheme = defaultProps ? props.theme === defaultProps.theme : false;\n var theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme || defaultProps.theme;\n /* eslint-enable */\n\n return theme;\n}; // \n\n\nvar escapeRegex = /[[\\].#*$><+~=|^:(),\"'`-]+/g;\nvar dashesAtEnds = /(^-|-$)/g;\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\n\nfunction escape(str) {\n return str // Replace all possible CSS selectors\n .replace(escapeRegex, '-') // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '');\n} // \n\n\nfunction isTag(target) {\n return typeof target === 'string' && (process.env.NODE_ENV !== 'production' ? target.charAt(0) === target.charAt(0).toLowerCase() : true);\n} // \n\n\nfunction generateDisplayName(target) {\n // $FlowFixMe\n return isTag(target) ? 'styled.' + target : 'Styled(' + getComponentName(target) + ')';\n}\n\nvar _TYPE_STATICS;\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDerivedStateFromProps: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar TYPE_STATICS = (_TYPE_STATICS = {}, _TYPE_STATICS[ForwardRef] = {\n $$typeof: true,\n render: true\n}, _TYPE_STATICS);\nvar defineProperty$1 = Object.defineProperty,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n _Object$getOwnPropert = Object.getOwnPropertySymbols,\n getOwnPropertySymbols = _Object$getOwnPropert === undefined ? function () {\n return [];\n} : _Object$getOwnPropert,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getPrototypeOf = Object.getPrototypeOf,\n objectPrototype = Object.prototype;\nvar arrayPrototype = Array.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n\n var keys = arrayPrototype.concat(getOwnPropertyNames(sourceComponent), // $FlowFixMe\n getOwnPropertySymbols(sourceComponent));\n var targetStatics = TYPE_STATICS[targetComponent.$$typeof] || REACT_STATICS;\n var sourceStatics = TYPE_STATICS[sourceComponent.$$typeof] || REACT_STATICS;\n var i = keys.length;\n var descriptor = void 0;\n var key = void 0; // eslint-disable-next-line no-plusplus\n\n while (i--) {\n key = keys[i];\n\n if ( // $FlowFixMe\n !KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && // $FlowFixMe\n !(targetStatics && targetStatics[key])) {\n descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n if (descriptor) {\n try {\n // Avoid failures from read-only properties\n defineProperty$1(targetComponent, key, descriptor);\n } catch (e) {\n /* fail silently */\n }\n }\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n} // \n\n\nfunction isDerivedReactComponent(fn) {\n return !!(fn && fn.prototype && fn.prototype.isReactComponent);\n} // \n// Helper to call a given function, only once\n\n\nvar once = function once(cb) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n cb.apply(undefined, arguments);\n }\n };\n}; // \n\n\nvar ThemeContext = createContext();\nvar ThemeConsumer = ThemeContext.Consumer;\n/**\n * Provide a theme to an entire react component tree via context\n */\n\nvar ThemeProvider = function (_Component) {\n inherits(ThemeProvider, _Component);\n\n function ThemeProvider(props) {\n classCallCheck(this, ThemeProvider);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext.bind(_this));\n _this.renderInner = _this.renderInner.bind(_this);\n return _this;\n }\n\n ThemeProvider.prototype.render = function render() {\n if (!this.props.children) return null;\n return React.createElement(ThemeContext.Consumer, null, this.renderInner);\n };\n\n ThemeProvider.prototype.renderInner = function renderInner(outerTheme) {\n var context = this.getContext(this.props.theme, outerTheme);\n return React.createElement(ThemeContext.Provider, {\n value: context\n }, this.props.children);\n };\n /**\n * Get the theme from the props, supporting both (outerTheme) => {}\n * as well as object notation\n */\n\n\n ThemeProvider.prototype.getTheme = function getTheme(theme, outerTheme) {\n if (isFunction(theme)) {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme === null || Array.isArray(mergedTheme) || (typeof mergedTheme === 'undefined' ? 'undefined' : _typeof(mergedTheme)) !== 'object')) {\n throw new StyledComponentsError(7);\n }\n\n return mergedTheme;\n }\n\n if (theme === null || Array.isArray(theme) || (typeof theme === 'undefined' ? 'undefined' : _typeof(theme)) !== 'object') {\n throw new StyledComponentsError(8);\n }\n\n return _extends({}, outerTheme, theme);\n };\n\n ThemeProvider.prototype.getContext = function getContext(theme, outerTheme) {\n return this.getTheme(theme, outerTheme);\n };\n\n return ThemeProvider;\n}(Component); // \n\n\nvar CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nvar ServerStyleSheet = function () {\n function ServerStyleSheet() {\n classCallCheck(this, ServerStyleSheet);\n /* The master sheet might be reset, so keep a reference here */\n\n this.masterSheet = StyleSheet.master;\n this.instance = this.masterSheet.clone();\n this.sealed = false;\n }\n /**\n * Mark the ServerStyleSheet as being fully emitted and manually GC it from the\n * StyleSheet singleton.\n */\n\n\n ServerStyleSheet.prototype.seal = function seal() {\n if (!this.sealed) {\n /* Remove sealed StyleSheets from the master sheet */\n var index = this.masterSheet.clones.indexOf(this.instance);\n this.masterSheet.clones.splice(index, 1);\n this.sealed = true;\n }\n };\n\n ServerStyleSheet.prototype.collectStyles = function collectStyles(children) {\n if (this.sealed) {\n throw new StyledComponentsError(2);\n }\n\n return React.createElement(StyleSheetManager, {\n sheet: this.instance\n }, children);\n };\n\n ServerStyleSheet.prototype.getStyleTags = function getStyleTags() {\n this.seal();\n return this.instance.toHTML();\n };\n\n ServerStyleSheet.prototype.getStyleElement = function getStyleElement() {\n this.seal();\n return this.instance.toReactElements();\n };\n\n ServerStyleSheet.prototype.interleaveWithNodeStream = function interleaveWithNodeStream(readableStream) {\n var _this = this;\n\n {\n throw new StyledComponentsError(3);\n }\n /* the tag index keeps track of which tags have already been emitted */\n\n var instance = this.instance;\n var instanceTagIndex = 0;\n var streamAttr = SC_STREAM_ATTR + '=\"true\"';\n var transformer = new stream.Transform({\n transform: function appendStyleChunks(chunk,\n /* encoding */\n _, callback) {\n var tags = instance.tags;\n var html = '';\n /* retrieve html for each new style tag */\n\n for (; instanceTagIndex < tags.length; instanceTagIndex += 1) {\n var tag = tags[instanceTagIndex];\n html += tag.toHTML(streamAttr);\n }\n /* force our StyleSheets to emit entirely new tags */\n\n\n instance.sealAllTags();\n var renderedHtml = chunk.toString();\n /* prepend style html to chunk, unless the start of the chunk is a closing tag in which case append right after that */\n\n if (CLOSING_TAG_R.test(renderedHtml)) {\n var endOfClosingTag = renderedHtml.indexOf('>');\n this.push(renderedHtml.slice(0, endOfClosingTag + 1) + html + renderedHtml.slice(endOfClosingTag + 1));\n } else this.push(html + renderedHtml);\n\n callback();\n }\n });\n readableStream.on('end', function () {\n return _this.seal();\n });\n readableStream.on('error', function (err) {\n _this.seal(); // forward the error to the transform stream\n\n\n transformer.emit('error', err);\n });\n return readableStream.pipe(transformer);\n };\n\n return ServerStyleSheet;\n}(); // \n\n\nvar StyleSheetContext = createContext();\nvar StyleSheetConsumer = StyleSheetContext.Consumer;\n\nvar StyleSheetManager = function (_Component) {\n inherits(StyleSheetManager, _Component);\n\n function StyleSheetManager(props) {\n classCallCheck(this, StyleSheetManager);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext);\n return _this;\n }\n\n StyleSheetManager.prototype.getContext = function getContext(sheet, target) {\n if (sheet) {\n return sheet;\n } else if (target) {\n return new StyleSheet(target);\n } else {\n throw new StyledComponentsError(4);\n }\n };\n\n StyleSheetManager.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n sheet = _props.sheet,\n target = _props.target;\n return React.createElement(StyleSheetContext.Provider, {\n value: this.getContext(sheet, target)\n }, process.env.NODE_ENV !== 'production' ? React.Children.only(children) : children);\n };\n\n return StyleSheetManager;\n}(Component);\n\nprocess.env.NODE_ENV !== \"production\" ? StyleSheetManager.propTypes = {\n sheet: PropTypes.oneOfType([PropTypes.instanceOf(StyleSheet), PropTypes.instanceOf(ServerStyleSheet)]),\n target: PropTypes.shape({\n appendChild: PropTypes.func.isRequired\n })\n} : void 0; // \n\nvar identifiers = {};\n/* We depend on components having unique IDs */\n\nfunction generateId(_ComponentStyle, _displayName, parentComponentId) {\n var displayName = typeof _displayName !== 'string' ? 'sc' : escape(_displayName);\n /**\n * This ensures uniqueness if two components happen to share\n * the same displayName.\n */\n\n var nr = (identifiers[displayName] || 0) + 1;\n identifiers[displayName] = nr;\n\n var componentId = displayName + '-' + _ComponentStyle.generateName(displayName + nr);\n\n return parentComponentId ? parentComponentId + '-' + componentId : componentId;\n} // $FlowFixMe\n\n\nvar StyledComponent = function (_Component) {\n inherits(StyledComponent, _Component);\n\n function StyledComponent() {\n classCallCheck(this, StyledComponent);\n\n var _this = possibleConstructorReturn(this, _Component.call(this));\n\n _this.attrs = {};\n _this.renderOuter = _this.renderOuter.bind(_this);\n _this.renderInner = _this.renderInner.bind(_this);\n\n if (process.env.NODE_ENV !== 'production') {\n _this.warnInnerRef = once(function (displayName) {\n return (// eslint-disable-next-line no-console\n console.warn('The \"innerRef\" API has been removed in styled-components v4 in favor of React 16 ref forwarding, use \"ref\" instead like a typical component. \"innerRef\" was detected on component \"' + displayName + '\".')\n );\n });\n _this.warnAttrsFnObjectKeyDeprecated = once(function (key, displayName) {\n return (// eslint-disable-next-line no-console\n console.warn('Functions as object-form attrs({}) keys are now deprecated and will be removed in a future version of styled-components. Switch to the new attrs(props => ({})) syntax instead for easier and more powerful composition. The attrs key in question is \"' + key + '\" on component \"' + displayName + '\".', '\\n ' + new Error().stack)\n );\n });\n _this.warnNonStyledComponentAttrsObjectKey = once(function (key, displayName) {\n return (// eslint-disable-next-line no-console\n console.warn('It looks like you\\'ve used a non styled-component as the value for the \"' + key + '\" prop in an object-form attrs constructor of \"' + displayName + '\".\\n' + 'You should use the new function-form attrs constructor which avoids this issue: attrs(props => ({ yourStuff }))\\n' + \"To continue using the deprecated object syntax, you'll need to wrap your component prop in a function to make it available inside the styled component (you'll still get the deprecation warning though.)\\n\" + ('For example, { ' + key + ': () => InnerComponent } instead of { ' + key + ': InnerComponent }'))\n );\n });\n }\n\n return _this;\n }\n\n StyledComponent.prototype.render = function render() {\n return React.createElement(StyleSheetConsumer, null, this.renderOuter);\n };\n\n StyledComponent.prototype.renderOuter = function renderOuter() {\n var styleSheet = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : StyleSheet.master;\n this.styleSheet = styleSheet; // No need to subscribe a static component to theme changes, it won't change anything\n\n if (this.props.forwardedComponent.componentStyle.isStatic) return this.renderInner();\n return React.createElement(ThemeConsumer, null, this.renderInner);\n };\n\n StyledComponent.prototype.renderInner = function renderInner(theme) {\n var _props$forwardedCompo = this.props.forwardedComponent,\n componentStyle = _props$forwardedCompo.componentStyle,\n defaultProps = _props$forwardedCompo.defaultProps,\n displayName = _props$forwardedCompo.displayName,\n foldedComponentIds = _props$forwardedCompo.foldedComponentIds,\n styledComponentId = _props$forwardedCompo.styledComponentId,\n target = _props$forwardedCompo.target;\n var generatedClassName = void 0;\n\n if (componentStyle.isStatic) {\n generatedClassName = this.generateAndInjectStyles(EMPTY_OBJECT, this.props);\n } else {\n generatedClassName = this.generateAndInjectStyles(determineTheme(this.props, theme, defaultProps) || EMPTY_OBJECT, this.props);\n }\n\n var elementToBeCreated = this.props.as || this.attrs.as || target;\n var isTargetTag = isTag(elementToBeCreated);\n var propsForElement = {};\n\n var computedProps = _extends({}, this.props, this.attrs);\n\n var key = void 0; // eslint-disable-next-line guard-for-in\n\n for (key in computedProps) {\n if (process.env.NODE_ENV !== 'production' && key === 'innerRef' && isTargetTag) {\n this.warnInnerRef(displayName);\n }\n\n if (key === 'forwardedComponent' || key === 'as') {\n continue;\n } else if (key === 'forwardedRef') propsForElement.ref = computedProps[key];else if (key === 'forwardedAs') propsForElement.as = computedProps[key];else if (!isTargetTag || validAttr(key)) {\n // Don't pass through non HTML tags through to HTML elements\n propsForElement[key] = computedProps[key];\n }\n }\n\n if (this.props.style && this.attrs.style) {\n propsForElement.style = _extends({}, this.attrs.style, this.props.style);\n }\n\n propsForElement.className = Array.prototype.concat(foldedComponentIds, styledComponentId, generatedClassName !== styledComponentId ? generatedClassName : null, this.props.className, this.attrs.className).filter(Boolean).join(' ');\n return createElement(elementToBeCreated, propsForElement);\n };\n\n StyledComponent.prototype.buildExecutionContext = function buildExecutionContext(theme, props, attrs) {\n var _this2 = this;\n\n var context = _extends({}, props, {\n theme: theme\n });\n\n if (!attrs.length) return context;\n this.attrs = {};\n attrs.forEach(function (attrDef) {\n var resolvedAttrDef = attrDef;\n var attrDefWasFn = false;\n var attr = void 0;\n var key = void 0;\n\n if (isFunction(resolvedAttrDef)) {\n // $FlowFixMe\n resolvedAttrDef = resolvedAttrDef(context);\n attrDefWasFn = true;\n }\n /* eslint-disable guard-for-in */\n // $FlowFixMe\n\n\n for (key in resolvedAttrDef) {\n attr = resolvedAttrDef[key];\n\n if (!attrDefWasFn) {\n if (isFunction(attr) && !isDerivedReactComponent(attr) && !isStyledComponent(attr)) {\n if (process.env.NODE_ENV !== 'production') {\n _this2.warnAttrsFnObjectKeyDeprecated(key, props.forwardedComponent.displayName);\n }\n\n attr = attr(context);\n\n if (process.env.NODE_ENV !== 'production' && React.isValidElement(attr)) {\n _this2.warnNonStyledComponentAttrsObjectKey(key, props.forwardedComponent.displayName);\n }\n }\n }\n\n _this2.attrs[key] = attr;\n context[key] = attr;\n }\n /* eslint-enable */\n\n });\n return context;\n };\n\n StyledComponent.prototype.generateAndInjectStyles = function generateAndInjectStyles(theme, props) {\n var _props$forwardedCompo2 = props.forwardedComponent,\n attrs = _props$forwardedCompo2.attrs,\n componentStyle = _props$forwardedCompo2.componentStyle,\n warnTooManyClasses = _props$forwardedCompo2.warnTooManyClasses; // statically styled-components don't need to build an execution context object,\n // and shouldn't be increasing the number of class names\n\n if (componentStyle.isStatic && !attrs.length) {\n return componentStyle.generateAndInjectStyles(EMPTY_OBJECT, this.styleSheet);\n }\n\n var className = componentStyle.generateAndInjectStyles(this.buildExecutionContext(theme, props, attrs), this.styleSheet);\n if (process.env.NODE_ENV !== 'production' && warnTooManyClasses) warnTooManyClasses(className);\n return className;\n };\n\n return StyledComponent;\n}(Component);\n\nfunction createStyledComponent(target, options, rules) {\n var isTargetStyledComp = isStyledComponent(target);\n var isClass = !isTag(target);\n var _options$displayName = options.displayName,\n displayName = _options$displayName === undefined ? generateDisplayName(target) : _options$displayName,\n _options$componentId = options.componentId,\n componentId = _options$componentId === undefined ? generateId(ComponentStyle, options.displayName, options.parentComponentId) : _options$componentId,\n _options$ParentCompon = options.ParentComponent,\n ParentComponent = _options$ParentCompon === undefined ? StyledComponent : _options$ParentCompon,\n _options$attrs = options.attrs,\n attrs = _options$attrs === undefined ? EMPTY_ARRAY : _options$attrs;\n var styledComponentId = options.displayName && options.componentId ? escape(options.displayName) + '-' + options.componentId : options.componentId || componentId; // fold the underlying StyledComponent attrs up (implicit extend)\n\n var finalAttrs = // $FlowFixMe\n isTargetStyledComp && target.attrs ? Array.prototype.concat(target.attrs, attrs).filter(Boolean) : attrs;\n var componentStyle = new ComponentStyle(isTargetStyledComp ? // fold the underlying StyledComponent rules up (implicit extend)\n // $FlowFixMe\n target.componentStyle.rules.concat(rules) : rules, finalAttrs, styledComponentId);\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n\n var WrappedStyledComponent = void 0;\n\n var forwardRef = function forwardRef(props, ref) {\n return React.createElement(ParentComponent, _extends({}, props, {\n forwardedComponent: WrappedStyledComponent,\n forwardedRef: ref\n }));\n };\n\n forwardRef.displayName = displayName;\n WrappedStyledComponent = React.forwardRef(forwardRef);\n WrappedStyledComponent.displayName = displayName; // $FlowFixMe\n\n WrappedStyledComponent.attrs = finalAttrs; // $FlowFixMe\n\n WrappedStyledComponent.componentStyle = componentStyle; // $FlowFixMe\n\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp ? // $FlowFixMe\n Array.prototype.concat(target.foldedComponentIds, target.styledComponentId) : EMPTY_ARRAY; // $FlowFixMe\n\n WrappedStyledComponent.styledComponentId = styledComponentId; // fold the underlying StyledComponent target up since we folded the styles\n // $FlowFixMe\n\n WrappedStyledComponent.target = isTargetStyledComp ? target.target : target; // $FlowFixMe\n\n WrappedStyledComponent.withComponent = function withComponent(tag) {\n var previousComponentId = options.componentId,\n optionsToCopy = objectWithoutProperties(options, ['componentId']);\n var newComponentId = previousComponentId && previousComponentId + '-' + (isTag(tag) ? tag : escape(getComponentName(tag)));\n\n var newOptions = _extends({}, optionsToCopy, {\n attrs: finalAttrs,\n componentId: newComponentId,\n ParentComponent: ParentComponent\n });\n\n return createStyledComponent(tag, newOptions, rules);\n }; // $FlowFixMe\n\n\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get: function get$$1() {\n return this._foldedDefaultProps;\n },\n set: function set$$1(obj) {\n // $FlowFixMe\n this._foldedDefaultProps = isTargetStyledComp ? merge(target.defaultProps, obj) : obj;\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(displayName);\n } // $FlowFixMe\n\n\n WrappedStyledComponent.toString = function () {\n return '.' + WrappedStyledComponent.styledComponentId;\n };\n\n if (isClass) {\n hoistNonReactStatics(WrappedStyledComponent, target, {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n styledComponentId: true,\n target: true,\n withComponent: true\n });\n }\n\n return WrappedStyledComponent;\n} // \n// Thanks to ReactDOMFactories for this handy list!\n\n\nvar domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'marker', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan']; // \n\nvar styled = function styled(tag) {\n return constructWithOptions(createStyledComponent, tag);\n}; // Shorthands for all valid HTML Elements\n\n\ndomElements.forEach(function (domElement) {\n styled[domElement] = styled(domElement);\n}); // \n\nvar GlobalStyle = function () {\n function GlobalStyle(rules, componentId) {\n classCallCheck(this, GlobalStyle);\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules, EMPTY_ARRAY);\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n GlobalStyle.prototype.createStyles = function createStyles(executionContext, styleSheet) {\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var css = stringifyRules(flatCSS, '');\n styleSheet.inject(this.componentId, css);\n };\n\n GlobalStyle.prototype.removeStyles = function removeStyles(styleSheet) {\n var componentId = this.componentId;\n\n if (styleSheet.hasId(componentId)) {\n styleSheet.remove(componentId);\n }\n }; // TODO: overwrite in-place instead of remove+create?\n\n\n GlobalStyle.prototype.renderStyles = function renderStyles(executionContext, styleSheet) {\n this.removeStyles(styleSheet);\n this.createStyles(executionContext, styleSheet);\n };\n\n return GlobalStyle;\n}(); // \n// place our cache into shared context so it'll persist between HMRs\n\n\nif (IS_BROWSER) {\n window.scCGSHMRCache = {};\n}\n\nfunction createGlobalStyle(strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n var id = 'sc-global-' + murmurhash(JSON.stringify(rules));\n var style = new GlobalStyle(rules, id);\n\n var GlobalStyleComponent = function (_React$Component) {\n inherits(GlobalStyleComponent, _React$Component);\n\n function GlobalStyleComponent(props) {\n classCallCheck(this, GlobalStyleComponent);\n\n var _this = possibleConstructorReturn(this, _React$Component.call(this, props));\n\n var _this$constructor = _this.constructor,\n globalStyle = _this$constructor.globalStyle,\n styledComponentId = _this$constructor.styledComponentId;\n\n if (IS_BROWSER) {\n window.scCGSHMRCache[styledComponentId] = (window.scCGSHMRCache[styledComponentId] || 0) + 1;\n }\n /**\n * This fixes HMR compatibility. Don't ask me why, but this combination of\n * caching the closure variables via statics and then persisting the statics in\n * state works across HMR where no other combination did. ¯\\_(ツ)_/¯\n */\n\n\n _this.state = {\n globalStyle: globalStyle,\n styledComponentId: styledComponentId\n };\n return _this;\n }\n\n GlobalStyleComponent.prototype.componentWillUnmount = function componentWillUnmount() {\n if (window.scCGSHMRCache[this.state.styledComponentId]) {\n window.scCGSHMRCache[this.state.styledComponentId] -= 1;\n }\n /**\n * Depending on the order \"render\" is called this can cause the styles to be lost\n * until the next render pass of the remaining instance, which may\n * not be immediate.\n */\n\n\n if (window.scCGSHMRCache[this.state.styledComponentId] === 0) {\n this.state.globalStyle.removeStyles(this.styleSheet);\n }\n };\n\n GlobalStyleComponent.prototype.render = function render() {\n var _this2 = this;\n\n if (process.env.NODE_ENV !== 'production' && React.Children.count(this.props.children)) {\n // eslint-disable-next-line no-console\n console.warn('The global style component ' + this.state.styledComponentId + ' was given child JSX. createGlobalStyle does not render children.');\n }\n\n return React.createElement(StyleSheetConsumer, null, function (styleSheet) {\n _this2.styleSheet = styleSheet || StyleSheet.master;\n var globalStyle = _this2.state.globalStyle;\n\n if (globalStyle.isStatic) {\n globalStyle.renderStyles(STATIC_EXECUTION_CONTEXT, _this2.styleSheet);\n return null;\n } else {\n return React.createElement(ThemeConsumer, null, function (theme) {\n // $FlowFixMe\n var defaultProps = _this2.constructor.defaultProps;\n\n var context = _extends({}, _this2.props);\n\n if (typeof theme !== 'undefined') {\n context.theme = determineTheme(_this2.props, theme, defaultProps);\n }\n\n globalStyle.renderStyles(context, _this2.styleSheet);\n return null;\n });\n }\n });\n };\n\n return GlobalStyleComponent;\n }(React.Component);\n\n GlobalStyleComponent.globalStyle = style;\n GlobalStyleComponent.styledComponentId = id;\n return GlobalStyleComponent;\n} // \n\n\nvar replaceWhitespace = function replaceWhitespace(str) {\n return str.replace(/\\s|\\\\n/g, '');\n};\n\nfunction keyframes(strings) {\n /* Warning if you've used keyframes on React Native */\n if (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn('`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.');\n }\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n var name = generateAlphabeticName(murmurhash(replaceWhitespace(JSON.stringify(rules))));\n return new Keyframes(name, stringifyRules(rules, name, '@keyframes'));\n} // \n\n\nvar withTheme = function withTheme(Component$$1) {\n var WithTheme = React.forwardRef(function (props, ref) {\n return React.createElement(ThemeConsumer, null, function (theme) {\n // $FlowFixMe\n var defaultProps = Component$$1.defaultProps;\n var themeProp = determineTheme(props, theme, defaultProps);\n\n if (process.env.NODE_ENV !== 'production' && themeProp === undefined) {\n // eslint-disable-next-line no-console\n console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + getComponentName(Component$$1) + '\"');\n }\n\n return React.createElement(Component$$1, _extends({}, props, {\n theme: themeProp,\n ref: ref\n }));\n });\n });\n hoistNonReactStatics(WithTheme, Component$$1);\n WithTheme.displayName = 'WithTheme(' + getComponentName(Component$$1) + ')';\n return WithTheme;\n}; // \n\n/* eslint-disable */\n\n\nvar __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS = {\n StyleSheet: StyleSheet\n}; // \n\n/* Warning if you've imported this file on React Native */\n\nif (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like you've imported 'styled-components' on React Native.\\n\" + \"Perhaps you're looking to import 'styled-components/native'?\\n\" + 'Read more about this at https://www.styled-components.com/docs/basics#react-native');\n}\n/* Warning if there are several instances of styled-components */\n\n\nif (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test' && typeof window !== 'undefined' && typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Node.js') === -1 && navigator.userAgent.indexOf('jsdom') === -1) {\n window['__styled-components-init__'] = window['__styled-components-init__'] || 0;\n\n if (window['__styled-components-init__'] === 1) {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. \" + 'This may cause dynamic styles not rendering properly, errors happening during rehydration process ' + 'and makes your application bigger without a good reason.\\n\\n' + 'See https://s-c.sh/2BAXzed for more info.');\n }\n\n window['__styled-components-init__'] += 1;\n} //\n\n\nexport default styled;\nexport { createGlobalStyle, css, isStyledComponent, keyframes, ServerStyleSheet, StyleSheetConsumer, StyleSheetContext, StyleSheetManager, ThemeConsumer, ThemeContext, ThemeProvider, withTheme, __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","var global = require('../internals/global');\n\nvar isCallable = require('../internals/is-callable');\n\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError; // `Assert: IsCallable(argument) is true`\n\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};","var fails = require('../internals/fails'); // Detect IE8's incomplete defineProperty implementation\n\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, {\n get: function get() {\n return 7;\n }\n })[1] != 7;\n});","var global = require('../internals/global');\n\nvar bind = require('../internals/function-bind-context');\n\nvar call = require('../internals/function-call');\n\nvar anObject = require('../internals/an-object');\n\nvar tryToString = require('../internals/try-to-string');\n\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\n\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar getIterator = require('../internals/get-iterator');\n\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function Result(stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function stop(condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function callFn(value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n }\n\n return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable'); // optimisation for array iterators\n\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n }\n\n return new Result(false);\n }\n\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n }\n\n return new Result(false);\n};","var global = require('../internals/global');\n\nvar shared = require('../internals/shared');\n\nvar hasOwn = require('../internals/has-own-property');\n\nvar uid = require('../internals/uid');\n\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n }\n\n return WellKnownSymbolsStore[name];\n};","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};","'use strict';\n\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\n\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar global = require('../internals/global');\n\nvar isCallable = require('../internals/is-callable');\n\nvar isObject = require('../internals/is-object');\n\nvar hasOwn = require('../internals/has-own-property');\n\nvar classof = require('../internals/classof');\n\nvar tryToString = require('../internals/try-to-string');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = uid('TYPED_ARRAY_CONSTRUCTOR'); // Fixing native typed arrays in Opera Presto crashes the browser, see #595\n\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView' || hasOwn(TypedArrayConstructorsList, klass) || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function isTypedArray(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass) || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function aTypedArray(it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function aTypedArrayConstructor(C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function exportTypedArrayMethod(KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) {\n /* empty */\n }\n }\n }\n\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function exportTypedArrayStaticMethod(KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) {\n /* empty */\n }\n }\n\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) {\n /* empty */\n }\n } else return;\n }\n\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);\n} // WebKit bug - typed arrays constructors prototype is Object.prototype\n\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n} // WebKit bug - one more object in Uint8ClampedArray prototype chain\n\n\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, {\n get: function get() {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\n });\n\n for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_CONSTRUCTOR: TYPED_ARRAY_CONSTRUCTOR,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar ns = \"[Blueprint]\";\nexport var CLAMP_MIN_MAX = ns + \" clamp: max cannot be less than min\";\nexport var ALERT_WARN_CANCEL_PROPS = ns + \" cancelButtonText and onCancel should be set together.\";\nexport var ALERT_WARN_CANCEL_ESCAPE_KEY = ns + \" canEscapeKeyCancel enabled without onCancel or onClose handler.\";\nexport var ALERT_WARN_CANCEL_OUTSIDE_CLICK = ns + \" canOutsideClickCancel enabled without onCancel or onClose handler.\";\nexport var COLLAPSIBLE_LIST_INVALID_CHILD = ns + \" children must be s\";\nexport var CONTEXTMENU_WARN_DECORATOR_NO_METHOD = ns + \" @ContextMenuTarget-decorated class should implement renderContextMenu.\";\nexport var CONTEXTMENU_WARN_DECORATOR_NEEDS_REACT_ELEMENT = ns + \" \\\"@ContextMenuTarget-decorated components must return a single JSX.Element or an empty render.\";\nexport var HOTKEYS_HOTKEY_CHILDREN = ns + \" only accepts children.\";\nexport var HOTKEYS_WARN_DECORATOR_NO_METHOD = ns + \" @HotkeysTarget-decorated class should implement renderHotkeys.\";\nexport var HOTKEYS_WARN_DECORATOR_NEEDS_REACT_ELEMENT = ns + \" \\\"@HotkeysTarget-decorated components must return a single JSX.Element or an empty render.\";\nexport var HOTKEYS_TARGET2_CHILDREN_LOCAL_HOTKEYS = ns + \" was configured with local hotkeys, but you did not use the generated event handlers to bind their event handlers. Try using a render function as the child of this component.\";\nexport var INPUT_WARN_LEFT_ELEMENT_LEFT_ICON_MUTEX = ns + \" leftElement and leftIcon prop are mutually exclusive, with leftElement taking priority.\";\nexport var NUMERIC_INPUT_MIN_MAX = ns + \" requires min to be no greater than max if both are defined.\";\nexport var NUMERIC_INPUT_MINOR_STEP_SIZE_BOUND = ns + \" requires minorStepSize to be no greater than stepSize.\";\nexport var NUMERIC_INPUT_MAJOR_STEP_SIZE_BOUND = ns + \" requires stepSize to be no greater than majorStepSize.\";\nexport var NUMERIC_INPUT_MINOR_STEP_SIZE_NON_POSITIVE = ns + \" requires minorStepSize to be strictly greater than zero.\";\nexport var NUMERIC_INPUT_MAJOR_STEP_SIZE_NON_POSITIVE = ns + \" requires majorStepSize to be strictly greater than zero.\";\nexport var NUMERIC_INPUT_STEP_SIZE_NON_POSITIVE = ns + \" requires stepSize to be strictly greater than zero.\";\nexport var NUMERIC_INPUT_CONTROLLED_VALUE_INVALID = ns + \" controlled value prop does not adhere to stepSize, min, and/or max constraints.\";\nexport var PANEL_STACK_INITIAL_PANEL_STACK_MUTEX = ns + \" requires exactly one of initialPanel and stack prop\";\nexport var PANEL_STACK_REQUIRES_PANEL = ns + \" requires at least one panel in the stack\";\nexport var OVERFLOW_LIST_OBSERVE_PARENTS_CHANGED = ns + \" does not support changing observeParents after mounting.\";\nexport var POPOVER_REQUIRES_TARGET = ns + \" requires target prop or at least one child element.\";\nexport var POPOVER_HAS_BACKDROP_INTERACTION = ns + \" requires interactionKind={PopoverInteractionKind.CLICK}.\";\nexport var POPOVER_WARN_TOO_MANY_CHILDREN = ns + \" supports one or two children; additional children are ignored.\" + \" First child is the target, second child is the content. You may instead supply these two as props.\";\nexport var POPOVER_WARN_DOUBLE_CONTENT = ns + \" with two children ignores content prop; use either prop or children.\";\nexport var POPOVER_WARN_DOUBLE_TARGET = ns + \" with children ignores target prop; use either prop or children.\";\nexport var POPOVER_WARN_EMPTY_CONTENT = ns + \" Disabling with empty/whitespace content...\";\nexport var POPOVER_WARN_HAS_BACKDROP_INLINE = ns + \" ignores hasBackdrop\";\nexport var POPOVER_WARN_PLACEMENT_AND_POSITION_MUTEX = ns + \" supports either placement or position prop, not both.\";\nexport var POPOVER_WARN_UNCONTROLLED_ONINTERACTION = ns + \" onInteraction is ignored when uncontrolled.\";\nexport var PORTAL_CONTEXT_CLASS_NAME_STRING = ns + \" context blueprintPortalClassName must be string\";\nexport var RADIOGROUP_WARN_CHILDREN_OPTIONS_MUTEX = ns + \" children and options prop are mutually exclusive, with options taking priority.\";\nexport var SLIDER_ZERO_STEP = ns + \" stepSize must be greater than zero.\";\nexport var SLIDER_ZERO_LABEL_STEP = ns + \" labelStepSize must be greater than zero.\";\nexport var RANGESLIDER_NULL_VALUE = ns + \" value prop must be an array of two non-null numbers.\";\nexport var MULTISLIDER_INVALID_CHILD = ns + \" children must be s or s\";\nexport var MULTISLIDER_WARN_LABEL_STEP_SIZE_LABEL_VALUES_MUTEX = ns + \" labelStepSize and labelValues prop are mutually exclusive, with labelStepSize taking priority.\";\nexport var SPINNER_WARN_CLASSES_SIZE = ns + \" Classes.SMALL/LARGE are ignored if size prop is set.\";\nexport var TOASTER_CREATE_NULL = ns + \" Toaster.create() is not supported inside React lifecycle methods in React 16.\" + \" See usage example on the docs site.\";\nexport var TOASTER_WARN_INLINE = ns + \" Toaster.create() ignores inline prop as it always creates a new element.\";\nexport var DIALOG_WARN_NO_HEADER_ICON = ns + \" iconName is ignored if title is omitted.\";\nexport var DIALOG_WARN_NO_HEADER_CLOSE_BUTTON = ns + \" isCloseButtonShown prop is ignored if title is omitted.\";\nexport var DRAWER_VERTICAL_IS_IGNORED = ns + \" vertical is ignored if position is defined\";\nexport var DRAWER_ANGLE_POSITIONS_ARE_CASTED = ns + \" all angle positions are casted into pure position (TOP, BOTTOM, LEFT or RIGHT)\";\nexport var TOASTER_MAX_TOASTS_INVALID = ns + \" maxToasts is set to an invalid number, must be greater than 0\";","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty); // `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es-x/no-object-hasown -- safe\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};","var global = require('../internals/global');\n\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\n\nvar anObject = require('../internals/an-object');\n\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError; // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n\nvar $defineProperty = Object.defineProperty; // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable'; // `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n }\n\n return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) {\n /* empty */\n }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};","var global = require('../internals/global');\n\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar _a, _b, _c, _d;\n\nimport { Alignment } from \"./alignment\";\nimport { Elevation } from \"./elevation\";\nimport { Intent } from \"./intent\";\nimport { Position } from \"./position\";\nvar NS = \"bp3\";\n\nif (typeof process !== \"undefined\") {\n NS = (_d = (_b = (_a = process.env) === null || _a === void 0 ? void 0 : _a.BLUEPRINT_NAMESPACE) !== null && _b !== void 0 ? _b : (_c = process.env) === null || _c === void 0 ? void 0 : _c.REACT_APP_BLUEPRINT_NAMESPACE) !== null && _d !== void 0 ? _d : NS;\n} // modifiers\n\n\nexport var ACTIVE = \"\".concat(NS, \"-active\");\nexport var ALIGN_LEFT = \"\".concat(NS, \"-align-left\");\nexport var ALIGN_RIGHT = \"\".concat(NS, \"-align-right\");\nexport var DARK = \"\".concat(NS, \"-dark\");\nexport var DISABLED = \"\".concat(NS, \"-disabled\");\nexport var FILL = \"\".concat(NS, \"-fill\");\nexport var FIXED = \"\".concat(NS, \"-fixed\");\nexport var FIXED_TOP = \"\".concat(NS, \"-fixed-top\");\nexport var INLINE = \"\".concat(NS, \"-inline\");\nexport var INTERACTIVE = \"\".concat(NS, \"-interactive\");\nexport var LARGE = \"\".concat(NS, \"-large\");\nexport var LOADING = \"\".concat(NS, \"-loading\");\nexport var MINIMAL = \"\".concat(NS, \"-minimal\");\nexport var OUTLINED = \"\".concat(NS, \"-outlined\");\nexport var MULTILINE = \"\".concat(NS, \"-multiline\");\nexport var ROUND = \"\".concat(NS, \"-round\");\nexport var SMALL = \"\".concat(NS, \"-small\");\nexport var VERTICAL = \"\".concat(NS, \"-vertical\");\nexport var POSITION_TOP = positionClass(Position.TOP);\nexport var POSITION_BOTTOM = positionClass(Position.BOTTOM);\nexport var POSITION_LEFT = positionClass(Position.LEFT);\nexport var POSITION_RIGHT = positionClass(Position.RIGHT);\nexport var ELEVATION_0 = elevationClass(Elevation.ZERO);\nexport var ELEVATION_1 = elevationClass(Elevation.ONE);\nexport var ELEVATION_2 = elevationClass(Elevation.TWO);\nexport var ELEVATION_3 = elevationClass(Elevation.THREE);\nexport var ELEVATION_4 = elevationClass(Elevation.FOUR);\nexport var INTENT_PRIMARY = intentClass(Intent.PRIMARY);\nexport var INTENT_SUCCESS = intentClass(Intent.SUCCESS);\nexport var INTENT_WARNING = intentClass(Intent.WARNING);\nexport var INTENT_DANGER = intentClass(Intent.DANGER);\nexport var FOCUS_DISABLED = \"\".concat(NS, \"-focus-disabled\"); // text utilities\n\nexport var UI_TEXT = \"\".concat(NS, \"-ui-text\");\nexport var RUNNING_TEXT = \"\".concat(NS, \"-running-text\");\nexport var MONOSPACE_TEXT = \"\".concat(NS, \"-monospace-text\");\nexport var TEXT_LARGE = \"\".concat(NS, \"-text-large\");\nexport var TEXT_SMALL = \"\".concat(NS, \"-text-small\");\nexport var TEXT_MUTED = \"\".concat(NS, \"-text-muted\");\nexport var TEXT_DISABLED = \"\".concat(NS, \"-text-disabled\");\nexport var TEXT_OVERFLOW_ELLIPSIS = \"\".concat(NS, \"-text-overflow-ellipsis\"); // textual elements\n\nexport var BLOCKQUOTE = \"\".concat(NS, \"-blockquote\");\nexport var CODE = \"\".concat(NS, \"-code\");\nexport var CODE_BLOCK = \"\".concat(NS, \"-code-block\");\nexport var HEADING = \"\".concat(NS, \"-heading\");\nexport var LIST = \"\".concat(NS, \"-list\");\nexport var LIST_UNSTYLED = \"\".concat(NS, \"-list-unstyled\");\nexport var RTL = \"\".concat(NS, \"-rtl\"); // layout utilities\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n * @deprecated this is no longer needed for ContextMenu2, will be removed in v4.0\n */\n\nexport var FIXED_POSITIONING_CONTAINING_BLOCK = \"\".concat(NS, \"-fixed-positioning-containing-block\"); // components\n\nexport var ALERT = \"\".concat(NS, \"-alert\");\nexport var ALERT_BODY = \"\".concat(ALERT, \"-body\");\nexport var ALERT_CONTENTS = \"\".concat(ALERT, \"-contents\");\nexport var ALERT_FOOTER = \"\".concat(ALERT, \"-footer\");\nexport var BREADCRUMB = \"\".concat(NS, \"-breadcrumb\");\nexport var BREADCRUMB_CURRENT = \"\".concat(BREADCRUMB, \"-current\");\nexport var BREADCRUMBS = \"\".concat(BREADCRUMB, \"s\");\nexport var BREADCRUMBS_COLLAPSED = \"\".concat(BREADCRUMB, \"s-collapsed\");\nexport var BUTTON = \"\".concat(NS, \"-button\");\nexport var BUTTON_GROUP = \"\".concat(BUTTON, \"-group\");\nexport var BUTTON_SPINNER = \"\".concat(BUTTON, \"-spinner\");\nexport var BUTTON_TEXT = \"\".concat(BUTTON, \"-text\");\nexport var CALLOUT = \"\".concat(NS, \"-callout\");\nexport var CALLOUT_ICON = \"\".concat(CALLOUT, \"-icon\");\nexport var CARD = \"\".concat(NS, \"-card\");\nexport var COLLAPSE = \"\".concat(NS, \"-collapse\");\nexport var COLLAPSE_BODY = \"\".concat(COLLAPSE, \"-body\");\nexport var COLLAPSIBLE_LIST = \"\".concat(NS, \"-collapse-list\");\nexport var CONTEXT_MENU = \"\".concat(NS, \"-context-menu\");\nexport var CONTEXT_MENU_POPOVER_TARGET = \"\".concat(CONTEXT_MENU, \"-popover-target\");\nexport var CONTROL_GROUP = \"\".concat(NS, \"-control-group\");\nexport var DIALOG = \"\".concat(NS, \"-dialog\");\nexport var DIALOG_CONTAINER = \"\".concat(DIALOG, \"-container\");\nexport var DIALOG_BODY = \"\".concat(DIALOG, \"-body\");\nexport var DIALOG_CLOSE_BUTTON = \"\".concat(DIALOG, \"-close-button\");\nexport var DIALOG_FOOTER = \"\".concat(DIALOG, \"-footer\");\nexport var DIALOG_FOOTER_ACTIONS = \"\".concat(DIALOG, \"-footer-actions\");\nexport var DIALOG_HEADER = \"\".concat(DIALOG, \"-header\");\nexport var DIALOG_STEP = \"\".concat(NS, \"-dialog-step\");\nexport var DIALOG_STEP_CONTAINER = \"\".concat(DIALOG_STEP, \"-container\");\nexport var DIALOG_STEP_TITLE = \"\".concat(DIALOG_STEP, \"-title\");\nexport var DIALOG_STEP_ICON = \"\".concat(DIALOG_STEP, \"-icon\");\nexport var DIALOG_STEP_VIEWED = \"\".concat(DIALOG_STEP, \"-viewed\");\nexport var DIVIDER = \"\".concat(NS, \"-divider\");\nexport var DRAWER = \"\".concat(NS, \"-drawer\");\nexport var DRAWER_BODY = \"\".concat(DRAWER, \"-body\");\nexport var DRAWER_FOOTER = \"\".concat(DRAWER, \"-footer\");\nexport var DRAWER_HEADER = \"\".concat(DRAWER, \"-header\");\nexport var EDITABLE_TEXT = \"\".concat(NS, \"-editable-text\");\nexport var EDITABLE_TEXT_CONTENT = \"\".concat(EDITABLE_TEXT, \"-content\");\nexport var EDITABLE_TEXT_EDITING = \"\".concat(EDITABLE_TEXT, \"-editing\");\nexport var EDITABLE_TEXT_INPUT = \"\".concat(EDITABLE_TEXT, \"-input\");\nexport var EDITABLE_TEXT_PLACEHOLDER = \"\".concat(EDITABLE_TEXT, \"-placeholder\");\nexport var FLEX_EXPANDER = \"\".concat(NS, \"-flex-expander\");\nexport var HTML_SELECT = \"\".concat(NS, \"-html-select\");\n/** @deprecated prefer `` component */\n\nexport var SELECT = \"\".concat(NS, \"-select\");\nexport var HTML_TABLE = \"\".concat(NS, \"-html-table\");\nexport var HTML_TABLE_BORDERED = \"\".concat(HTML_TABLE, \"-bordered\");\nexport var HTML_TABLE_CONDENSED = \"\".concat(HTML_TABLE, \"-condensed\");\nexport var HTML_TABLE_STRIPED = \"\".concat(HTML_TABLE, \"-striped\");\nexport var INPUT = \"\".concat(NS, \"-input\");\nexport var INPUT_GHOST = \"\".concat(INPUT, \"-ghost\");\nexport var INPUT_GROUP = \"\".concat(INPUT, \"-group\");\nexport var INPUT_LEFT_CONTAINER = \"\".concat(INPUT, \"-left-container\");\nexport var INPUT_ACTION = \"\".concat(INPUT, \"-action\");\nexport var CONTROL = \"\".concat(NS, \"-control\");\nexport var CONTROL_INDICATOR = \"\".concat(CONTROL, \"-indicator\");\nexport var CONTROL_INDICATOR_CHILD = \"\".concat(CONTROL_INDICATOR, \"-child\");\nexport var CHECKBOX = \"\".concat(NS, \"-checkbox\");\nexport var RADIO = \"\".concat(NS, \"-radio\");\nexport var SWITCH = \"\".concat(NS, \"-switch\");\nexport var SWITCH_INNER_TEXT = \"\".concat(SWITCH, \"-inner-text\");\nexport var FILE_INPUT = \"\".concat(NS, \"-file-input\");\nexport var FILE_INPUT_HAS_SELECTION = \"\".concat(NS, \"-file-input-has-selection\");\nexport var FILE_UPLOAD_INPUT = \"\".concat(NS, \"-file-upload-input\");\nexport var FILE_UPLOAD_INPUT_CUSTOM_TEXT = \"\".concat(NS, \"-file-upload-input-custom-text\");\nexport var KEY = \"\".concat(NS, \"-key\");\nexport var KEY_COMBO = \"\".concat(KEY, \"-combo\");\nexport var MODIFIER_KEY = \"\".concat(NS, \"-modifier-key\");\nexport var HOTKEY = \"\".concat(NS, \"-hotkey\");\nexport var HOTKEY_LABEL = \"\".concat(HOTKEY, \"-label\");\nexport var HOTKEY_COLUMN = \"\".concat(HOTKEY, \"-column\");\nexport var HOTKEY_DIALOG = \"\".concat(HOTKEY, \"-dialog\");\nexport var LABEL = \"\".concat(NS, \"-label\");\nexport var FORM_GROUP = \"\".concat(NS, \"-form-group\");\nexport var FORM_CONTENT = \"\".concat(NS, \"-form-content\");\nexport var FORM_HELPER_TEXT = \"\".concat(NS, \"-form-helper-text\");\nexport var FORM_GROUP_SUB_LABEL = \"\".concat(NS, \"-form-group-sub-label\");\nexport var MENU = \"\".concat(NS, \"-menu\");\nexport var MENU_ITEM = \"\".concat(MENU, \"-item\");\nexport var MENU_ITEM_LABEL = \"\".concat(MENU_ITEM, \"-label\");\nexport var MENU_SUBMENU = \"\".concat(NS, \"-submenu\");\nexport var MENU_DIVIDER = \"\".concat(MENU, \"-divider\");\nexport var MENU_HEADER = \"\".concat(MENU, \"-header\");\nexport var MULTISTEP_DIALOG = \"\".concat(NS, \"-multistep-dialog\");\nexport var MULTISTEP_DIALOG_PANELS = \"\".concat(MULTISTEP_DIALOG, \"-panels\");\nexport var MULTISTEP_DIALOG_LEFT_PANEL = \"\".concat(MULTISTEP_DIALOG, \"-left-panel\");\nexport var MULTISTEP_DIALOG_RIGHT_PANEL = \"\".concat(MULTISTEP_DIALOG, \"-right-panel\");\nexport var MULTISTEP_DIALOG_FOOTER = \"\".concat(MULTISTEP_DIALOG, \"-footer\");\nexport var NAVBAR = \"\".concat(NS, \"-navbar\");\nexport var NAVBAR_GROUP = \"\".concat(NAVBAR, \"-group\");\nexport var NAVBAR_HEADING = \"\".concat(NAVBAR, \"-heading\");\nexport var NAVBAR_DIVIDER = \"\".concat(NAVBAR, \"-divider\");\nexport var NON_IDEAL_STATE = \"\".concat(NS, \"-non-ideal-state\");\nexport var NON_IDEAL_STATE_VISUAL = \"\".concat(NON_IDEAL_STATE, \"-visual\");\nexport var NUMERIC_INPUT = \"\".concat(NS, \"-numeric-input\");\nexport var OVERFLOW_LIST = \"\".concat(NS, \"-overflow-list\");\nexport var OVERFLOW_LIST_SPACER = \"\".concat(OVERFLOW_LIST, \"-spacer\");\nexport var OVERLAY = \"\".concat(NS, \"-overlay\");\nexport var OVERLAY_BACKDROP = \"\".concat(OVERLAY, \"-backdrop\");\nexport var OVERLAY_CONTAINER = \"\".concat(OVERLAY, \"-container\");\nexport var OVERLAY_CONTENT = \"\".concat(OVERLAY, \"-content\");\nexport var OVERLAY_INLINE = \"\".concat(OVERLAY, \"-inline\");\nexport var OVERLAY_OPEN = \"\".concat(OVERLAY, \"-open\");\nexport var OVERLAY_SCROLL_CONTAINER = \"\".concat(OVERLAY, \"-scroll-container\");\nexport var OVERLAY_START_FOCUS_TRAP = \"\".concat(OVERLAY, \"-start-focus-trap\");\nexport var OVERLAY_END_FOCUS_TRAP = \"\".concat(OVERLAY, \"-end-focus-trap\");\nexport var PANEL_STACK = \"\".concat(NS, \"-panel-stack\");\nexport var PANEL_STACK_HEADER = \"\".concat(PANEL_STACK, \"-header\");\nexport var PANEL_STACK_HEADER_BACK = \"\".concat(PANEL_STACK, \"-header-back\");\nexport var PANEL_STACK_VIEW = \"\".concat(PANEL_STACK, \"-view\");\nexport var PANEL_STACK2 = \"\".concat(NS, \"-panel-stack2\");\nexport var PANEL_STACK2_HEADER = \"\".concat(PANEL_STACK, \"-header\");\nexport var PANEL_STACK2_HEADER_BACK = \"\".concat(PANEL_STACK, \"-header-back\");\nexport var PANEL_STACK2_VIEW = \"\".concat(PANEL_STACK, \"-view\");\nexport var POPOVER = \"\".concat(NS, \"-popover\");\nexport var POPOVER_ARROW = \"\".concat(POPOVER, \"-arrow\");\nexport var POPOVER_BACKDROP = \"\".concat(POPOVER, \"-backdrop\");\nexport var POPOVER_CAPTURING_DISMISS = \"\".concat(POPOVER, \"-capturing-dismiss\");\nexport var POPOVER_CONTENT = \"\".concat(POPOVER, \"-content\");\nexport var POPOVER_CONTENT_SIZING = \"\".concat(POPOVER_CONTENT, \"-sizing\");\nexport var POPOVER_DISMISS = \"\".concat(POPOVER, \"-dismiss\");\nexport var POPOVER_DISMISS_OVERRIDE = \"\".concat(POPOVER_DISMISS, \"-override\");\nexport var POPOVER_OPEN = \"\".concat(POPOVER, \"-open\");\nexport var POPOVER_OUT_OF_BOUNDARIES = \"\".concat(POPOVER, \"-out-of-boundaries\");\nexport var POPOVER_TARGET = \"\".concat(POPOVER, \"-target\");\nexport var POPOVER_WRAPPER = \"\".concat(POPOVER, \"-wrapper\");\nexport var TRANSITION_CONTAINER = \"\".concat(NS, \"-transition-container\");\nexport var PROGRESS_BAR = \"\".concat(NS, \"-progress-bar\");\nexport var PROGRESS_METER = \"\".concat(NS, \"-progress-meter\");\nexport var PROGRESS_NO_STRIPES = \"\".concat(NS, \"-no-stripes\");\nexport var PROGRESS_NO_ANIMATION = \"\".concat(NS, \"-no-animation\");\nexport var PORTAL = \"\".concat(NS, \"-portal\");\nexport var SKELETON = \"\".concat(NS, \"-skeleton\");\nexport var SLIDER = \"\".concat(NS, \"-slider\");\nexport var SLIDER_AXIS = \"\".concat(SLIDER, \"-axis\");\nexport var SLIDER_HANDLE = \"\".concat(SLIDER, \"-handle\");\nexport var SLIDER_LABEL = \"\".concat(SLIDER, \"-label\");\nexport var SLIDER_TRACK = \"\".concat(SLIDER, \"-track\");\nexport var SLIDER_PROGRESS = \"\".concat(SLIDER, \"-progress\");\nexport var START = \"\".concat(NS, \"-start\");\nexport var END = \"\".concat(NS, \"-end\");\nexport var SPINNER = \"\".concat(NS, \"-spinner\");\nexport var SPINNER_ANIMATION = \"\".concat(SPINNER, \"-animation\");\nexport var SPINNER_HEAD = \"\".concat(SPINNER, \"-head\");\nexport var SPINNER_NO_SPIN = \"\".concat(NS, \"-no-spin\");\nexport var SPINNER_TRACK = \"\".concat(SPINNER, \"-track\");\nexport var TAB = \"\".concat(NS, \"-tab\");\nexport var TAB_INDICATOR = \"\".concat(TAB, \"-indicator\");\nexport var TAB_INDICATOR_WRAPPER = \"\".concat(TAB_INDICATOR, \"-wrapper\");\nexport var TAB_LIST = \"\".concat(TAB, \"-list\");\nexport var TAB_PANEL = \"\".concat(TAB, \"-panel\");\nexport var TABS = \"\".concat(TAB, \"s\");\nexport var TAG = \"\".concat(NS, \"-tag\");\nexport var TAG_REMOVE = \"\".concat(TAG, \"-remove\");\nexport var TAG_INPUT = \"\".concat(NS, \"-tag-input\");\nexport var TAG_INPUT_ICON = \"\".concat(TAG_INPUT, \"-icon\");\nexport var TAG_INPUT_VALUES = \"\".concat(TAG_INPUT, \"-values\");\nexport var TOAST = \"\".concat(NS, \"-toast\");\nexport var TOAST_CONTAINER = \"\".concat(TOAST, \"-container\");\nexport var TOAST_MESSAGE = \"\".concat(TOAST, \"-message\");\nexport var TOOLTIP = \"\".concat(NS, \"-tooltip\");\nexport var TOOLTIP_INDICATOR = \"\".concat(TOOLTIP, \"-indicator\");\nexport var TREE = \"\".concat(NS, \"-tree\");\nexport var TREE_NODE = \"\".concat(NS, \"-tree-node\");\nexport var TREE_NODE_CARET = \"\".concat(TREE_NODE, \"-caret\");\nexport var TREE_NODE_CARET_CLOSED = \"\".concat(TREE_NODE_CARET, \"-closed\");\nexport var TREE_NODE_CARET_NONE = \"\".concat(TREE_NODE_CARET, \"-none\");\nexport var TREE_NODE_CARET_OPEN = \"\".concat(TREE_NODE_CARET, \"-open\");\nexport var TREE_NODE_CONTENT = \"\".concat(TREE_NODE, \"-content\");\nexport var TREE_NODE_EXPANDED = \"\".concat(TREE_NODE, \"-expanded\");\nexport var TREE_NODE_ICON = \"\".concat(TREE_NODE, \"-icon\");\nexport var TREE_NODE_LABEL = \"\".concat(TREE_NODE, \"-label\");\nexport var TREE_NODE_LIST = \"\".concat(TREE_NODE, \"-list\");\nexport var TREE_NODE_SECONDARY_LABEL = \"\".concat(TREE_NODE, \"-secondary-label\");\nexport var TREE_NODE_SELECTED = \"\".concat(TREE_NODE, \"-selected\");\nexport var TREE_ROOT = \"\".concat(NS, \"-tree-root\");\nexport var ICON = \"\".concat(NS, \"-icon\");\n/** @deprecated use components and iconName prop APIs instead */\n\nexport var ICON_STANDARD = \"\".concat(ICON, \"-standard\");\n/** @deprecated use components and iconName prop APIs instead */\n\nexport var ICON_LARGE = \"\".concat(ICON, \"-large\");\n/**\n * Returns the namespace prefix for all Blueprint CSS classes.\n * Customize this namespace at build time with the `process.env.BLUEPRINT_NAMESPACE` environment variable.\n */\n\nexport function getClassNamespace() {\n return NS;\n}\n/** Return CSS class for alignment. */\n\nexport function alignmentClass(alignment) {\n switch (alignment) {\n case Alignment.LEFT:\n return ALIGN_LEFT;\n\n case Alignment.RIGHT:\n return ALIGN_RIGHT;\n\n default:\n return undefined;\n }\n}\nexport function elevationClass(elevation) {\n if (elevation === undefined) {\n return undefined;\n }\n\n return \"\".concat(NS, \"-elevation-\").concat(elevation);\n}\nexport function iconClass(iconName) {\n if (iconName == null) {\n return undefined;\n }\n\n return iconName.indexOf(\"\".concat(NS, \"-icon-\")) === 0 ? iconName : \"\".concat(NS, \"-icon-\").concat(iconName);\n}\nexport function intentClass(intent) {\n if (intent == null || intent === Intent.NONE) {\n return undefined;\n }\n\n return \"\".concat(NS, \"-intent-\").concat(intent.toLowerCase());\n}\nexport function positionClass(position) {\n if (position === undefined) {\n return undefined;\n }\n\n return \"\".concat(NS, \"-position-\").concat(position);\n}","var global = require('../internals/global');\n\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function aFunction(argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};","var v1 = require('./v1');\n\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\nmodule.exports = uuid;","var global = require('../internals/global');\n\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object; // `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\n\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar aCallable = require('../internals/a-callable');\n\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind); // optional / simple context binding\n\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function\n /* ...args */\n () {\n return fn.apply(that, arguments);\n };\n};","/**\n * RGB space.\n *\n * @module color-space/rgb\n */\n'use strict';\n\nmodule.exports = {\n name: 'rgb',\n min: [0, 0, 0],\n max: [255, 255, 255],\n channel: ['red', 'green', 'blue'],\n alias: ['RGB']\n};","import freeGlobal from './_freeGlobal.js';\n/** Detect free variable `self`. */\n\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = freeGlobal || freeSelf || Function('return this')();\nexport default root;","import setPrototypeOf from \"./setPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toLength = require('../internals/to-length'); // `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\n\n\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};","import unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o) {\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (o = unsupportedIterableToArray(o))) {\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var it,\n normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var Position = {\n BOTTOM: \"bottom\",\n BOTTOM_LEFT: \"bottom-left\",\n BOTTOM_RIGHT: \"bottom-right\",\n LEFT: \"left\",\n LEFT_BOTTOM: \"left-bottom\",\n LEFT_TOP: \"left-top\",\n RIGHT: \"right\",\n RIGHT_BOTTOM: \"right-bottom\",\n RIGHT_TOP: \"right-top\",\n TOP: \"top\",\n TOP_LEFT: \"top-left\",\n TOP_RIGHT: \"top-right\"\n};\nexport function isPositionHorizontal(position) {\n /* istanbul ignore next */\n return position === Position.TOP || position === Position.TOP_LEFT || position === Position.TOP_RIGHT || position === Position.BOTTOM || position === Position.BOTTOM_LEFT || position === Position.BOTTOM_RIGHT;\n}\nexport function isPositionVertical(position) {\n /* istanbul ignore next */\n return position === Position.LEFT || position === Position.LEFT_TOP || position === Position.LEFT_BOTTOM || position === Position.RIGHT || position === Position.RIGHT_TOP || position === Position.RIGHT_BOTTOM;\n}\nexport function getPositionIgnoreAngles(position) {\n if (position === Position.TOP || position === Position.TOP_LEFT || position === Position.TOP_RIGHT) {\n return Position.TOP;\n } else if (position === Position.BOTTOM || position === Position.BOTTOM_LEFT || position === Position.BOTTOM_RIGHT) {\n return Position.BOTTOM;\n } else if (position === Position.LEFT || position === Position.LEFT_TOP || position === Position.LEFT_BOTTOM) {\n return Position.LEFT;\n } else {\n return Position.RIGHT;\n }\n}","var isCallable = require('../internals/is-callable');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar makeBuiltIn = require('../internals/make-built-in');\n\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n\n if (options.global) {\n if (simple) O[key] = value;else defineGlobalProperty(key, value);\n } else {\n if (!options.unsafe) delete O[key];else if (O[key]) simple = true;\n if (simple) O[key] = value;else createNonEnumerableProperty(O, key, value);\n }\n\n return O;\n};","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function') {\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}","export default function warn(s) {\n console.warn('[react-ga]', s);\n}","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport warn from '../utils/console/warn';\nvar NEWTAB = '_blank';\nvar MIDDLECLICK = 1;\n\nvar OutboundLink = /*#__PURE__*/function (_Component) {\n _inherits(OutboundLink, _Component);\n\n function OutboundLink() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, OutboundLink);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(OutboundLink)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"handleClick\", function (event) {\n var _this$props = _this.props,\n target = _this$props.target,\n eventLabel = _this$props.eventLabel,\n to = _this$props.to,\n onClick = _this$props.onClick,\n trackerNames = _this$props.trackerNames;\n var eventMeta = {\n label: eventLabel\n };\n var sameTarget = target !== NEWTAB;\n var normalClick = !(event.ctrlKey || event.shiftKey || event.metaKey || event.button === MIDDLECLICK);\n\n if (sameTarget && normalClick) {\n event.preventDefault();\n OutboundLink.trackLink(eventMeta, function () {\n window.location.href = to;\n }, trackerNames);\n } else {\n OutboundLink.trackLink(eventMeta, function () {}, trackerNames);\n }\n\n if (onClick) {\n onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(OutboundLink, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n href = _this$props2.to,\n oldProps = _objectWithoutProperties(_this$props2, [\"to\"]);\n\n var props = _objectSpread({}, oldProps, {\n href: href,\n onClick: this.handleClick\n });\n\n if (this.props.target === NEWTAB) {\n props.rel = 'noopener noreferrer';\n }\n\n delete props.eventLabel;\n delete props.trackerNames;\n return React.createElement('a', props);\n }\n }]);\n\n return OutboundLink;\n}(Component);\n\n_defineProperty(OutboundLink, \"trackLink\", function () {\n warn('ga tracking not enabled');\n});\n\n_defineProperty(OutboundLink, \"propTypes\", {\n eventLabel: PropTypes.string.isRequired,\n target: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n trackerNames: PropTypes.arrayOf(PropTypes.string)\n});\n\n_defineProperty(OutboundLink, \"defaultProps\", {\n target: null,\n to: null,\n onClick: null,\n trackerNames: null\n});\n\nexport { OutboundLink as default };","// GA strings need to have leading/trailing whitespace trimmed, and not all\n// browsers have String.prototoype.trim().\nexport default function trim(s) {\n return s.replace(/^\\s+|\\s+$/g, '');\n}","/**\n * To Title Case 2.1 - http://individed.com/code/to-title-case/\n * Copyright 2008-2013 David Gouch. Licensed under the MIT License.\n * https://github.com/gouch/to-title-case\n */\nimport trim from './trim';\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i;\nexport default function toTitleCase(string) {\n return trim(string).replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== ':' && (title.charAt(index + match.length) !== '-' || title.charAt(index - 1) === '-') && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}","import mightBeEmail from './mightBeEmail';\nimport toTitleCase from './toTitleCase';\nimport warn from './console/warn';\nvar redacted = 'REDACTED (Potential Email Address)';\nexport default function format(s, titleCase) {\n if (mightBeEmail(s)) {\n warn('This arg looks like an email address, redacting.');\n return redacted;\n }\n\n if (titleCase) {\n return toTitleCase(s);\n }\n\n return s;\n}","// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nexport default function mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === 'string' && s.indexOf('@') !== -1;\n}","export default function log(s) {\n console.info('[react-ga]', s);\n}","export var gaCalls = [];\nexport default {\n calls: gaCalls,\n ga: function ga() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n gaCalls.push([].concat(args));\n },\n resetCalls: function resetCalls() {\n gaCalls.length = 0;\n }\n};","function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n/**\n * React Google Analytics Module\n *\n * @package react-ga\n * @author Adam Lofting \n * Atul Varma \n */\n\n/**\n * Utilities\n */\n\n\nimport format from './utils/format';\nimport removeLeadingSlash from './utils/removeLeadingSlash';\nimport trim from './utils/trim';\nimport loadGA from './utils/loadGA';\nimport warn from './utils/console/warn';\nimport log from './utils/console/log';\nimport TestModeAPI from './utils/testModeAPI';\n\nvar _isNotBrowser = typeof window === 'undefined' || typeof document === 'undefined';\n\nvar _debug = false;\nvar _titleCase = true;\nvar _testMode = false;\nvar _alwaysSendToDefaultTracker = true;\n\nvar internalGa = function internalGa() {\n var _window;\n\n if (_testMode) return TestModeAPI.ga.apply(TestModeAPI, arguments);\n if (_isNotBrowser) return false;\n if (!window.ga) return warn('ReactGA.initialize must be called first or GoogleAnalytics should be loaded manually');\n return (_window = window).ga.apply(_window, arguments);\n};\n\nfunction _format(s) {\n return format(s, _titleCase);\n}\n\nfunction _gaCommand(trackerNames) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var command = args[0];\n\n if (typeof internalGa === 'function') {\n if (typeof command !== 'string') {\n warn('ga command must be a string');\n return;\n }\n\n if (_alwaysSendToDefaultTracker || !Array.isArray(trackerNames)) internalGa.apply(void 0, args);\n\n if (Array.isArray(trackerNames)) {\n trackerNames.forEach(function (name) {\n internalGa.apply(void 0, _toConsumableArray([\"\".concat(name, \".\").concat(command)].concat(args.slice(1))));\n });\n }\n }\n}\n\nfunction _initialize(gaTrackingID, options) {\n if (!gaTrackingID) {\n warn('gaTrackingID is required in initialize()');\n return;\n }\n\n if (options) {\n if (options.debug && options.debug === true) {\n _debug = true;\n }\n\n if (options.titleCase === false) {\n _titleCase = false;\n }\n\n if (options.useExistingGa) {\n return;\n }\n }\n\n if (options && options.gaOptions) {\n internalGa('create', gaTrackingID, options.gaOptions);\n } else {\n internalGa('create', gaTrackingID, 'auto');\n }\n}\n\nexport function initialize(configsOrTrackingId, options) {\n if (options && options.testMode === true) {\n _testMode = true;\n } else {\n if (_isNotBrowser) {\n return false;\n }\n\n if (!options || options.standardImplementation !== true) loadGA(options);\n }\n\n _alwaysSendToDefaultTracker = options && typeof options.alwaysSendToDefaultTracker === 'boolean' ? options.alwaysSendToDefaultTracker : true;\n\n if (Array.isArray(configsOrTrackingId)) {\n configsOrTrackingId.forEach(function (config) {\n if (_typeof(config) !== 'object') {\n warn('All configs must be an object');\n return;\n }\n\n _initialize(config.trackingId, config);\n });\n } else {\n _initialize(configsOrTrackingId, options);\n }\n\n return true;\n}\n/**\n * ga:\n * Returns the original GA object.\n */\n\nexport function ga() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (args.length > 0) {\n internalGa.apply(void 0, args);\n\n if (_debug) {\n log('called ga(\\'arguments\\');');\n log(\"with arguments: \".concat(JSON.stringify(args)));\n }\n }\n\n return window.ga;\n}\n/**\n * set:\n * GA tracker set method\n * @param {Object} fieldsObject - a field/value pair or a group of field/value pairs on the tracker\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function set(fieldsObject, trackerNames) {\n if (!fieldsObject) {\n warn('`fieldsObject` is required in .set()');\n return;\n }\n\n if (_typeof(fieldsObject) !== 'object') {\n warn('Expected `fieldsObject` arg to be an Object');\n return;\n }\n\n if (Object.keys(fieldsObject).length === 0) {\n warn('empty `fieldsObject` given to .set()');\n }\n\n _gaCommand(trackerNames, 'set', fieldsObject);\n\n if (_debug) {\n log('called ga(\\'set\\', fieldsObject);');\n log(\"with fieldsObject: \".concat(JSON.stringify(fieldsObject)));\n }\n}\n/**\n * send:\n * Clone of the low level `ga.send` method\n * WARNING: No validations will be applied to this\n * @param {Object} fieldObject - field object for tracking different analytics\n * @param {Array} trackerNames - trackers to send the command to\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function send(fieldObject, trackerNames) {\n _gaCommand(trackerNames, 'send', fieldObject);\n\n if (_debug) {\n log('called ga(\\'send\\', fieldObject);');\n log(\"with fieldObject: \".concat(JSON.stringify(fieldObject)));\n log(\"with trackers: \".concat(JSON.stringify(trackerNames)));\n }\n}\n/**\n * pageview:\n * Basic GA pageview tracking\n * @param {String} path - the current page page e.g. '/about'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n * @param {String} title - (optional) the page title e. g. 'My Website'\n */\n\nexport function pageview(rawPath, trackerNames, title) {\n if (!rawPath) {\n warn('path is required in .pageview()');\n return;\n }\n\n var path = trim(rawPath);\n\n if (path === '') {\n warn('path cannot be an empty string in .pageview()');\n return;\n }\n\n var extraFields = {};\n\n if (title) {\n extraFields.title = title;\n }\n\n if (typeof ga === 'function') {\n _gaCommand(trackerNames, 'send', _objectSpread({\n hitType: 'pageview',\n page: path\n }, extraFields));\n\n if (_debug) {\n log('called ga(\\'send\\', \\'pageview\\', path);');\n var extraLog = '';\n\n if (title) {\n extraLog = \" and title: \".concat(title);\n }\n\n log(\"with path: \".concat(path).concat(extraLog));\n }\n }\n}\n/**\n * modalview:\n * a proxy to basic GA pageview tracking to consistently track\n * modal views that are an equivalent UX to a traditional pageview\n * @param {String} modalName e.g. 'add-or-edit-club'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function modalview(rawModalName, trackerNames) {\n if (!rawModalName) {\n warn('modalName is required in .modalview(modalName)');\n return;\n }\n\n var modalName = removeLeadingSlash(trim(rawModalName));\n\n if (modalName === '') {\n warn('modalName cannot be an empty string or a single / in .modalview()');\n return;\n }\n\n if (typeof ga === 'function') {\n var path = \"/modal/\".concat(modalName);\n\n _gaCommand(trackerNames, 'send', 'pageview', path);\n\n if (_debug) {\n log('called ga(\\'send\\', \\'pageview\\', path);');\n log(\"with path: \".concat(path));\n }\n }\n}\n/**\n * timing:\n * GA timing\n * @param args.category {String} required\n * @param args.variable {String} required\n * @param args.value {Int} required\n * @param args.label {String} required\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function timing() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref.category,\n variable = _ref.variable,\n value = _ref.value,\n label = _ref.label;\n\n var trackerNames = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n if (!category || !variable || !value || typeof value !== 'number') {\n warn('args.category, args.variable ' + 'AND args.value are required in timing() ' + 'AND args.value has to be a number');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'timing',\n timingCategory: _format(category),\n timingVar: _format(variable),\n timingValue: value\n };\n\n if (label) {\n fieldObject.timingLabel = _format(label);\n }\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * event:\n * GA event tracking\n * @param args.category {String} required\n * @param args.action {String} required\n * @param args.label {String} optional\n * @param args.value {Int} optional\n * @param args.nonInteraction {boolean} optional\n * @param args.transport {string} optional\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function event() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref2.category,\n action = _ref2.action,\n label = _ref2.label,\n value = _ref2.value,\n nonInteraction = _ref2.nonInteraction,\n transport = _ref2.transport,\n args = _objectWithoutProperties(_ref2, [\"category\", \"action\", \"label\", \"value\", \"nonInteraction\", \"transport\"]);\n\n var trackerNames = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!category || !action) {\n warn('args.category AND args.action are required in event()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: _format(category),\n eventAction: _format(action)\n }; // Optional Fields\n\n if (label) {\n fieldObject.eventLabel = _format(label);\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value !== 'number') {\n warn('Expected `args.value` arg to be a Number.');\n } else {\n fieldObject.eventValue = value;\n }\n }\n\n if (typeof nonInteraction !== 'undefined') {\n if (typeof nonInteraction !== 'boolean') {\n warn('`args.nonInteraction` must be a boolean.');\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n\n if (typeof transport !== 'undefined') {\n if (typeof transport !== 'string') {\n warn('`args.transport` must be a string.');\n } else {\n if (['beacon', 'xhr', 'image'].indexOf(transport) === -1) {\n warn('`args.transport` must be either one of these values: `beacon`, `xhr` or `image`');\n }\n\n fieldObject.transport = transport;\n }\n }\n\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'dimension'.length) === 'dimension';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n });\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'metric'.length) === 'metric';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n }); // Send to GA\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * exception:\n * GA exception tracking\n * @param args.description {String} optional\n * @param args.fatal {boolean} optional\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function exception(_ref3, trackerNames) {\n var description = _ref3.description,\n fatal = _ref3.fatal;\n\n if (typeof ga === 'function') {\n // Required Fields\n var fieldObject = {\n hitType: 'exception'\n }; // Optional Fields\n\n if (description) {\n fieldObject.exDescription = _format(description);\n }\n\n if (typeof fatal !== 'undefined') {\n if (typeof fatal !== 'boolean') {\n warn('`args.fatal` must be a boolean.');\n } else {\n fieldObject.exFatal = fatal;\n }\n } // Send to GA\n\n\n send(fieldObject, trackerNames);\n }\n}\nexport var plugin = {\n /**\n * require:\n * GA requires a plugin\n * @param name {String} e.g. 'ecommerce' or 'myplugin'\n * @param options {Object} optional e.g {path: '/log', debug: true}\n * @param trackerName {String} optional e.g 'trackerName'\n */\n require: function require(rawName, options, trackerName) {\n if (typeof ga === 'function') {\n // Required Fields\n if (!rawName) {\n warn('`name` is required in .require()');\n return;\n }\n\n var name = trim(rawName);\n\n if (name === '') {\n warn('`name` cannot be an empty string in .require()');\n return;\n }\n\n var requireString = trackerName ? \"\".concat(trackerName, \".require\") : 'require'; // Optional Fields\n\n if (options) {\n if (_typeof(options) !== 'object') {\n warn('Expected `options` arg to be an Object');\n return;\n }\n\n if (Object.keys(options).length === 0) {\n warn('Empty `options` given to .require()');\n }\n\n ga(requireString, name, options);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"', \").concat(JSON.stringify(options)));\n }\n } else {\n ga(requireString, name);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"');\"));\n }\n }\n }\n },\n\n /**\n * execute:\n * GA execute action for plugin\n * Takes variable number of arguments\n * @param pluginName {String} e.g. 'ecommerce' or 'myplugin'\n * @param action {String} e.g. 'addItem' or 'myCustomAction'\n * @param actionType {String} optional e.g. 'detail'\n * @param payload {Object} optional e.g { id: '1x5e', name : 'My product to track' }\n */\n execute: function execute(pluginName, action) {\n var payload;\n var actionType;\n\n if ((arguments.length <= 2 ? 0 : arguments.length - 2) === 1) {\n payload = arguments.length <= 2 ? undefined : arguments[2];\n } else {\n actionType = arguments.length <= 2 ? undefined : arguments[2];\n payload = arguments.length <= 3 ? undefined : arguments[3];\n }\n\n if (typeof ga === 'function') {\n if (typeof pluginName !== 'string') {\n warn('Expected `pluginName` arg to be a String.');\n } else if (typeof action !== 'string') {\n warn('Expected `action` arg to be a String.');\n } else {\n var command = \"\".concat(pluginName, \":\").concat(action);\n payload = payload || null;\n\n if (actionType && payload) {\n ga(command, actionType, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"actionType: \\\"\".concat(actionType, \"\\\" with payload: \").concat(JSON.stringify(payload)));\n }\n } else if (payload) {\n ga(command, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"with payload: \".concat(JSON.stringify(payload)));\n }\n } else {\n ga(command);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n }\n }\n }\n }\n }\n};\n/**\n * outboundLink:\n * GA outboundLink tracking\n * @param args.label {String} e.g. url, or 'Create an Account'\n * @param {function} hitCallback - Called after processing a hit.\n */\n\nexport function outboundLink(args, hitCallback, trackerNames) {\n if (typeof hitCallback !== 'function') {\n warn('hitCallback function is required');\n return;\n }\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!args || !args.label) {\n warn('args.label is required in outboundLink()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: 'Outbound',\n eventAction: 'Click',\n eventLabel: _format(args.label)\n };\n var safetyCallbackCalled = false;\n\n var safetyCallback = function safetyCallback() {\n // This prevents a delayed response from GA\n // causing hitCallback from being fired twice\n safetyCallbackCalled = true;\n hitCallback();\n }; // Using a timeout to ensure the execution of critical application code\n // in the case when the GA server might be down\n // or an ad blocker prevents sending the data\n // register safety net timeout:\n\n\n var t = setTimeout(safetyCallback, 250);\n\n var clearableCallbackForGA = function clearableCallbackForGA() {\n clearTimeout(t);\n\n if (!safetyCallbackCalled) {\n hitCallback();\n }\n };\n\n fieldObject.hitCallback = clearableCallbackForGA; // Send to GA\n\n send(fieldObject, trackerNames);\n } else {\n // if ga is not defined, return the callback so the application\n // continues to work as expected\n setTimeout(hitCallback, 0);\n }\n}\nexport var testModeAPI = TestModeAPI;\nexport default {\n initialize: initialize,\n ga: ga,\n set: set,\n send: send,\n pageview: pageview,\n modalview: modalview,\n timing: timing,\n event: event,\n exception: exception,\n plugin: plugin,\n outboundLink: outboundLink,\n testModeAPI: TestModeAPI\n};","export default function (options) {\n var gaAddress = 'https://www.google-analytics.com/analytics.js';\n\n if (options && options.gaAddress) {\n gaAddress = options.gaAddress;\n } else if (options && options.debug) {\n gaAddress = 'https://www.google-analytics.com/analytics_debug.js';\n } // https://developers.google.com/analytics/devguides/collection/analyticsjs/\n\n /* eslint-disable */\n\n\n (function (i, s, o, g, r, a, m) {\n i['GoogleAnalyticsObject'] = r;\n i[r] = i[r] || function () {\n (i[r].q = i[r].q || []).push(arguments);\n }, i[r].l = 1 * new Date();\n a = s.createElement(o), m = s.getElementsByTagName(o)[0];\n a.async = 1;\n a.src = g;\n m.parentNode.insertBefore(a, m);\n })(window, document, 'script', gaAddress, 'ga');\n /* eslint-enable */\n\n}","export default function removeLeadingSlash(string) {\n if (string.substring(0, 1) === '/') {\n return string.substring(1);\n }\n\n return string;\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport UnboundOutboundLink from './components/OutboundLink';\nimport * as Defaults from './core';\nexport var initialize = Defaults.initialize;\nexport var ga = Defaults.ga;\nexport var set = Defaults.set;\nexport var send = Defaults.send;\nexport var pageview = Defaults.pageview;\nexport var modalview = Defaults.modalview;\nexport var timing = Defaults.timing;\nexport var event = Defaults.event;\nexport var exception = Defaults.exception;\nexport var plugin = Defaults.plugin;\nexport var outboundLink = Defaults.outboundLink;\nexport var testModeAPI = Defaults.testModeAPI;\nUnboundOutboundLink.origTrackLink = UnboundOutboundLink.trackLink;\nUnboundOutboundLink.trackLink = Defaults.outboundLink;\nexport var OutboundLink = UnboundOutboundLink;\nexport default _objectSpread({}, Defaults, {\n OutboundLink: OutboundLink\n});","var DESCRIPTORS = require('../internals/descriptors');\n\nvar call = require('../internals/function-call');\n\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\n\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nvar toIndexedObject = require('../internals/to-indexed-object');\n\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar hasOwn = require('../internals/has-own-property');\n\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define'); // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n\n\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) {\n /* empty */\n }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};","var path = require('../internals/path');\n\nvar hasOwn = require('../internals/has-own-property');\n\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\n\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};","export var isClient = typeof window === 'object';\nexport var on = function on(obj) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n return obj.addEventListener.apply(obj, args);\n};\nexport var off = function off(obj) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n return obj.removeEventListener.apply(obj, args);\n};\nexport var isDeepEqual = require('fast-deep-equal/react');","var bind = require('../internals/function-bind-context');\n\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar IndexedObject = require('../internals/indexed-object');\n\nvar toObject = require('../internals/to-object');\n\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push); // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\n\nvar createMethod = function createMethod(TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n\n for (; length > index; index++) {\n if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3:\n return true;\n // some\n\n case 5:\n return value;\n // find\n\n case 6:\n return index;\n // findIndex\n\n case 2:\n push(target, value);\n // filter\n } else switch (TYPE) {\n case 4:\n return false;\n // every\n\n case 7:\n push(target, value);\n // filterReject\n }\n }\n }\n }\n\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { isFunction } from \"./functionUtils\"; // eslint-disable-next-line @typescript-eslint/ban-types\n\nexport function safeInvokeMember(obj, key) {\n var args = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n\n if (obj != null) {\n var member = obj[key];\n\n if (isFunction(member)) {\n return member.apply(void 0, args);\n }\n }\n\n return undefined;\n}","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport \"../configureDom4\";\nimport * as Classes from \"../classes\";\nexport function isDarkTheme(element) {\n return element != null && element instanceof Element && element.closest(\".\".concat(Classes.DARK)) != null;\n}","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport * from \"./compareUtils\";\nexport * from \"./domUtils\";\nexport * from \"./functionUtils\";\nexport * from \"./jsUtils\";\nexport * from \"./reactUtils\";\nexport * from \"./safeInvokeMember\";\nexport { isDarkTheme } from \"./isDarkTheme\"; // ref utils used to live in this folder, but got refactored and moved elsewhere.\n// we keep this export here for backwards compatibility\n\nexport { setRef, getRef } from \"../refs\";","/*!\nfflate - fast JavaScript compression/decompression\n\nLicensed under MIT. https://github.com/101arrowz/fflate/blob/master/LICENSE\nversion 0.6.9\n*/\n// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\n\nvar durl = function durl(c) {\n return URL.createObjectURL(new Blob([c], {\n type: 'text/javascript'\n }));\n};\n\nvar cwk = function cwk(u) {\n return new Worker(u);\n};\n\ntry {\n URL.revokeObjectURL(durl(''));\n} catch (e) {\n // We're in Deno or a very old browser\n durl = function durl(c) {\n return 'data:application/javascript;charset=UTF-8,' + encodeURI(c);\n }; // If Deno, this is necessary; if not, this changes nothing\n\n\n cwk = function cwk(u) {\n return new Worker(u, {\n type: 'module'\n });\n };\n}\n\nvar wk = function wk(c, id, msg, transfer, cb) {\n var w = cwk(ch2[id] || (ch2[id] = durl(c)));\n\n w.onerror = function (e) {\n return cb(e.error, null);\n };\n\n w.onmessage = function (e) {\n return cb(null, e.data);\n };\n\n w.postMessage(msg, transfer);\n return w;\n}; // aliases for shorter compressed code (most minifers don't do this)\n\n\nvar u8 = Uint8Array,\n u16 = Uint16Array,\n u32 = Uint32Array; // fixed length extra bits\n\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0,\n/* unused */\n0, 0,\n/* impossible */\n0]); // fixed distance extra bits\n// see fleb note\n\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13,\n/* unused */\n0, 0]); // code length index map\n\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); // get base, reverse index map from extra bits\n\nvar freb = function freb(eb, start) {\n var b = new u16(31);\n\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n } // numbers here are at max 18 bits\n\n\n var r = new u32(b[30]);\n\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = j - b[i] << 5 | i;\n }\n }\n\n return [b, r];\n};\n\nvar _a = freb(fleb, 2),\n fl = _a[0],\n revfl = _a[1]; // we can ignore the fact that the other numbers are wrong; they never happen anyway\n\n\nfl[28] = 258, revfl[258] = 28;\n\nvar _b = freb(fdeb, 0),\n fd = _b[0],\n revfd = _b[1]; // map of value to reverse (assuming 16 bits)\n\n\nvar rev = new u16(32768);\n\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = (i & 0xAAAA) >>> 1 | (i & 0x5555) << 1;\n x = (x & 0xCCCC) >>> 2 | (x & 0x3333) << 2;\n x = (x & 0xF0F0) >>> 4 | (x & 0x0F0F) << 4;\n rev[i] = ((x & 0xFF00) >>> 8 | (x & 0x00FF) << 8) >>> 1;\n} // create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\n\n\nvar hMap = function hMap(cd, mb, r) {\n var s = cd.length; // index\n\n var i = 0; // u16 \"map\": index -> # of codes with bit length = index\n\n var l = new u16(mb); // length of cd must be 288 (total # of codes)\n\n for (; i < s; ++i) {\n ++l[cd[i] - 1];\n } // u16 \"map\": index -> minimum code for bit length = index\n\n\n var le = new u16(mb);\n\n for (i = 0; i < mb; ++i) {\n le[i] = le[i - 1] + l[i - 1] << 1;\n }\n\n var co;\n\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb); // bits to remove for reverser\n\n var rvb = 15 - mb;\n\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = i << 4 | cd[i]; // free bits\n\n var r_1 = mb - cd[i]; // start value\n\n var v = le[cd[i] - 1]++ << r_1; // m is end value\n\n for (var m = v | (1 << r_1) - 1; v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n } else {\n co = new u16(s);\n\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >>> 15 - cd[i];\n }\n }\n }\n\n return co;\n}; // fixed length tree\n\n\nvar flt = new u8(288);\n\nfor (var i = 0; i < 144; ++i) {\n flt[i] = 8;\n}\n\nfor (var i = 144; i < 256; ++i) {\n flt[i] = 9;\n}\n\nfor (var i = 256; i < 280; ++i) {\n flt[i] = 7;\n}\n\nfor (var i = 280; i < 288; ++i) {\n flt[i] = 8;\n} // fixed distance tree\n\n\nvar fdt = new u8(32);\n\nfor (var i = 0; i < 32; ++i) {\n fdt[i] = 5;\n} // fixed length map\n\n\nvar flm = /*#__PURE__*/hMap(flt, 9, 0),\n flrm = /*#__PURE__*/hMap(flt, 9, 1); // fixed distance map\n\nvar fdm = /*#__PURE__*/hMap(fdt, 5, 0),\n fdrm = /*#__PURE__*/hMap(fdt, 5, 1); // find max of array\n\nvar max = function max(a) {\n var m = a[0];\n\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m) m = a[i];\n }\n\n return m;\n}; // read d, starting at bit p and mask with m\n\n\nvar bits = function bits(d, p, m) {\n var o = p / 8 | 0;\n return (d[o] | d[o + 1] << 8) >> (p & 7) & m;\n}; // read d, starting at bit p continuing for at least 16 bits\n\n\nvar bits16 = function bits16(d, p) {\n var o = p / 8 | 0;\n return (d[o] | d[o + 1] << 8 | d[o + 2] << 16) >> (p & 7);\n}; // get end of byte\n\n\nvar shft = function shft(p) {\n return (p / 8 | 0) + (p & 7 && 1);\n}; // typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\n\n\nvar slc = function slc(v, s, e) {\n if (s == null || s < 0) s = 0;\n if (e == null || e > v.length) e = v.length; // can't use .constructor in case user-supplied\n\n var n = new (v instanceof u16 ? u16 : v instanceof u32 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n}; // expands raw DEFLATE data\n\n\nvar inflt = function inflt(dat, buf, st) {\n // source length\n var sl = dat.length;\n if (!sl || st && !st.l && sl < 5) return buf || new u8(0); // have to estimate size\n\n var noBuf = !buf || st; // no state\n\n var noSt = !st || st.i;\n if (!st) st = {}; // Assumes roughly 33% compression ratio average\n\n if (!buf) buf = new u8(sl * 3); // ensure buffer can fit at least l elements\n\n var cbuf = function cbuf(l) {\n var bl = buf.length; // need to increase size to fit\n\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n }; // last chunk bitpos bytes\n\n\n var final = st.f || 0,\n pos = st.p || 0,\n bt = st.b || 0,\n lm = st.l,\n dm = st.d,\n lbt = st.m,\n dbt = st.n; // total bits\n\n var tbts = sl * 8;\n\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n st.f = final = bits(dat, pos, 1); // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4,\n l = dat[s - 4] | dat[s - 3] << 8,\n t = s + l;\n\n if (t > sl) {\n if (noSt) throw 'unexpected EOF';\n break;\n } // ensure size\n\n\n if (noBuf) cbuf(bt + l); // Copy over uncompressed data\n\n buf.set(dat.subarray(s, t), bt); // Get new bitpos, update byte count\n\n st.b = bt += l, st.p = pos = t * 8;\n continue;\n } else if (type == 1) lm = flrm, dm = fdrm, lbt = 9, dbt = 5;else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257,\n hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14; // length+distance tree\n\n var ldt = new u8(tl); // code length tree\n\n var clt = new u8(19);\n\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n\n pos += hcLen * 3; // code lengths bits\n\n var clb = max(clt),\n clbmsk = (1 << clb) - 1; // code lengths map\n\n var clm = hMap(clt, clb, 1);\n\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)]; // bits read\n\n pos += r & 15; // symbol\n\n var s = r >>> 4; // code length to copy\n\n if (s < 16) {\n ldt[i++] = s;\n } else {\n // copy count\n var c = 0,\n n = 0;\n if (s == 16) n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];else if (s == 17) n = 3 + bits(dat, pos, 7), pos += 3;else if (s == 18) n = 11 + bits(dat, pos, 127), pos += 7;\n\n while (n--) {\n ldt[i++] = c;\n }\n }\n } // length tree distance tree\n\n\n var lt = ldt.subarray(0, hLit),\n dt = ldt.subarray(hLit); // max length bits\n\n lbt = max(lt); // max dist bits\n\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n } else throw 'invalid block type';\n\n if (pos > tbts) {\n if (noSt) throw 'unexpected EOF';\n break;\n }\n } // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17;\n\n\n if (noBuf) cbuf(bt + 131072);\n var lms = (1 << lbt) - 1,\n dms = (1 << dbt) - 1;\n var lpos = pos;\n\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms],\n sym = c >>> 4;\n pos += c & 15;\n\n if (pos > tbts) {\n if (noSt) throw 'unexpected EOF';\n break;\n }\n\n if (!c) throw 'invalid length/literal';\n if (sym < 256) buf[bt++] = sym;else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n } else {\n var add = sym - 254; // no extra bits needed if less\n\n if (sym > 264) {\n // index\n var i = sym - 257,\n b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n } // dist\n\n\n var d = dm[bits16(dat, pos) & dms],\n dsym = d >>> 4;\n if (!d) throw 'invalid distance';\n pos += d & 15;\n var dt = fd[dsym];\n\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n\n if (pos > tbts) {\n if (noSt) throw 'unexpected EOF';\n break;\n }\n\n if (noBuf) cbuf(bt + 131072);\n var end = bt + add;\n\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n\n bt = end;\n }\n }\n\n st.l = lm, st.p = lpos, st.b = bt;\n if (lm) final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n\n return bt == buf.length ? buf : slc(buf, 0, bt);\n}; // starting at p, write the minimum number of bits that can hold v to d\n\n\nvar wbits = function wbits(d, p, v) {\n v <<= p & 7;\n var o = p / 8 | 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n}; // starting at p, write the minimum number of bits (>8) that can hold v to d\n\n\nvar wbits16 = function wbits16(d, p, v) {\n v <<= p & 7;\n var o = p / 8 | 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n}; // creates code lengths from a frequency table\n\n\nvar hTree = function hTree(d, mb) {\n // Need extra info to make a tree\n var t = [];\n\n for (var i = 0; i < d.length; ++i) {\n if (d[i]) t.push({\n s: i,\n f: d[i]\n });\n }\n\n var s = t.length;\n var t2 = t.slice();\n if (!s) return [et, 0];\n\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n\n t.sort(function (a, b) {\n return a.f - b.f;\n }); // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n\n t.push({\n s: -1,\n f: 25001\n });\n var l = t[0],\n r = t[1],\n i0 = 0,\n i1 = 1,\n i2 = 2;\n t[0] = {\n s: -1,\n f: l.f + r.f,\n l: l,\n r: r\n }; // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = {\n s: -1,\n f: l.f + r.f,\n l: l,\n r: r\n };\n }\n\n var maxSym = t2[0].s;\n\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym) maxSym = t2[i].s;\n } // code lengths\n\n\n var tr = new u16(maxSym + 1); // max bits in tree\n\n var mbt = ln(t[i1 - 1], tr, 0);\n\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0,\n dt = 0; // left cost\n\n var lft = mbt - mb,\n cst = 1 << lft;\n t2.sort(function (a, b) {\n return tr[b.s] - tr[a.s] || a.f - b.f;\n });\n\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n\n if (tr[i2_1] > mb) {\n dt += cst - (1 << mbt - tr[i2_1]);\n tr[i2_1] = mb;\n } else break;\n }\n\n dt >>>= lft;\n\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb) dt -= 1 << mb - tr[i2_2]++ - 1;else ++i;\n }\n\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n\n mbt = mb;\n }\n\n return [new u8(tr), mbt];\n}; // get the max length and assign length codes\n\n\nvar ln = function ln(n, l, d) {\n return n.s == -1 ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1)) : l[n.s] = d;\n}; // length codes generation\n\n\nvar lc = function lc(c) {\n var s = c.length; // Note that the semicolon was intentional\n\n while (s && !c[--s]) {\n ;\n }\n\n var cl = new u16(++s); // ind num streak\n\n var cli = 0,\n cln = c[0],\n cls = 1;\n\n var w = function w(v) {\n cl[cli++] = v;\n };\n\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s) ++cls;else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138) {\n w(32754);\n }\n\n if (cls > 2) {\n w(cls > 10 ? cls - 11 << 5 | 28690 : cls - 3 << 5 | 12305);\n cls = 0;\n }\n } else if (cls > 3) {\n w(cln), --cls;\n\n for (; cls > 6; cls -= 6) {\n w(8304);\n }\n\n if (cls > 2) w(cls - 3 << 5 | 8208), cls = 0;\n }\n\n while (cls--) {\n w(cln);\n }\n\n cls = 1;\n cln = c[i];\n }\n }\n\n return [cl.subarray(0, cli), s];\n}; // calculate the length of output from tree, code lengths\n\n\nvar clen = function clen(cf, cl) {\n var l = 0;\n\n for (var i = 0; i < cl.length; ++i) {\n l += cf[i] * cl[i];\n }\n\n return l;\n}; // writes a fixed block\n// returns the new bit pos\n\n\nvar wfblk = function wfblk(out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n\n for (var i = 0; i < s; ++i) {\n out[o + i + 4] = dat[i];\n }\n\n return (o + 4 + s) * 8;\n}; // writes a block\n\n\nvar wblk = function wblk(dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n\n var _a = hTree(lf, 15),\n dlt = _a[0],\n mlb = _a[1];\n\n var _b = hTree(df, 15),\n ddt = _b[0],\n mdb = _b[1];\n\n var _c = lc(dlt),\n lclt = _c[0],\n nlc = _c[1];\n\n var _d = lc(ddt),\n lcdt = _d[0],\n ndc = _d[1];\n\n var lcfreq = new u16(19);\n\n for (var i = 0; i < lclt.length; ++i) {\n lcfreq[lclt[i] & 31]++;\n }\n\n for (var i = 0; i < lcdt.length; ++i) {\n lcfreq[lcdt[i] & 31]++;\n }\n\n var _e = hTree(lcfreq, 7),\n lct = _e[0],\n mlcb = _e[1];\n\n var nlcc = 19;\n\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc) {\n ;\n }\n\n var flen = bl + 5 << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen) return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n\n for (var i = 0; i < nlcc; ++i) {\n wbits(out, p + 3 * i, lct[clim[i]]);\n }\n\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15) wbits(out, p, clct[i] >>> 5 & 127), p += clct[i] >>> 12;\n }\n }\n } else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = syms[i] >>> 18 & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7) wbits(out, p, syms[i] >>> 23 & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3) wbits16(out, p, syms[i] >>> 5 & 8191), p += fdeb[dst];\n } else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n\n wbits16(out, p, lm[256]);\n return p + ll[256];\n}; // deflate options (nice << 13) | chain\n\n\nvar deo = /*#__PURE__*/new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]); // empty\n\nvar et = /*#__PURE__*/new u8(0); // compresses data into a raw DEFLATE buffer\n\nvar dflt = function dflt(dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post); // writing to this writes to the output buffer\n\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n // end\n var e = i + 65535;\n\n if (e < s) {\n // write full block\n pos = wfblk(w, pos, dat.subarray(i, e));\n } else {\n // write final block\n w[i] = lst;\n pos = wfblk(w, pos, dat.subarray(i, s));\n }\n }\n } else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13,\n c = opt & 8191;\n var msk_1 = (1 << plvl) - 1; // prev 2-byte val map curr 2-byte val map\n\n var prev = new u16(32768),\n head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3),\n bs2_1 = 2 * bs1_1;\n\n var hsh = function hsh(i) {\n return (dat[i] ^ dat[i + 1] << bs1_1 ^ dat[i + 2] << bs2_1) & msk_1;\n }; // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n\n\n var syms = new u32(25000); // length/literal freq distance freq\n\n var lf = new u16(288),\n df = new u16(32); // l/lcnt exbits index l/lind waitdx bitpos\n\n var lc_1 = 0,\n eb = 0,\n i = 0,\n li = 0,\n wi = 0,\n bs = 0;\n\n for (; i < s; ++i) {\n // hash value\n // deopt when i > s - 3 - at end, deopt acceptable\n var hv = hsh(i); // index mod 32768 previous index mod\n\n var imod = i & 32767,\n pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod; // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n\n if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n\n for (var j = 0; j < 286; ++j) {\n lf[j] = 0;\n }\n\n for (var j = 0; j < 30; ++j) {\n df[j] = 0;\n }\n } // len dist chain\n\n\n var l = 2,\n d = 0,\n ch_1 = c,\n dif = imod - pimod & 32767;\n\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i); // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n\n var ml = Math.min(258, rem);\n\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl) {\n ;\n }\n\n if (nl > l) {\n l = nl, d = dif; // break out early when we reach \"nice\" (we are satisfied enough)\n\n if (nl > maxn) break; // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j + 32768 & 32767;\n var pti = prev[ti];\n var cd = ti - pti + 32768 & 32767;\n if (cd > md) md = cd, pimod = ti;\n }\n }\n } // check the previous match\n\n\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod + 32768 & 32767;\n }\n } // d will be nonzero only when a match was found\n\n\n if (d) {\n // store both dist and len data in one Uint32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | revfl[l] << 18 | revfd[d];\n var lin = revfl[l] & 31,\n din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n } else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos); // this is the easiest way to avoid needing to maintain state\n\n if (!lst && pos & 7) pos = wfblk(w, pos + 1, et);\n }\n\n return slc(o, 0, pre + shft(pos) + post);\n}; // CRC32 table\n\n\nvar crct = /*#__PURE__*/function () {\n var t = new u32(256);\n\n for (var i = 0; i < 256; ++i) {\n var c = i,\n k = 9;\n\n while (--k) {\n c = (c & 1 && 0xEDB88320) ^ c >>> 1;\n }\n\n t[i] = c;\n }\n\n return t;\n}(); // CRC32\n\n\nvar crc = function crc() {\n var c = -1;\n return {\n p: function p(d) {\n // closures have awful performance\n var cr = c;\n\n for (var i = 0; i < d.length; ++i) {\n cr = crct[cr & 255 ^ d[i]] ^ cr >>> 8;\n }\n\n c = cr;\n },\n d: function d() {\n return ~c;\n }\n };\n}; // Alder32\n\n\nvar adler = function adler() {\n var a = 1,\n b = 0;\n return {\n p: function p(d) {\n // closures have awful performance\n var n = a,\n m = b;\n var l = d.length;\n\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n\n for (; i < e; ++i) {\n m += n += d[i];\n }\n\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n\n a = n, b = m;\n },\n d: function d() {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | a >>> 8 << 16 | (b & 255) << 8 | b >>> 8;\n }\n };\n};\n\n; // deflate with opts\n\nvar dopt = function dopt(dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 12 + opt.mem, pre, post, !st);\n}; // Walmart object spread\n\n\nvar mrg = function mrg(a, b) {\n var o = {};\n\n for (var k in a) {\n o[k] = a[k];\n }\n\n for (var k in b) {\n o[k] = b[k];\n }\n\n return o;\n}; // worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\n\n\nvar wcln = function wcln(fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/ /g, '').split(',');\n\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i],\n k = ks[i];\n\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n } else {\n fnStr += st_1;\n\n for (var t in v.prototype) {\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n } else fnStr += st_1;\n } else td[k] = v;\n }\n\n return [fnStr, td];\n};\n\nvar ch = []; // clone bufs\n\nvar cbfs = function cbfs(v) {\n var tl = [];\n\n for (var k in v) {\n if (v[k] instanceof u8 || v[k] instanceof u16 || v[k] instanceof u32) tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n\n return tl;\n}; // use a worker to execute code\n\n\nvar wrkr = function wrkr(fns, init, id, cb) {\n var _a;\n\n if (!ch[id]) {\n var fnStr = '',\n td_1 = {},\n m = fns.length - 1;\n\n for (var i = 0; i < m; ++i) {\n _a = wcln(fns[i], fnStr, td_1), fnStr = _a[0], td_1 = _a[1];\n }\n\n ch[id] = wcln(fns[m], fnStr, td_1);\n }\n\n var td = mrg({}, ch[id][1]);\n return wk(ch[id][0] + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n}; // base async inflate fn\n\n\nvar bInflt = function bInflt() {\n return [u8, u16, u32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, hMap, max, bits, bits16, shft, slc, inflt, inflateSync, pbf, gu8];\n};\n\nvar bDflt = function bDflt() {\n return [u8, u16, u32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf];\n}; // gzip extra\n\n\nvar gze = function gze() {\n return [gzh, gzhl, wbytes, crc, crct];\n}; // gunzip extra\n\n\nvar guze = function guze() {\n return [gzs, gzl];\n}; // zlib extra\n\n\nvar zle = function zle() {\n return [zlh, wbytes, adler];\n}; // unzlib extra\n\n\nvar zule = function zule() {\n return [zlv];\n}; // post buf\n\n\nvar pbf = function pbf(msg) {\n return postMessage(msg, [msg.buffer]);\n}; // get u8\n\n\nvar gu8 = function gu8(o) {\n return o && o.size && new u8(o.size);\n}; // async helper\n\n\nvar cbify = function cbify(dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () {\n w.terminate();\n };\n}; // auto stream\n\n\nvar astrm = function astrm(strm) {\n strm.ondata = function (dat, final) {\n return postMessage([dat, final], [dat.buffer]);\n };\n\n return function (ev) {\n return strm.push(ev.data[0], ev.data[1]);\n };\n}; // async stream attach\n\n\nvar astrmify = function astrmify(fns, strm, opts, init, id) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err) w.terminate(), strm.ondata.call(strm, err);else {\n if (dat[1]) w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n\n strm.push = function (d, f) {\n if (t) throw 'stream finished';\n if (!strm.ondata) throw 'no stream handler';\n w.postMessage([d, t = f], [d.buffer]);\n };\n\n strm.terminate = function () {\n w.terminate();\n };\n}; // read 2 bytes\n\n\nvar b2 = function b2(d, b) {\n return d[b] | d[b + 1] << 8;\n}; // read 4 bytes\n\n\nvar b4 = function b4(d, b) {\n return (d[b] | d[b + 1] << 8 | d[b + 2] << 16 | d[b + 3] << 24) >>> 0;\n};\n\nvar b8 = function b8(d, b) {\n return b4(d, b) + b4(d, b + 4) * 4294967296;\n}; // write bytes\n\n\nvar wbytes = function wbytes(d, b, v) {\n for (; v; ++b) {\n d[b] = v, v >>>= 8;\n }\n}; // gzip header\n\n\nvar gzh = function gzh(c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n\n if (o.mtime != 0) wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n\n if (fn) {\n c[3] = 8;\n\n for (var i = 0; i <= fn.length; ++i) {\n c[i + 10] = fn.charCodeAt(i);\n }\n }\n}; // gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\n\n\nvar gzs = function gzs(d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8) throw 'invalid gzip data';\n var flg = d[3];\n var st = 10;\n if (flg & 4) st += d[10] | (d[11] << 8) + 2;\n\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++]) {\n ;\n }\n\n return st + (flg & 2);\n}; // gzip length\n\n\nvar gzl = function gzl(d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n}; // gzip header length\n\n\nvar gzhl = function gzhl(o) {\n return 10 + (o.filename && o.filename.length + 1 || 0);\n}; // zlib header\n\n\nvar zlh = function zlh(c, o) {\n var lv = o.level,\n fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = fl << 6 | (fl ? 32 - 2 * fl : 1);\n}; // zlib valid\n\n\nvar zlv = function zlv(d) {\n if ((d[0] & 15) != 8 || d[0] >>> 4 > 7 || (d[0] << 8 | d[1]) % 31) throw 'invalid zlib data';\n if (d[1] & 32) throw 'invalid zlib data: preset dictionaries not supported';\n};\n\nfunction AsyncCmpStrm(opts, cb) {\n if (!cb && typeof opts == 'function') cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n} // zlib footer: -4 to -0 is Adler32\n\n/**\n * Streaming DEFLATE compression\n */\n\n\nvar Deflate = /*#__PURE__*/function () {\n function Deflate(opts, cb) {\n if (!cb && typeof opts == 'function') cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n }\n\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, !f), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n\n\n Deflate.prototype.push = function (chunk, final) {\n if (this.d) throw 'stream finished';\n if (!this.ondata) throw 'no stream handler';\n this.d = final;\n this.p(chunk, final || false);\n };\n\n return Deflate;\n}();\n\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\n\nvar AsyncDeflate = /*#__PURE__*/function () {\n function AsyncDeflate(opts, cb) {\n astrmify([bDflt, function () {\n return [astrm, Deflate];\n }], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6);\n }\n\n return AsyncDeflate;\n}();\n\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n return cbify(data, opts, [bDflt], function (ev) {\n return pbf(deflateSync(ev.data[0], ev.data[1]));\n }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\n\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\n\nvar Inflate = /*#__PURE__*/function () {\n /**\n * Creates an inflation stream\n * @param cb The callback to call whenever data is inflated\n */\n function Inflate(cb) {\n this.s = {};\n this.p = new u8(0);\n this.ondata = cb;\n }\n\n Inflate.prototype.e = function (c) {\n if (this.d) throw 'stream finished';\n if (!this.ondata) throw 'no stream handler';\n var l = this.p.length;\n var n = new u8(l + c.length);\n n.set(this.p), n.set(c, l), this.p = n;\n };\n\n Inflate.prototype.c = function (final) {\n this.d = this.s.i = final || false;\n var bts = this.s.b;\n var dt = inflt(this.p, this.o, this.s);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, this.s.p / 8 | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n\n\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n\n return Inflate;\n}();\n\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\n\nvar AsyncInflate = /*#__PURE__*/function () {\n /**\n * Creates an asynchronous inflation stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncInflate(cb) {\n this.ondata = cb;\n astrmify([bInflt, function () {\n return [astrm, Inflate];\n }], this, 0, function () {\n var strm = new Inflate();\n onmessage = astrm(strm);\n }, 7);\n }\n\n return AsyncInflate;\n}();\n\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n return cbify(data, opts, [bInflt], function (ev) {\n return pbf(inflateSync(ev.data[0], gu8(ev.data[1])));\n }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\n\nexport function inflateSync(data, out) {\n return inflt(data, out);\n} // before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n\n/**\n * Streaming GZIP compression\n */\n\nvar Gzip = /*#__PURE__*/function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n\n\n Gzip.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n\n Gzip.prototype.p = function (c, f) {\n this.c.p(c);\n this.l += c.length;\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, !f);\n if (this.v) gzh(raw, this.o), this.v = 0;\n if (f) wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n\n return Gzip;\n}();\n\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\n\nvar AsyncGzip = /*#__PURE__*/function () {\n function AsyncGzip(opts, cb) {\n astrmify([bDflt, gze, function () {\n return [astrm, Deflate, Gzip];\n }], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8);\n }\n\n return AsyncGzip;\n}();\n\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n return cbify(data, opts, [bDflt, gze, function () {\n return [gzipSync];\n }], function (ev) {\n return pbf(gzipSync(ev.data[0], ev.data[1]));\n }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\n\nexport function gzipSync(data, opts) {\n if (!opts) opts = {};\n var c = crc(),\n l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8),\n s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming GZIP decompression\n */\n\nvar Gunzip = /*#__PURE__*/function () {\n /**\n * Creates a GUNZIP stream\n * @param cb The callback to call whenever data is inflated\n */\n function Gunzip(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n\n\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n\n if (this.v) {\n var s = this.p.length > 3 ? gzs(this.p) : 4;\n if (s >= this.p.length && !final) return;\n this.p = this.p.subarray(s), this.v = 0;\n }\n\n if (final) {\n if (this.p.length < 8) throw 'invalid gzip stream';\n this.p = this.p.subarray(0, -8);\n } // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n\n\n Inflate.prototype.c.call(this, final);\n };\n\n return Gunzip;\n}();\n\nexport { Gunzip };\n/**\n * Asynchronous streaming GZIP decompression\n */\n\nvar AsyncGunzip = /*#__PURE__*/function () {\n /**\n * Creates an asynchronous GUNZIP stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncGunzip(cb) {\n this.ondata = cb;\n astrmify([bInflt, guze, function () {\n return [astrm, Inflate, Gunzip];\n }], this, 0, function () {\n var strm = new Gunzip();\n onmessage = astrm(strm);\n }, 9);\n }\n\n return AsyncGunzip;\n}();\n\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n return cbify(data, opts, [bInflt, guze, function () {\n return [gunzipSync];\n }], function (ev) {\n return pbf(gunzipSync(ev.data[0]));\n }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param out Where to write the data. GZIP already encodes the output size, so providing this doesn't save memory.\n * @returns The decompressed version of the data\n */\n\nexport function gunzipSync(data, out) {\n return inflt(data.subarray(gzs(data), -8), out || new u8(gzl(data)));\n}\n/**\n * Streaming Zlib compression\n */\n\nvar Zlib = /*#__PURE__*/function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n\n\n Zlib.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n\n Zlib.prototype.p = function (c, f) {\n this.c.p(c);\n var raw = dopt(c, this.o, this.v && 2, f && 4, !f);\n if (this.v) zlh(raw, this.o), this.v = 0;\n if (f) wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n\n return Zlib;\n}();\n\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\n\nvar AsyncZlib = /*#__PURE__*/function () {\n function AsyncZlib(opts, cb) {\n astrmify([bDflt, zle, function () {\n return [astrm, Deflate, Zlib];\n }], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10);\n }\n\n return AsyncZlib;\n}();\n\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n return cbify(data, opts, [bDflt, zle, function () {\n return [zlibSync];\n }], function (ev) {\n return pbf(zlibSync(ev.data[0], ev.data[1]));\n }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\n\nexport function zlibSync(data, opts) {\n if (!opts) opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\n\nvar Unzlib = /*#__PURE__*/function () {\n /**\n * Creates a Zlib decompression stream\n * @param cb The callback to call whenever data is inflated\n */\n function Unzlib(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n\n\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n\n if (this.v) {\n if (this.p.length < 2 && !final) return;\n this.p = this.p.subarray(2), this.v = 0;\n }\n\n if (final) {\n if (this.p.length < 4) throw 'invalid zlib stream';\n this.p = this.p.subarray(0, -4);\n } // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n\n\n Inflate.prototype.c.call(this, final);\n };\n\n return Unzlib;\n}();\n\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\n\nvar AsyncUnzlib = /*#__PURE__*/function () {\n /**\n * Creates an asynchronous Zlib decompression stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncUnzlib(cb) {\n this.ondata = cb;\n astrmify([bInflt, zule, function () {\n return [astrm, Inflate, Unzlib];\n }], this, 0, function () {\n var strm = new Unzlib();\n onmessage = astrm(strm);\n }, 11);\n }\n\n return AsyncUnzlib;\n}();\n\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n return cbify(data, opts, [bInflt, zule, function () {\n return [unzlibSync];\n }], function (ev) {\n return pbf(unzlibSync(ev.data[0], gu8(ev.data[1])));\n }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\n\nexport function unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n} // Default algorithm for compression (used because having a known output size allows faster decompression)\n\nexport { gzip as compress, AsyncGzip as AsyncCompress }; // Default algorithm for compression (used because having a known output size allows faster decompression)\n\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\n\nvar Decompress = /*#__PURE__*/function () {\n /**\n * Creates a decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function Decompress(cb) {\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n\n\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata) throw 'no stream handler';\n\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n } else this.p = chunk;\n\n if (this.p.length > 2) {\n var _this_1 = this;\n\n var cb = function cb() {\n _this_1.ondata.apply(_this_1, arguments);\n };\n\n this.s = this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8 ? new this.G(cb) : (this.p[0] & 15) != 8 || this.p[0] >> 4 > 7 || (this.p[0] << 8 | this.p[1]) % 31 ? new this.I(cb) : new this.Z(cb);\n this.s.push(this.p, final);\n this.p = null;\n }\n } else this.s.push(chunk, final);\n };\n\n return Decompress;\n}();\n\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\n\nvar AsyncDecompress = /*#__PURE__*/function () {\n /**\n * Creates an asynchronous decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function AsyncDecompress(cb) {\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n\n\n AsyncDecompress.prototype.push = function (chunk, final) {\n Decompress.prototype.push.call(this, chunk, final);\n };\n\n return AsyncDecompress;\n}();\n\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n return data[0] == 31 && data[1] == 139 && data[2] == 8 ? gunzip(data, opts, cb) : (data[0] & 15) != 8 || data[0] >> 4 > 7 || (data[0] << 8 | data[1]) % 31 ? inflate(data, opts, cb) : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\n\nexport function decompressSync(data, out) {\n return data[0] == 31 && data[1] == 139 && data[2] == 8 ? gunzipSync(data, out) : (data[0] & 15) != 8 || data[0] >> 4 > 7 || (data[0] << 8 | data[1]) % 31 ? inflateSync(data, out) : unzlibSync(data, out);\n} // flatten a directory structure\n\nvar fltn = function fltn(d, p, t, o) {\n for (var k in d) {\n var val = d[k],\n n = p + k;\n if (val instanceof u8) t[n] = [val, o];else if (Array.isArray(val)) t[n] = [val[0], mrg(o, val[1])];else fltn(val, n + '/', t, o);\n }\n}; // text encoder\n\n\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/new TextEncoder(); // text decoder\n\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/new TextDecoder(); // text decoder stream\n\nvar tds = 0;\n\ntry {\n td.decode(et, {\n stream: true\n });\n tds = 1;\n} catch (e) {} // decode UTF8\n\n\nvar dutf8 = function dutf8(d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length) return [r, slc(d, i - 1)];\n if (!eb) r += String.fromCharCode(c);else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | d[i++] & 63) - 65536, r += String.fromCharCode(55296 | c >> 10, 56320 | c & 1023);\n } else if (eb & 1) r += String.fromCharCode((c & 31) << 6 | d[i++] & 63);else r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | d[i++] & 63);\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\n\n\nvar DecodeUTF8 = /*#__PURE__*/function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds) this.t = new TextDecoder();else this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n\n\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata) throw 'no callback';\n final = !!final;\n\n if (this.t) {\n this.ondata(this.t.decode(chunk, {\n stream: true\n }), final);\n\n if (final) {\n if (this.t.decode().length) throw 'invalid utf-8 data';\n this.t = null;\n }\n\n return;\n }\n\n if (!this.p) throw 'stream finished';\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n\n var _a = dutf8(dat),\n ch = _a[0],\n np = _a[1];\n\n if (final) {\n if (np.length) throw 'invalid utf-8 data';\n this.p = null;\n } else this.p = np;\n\n this.ondata(ch, final);\n };\n\n return DecodeUTF8;\n}();\n\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\n\nvar EncodeUTF8 = /*#__PURE__*/function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n\n\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata) throw 'no callback';\n if (this.d) throw 'stream finished';\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n\n return EncodeUTF8;\n}();\n\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\n\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n\n for (var i = 0; i < str.length; ++i) {\n ar_1[i] = str.charCodeAt(i);\n }\n\n return ar_1;\n }\n\n if (te) return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n\n var w = function w(v) {\n ar[ai++] = v;\n };\n\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + (l - i << 1));\n n.set(ar);\n ar = n;\n }\n\n var c = str.charCodeAt(i);\n if (c < 128 || latin1) w(c);else if (c < 2048) w(192 | c >> 6), w(128 | c & 63);else if (c > 55295 && c < 57344) c = 65536 + (c & 1023 << 10) | str.charCodeAt(++i) & 1023, w(240 | c >> 18), w(128 | c >> 12 & 63), w(128 | c >> 6 & 63), w(128 | c & 63);else w(224 | c >> 12), w(128 | c >> 6 & 63), w(128 | c & 63);\n }\n\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\n\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n\n for (var i = 0; i < dat.length; i += 16384) {\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n }\n\n return r;\n } else if (td) return td.decode(dat);else {\n var _a = dutf8(dat),\n out = _a[0],\n ext = _a[1];\n\n if (ext.length) throw 'invalid utf-8 data';\n return out;\n }\n}\n; // deflate bit flag\n\nvar dbf = function dbf(l) {\n return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0;\n}; // skip local zip header\n\n\nvar slzh = function slzh(d, b) {\n return b + 30 + b2(d, b + 26) + b2(d, b + 28);\n}; // read zip header\n\n\nvar zh = function zh(d, b, z) {\n var fnl = b2(d, b + 28),\n fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)),\n es = b + 46 + fnl,\n bs = b4(d, b + 20);\n\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)],\n sc = _a[0],\n su = _a[1],\n off = _a[2];\n\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n}; // read zip64 extra field\n\n\nvar z64e = function z64e(d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2)) {\n ;\n }\n\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n}; // extra field length\n\n\nvar exfl = function exfl(ex) {\n var le = 0;\n\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535) throw 'extra field too long';\n le += l + 4;\n }\n }\n\n return le;\n}; // write zip header\n\n\nvar wzh = function wzh(d, b, f, fn, u, c, ce, co) {\n var fl = fn.length,\n ex = f.extra,\n col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null) d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n\n d[b++] = f.flag << 1 | (c == null && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime),\n y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119) throw 'date not in range 1980-2099';\n wbytes(d, b, y << 25 | dt.getMonth() + 1 << 21 | dt.getDate() << 16 | dt.getHours() << 11 | dt.getMinutes() << 5 | dt.getSeconds() >>> 1), b += 4;\n\n if (c != null) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c);\n wbytes(d, b + 8, f.size);\n }\n\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n\n d.set(fn, b);\n b += fl;\n\n if (exl) {\n for (var k in ex) {\n var exf = ex[k],\n l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n\n if (col) d.set(co, b), b += col;\n return b;\n}; // write zip footer (end of central directory)\n\n\nvar wzf = function wzf(o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\n\n\nvar ZipPassThrough = /*#__PURE__*/function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n\n\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n\n\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata) throw 'no callback - add to ZIP archive before pushing';\n this.c.p(chunk);\n this.size += chunk.length;\n if (final) this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n\n return ZipPassThrough;\n}();\n\nexport { ZipPassThrough }; // I don't extend because TypeScript extension adds 1kB of runtime bloat\n\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\n\nvar ZipDeflate = /*#__PURE__*/function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this_1 = this;\n\n if (!opts) opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n } catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n\n\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n\n return ZipDeflate;\n}();\n\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\n\nvar AsyncZipDeflate = /*#__PURE__*/function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this_1 = this;\n\n if (!opts) opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this_1.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n\n\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n\n return AsyncZipDeflate;\n}();\n\nexport { AsyncZipDeflate }; // TODO: Better tree shaking\n\n/**\n * A zippable archive to which files can incrementally be added\n */\n\nvar Zip = /*#__PURE__*/function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n\n\n Zip.prototype.add = function (file) {\n var _this_1 = this;\n\n if (this.d & 2) throw 'stream finished';\n var f = strToU8(file.filename),\n fl = f.length;\n var com = file.comment,\n o = com && strToU8(com);\n var u = fl != file.filename.length || o && com.length != o.length;\n var hl = fl + exfl(file.extra) + 30;\n if (fl > 65535) throw 'filename too long';\n var header = new u8(hl);\n wzh(header, 0, file, f, u);\n var chks = [header];\n\n var pAll = function pAll() {\n for (var _i = 0, chks_1 = chks; _i < chks_1.length; _i++) {\n var chk = chks_1[_i];\n\n _this_1.ondata(null, chk, false);\n }\n\n chks = [];\n };\n\n var tr = this.d;\n this.d = 0;\n var ind = this.u.length;\n var uf = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function t() {\n if (file.terminate) file.terminate();\n },\n r: function r() {\n pAll();\n\n if (tr) {\n var nxt = _this_1.u[ind + 1];\n if (nxt) nxt.r();else _this_1.d = 1;\n }\n\n tr = 1;\n }\n });\n var cl = 0;\n\n file.ondata = function (err, dat, final) {\n if (err) {\n _this_1.ondata(err, dat, final);\n\n _this_1.terminate();\n } else {\n cl += dat.length;\n chks.push(dat);\n\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl);\n wbytes(dd, 12, file.size);\n chks.push(dd);\n uf.c = cl, uf.b = hl + cl + 16, uf.crc = file.crc, uf.size = file.size;\n if (tr) uf.r();\n tr = 1;\n } else if (tr) pAll();\n }\n };\n\n this.u.push(uf);\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n\n\n Zip.prototype.end = function () {\n var _this_1 = this;\n\n if (this.d & 2) {\n if (this.d & 1) throw 'stream finishing';\n throw 'stream finished';\n }\n\n if (this.d) this.e();else this.u.push({\n r: function r() {\n if (!(_this_1.d & 1)) return;\n\n _this_1.u.splice(-1, 1);\n\n _this_1.e();\n },\n t: function t() {}\n });\n this.d = 3;\n };\n\n Zip.prototype.e = function () {\n var bt = 0,\n l = 0,\n tl = 0;\n\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n\n var out = new u8(tl + 22);\n\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, f.c, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n\n\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n\n this.d = 2;\n };\n\n return Zip;\n}();\n\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length,\n o = 0,\n tot = 0;\n var slft = lft,\n files = new Array(lft);\n var term = [];\n\n var tAll = function tAll() {\n for (var i = 0; i < term.length; ++i) {\n term[i]();\n }\n };\n\n var cbf = function cbf() {\n var out = new u8(tot + 22),\n oe = o,\n cdl = tot - o;\n tot = 0;\n\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n } catch (e) {\n return cb(e, null);\n }\n }\n\n wzf(out, o, files.length, cdl, oe);\n cb(null, out);\n };\n\n if (!lft) cbf();\n\n var _loop_1 = function _loop_1(i) {\n var fn = k[i];\n var _a = r[fn],\n file = _a[0],\n p = _a[1];\n var c = crc(),\n size = file.length;\n c.p(file);\n var f = strToU8(fn),\n s = f.length;\n var com = p.comment,\n m = com && strToU8(com),\n ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n\n var cbl = function cbl(e, d) {\n if (e) {\n tAll();\n cb(e, null);\n } else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || m && com.length != ms,\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (! --lft) cbf();\n }\n };\n\n if (s > 65535) cbl('filename too long', null);\n if (!compression) cbl(null, file);else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n } catch (e) {\n cbl(e, null);\n }\n } else term.push(deflate(file, p, cbl));\n }; // Cannot use lft because it can decrease\n\n\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\n\nexport function zipSync(data, opts) {\n if (!opts) opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n\n for (var fn in r) {\n var _a = r[fn],\n file = _a[0],\n p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn),\n s = f.length;\n var com = p.comment,\n m = com && strToU8(com),\n ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535) throw 'filename too long';\n var d = compression ? deflateSync(file, p) : file,\n l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || m && com.length != ms,\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n\n var out = new u8(tot + 22),\n oe = o,\n cdl = tot - o;\n\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\n\nvar UnzipPassThrough = /*#__PURE__*/function () {\n function UnzipPassThrough() {}\n\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}();\n\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\n\nvar UnzipInflate = /*#__PURE__*/function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this_1 = this;\n\n this.i = new Inflate(function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n }\n\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n } catch (e) {\n this.ondata(e, data, final);\n }\n };\n\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}();\n\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\n\nvar AsyncUnzipInflate = /*#__PURE__*/function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this_1 = this;\n\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n } else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this_1.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate) data = slc(data, 0);\n this.i.push(data, final);\n };\n\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}();\n\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\n\nvar Unzip = /*#__PURE__*/function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n\n\n Unzip.prototype.push = function (chunk, final) {\n var _this_1 = this;\n\n if (!this.onfile) throw 'no callback';\n if (!this.p) throw 'stream finished';\n\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d) this.d.push(toAdd, !this.c);else this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length) return this.push(chunk, final);\n } else {\n var f = 0,\n i = 0,\n is = void 0,\n buf = void 0;\n if (!this.p.length) buf = chunk;else if (!chunk.length) buf = this.p;else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length,\n oc = this.c,\n add = oc && this.d;\n\n var _loop_2 = function _loop_2() {\n var _a;\n\n var sig = b4(buf, i);\n\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6),\n cmp_1 = b2(buf, i + 8),\n u = bf & 2048,\n dd = bf & 8,\n fnl = b2(buf, i + 26),\n es = b2(buf, i + 28);\n\n if (l > i + 30 + fnl + es) {\n var chks_2 = [];\n this_1.k.unshift(chks_2);\n f = 2;\n var sc_1 = b4(buf, i + 18),\n su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n } else if (dd) sc_1 = -1;\n\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function start() {\n if (!file_1.ondata) throw 'no callback';\n if (!sc_1) file_1.ondata(null, et, true);else {\n var ctr = _this_1.o[cmp_1];\n if (!ctr) throw 'unknown compression type ' + cmp_1;\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n\n d_1.ondata = function (err, dat, final) {\n file_1.ondata(err, dat, final);\n };\n\n for (var _i = 0, chks_3 = chks_2; _i < chks_3.length; _i++) {\n var dat = chks_3[_i];\n d_1.push(dat, false);\n }\n\n if (_this_1.k[0] == chks_2 && _this_1.c) _this_1.d = d_1;else d_1.push(et, true);\n }\n },\n terminate: function terminate() {\n if (d_1 && d_1.terminate) d_1.terminate();\n }\n };\n if (sc_1 >= 0) file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n\n return \"break\";\n } else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n } else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n\n var this_1 = this;\n\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n\n if (state_1 === \"break\") break;\n }\n\n this.p = et;\n\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add) add.push(dat, !!f);else this.k[+(f == 2)].push(dat);\n }\n\n if (f & 2) return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n\n if (final) {\n if (this.c) throw 'invalid zip file';\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n\n\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n\n return Unzip;\n}();\n\nexport { Unzip };\n/**\n * Asynchronously decompresses a ZIP archive\n * @param data The raw compressed ZIP file\n * @param cb The callback to call with the decompressed files\n * @returns A function that can be used to immediately terminate the unzipping\n */\n\nexport function unzip(data, cb) {\n if (typeof cb != 'function') throw 'no callback';\n var term = [];\n\n var tAll = function tAll() {\n for (var i = 0; i < term.length; ++i) {\n term[i]();\n }\n };\n\n var files = {};\n var e = data.length - 22;\n\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cb('invalid zip file', null);\n return;\n }\n }\n\n ;\n var lft = b2(data, e + 8);\n if (!lft) cb(null, {});\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n\n if (z) {\n e = b4(data, e - 12);\n\n if (b4(data, e) != 0x6064B50) {\n cb('invalid zip file', null);\n return;\n }\n\n c = lft = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n\n var _loop_3 = function _loop_3(i) {\n var _a = zh(data, o, z),\n c_1 = _a[0],\n sc = _a[1],\n su = _a[2],\n fn = _a[3],\n no = _a[4],\n off = _a[5],\n b = slzh(data, off);\n\n o = no;\n\n var cbl = function cbl(e, d) {\n if (e) {\n tAll();\n cb(e, null);\n } else {\n files[fn] = d;\n if (! --lft) cb(null, files);\n }\n };\n\n if (!c_1) cbl(null, slc(data, b, b + sc));else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n\n if (sc < 320000) {\n try {\n cbl(null, inflateSync(infl, new u8(su)));\n } catch (e) {\n cbl(e, null);\n }\n } else term.push(inflate(infl, {\n size: su\n }, cbl));\n } else cbl('unknown compression type ' + c_1, null);\n };\n\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @returns The decompressed files\n */\n\nexport function unzipSync(data) {\n var files = {};\n var e = data.length - 22;\n\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) throw 'invalid zip file';\n }\n\n ;\n var c = b2(data, e + 8);\n if (!c) return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50) throw 'invalid zip file';\n c = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z),\n c_2 = _a[0],\n sc = _a[1],\n su = _a[2],\n fn = _a[3],\n no = _a[4],\n off = _a[5],\n b = slzh(data, off);\n\n o = no;\n if (!c_2) files[fn] = slc(data, b, b + sc);else if (c_2 == 8) files[fn] = inflateSync(data.subarray(b, b + sc), new u8(su));else throw 'unknown compression type ' + c_2;\n }\n\n return files;\n}","import { Vector3, Vector4 } from 'three';\n/**\n * NURBS utils\n *\n * See NURBSCurve and NURBSSurface.\n **/\n\n/**************************************************************\n *\tNURBS Utils\n **************************************************************/\n\n/*\nFinds knot vector span.\n\np : degree\nu : parametric value\nU : knot vector\n\nreturns the span\n*/\n\nfunction findSpan(p, u, U) {\n var n = U.length - p - 1;\n\n if (u >= U[n]) {\n return n - 1;\n }\n\n if (u <= U[p]) {\n return p;\n }\n\n var low = p;\n var high = n;\n var mid = Math.floor((low + high) / 2);\n\n while (u < U[mid] || u >= U[mid + 1]) {\n if (u < U[mid]) {\n high = mid;\n } else {\n low = mid;\n }\n\n mid = Math.floor((low + high) / 2);\n }\n\n return mid;\n}\n/*\nCalculate basis functions. See The NURBS Book, page 70, algorithm A2.2\n\nspan : span in which u lies\nu : parametric point\np : degree\nU : knot vector\n\nreturns array[p+1] with basis functions values.\n*/\n\n\nfunction calcBasisFunctions(span, u, p, U) {\n var N = [];\n var left = [];\n var right = [];\n N[0] = 1.0;\n\n for (var j = 1; j <= p; ++j) {\n left[j] = u - U[span + 1 - j];\n right[j] = U[span + j] - u;\n var saved = 0.0;\n\n for (var r = 0; r < j; ++r) {\n var rv = right[r + 1];\n var lv = left[j - r];\n var temp = N[r] / (rv + lv);\n N[r] = saved + rv * temp;\n saved = lv * temp;\n }\n\n N[j] = saved;\n }\n\n return N;\n}\n/*\nCalculate B-Spline curve points. See The NURBS Book, page 82, algorithm A3.1.\n\np : degree of B-Spline\nU : knot vector\nP : control points (x, y, z, w)\nu : parametric point\n\nreturns point for given u\n*/\n\n\nfunction calcBSplinePoint(p, U, P, u) {\n var span = findSpan(p, u, U);\n var N = calcBasisFunctions(span, u, p, U);\n var C = new Vector4(0, 0, 0, 0);\n\n for (var j = 0; j <= p; ++j) {\n var point = P[span - p + j];\n var Nj = N[j];\n var wNj = point.w * Nj;\n C.x += point.x * wNj;\n C.y += point.y * wNj;\n C.z += point.z * wNj;\n C.w += point.w * Nj;\n }\n\n return C;\n}\n/*\nCalculate basis functions derivatives. See The NURBS Book, page 72, algorithm A2.3.\n\nspan : span in which u lies\nu : parametric point\np : degree\nn : number of derivatives to calculate\nU : knot vector\n\nreturns array[n+1][p+1] with basis functions derivatives\n*/\n\n\nfunction calcBasisFunctionDerivatives(span, u, p, n, U) {\n var zeroArr = [];\n\n for (var i = 0; i <= p; ++i) {\n zeroArr[i] = 0.0;\n }\n\n var ders = [];\n\n for (var _i = 0; _i <= n; ++_i) {\n ders[_i] = zeroArr.slice(0);\n }\n\n var ndu = [];\n\n for (var _i2 = 0; _i2 <= p; ++_i2) {\n ndu[_i2] = zeroArr.slice(0);\n }\n\n ndu[0][0] = 1.0;\n var left = zeroArr.slice(0);\n var right = zeroArr.slice(0);\n\n for (var j = 1; j <= p; ++j) {\n left[j] = u - U[span + 1 - j];\n right[j] = U[span + j] - u;\n var saved = 0.0;\n\n for (var _r = 0; _r < j; ++_r) {\n var rv = right[_r + 1];\n var lv = left[j - _r];\n ndu[j][_r] = rv + lv;\n var temp = ndu[_r][j - 1] / ndu[j][_r];\n ndu[_r][j] = saved + rv * temp;\n saved = lv * temp;\n }\n\n ndu[j][j] = saved;\n }\n\n for (var _j = 0; _j <= p; ++_j) {\n ders[0][_j] = ndu[_j][p];\n }\n\n for (var _r2 = 0; _r2 <= p; ++_r2) {\n var s1 = 0;\n var s2 = 1;\n var a = [];\n\n for (var _i3 = 0; _i3 <= p; ++_i3) {\n a[_i3] = zeroArr.slice(0);\n }\n\n a[0][0] = 1.0;\n\n for (var k = 1; k <= n; ++k) {\n var d = 0.0;\n var rk = _r2 - k;\n var pk = p - k;\n\n if (_r2 >= k) {\n a[s2][0] = a[s1][0] / ndu[pk + 1][rk];\n d = a[s2][0] * ndu[rk][pk];\n }\n\n var j1 = rk >= -1 ? 1 : -rk;\n var j2 = _r2 - 1 <= pk ? k - 1 : p - _r2;\n\n for (var _j3 = j1; _j3 <= j2; ++_j3) {\n a[s2][_j3] = (a[s1][_j3] - a[s1][_j3 - 1]) / ndu[pk + 1][rk + _j3];\n d += a[s2][_j3] * ndu[rk + _j3][pk];\n }\n\n if (_r2 <= pk) {\n a[s2][k] = -a[s1][k - 1] / ndu[pk + 1][_r2];\n d += a[s2][k] * ndu[_r2][pk];\n }\n\n ders[k][_r2] = d;\n var _j2 = s1;\n s1 = s2;\n s2 = _j2;\n }\n }\n\n var r = p;\n\n for (var _k = 1; _k <= n; ++_k) {\n for (var _j4 = 0; _j4 <= p; ++_j4) {\n ders[_k][_j4] *= r;\n }\n\n r *= p - _k;\n }\n\n return ders;\n}\n/*\n\tCalculate derivatives of a B-Spline. See The NURBS Book, page 93, algorithm A3.2.\n\n\tp : degree\n\tU : knot vector\n\tP : control points\n\tu : Parametric points\n\tnd : number of derivatives\n\n\treturns array[d+1] with derivatives\n\t*/\n\n\nfunction calcBSplineDerivatives(p, U, P, u, nd) {\n var du = nd < p ? nd : p;\n var CK = [];\n var span = findSpan(p, u, U);\n var nders = calcBasisFunctionDerivatives(span, u, p, du, U);\n var Pw = [];\n\n for (var i = 0; i < P.length; ++i) {\n var point = P[i].clone();\n var w = point.w;\n point.x *= w;\n point.y *= w;\n point.z *= w;\n Pw[i] = point;\n }\n\n for (var k = 0; k <= du; ++k) {\n var _point = Pw[span - p].clone().multiplyScalar(nders[k][0]);\n\n for (var j = 1; j <= p; ++j) {\n _point.add(Pw[span - p + j].clone().multiplyScalar(nders[k][j]));\n }\n\n CK[k] = _point;\n }\n\n for (var _k2 = du + 1; _k2 <= nd + 1; ++_k2) {\n CK[_k2] = new Vector4(0, 0, 0);\n }\n\n return CK;\n}\n/*\nCalculate \"K over I\"\n\nreturns k!/(i!(k-i)!)\n*/\n\n\nfunction calcKoverI(k, i) {\n var nom = 1;\n\n for (var j = 2; j <= k; ++j) {\n nom *= j;\n }\n\n var denom = 1;\n\n for (var _j5 = 2; _j5 <= i; ++_j5) {\n denom *= _j5;\n }\n\n for (var _j6 = 2; _j6 <= k - i; ++_j6) {\n denom *= _j6;\n }\n\n return nom / denom;\n}\n/*\nCalculate derivatives (0-nd) of rational curve. See The NURBS Book, page 127, algorithm A4.2.\n\nPders : result of function calcBSplineDerivatives\n\nreturns array with derivatives for rational curve.\n*/\n\n\nfunction calcRationalCurveDerivatives(Pders) {\n var nd = Pders.length;\n var Aders = [];\n var wders = [];\n\n for (var i = 0; i < nd; ++i) {\n var point = Pders[i];\n Aders[i] = new Vector3(point.x, point.y, point.z);\n wders[i] = point.w;\n }\n\n var CK = [];\n\n for (var k = 0; k < nd; ++k) {\n var v = Aders[k].clone();\n\n for (var _i4 = 1; _i4 <= k; ++_i4) {\n v.sub(CK[k - _i4].clone().multiplyScalar(calcKoverI(k, _i4) * wders[_i4]));\n }\n\n CK[k] = v.divideScalar(wders[0]);\n }\n\n return CK;\n}\n/*\nCalculate NURBS curve derivatives. See The NURBS Book, page 127, algorithm A4.2.\n\np : degree\nU : knot vector\nP : control points in homogeneous space\nu : parametric points\nnd : number of derivatives\n\nreturns array with derivatives.\n*/\n\n\nfunction calcNURBSDerivatives(p, U, P, u, nd) {\n var Pders = calcBSplineDerivatives(p, U, P, u, nd);\n return calcRationalCurveDerivatives(Pders);\n}\n/*\nCalculate rational B-Spline surface point. See The NURBS Book, page 134, algorithm A4.3.\n\np1, p2 : degrees of B-Spline surface\nU1, U2 : knot vectors\nP : control points (x, y, z, w)\nu, v : parametric values\n\nreturns point for given (u, v)\n*/\n\n\nfunction calcSurfacePoint(p, q, U, V, P, u, v, target) {\n var uspan = findSpan(p, u, U);\n var vspan = findSpan(q, v, V);\n var Nu = calcBasisFunctions(uspan, u, p, U);\n var Nv = calcBasisFunctions(vspan, v, q, V);\n var temp = [];\n\n for (var l = 0; l <= q; ++l) {\n temp[l] = new Vector4(0, 0, 0, 0);\n\n for (var k = 0; k <= p; ++k) {\n var point = P[uspan - p + k][vspan - q + l].clone();\n var w = point.w;\n point.x *= w;\n point.y *= w;\n point.z *= w;\n temp[l].add(point.multiplyScalar(Nu[k]));\n }\n }\n\n var Sw = new Vector4(0, 0, 0, 0);\n\n for (var _l = 0; _l <= q; ++_l) {\n Sw.add(temp[_l].multiplyScalar(Nv[_l]));\n }\n\n Sw.divideScalar(Sw.w);\n target.set(Sw.x, Sw.y, Sw.z);\n}\n\nexport { findSpan, calcBasisFunctions, calcBSplinePoint, calcBasisFunctionDerivatives, calcBSplineDerivatives, calcKoverI, calcRationalCurveDerivatives, calcNURBSDerivatives, calcSurfacePoint };","import _classCallCheck from \"D:\\\\AT projects\\\\explorug-v3\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"D:\\\\AT projects\\\\explorug-v3\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/createClass\";\nimport _inherits from \"D:\\\\AT projects\\\\explorug-v3\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/inherits\";\nimport _createSuper from \"D:\\\\AT projects\\\\explorug-v3\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/createSuper\";\nimport { Curve, Vector3, Vector4 } from 'three';\nimport * as NURBSUtils from '../curves/NURBSUtils.js';\n/**\n * NURBS curve object\n *\n * Derives from Curve, overriding getPoint and getTangent.\n *\n * Implementation is based on (x, y [, z=0 [, w=1]]) control points with w=weight.\n *\n **/\n\nvar NURBSCurve = /*#__PURE__*/function (_Curve) {\n _inherits(NURBSCurve, _Curve);\n\n var _super = _createSuper(NURBSCurve);\n\n function NURBSCurve(degree, knots\n /* array of reals */\n , controlPoints\n /* array of Vector(2|3|4) */\n , startKnot\n /* index in knots */\n , endKnot\n /* index in knots */\n ) {\n var _this;\n\n _classCallCheck(this, NURBSCurve);\n\n _this = _super.call(this);\n _this.degree = degree;\n _this.knots = knots;\n _this.controlPoints = []; // Used by periodic NURBS to remove hidden spans\n\n _this.startKnot = startKnot || 0;\n _this.endKnot = endKnot || _this.knots.length - 1;\n\n for (var i = 0; i < controlPoints.length; ++i) {\n // ensure Vector4 for control points\n var point = controlPoints[i];\n _this.controlPoints[i] = new Vector4(point.x, point.y, point.z, point.w);\n }\n\n return _this;\n }\n\n _createClass(NURBSCurve, [{\n key: \"getPoint\",\n value: function getPoint(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector3();\n var point = optionalTarget;\n var u = this.knots[this.startKnot] + t * (this.knots[this.endKnot] - this.knots[this.startKnot]); // linear mapping t->u\n // following results in (wx, wy, wz, w) homogeneous point\n\n var hpoint = NURBSUtils.calcBSplinePoint(this.degree, this.knots, this.controlPoints, u);\n\n if (hpoint.w !== 1.0) {\n // project to 3D space: (wx, wy, wz, w) -> (x, y, z, 1)\n hpoint.divideScalar(hpoint.w);\n }\n\n return point.set(hpoint.x, hpoint.y, hpoint.z);\n }\n }, {\n key: \"getTangent\",\n value: function getTangent(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Vector3();\n var tangent = optionalTarget;\n var u = this.knots[0] + t * (this.knots[this.knots.length - 1] - this.knots[0]);\n var ders = NURBSUtils.calcNURBSDerivatives(this.degree, this.knots, this.controlPoints, u, 1);\n tangent.copy(ders[1]).normalize();\n return tangent;\n }\n }]);\n\n return NURBSCurve;\n}(Curve);\n\nexport { NURBSCurve };","import _classCallCheck from \"D:\\\\AT projects\\\\explorug-v3\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"D:\\\\AT projects\\\\explorug-v3\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/createClass\";\nimport _inherits from \"D:\\\\AT projects\\\\explorug-v3\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/inherits\";\nimport _createSuper from \"D:\\\\AT projects\\\\explorug-v3\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/createSuper\";\nimport { AmbientLight, AnimationClip, Bone, BufferGeometry, ClampToEdgeWrapping, Color, DirectionalLight, EquirectangularReflectionMapping, Euler, FileLoader, Float32BufferAttribute, Group, Line, LineBasicMaterial, Loader, LoaderUtils, MathUtils, Matrix3, Matrix4, Mesh, MeshLambertMaterial, MeshPhongMaterial, NumberKeyframeTrack, Object3D, OrthographicCamera, PerspectiveCamera, PointLight, PropertyBinding, Quaternion, QuaternionKeyframeTrack, RepeatWrapping, Skeleton, SkinnedMesh, SpotLight, Texture, TextureLoader, Uint16BufferAttribute, Vector3, Vector4, VectorKeyframeTrack, SRGBColorSpace } from 'three';\nimport * as fflate from '../libs/fflate.module.js';\nimport { NURBSCurve } from '../curves/NURBSCurve.js';\n/**\n * Loader loads FBX file and generates Group representing FBX scene.\n * Requires FBX file to be >= 7.0 and in ASCII or >= 6400 in Binary format\n * Versions lower than this may load but will probably have errors\n *\n * Needs Support:\n * Morph normals / blend shape normals\n *\n * FBX format references:\n * \thttps://help.autodesk.com/view/FBX/2017/ENU/?guid=__cpp_ref_index_html (C++ SDK reference)\n *\n * Binary format specification:\n *\thttps://code.blender.org/2013/08/fbx-binary-file-format-specification/\n */\n\nvar fbxTree;\nvar connections;\nvar sceneGraph;\n\nvar FBXLoader = /*#__PURE__*/function (_Loader) {\n _inherits(FBXLoader, _Loader);\n\n var _super = _createSuper(FBXLoader);\n\n function FBXLoader(manager) {\n _classCallCheck(this, FBXLoader);\n\n return _super.call(this, manager);\n }\n\n _createClass(FBXLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var path = scope.path === '' ? LoaderUtils.extractUrlBase(url) : scope.path;\n var loader = new FileLoader(this.manager);\n loader.setPath(scope.path);\n loader.setResponseType('arraybuffer');\n loader.setRequestHeader(scope.requestHeader);\n loader.setWithCredentials(scope.withCredentials);\n loader.load(url, function (buffer) {\n try {\n onLoad(scope.parse(buffer, path));\n } catch (e) {\n if (onError) {\n onError(e);\n } else {\n console.error(e);\n }\n\n scope.manager.itemError(url);\n }\n }, onProgress, onError);\n }\n }, {\n key: \"parse\",\n value: function parse(FBXBuffer, path) {\n if (isFbxFormatBinary(FBXBuffer)) {\n fbxTree = new BinaryParser().parse(FBXBuffer);\n } else {\n var FBXText = convertArrayBufferToString(FBXBuffer);\n\n if (!isFbxFormatASCII(FBXText)) {\n throw new Error('THREE.FBXLoader: Unknown format.');\n }\n\n if (getFbxVersion(FBXText) < 7000) {\n throw new Error('THREE.FBXLoader: FBX version not supported, FileVersion: ' + getFbxVersion(FBXText));\n }\n\n fbxTree = new TextParser().parse(FBXText);\n } // console.log( fbxTree );\n\n\n var textureLoader = new TextureLoader(this.manager).setPath(this.resourcePath || path).setCrossOrigin(this.crossOrigin);\n return new FBXTreeParser(textureLoader, this.manager).parse(fbxTree);\n }\n }]);\n\n return FBXLoader;\n}(Loader); // Parse the FBXTree object returned by the BinaryParser or TextParser and return a Group\n\n\nvar FBXTreeParser = /*#__PURE__*/function () {\n function FBXTreeParser(textureLoader, manager) {\n _classCallCheck(this, FBXTreeParser);\n\n this.textureLoader = textureLoader;\n this.manager = manager;\n }\n\n _createClass(FBXTreeParser, [{\n key: \"parse\",\n value: function parse() {\n connections = this.parseConnections();\n var images = this.parseImages();\n var textures = this.parseTextures(images);\n var materials = this.parseMaterials(textures);\n var deformers = this.parseDeformers();\n var geometryMap = new GeometryParser().parse(deformers);\n this.parseScene(deformers, geometryMap, materials);\n return sceneGraph;\n } // Parses FBXTree.Connections which holds parent-child connections between objects (e.g. material -> texture, model->geometry )\n // and details the connection type\n\n }, {\n key: \"parseConnections\",\n value: function parseConnections() {\n var connectionMap = new Map();\n\n if ('Connections' in fbxTree) {\n var rawConnections = fbxTree.Connections.connections;\n rawConnections.forEach(function (rawConnection) {\n var fromID = rawConnection[0];\n var toID = rawConnection[1];\n var relationship = rawConnection[2];\n\n if (!connectionMap.has(fromID)) {\n connectionMap.set(fromID, {\n parents: [],\n children: []\n });\n }\n\n var parentRelationship = {\n ID: toID,\n relationship: relationship\n };\n connectionMap.get(fromID).parents.push(parentRelationship);\n\n if (!connectionMap.has(toID)) {\n connectionMap.set(toID, {\n parents: [],\n children: []\n });\n }\n\n var childRelationship = {\n ID: fromID,\n relationship: relationship\n };\n connectionMap.get(toID).children.push(childRelationship);\n });\n }\n\n return connectionMap;\n } // Parse FBXTree.Objects.Video for embedded image data\n // These images are connected to textures in FBXTree.Objects.Textures\n // via FBXTree.Connections.\n\n }, {\n key: \"parseImages\",\n value: function parseImages() {\n var images = {};\n var blobs = {};\n\n if ('Video' in fbxTree.Objects) {\n var videoNodes = fbxTree.Objects.Video;\n\n for (var nodeID in videoNodes) {\n var videoNode = videoNodes[nodeID];\n var id = parseInt(nodeID);\n images[id] = videoNode.RelativeFilename || videoNode.Filename; // raw image data is in videoNode.Content\n\n if ('Content' in videoNode) {\n var arrayBufferContent = videoNode.Content instanceof ArrayBuffer && videoNode.Content.byteLength > 0;\n var base64Content = typeof videoNode.Content === 'string' && videoNode.Content !== '';\n\n if (arrayBufferContent || base64Content) {\n var image = this.parseImage(videoNodes[nodeID]);\n blobs[videoNode.RelativeFilename || videoNode.Filename] = image;\n }\n }\n }\n }\n\n for (var _id in images) {\n var filename = images[_id];\n if (blobs[filename] !== undefined) images[_id] = blobs[filename];else images[_id] = images[_id].split('\\\\').pop();\n }\n\n return images;\n } // Parse embedded image data in FBXTree.Video.Content\n\n }, {\n key: \"parseImage\",\n value: function parseImage(videoNode) {\n var content = videoNode.Content;\n var fileName = videoNode.RelativeFilename || videoNode.Filename;\n var extension = fileName.slice(fileName.lastIndexOf('.') + 1).toLowerCase();\n var type;\n\n switch (extension) {\n case 'bmp':\n type = 'image/bmp';\n break;\n\n case 'jpg':\n case 'jpeg':\n type = 'image/jpeg';\n break;\n\n case 'png':\n type = 'image/png';\n break;\n\n case 'tif':\n type = 'image/tiff';\n break;\n\n case 'tga':\n if (this.manager.getHandler('.tga') === null) {\n console.warn('FBXLoader: TGA loader not found, skipping ', fileName);\n }\n\n type = 'image/tga';\n break;\n\n default:\n console.warn('FBXLoader: Image type \"' + extension + '\" is not supported.');\n return;\n }\n\n if (typeof content === 'string') {\n // ASCII format\n return 'data:' + type + ';base64,' + content;\n } else {\n // Binary Format\n var array = new Uint8Array(content);\n return window.URL.createObjectURL(new Blob([array], {\n type: type\n }));\n }\n } // Parse nodes in FBXTree.Objects.Texture\n // These contain details such as UV scaling, cropping, rotation etc and are connected\n // to images in FBXTree.Objects.Video\n\n }, {\n key: \"parseTextures\",\n value: function parseTextures(images) {\n var textureMap = new Map();\n\n if ('Texture' in fbxTree.Objects) {\n var textureNodes = fbxTree.Objects.Texture;\n\n for (var nodeID in textureNodes) {\n var texture = this.parseTexture(textureNodes[nodeID], images);\n textureMap.set(parseInt(nodeID), texture);\n }\n }\n\n return textureMap;\n } // Parse individual node in FBXTree.Objects.Texture\n\n }, {\n key: \"parseTexture\",\n value: function parseTexture(textureNode, images) {\n var texture = this.loadTexture(textureNode, images);\n texture.ID = textureNode.id;\n texture.name = textureNode.attrName;\n var wrapModeU = textureNode.WrapModeU;\n var wrapModeV = textureNode.WrapModeV;\n var valueU = wrapModeU !== undefined ? wrapModeU.value : 0;\n var valueV = wrapModeV !== undefined ? wrapModeV.value : 0; // http://download.autodesk.com/us/fbx/SDKdocs/FBX_SDK_Help/files/fbxsdkref/class_k_fbx_texture.html#889640e63e2e681259ea81061b85143a\n // 0: repeat(default), 1: clamp\n\n texture.wrapS = valueU === 0 ? RepeatWrapping : ClampToEdgeWrapping;\n texture.wrapT = valueV === 0 ? RepeatWrapping : ClampToEdgeWrapping;\n\n if ('Scaling' in textureNode) {\n var values = textureNode.Scaling.value;\n texture.repeat.x = values[0];\n texture.repeat.y = values[1];\n }\n\n if ('Translation' in textureNode) {\n var _values = textureNode.Translation.value;\n texture.offset.x = _values[0];\n texture.offset.y = _values[1];\n }\n\n return texture;\n } // load a texture specified as a blob or data URI, or via an external URL using TextureLoader\n\n }, {\n key: \"loadTexture\",\n value: function loadTexture(textureNode, images) {\n var fileName;\n var currentPath = this.textureLoader.path;\n var children = connections.get(textureNode.id).children;\n\n if (children !== undefined && children.length > 0 && images[children[0].ID] !== undefined) {\n fileName = images[children[0].ID];\n\n if (fileName.indexOf('blob:') === 0 || fileName.indexOf('data:') === 0) {\n this.textureLoader.setPath(undefined);\n }\n }\n\n var texture;\n var extension = textureNode.FileName.slice(-3).toLowerCase();\n\n if (extension === 'tga') {\n var loader = this.manager.getHandler('.tga');\n\n if (loader === null) {\n console.warn('FBXLoader: TGA loader not found, creating placeholder texture for', textureNode.RelativeFilename);\n texture = new Texture();\n } else {\n loader.setPath(this.textureLoader.path);\n texture = loader.load(fileName);\n }\n } else if (extension === 'psd') {\n console.warn('FBXLoader: PSD textures are not supported, creating placeholder texture for', textureNode.RelativeFilename);\n texture = new Texture();\n } else {\n texture = this.textureLoader.load(fileName);\n }\n\n this.textureLoader.setPath(currentPath);\n return texture;\n } // Parse nodes in FBXTree.Objects.Material\n\n }, {\n key: \"parseMaterials\",\n value: function parseMaterials(textureMap) {\n var materialMap = new Map();\n\n if ('Material' in fbxTree.Objects) {\n var materialNodes = fbxTree.Objects.Material;\n\n for (var nodeID in materialNodes) {\n var material = this.parseMaterial(materialNodes[nodeID], textureMap);\n if (material !== null) materialMap.set(parseInt(nodeID), material);\n }\n }\n\n return materialMap;\n } // Parse single node in FBXTree.Objects.Material\n // Materials are connected to texture maps in FBXTree.Objects.Textures\n // FBX format currently only supports Lambert and Phong shading models\n\n }, {\n key: \"parseMaterial\",\n value: function parseMaterial(materialNode, textureMap) {\n var ID = materialNode.id;\n var name = materialNode.attrName;\n var type = materialNode.ShadingModel; // Case where FBX wraps shading model in property object.\n\n if (typeof type === 'object') {\n type = type.value;\n } // Ignore unused materials which don't have any connections.\n\n\n if (!connections.has(ID)) return null;\n var parameters = this.parseParameters(materialNode, textureMap, ID);\n var material;\n\n switch (type.toLowerCase()) {\n case 'phong':\n material = new MeshPhongMaterial();\n break;\n\n case 'lambert':\n material = new MeshLambertMaterial();\n break;\n\n default:\n console.warn('THREE.FBXLoader: unknown material type \"%s\". Defaulting to MeshPhongMaterial.', type);\n material = new MeshPhongMaterial();\n break;\n }\n\n material.setValues(parameters);\n material.name = name;\n return material;\n } // Parse FBX material and return parameters suitable for a three.js material\n // Also parse the texture map and return any textures associated with the material\n\n }, {\n key: \"parseParameters\",\n value: function parseParameters(materialNode, textureMap, ID) {\n var parameters = {};\n\n if (materialNode.BumpFactor) {\n parameters.bumpScale = materialNode.BumpFactor.value;\n }\n\n if (materialNode.Diffuse) {\n parameters.color = new Color().fromArray(materialNode.Diffuse.value).convertSRGBToLinear();\n } else if (materialNode.DiffuseColor && (materialNode.DiffuseColor.type === 'Color' || materialNode.DiffuseColor.type === 'ColorRGB')) {\n // The blender exporter exports diffuse here instead of in materialNode.Diffuse\n parameters.color = new Color().fromArray(materialNode.DiffuseColor.value).convertSRGBToLinear();\n }\n\n if (materialNode.DisplacementFactor) {\n parameters.displacementScale = materialNode.DisplacementFactor.value;\n }\n\n if (materialNode.Emissive) {\n parameters.emissive = new Color().fromArray(materialNode.Emissive.value).convertSRGBToLinear();\n } else if (materialNode.EmissiveColor && (materialNode.EmissiveColor.type === 'Color' || materialNode.EmissiveColor.type === 'ColorRGB')) {\n // The blender exporter exports emissive color here instead of in materialNode.Emissive\n parameters.emissive = new Color().fromArray(materialNode.EmissiveColor.value).convertSRGBToLinear();\n }\n\n if (materialNode.EmissiveFactor) {\n parameters.emissiveIntensity = parseFloat(materialNode.EmissiveFactor.value);\n }\n\n if (materialNode.Opacity) {\n parameters.opacity = parseFloat(materialNode.Opacity.value);\n }\n\n if (parameters.opacity < 1.0) {\n parameters.transparent = true;\n }\n\n if (materialNode.ReflectionFactor) {\n parameters.reflectivity = materialNode.ReflectionFactor.value;\n }\n\n if (materialNode.Shininess) {\n parameters.shininess = materialNode.Shininess.value;\n }\n\n if (materialNode.Specular) {\n parameters.specular = new Color().fromArray(materialNode.Specular.value).convertSRGBToLinear();\n } else if (materialNode.SpecularColor && materialNode.SpecularColor.type === 'Color') {\n // The blender exporter exports specular color here instead of in materialNode.Specular\n parameters.specular = new Color().fromArray(materialNode.SpecularColor.value).convertSRGBToLinear();\n }\n\n var scope = this;\n connections.get(ID).children.forEach(function (child) {\n var type = child.relationship;\n\n switch (type) {\n case 'Bump':\n parameters.bumpMap = scope.getTexture(textureMap, child.ID);\n break;\n\n case 'Maya|TEX_ao_map':\n parameters.aoMap = scope.getTexture(textureMap, child.ID);\n break;\n\n case 'DiffuseColor':\n case 'Maya|TEX_color_map':\n parameters.map = scope.getTexture(textureMap, child.ID);\n\n if (parameters.map !== undefined) {\n parameters.map.colorSpace = SRGBColorSpace;\n }\n\n break;\n\n case 'DisplacementColor':\n parameters.displacementMap = scope.getTexture(textureMap, child.ID);\n break;\n\n case 'EmissiveColor':\n parameters.emissiveMap = scope.getTexture(textureMap, child.ID);\n\n if (parameters.emissiveMap !== undefined) {\n parameters.emissiveMap.colorSpace = SRGBColorSpace;\n }\n\n break;\n\n case 'NormalMap':\n case 'Maya|TEX_normal_map':\n parameters.normalMap = scope.getTexture(textureMap, child.ID);\n break;\n\n case 'ReflectionColor':\n parameters.envMap = scope.getTexture(textureMap, child.ID);\n\n if (parameters.envMap !== undefined) {\n parameters.envMap.mapping = EquirectangularReflectionMapping;\n parameters.envMap.colorSpace = SRGBColorSpace;\n }\n\n break;\n\n case 'SpecularColor':\n parameters.specularMap = scope.getTexture(textureMap, child.ID);\n\n if (parameters.specularMap !== undefined) {\n parameters.specularMap.colorSpace = SRGBColorSpace;\n }\n\n break;\n\n case 'TransparentColor':\n case 'TransparencyFactor':\n parameters.alphaMap = scope.getTexture(textureMap, child.ID);\n parameters.transparent = true;\n break;\n\n case 'AmbientColor':\n case 'ShininessExponent': // AKA glossiness map\n\n case 'SpecularFactor': // AKA specularLevel\n\n case 'VectorDisplacementColor': // NOTE: Seems to be a copy of DisplacementColor\n\n default:\n console.warn('THREE.FBXLoader: %s map is not supported in three.js, skipping texture.', type);\n break;\n }\n });\n return parameters;\n } // get a texture from the textureMap for use by a material.\n\n }, {\n key: \"getTexture\",\n value: function getTexture(textureMap, id) {\n // if the texture is a layered texture, just use the first layer and issue a warning\n if ('LayeredTexture' in fbxTree.Objects && id in fbxTree.Objects.LayeredTexture) {\n console.warn('THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer.');\n id = connections.get(id).children[0].ID;\n }\n\n return textureMap.get(id);\n } // Parse nodes in FBXTree.Objects.Deformer\n // Deformer node can contain skinning or Vertex Cache animation data, however only skinning is supported here\n // Generates map of Skeleton-like objects for use later when generating and binding skeletons.\n\n }, {\n key: \"parseDeformers\",\n value: function parseDeformers() {\n var skeletons = {};\n var morphTargets = {};\n\n if ('Deformer' in fbxTree.Objects) {\n var DeformerNodes = fbxTree.Objects.Deformer;\n\n for (var nodeID in DeformerNodes) {\n var deformerNode = DeformerNodes[nodeID];\n var relationships = connections.get(parseInt(nodeID));\n\n if (deformerNode.attrType === 'Skin') {\n var skeleton = this.parseSkeleton(relationships, DeformerNodes);\n skeleton.ID = nodeID;\n if (relationships.parents.length > 1) console.warn('THREE.FBXLoader: skeleton attached to more than one geometry is not supported.');\n skeleton.geometryID = relationships.parents[0].ID;\n skeletons[nodeID] = skeleton;\n } else if (deformerNode.attrType === 'BlendShape') {\n var morphTarget = {\n id: nodeID\n };\n morphTarget.rawTargets = this.parseMorphTargets(relationships, DeformerNodes);\n morphTarget.id = nodeID;\n if (relationships.parents.length > 1) console.warn('THREE.FBXLoader: morph target attached to more than one geometry is not supported.');\n morphTargets[nodeID] = morphTarget;\n }\n }\n }\n\n return {\n skeletons: skeletons,\n morphTargets: morphTargets\n };\n } // Parse single nodes in FBXTree.Objects.Deformer\n // The top level skeleton node has type 'Skin' and sub nodes have type 'Cluster'\n // Each skin node represents a skeleton and each cluster node represents a bone\n\n }, {\n key: \"parseSkeleton\",\n value: function parseSkeleton(relationships, deformerNodes) {\n var rawBones = [];\n relationships.children.forEach(function (child) {\n var boneNode = deformerNodes[child.ID];\n if (boneNode.attrType !== 'Cluster') return;\n var rawBone = {\n ID: child.ID,\n indices: [],\n weights: [],\n transformLink: new Matrix4().fromArray(boneNode.TransformLink.a) // transform: new Matrix4().fromArray( boneNode.Transform.a ),\n // linkMode: boneNode.Mode,\n\n };\n\n if ('Indexes' in boneNode) {\n rawBone.indices = boneNode.Indexes.a;\n rawBone.weights = boneNode.Weights.a;\n }\n\n rawBones.push(rawBone);\n });\n return {\n rawBones: rawBones,\n bones: []\n };\n } // The top level morph deformer node has type \"BlendShape\" and sub nodes have type \"BlendShapeChannel\"\n\n }, {\n key: \"parseMorphTargets\",\n value: function parseMorphTargets(relationships, deformerNodes) {\n var rawMorphTargets = [];\n\n for (var i = 0; i < relationships.children.length; i++) {\n var child = relationships.children[i];\n var morphTargetNode = deformerNodes[child.ID];\n var rawMorphTarget = {\n name: morphTargetNode.attrName,\n initialWeight: morphTargetNode.DeformPercent,\n id: morphTargetNode.id,\n fullWeights: morphTargetNode.FullWeights.a\n };\n if (morphTargetNode.attrType !== 'BlendShapeChannel') return;\n rawMorphTarget.geoID = connections.get(parseInt(child.ID)).children.filter(function (child) {\n return child.relationship === undefined;\n })[0].ID;\n rawMorphTargets.push(rawMorphTarget);\n }\n\n return rawMorphTargets;\n } // create the main Group() to be returned by the loader\n\n }, {\n key: \"parseScene\",\n value: function parseScene(deformers, geometryMap, materialMap) {\n sceneGraph = new Group();\n var modelMap = this.parseModels(deformers.skeletons, geometryMap, materialMap);\n var modelNodes = fbxTree.Objects.Model;\n var scope = this;\n modelMap.forEach(function (model) {\n var modelNode = modelNodes[model.ID];\n scope.setLookAtProperties(model, modelNode);\n var parentConnections = connections.get(model.ID).parents;\n parentConnections.forEach(function (connection) {\n var parent = modelMap.get(connection.ID);\n if (parent !== undefined) parent.add(model);\n });\n\n if (model.parent === null) {\n sceneGraph.add(model);\n }\n });\n this.bindSkeleton(deformers.skeletons, geometryMap, modelMap);\n this.createAmbientLight();\n sceneGraph.traverse(function (node) {\n if (node.userData.transformData) {\n if (node.parent) {\n node.userData.transformData.parentMatrix = node.parent.matrix;\n node.userData.transformData.parentMatrixWorld = node.parent.matrixWorld;\n }\n\n var transform = generateTransform(node.userData.transformData);\n node.applyMatrix4(transform);\n node.updateWorldMatrix();\n }\n });\n var animations = new AnimationParser().parse(); // if all the models where already combined in a single group, just return that\n\n if (sceneGraph.children.length === 1 && sceneGraph.children[0].isGroup) {\n sceneGraph.children[0].animations = animations;\n sceneGraph = sceneGraph.children[0];\n }\n\n sceneGraph.animations = animations;\n } // parse nodes in FBXTree.Objects.Model\n\n }, {\n key: \"parseModels\",\n value: function parseModels(skeletons, geometryMap, materialMap) {\n var modelMap = new Map();\n var modelNodes = fbxTree.Objects.Model;\n\n for (var nodeID in modelNodes) {\n var id = parseInt(nodeID);\n var node = modelNodes[nodeID];\n var relationships = connections.get(id);\n var model = this.buildSkeleton(relationships, skeletons, id, node.attrName);\n\n if (!model) {\n switch (node.attrType) {\n case 'Camera':\n model = this.createCamera(relationships);\n break;\n\n case 'Light':\n model = this.createLight(relationships);\n break;\n\n case 'Mesh':\n model = this.createMesh(relationships, geometryMap, materialMap);\n break;\n\n case 'NurbsCurve':\n model = this.createCurve(relationships, geometryMap);\n break;\n\n case 'LimbNode':\n case 'Root':\n model = new Bone();\n break;\n\n case 'Null':\n default:\n model = new Group();\n break;\n }\n\n model.name = node.attrName ? PropertyBinding.sanitizeNodeName(node.attrName) : '';\n model.ID = id;\n }\n\n this.getTransformData(model, node);\n modelMap.set(id, model);\n }\n\n return modelMap;\n }\n }, {\n key: \"buildSkeleton\",\n value: function buildSkeleton(relationships, skeletons, id, name) {\n var bone = null;\n relationships.parents.forEach(function (parent) {\n var _loop = function _loop(ID) {\n var skeleton = skeletons[ID];\n skeleton.rawBones.forEach(function (rawBone, i) {\n if (rawBone.ID === parent.ID) {\n var subBone = bone;\n bone = new Bone();\n bone.matrixWorld.copy(rawBone.transformLink); // set name and id here - otherwise in cases where \"subBone\" is created it will not have a name / id\n\n bone.name = name ? PropertyBinding.sanitizeNodeName(name) : '';\n bone.ID = id;\n skeleton.bones[i] = bone; // In cases where a bone is shared between multiple meshes\n // duplicate the bone here and and it as a child of the first bone\n\n if (subBone !== null) {\n bone.add(subBone);\n }\n }\n });\n };\n\n for (var ID in skeletons) {\n _loop(ID);\n }\n });\n return bone;\n } // create a PerspectiveCamera or OrthographicCamera\n\n }, {\n key: \"createCamera\",\n value: function createCamera(relationships) {\n var model;\n var cameraAttribute;\n relationships.children.forEach(function (child) {\n var attr = fbxTree.Objects.NodeAttribute[child.ID];\n\n if (attr !== undefined) {\n cameraAttribute = attr;\n }\n });\n\n if (cameraAttribute === undefined) {\n model = new Object3D();\n } else {\n var type = 0;\n\n if (cameraAttribute.CameraProjectionType !== undefined && cameraAttribute.CameraProjectionType.value === 1) {\n type = 1;\n }\n\n var nearClippingPlane = 1;\n\n if (cameraAttribute.NearPlane !== undefined) {\n nearClippingPlane = cameraAttribute.NearPlane.value / 1000;\n }\n\n var farClippingPlane = 1000;\n\n if (cameraAttribute.FarPlane !== undefined) {\n farClippingPlane = cameraAttribute.FarPlane.value / 1000;\n }\n\n var width = window.innerWidth;\n var height = window.innerHeight;\n\n if (cameraAttribute.AspectWidth !== undefined && cameraAttribute.AspectHeight !== undefined) {\n width = cameraAttribute.AspectWidth.value;\n height = cameraAttribute.AspectHeight.value;\n }\n\n var aspect = width / height;\n var fov = 45;\n\n if (cameraAttribute.FieldOfView !== undefined) {\n fov = cameraAttribute.FieldOfView.value;\n }\n\n var focalLength = cameraAttribute.FocalLength ? cameraAttribute.FocalLength.value : null;\n\n switch (type) {\n case 0:\n // Perspective\n model = new PerspectiveCamera(fov, aspect, nearClippingPlane, farClippingPlane);\n if (focalLength !== null) model.setFocalLength(focalLength);\n break;\n\n case 1:\n // Orthographic\n model = new OrthographicCamera(-width / 2, width / 2, height / 2, -height / 2, nearClippingPlane, farClippingPlane);\n break;\n\n default:\n console.warn('THREE.FBXLoader: Unknown camera type ' + type + '.');\n model = new Object3D();\n break;\n }\n }\n\n return model;\n } // Create a DirectionalLight, PointLight or SpotLight\n\n }, {\n key: \"createLight\",\n value: function createLight(relationships) {\n var model;\n var lightAttribute;\n relationships.children.forEach(function (child) {\n var attr = fbxTree.Objects.NodeAttribute[child.ID];\n\n if (attr !== undefined) {\n lightAttribute = attr;\n }\n });\n\n if (lightAttribute === undefined) {\n model = new Object3D();\n } else {\n var type; // LightType can be undefined for Point lights\n\n if (lightAttribute.LightType === undefined) {\n type = 0;\n } else {\n type = lightAttribute.LightType.value;\n }\n\n var color = 0xffffff;\n\n if (lightAttribute.Color !== undefined) {\n color = new Color().fromArray(lightAttribute.Color.value).convertSRGBToLinear();\n }\n\n var intensity = lightAttribute.Intensity === undefined ? 1 : lightAttribute.Intensity.value / 100; // light disabled\n\n if (lightAttribute.CastLightOnObject !== undefined && lightAttribute.CastLightOnObject.value === 0) {\n intensity = 0;\n }\n\n var distance = 0;\n\n if (lightAttribute.FarAttenuationEnd !== undefined) {\n if (lightAttribute.EnableFarAttenuation !== undefined && lightAttribute.EnableFarAttenuation.value === 0) {\n distance = 0;\n } else {\n distance = lightAttribute.FarAttenuationEnd.value;\n }\n } // TODO: could this be calculated linearly from FarAttenuationStart to FarAttenuationEnd?\n\n\n var decay = 1;\n\n switch (type) {\n case 0:\n // Point\n model = new PointLight(color, intensity, distance, decay);\n break;\n\n case 1:\n // Directional\n model = new DirectionalLight(color, intensity);\n break;\n\n case 2:\n // Spot\n var angle = Math.PI / 3;\n\n if (lightAttribute.InnerAngle !== undefined) {\n angle = MathUtils.degToRad(lightAttribute.InnerAngle.value);\n }\n\n var penumbra = 0;\n\n if (lightAttribute.OuterAngle !== undefined) {\n // TODO: this is not correct - FBX calculates outer and inner angle in degrees\n // with OuterAngle > InnerAngle && OuterAngle <= Math.PI\n // while three.js uses a penumbra between (0, 1) to attenuate the inner angle\n penumbra = MathUtils.degToRad(lightAttribute.OuterAngle.value);\n penumbra = Math.max(penumbra, 1);\n }\n\n model = new SpotLight(color, intensity, distance, angle, penumbra, decay);\n break;\n\n default:\n console.warn('THREE.FBXLoader: Unknown light type ' + lightAttribute.LightType.value + ', defaulting to a PointLight.');\n model = new PointLight(color, intensity);\n break;\n }\n\n if (lightAttribute.CastShadows !== undefined && lightAttribute.CastShadows.value === 1) {\n model.castShadow = true;\n }\n }\n\n return model;\n }\n }, {\n key: \"createMesh\",\n value: function createMesh(relationships, geometryMap, materialMap) {\n var model;\n var geometry = null;\n var material = null;\n var materials = []; // get geometry and materials(s) from connections\n\n relationships.children.forEach(function (child) {\n if (geometryMap.has(child.ID)) {\n geometry = geometryMap.get(child.ID);\n }\n\n if (materialMap.has(child.ID)) {\n materials.push(materialMap.get(child.ID));\n }\n });\n\n if (materials.length > 1) {\n material = materials;\n } else if (materials.length > 0) {\n material = materials[0];\n } else {\n material = new MeshPhongMaterial({\n color: 0xcccccc\n });\n materials.push(material);\n }\n\n if ('color' in geometry.attributes) {\n materials.forEach(function (material) {\n material.vertexColors = true;\n });\n }\n\n if (geometry.FBX_Deformer) {\n model = new SkinnedMesh(geometry, material);\n model.normalizeSkinWeights();\n } else {\n model = new Mesh(geometry, material);\n }\n\n return model;\n }\n }, {\n key: \"createCurve\",\n value: function createCurve(relationships, geometryMap) {\n var geometry = relationships.children.reduce(function (geo, child) {\n if (geometryMap.has(child.ID)) geo = geometryMap.get(child.ID);\n return geo;\n }, null); // FBX does not list materials for Nurbs lines, so we'll just put our own in here.\n\n var material = new LineBasicMaterial({\n color: 0x3300ff,\n linewidth: 1\n });\n return new Line(geometry, material);\n } // parse the model node for transform data\n\n }, {\n key: \"getTransformData\",\n value: function getTransformData(model, modelNode) {\n var transformData = {};\n if ('InheritType' in modelNode) transformData.inheritType = parseInt(modelNode.InheritType.value);\n if ('RotationOrder' in modelNode) transformData.eulerOrder = getEulerOrder(modelNode.RotationOrder.value);else transformData.eulerOrder = 'ZYX';\n if ('Lcl_Translation' in modelNode) transformData.translation = modelNode.Lcl_Translation.value;\n if ('PreRotation' in modelNode) transformData.preRotation = modelNode.PreRotation.value;\n if ('Lcl_Rotation' in modelNode) transformData.rotation = modelNode.Lcl_Rotation.value;\n if ('PostRotation' in modelNode) transformData.postRotation = modelNode.PostRotation.value;\n if ('Lcl_Scaling' in modelNode) transformData.scale = modelNode.Lcl_Scaling.value;\n if ('ScalingOffset' in modelNode) transformData.scalingOffset = modelNode.ScalingOffset.value;\n if ('ScalingPivot' in modelNode) transformData.scalingPivot = modelNode.ScalingPivot.value;\n if ('RotationOffset' in modelNode) transformData.rotationOffset = modelNode.RotationOffset.value;\n if ('RotationPivot' in modelNode) transformData.rotationPivot = modelNode.RotationPivot.value;\n model.userData.transformData = transformData;\n }\n }, {\n key: \"setLookAtProperties\",\n value: function setLookAtProperties(model, modelNode) {\n if ('LookAtProperty' in modelNode) {\n var children = connections.get(model.ID).children;\n children.forEach(function (child) {\n if (child.relationship === 'LookAtProperty') {\n var lookAtTarget = fbxTree.Objects.Model[child.ID];\n\n if ('Lcl_Translation' in lookAtTarget) {\n var pos = lookAtTarget.Lcl_Translation.value; // DirectionalLight, SpotLight\n\n if (model.target !== undefined) {\n model.target.position.fromArray(pos);\n sceneGraph.add(model.target);\n } else {\n // Cameras and other Object3Ds\n model.lookAt(new Vector3().fromArray(pos));\n }\n }\n }\n });\n }\n }\n }, {\n key: \"bindSkeleton\",\n value: function bindSkeleton(skeletons, geometryMap, modelMap) {\n var bindMatrices = this.parsePoseNodes();\n\n var _loop2 = function _loop2(ID) {\n var skeleton = skeletons[ID];\n var parents = connections.get(parseInt(skeleton.ID)).parents;\n parents.forEach(function (parent) {\n if (geometryMap.has(parent.ID)) {\n var geoID = parent.ID;\n var geoRelationships = connections.get(geoID);\n geoRelationships.parents.forEach(function (geoConnParent) {\n if (modelMap.has(geoConnParent.ID)) {\n var model = modelMap.get(geoConnParent.ID);\n model.bind(new Skeleton(skeleton.bones), bindMatrices[geoConnParent.ID]);\n }\n });\n }\n });\n };\n\n for (var ID in skeletons) {\n _loop2(ID);\n }\n }\n }, {\n key: \"parsePoseNodes\",\n value: function parsePoseNodes() {\n var bindMatrices = {};\n\n if ('Pose' in fbxTree.Objects) {\n var BindPoseNode = fbxTree.Objects.Pose;\n\n for (var nodeID in BindPoseNode) {\n if (BindPoseNode[nodeID].attrType === 'BindPose' && BindPoseNode[nodeID].NbPoseNodes > 0) {\n var poseNodes = BindPoseNode[nodeID].PoseNode;\n\n if (Array.isArray(poseNodes)) {\n poseNodes.forEach(function (poseNode) {\n bindMatrices[poseNode.Node] = new Matrix4().fromArray(poseNode.Matrix.a);\n });\n } else {\n bindMatrices[poseNodes.Node] = new Matrix4().fromArray(poseNodes.Matrix.a);\n }\n }\n }\n }\n\n return bindMatrices;\n } // Parse ambient color in FBXTree.GlobalSettings - if it's not set to black (default), create an ambient light\n\n }, {\n key: \"createAmbientLight\",\n value: function createAmbientLight() {\n if ('GlobalSettings' in fbxTree && 'AmbientColor' in fbxTree.GlobalSettings) {\n var ambientColor = fbxTree.GlobalSettings.AmbientColor.value;\n var r = ambientColor[0];\n var g = ambientColor[1];\n var b = ambientColor[2];\n\n if (r !== 0 || g !== 0 || b !== 0) {\n var color = new Color(r, g, b).convertSRGBToLinear();\n sceneGraph.add(new AmbientLight(color, 1));\n }\n }\n }\n }]);\n\n return FBXTreeParser;\n}(); // parse Geometry data from FBXTree and return map of BufferGeometries\n\n\nvar GeometryParser = /*#__PURE__*/function () {\n function GeometryParser() {\n _classCallCheck(this, GeometryParser);\n\n this.negativeMaterialIndices = false;\n } // Parse nodes in FBXTree.Objects.Geometry\n\n\n _createClass(GeometryParser, [{\n key: \"parse\",\n value: function parse(deformers) {\n var geometryMap = new Map();\n\n if ('Geometry' in fbxTree.Objects) {\n var geoNodes = fbxTree.Objects.Geometry;\n\n for (var nodeID in geoNodes) {\n var relationships = connections.get(parseInt(nodeID));\n var geo = this.parseGeometry(relationships, geoNodes[nodeID], deformers);\n geometryMap.set(parseInt(nodeID), geo);\n }\n } // report warnings\n\n\n if (this.negativeMaterialIndices === true) {\n console.warn('THREE.FBXLoader: The FBX file contains invalid (negative) material indices. The asset might not render as expected.');\n }\n\n return geometryMap;\n } // Parse single node in FBXTree.Objects.Geometry\n\n }, {\n key: \"parseGeometry\",\n value: function parseGeometry(relationships, geoNode, deformers) {\n switch (geoNode.attrType) {\n case 'Mesh':\n return this.parseMeshGeometry(relationships, geoNode, deformers);\n break;\n\n case 'NurbsCurve':\n return this.parseNurbsGeometry(geoNode);\n break;\n }\n } // Parse single node mesh geometry in FBXTree.Objects.Geometry\n\n }, {\n key: \"parseMeshGeometry\",\n value: function parseMeshGeometry(relationships, geoNode, deformers) {\n var skeletons = deformers.skeletons;\n var morphTargets = [];\n var modelNodes = relationships.parents.map(function (parent) {\n return fbxTree.Objects.Model[parent.ID];\n }); // don't create geometry if it is not associated with any models\n\n if (modelNodes.length === 0) return;\n var skeleton = relationships.children.reduce(function (skeleton, child) {\n if (skeletons[child.ID] !== undefined) skeleton = skeletons[child.ID];\n return skeleton;\n }, null);\n relationships.children.forEach(function (child) {\n if (deformers.morphTargets[child.ID] !== undefined) {\n morphTargets.push(deformers.morphTargets[child.ID]);\n }\n }); // Assume one model and get the preRotation from that\n // if there is more than one model associated with the geometry this may cause problems\n\n var modelNode = modelNodes[0];\n var transformData = {};\n if ('RotationOrder' in modelNode) transformData.eulerOrder = getEulerOrder(modelNode.RotationOrder.value);\n if ('InheritType' in modelNode) transformData.inheritType = parseInt(modelNode.InheritType.value);\n if ('GeometricTranslation' in modelNode) transformData.translation = modelNode.GeometricTranslation.value;\n if ('GeometricRotation' in modelNode) transformData.rotation = modelNode.GeometricRotation.value;\n if ('GeometricScaling' in modelNode) transformData.scale = modelNode.GeometricScaling.value;\n var transform = generateTransform(transformData);\n return this.genGeometry(geoNode, skeleton, morphTargets, transform);\n } // Generate a BufferGeometry from a node in FBXTree.Objects.Geometry\n\n }, {\n key: \"genGeometry\",\n value: function genGeometry(geoNode, skeleton, morphTargets, preTransform) {\n var geo = new BufferGeometry();\n if (geoNode.attrName) geo.name = geoNode.attrName;\n var geoInfo = this.parseGeoNode(geoNode, skeleton);\n var buffers = this.genBuffers(geoInfo);\n var positionAttribute = new Float32BufferAttribute(buffers.vertex, 3);\n positionAttribute.applyMatrix4(preTransform);\n geo.setAttribute('position', positionAttribute);\n\n if (buffers.colors.length > 0) {\n geo.setAttribute('color', new Float32BufferAttribute(buffers.colors, 3));\n }\n\n if (skeleton) {\n geo.setAttribute('skinIndex', new Uint16BufferAttribute(buffers.weightsIndices, 4));\n geo.setAttribute('skinWeight', new Float32BufferAttribute(buffers.vertexWeights, 4)); // used later to bind the skeleton to the model\n\n geo.FBX_Deformer = skeleton;\n }\n\n if (buffers.normal.length > 0) {\n var normalMatrix = new Matrix3().getNormalMatrix(preTransform);\n var normalAttribute = new Float32BufferAttribute(buffers.normal, 3);\n normalAttribute.applyNormalMatrix(normalMatrix);\n geo.setAttribute('normal', normalAttribute);\n }\n\n buffers.uvs.forEach(function (uvBuffer, i) {\n var name = i === 0 ? 'uv' : \"uv\".concat(i);\n geo.setAttribute(name, new Float32BufferAttribute(buffers.uvs[i], 2));\n });\n\n if (geoInfo.material && geoInfo.material.mappingType !== 'AllSame') {\n // Convert the material indices of each vertex into rendering groups on the geometry.\n var prevMaterialIndex = buffers.materialIndex[0];\n var startIndex = 0;\n buffers.materialIndex.forEach(function (currentIndex, i) {\n if (currentIndex !== prevMaterialIndex) {\n geo.addGroup(startIndex, i - startIndex, prevMaterialIndex);\n prevMaterialIndex = currentIndex;\n startIndex = i;\n }\n }); // the loop above doesn't add the last group, do that here.\n\n if (geo.groups.length > 0) {\n var lastGroup = geo.groups[geo.groups.length - 1];\n var lastIndex = lastGroup.start + lastGroup.count;\n\n if (lastIndex !== buffers.materialIndex.length) {\n geo.addGroup(lastIndex, buffers.materialIndex.length - lastIndex, prevMaterialIndex);\n }\n } // case where there are multiple materials but the whole geometry is only\n // using one of them\n\n\n if (geo.groups.length === 0) {\n geo.addGroup(0, buffers.materialIndex.length, buffers.materialIndex[0]);\n }\n }\n\n this.addMorphTargets(geo, geoNode, morphTargets, preTransform);\n return geo;\n }\n }, {\n key: \"parseGeoNode\",\n value: function parseGeoNode(geoNode, skeleton) {\n var geoInfo = {};\n geoInfo.vertexPositions = geoNode.Vertices !== undefined ? geoNode.Vertices.a : [];\n geoInfo.vertexIndices = geoNode.PolygonVertexIndex !== undefined ? geoNode.PolygonVertexIndex.a : [];\n\n if (geoNode.LayerElementColor) {\n geoInfo.color = this.parseVertexColors(geoNode.LayerElementColor[0]);\n }\n\n if (geoNode.LayerElementMaterial) {\n geoInfo.material = this.parseMaterialIndices(geoNode.LayerElementMaterial[0]);\n }\n\n if (geoNode.LayerElementNormal) {\n geoInfo.normal = this.parseNormals(geoNode.LayerElementNormal[0]);\n }\n\n if (geoNode.LayerElementUV) {\n geoInfo.uv = [];\n var i = 0;\n\n while (geoNode.LayerElementUV[i]) {\n if (geoNode.LayerElementUV[i].UV) {\n geoInfo.uv.push(this.parseUVs(geoNode.LayerElementUV[i]));\n }\n\n i++;\n }\n }\n\n geoInfo.weightTable = {};\n\n if (skeleton !== null) {\n geoInfo.skeleton = skeleton;\n skeleton.rawBones.forEach(function (rawBone, i) {\n // loop over the bone's vertex indices and weights\n rawBone.indices.forEach(function (index, j) {\n if (geoInfo.weightTable[index] === undefined) geoInfo.weightTable[index] = [];\n geoInfo.weightTable[index].push({\n id: i,\n weight: rawBone.weights[j]\n });\n });\n });\n }\n\n return geoInfo;\n }\n }, {\n key: \"genBuffers\",\n value: function genBuffers(geoInfo) {\n var buffers = {\n vertex: [],\n normal: [],\n colors: [],\n uvs: [],\n materialIndex: [],\n vertexWeights: [],\n weightsIndices: []\n };\n var polygonIndex = 0;\n var faceLength = 0;\n var displayedWeightsWarning = false; // these will hold data for a single face\n\n var facePositionIndexes = [];\n var faceNormals = [];\n var faceColors = [];\n var faceUVs = [];\n var faceWeights = [];\n var faceWeightIndices = [];\n var scope = this;\n geoInfo.vertexIndices.forEach(function (vertexIndex, polygonVertexIndex) {\n var materialIndex;\n var endOfFace = false; // Face index and vertex index arrays are combined in a single array\n // A cube with quad faces looks like this:\n // PolygonVertexIndex: *24 {\n // a: 0, 1, 3, -3, 2, 3, 5, -5, 4, 5, 7, -7, 6, 7, 1, -1, 1, 7, 5, -4, 6, 0, 2, -5\n // }\n // Negative numbers mark the end of a face - first face here is 0, 1, 3, -3\n // to find index of last vertex bit shift the index: ^ - 1\n\n if (vertexIndex < 0) {\n vertexIndex = vertexIndex ^ -1; // equivalent to ( x * -1 ) - 1\n\n endOfFace = true;\n }\n\n var weightIndices = [];\n var weights = [];\n facePositionIndexes.push(vertexIndex * 3, vertexIndex * 3 + 1, vertexIndex * 3 + 2);\n\n if (geoInfo.color) {\n var data = getData(polygonVertexIndex, polygonIndex, vertexIndex, geoInfo.color);\n faceColors.push(data[0], data[1], data[2]);\n }\n\n if (geoInfo.skeleton) {\n if (geoInfo.weightTable[vertexIndex] !== undefined) {\n geoInfo.weightTable[vertexIndex].forEach(function (wt) {\n weights.push(wt.weight);\n weightIndices.push(wt.id);\n });\n }\n\n if (weights.length > 4) {\n if (!displayedWeightsWarning) {\n console.warn('THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights.');\n displayedWeightsWarning = true;\n }\n\n var wIndex = [0, 0, 0, 0];\n var Weight = [0, 0, 0, 0];\n weights.forEach(function (weight, weightIndex) {\n var currentWeight = weight;\n var currentIndex = weightIndices[weightIndex];\n Weight.forEach(function (comparedWeight, comparedWeightIndex, comparedWeightArray) {\n if (currentWeight > comparedWeight) {\n comparedWeightArray[comparedWeightIndex] = currentWeight;\n currentWeight = comparedWeight;\n var tmp = wIndex[comparedWeightIndex];\n wIndex[comparedWeightIndex] = currentIndex;\n currentIndex = tmp;\n }\n });\n });\n weightIndices = wIndex;\n weights = Weight;\n } // if the weight array is shorter than 4 pad with 0s\n\n\n while (weights.length < 4) {\n weights.push(0);\n weightIndices.push(0);\n }\n\n for (var i = 0; i < 4; ++i) {\n faceWeights.push(weights[i]);\n faceWeightIndices.push(weightIndices[i]);\n }\n }\n\n if (geoInfo.normal) {\n var _data = getData(polygonVertexIndex, polygonIndex, vertexIndex, geoInfo.normal);\n\n faceNormals.push(_data[0], _data[1], _data[2]);\n }\n\n if (geoInfo.material && geoInfo.material.mappingType !== 'AllSame') {\n materialIndex = getData(polygonVertexIndex, polygonIndex, vertexIndex, geoInfo.material)[0];\n\n if (materialIndex < 0) {\n scope.negativeMaterialIndices = true;\n materialIndex = 0; // fallback\n }\n }\n\n if (geoInfo.uv) {\n geoInfo.uv.forEach(function (uv, i) {\n var data = getData(polygonVertexIndex, polygonIndex, vertexIndex, uv);\n\n if (faceUVs[i] === undefined) {\n faceUVs[i] = [];\n }\n\n faceUVs[i].push(data[0]);\n faceUVs[i].push(data[1]);\n });\n }\n\n faceLength++;\n\n if (endOfFace) {\n if (faceLength > 4) console.warn('THREE.FBXLoader: Polygons with more than four sides are not supported. Make sure to triangulate the geometry during export.');\n scope.genFace(buffers, geoInfo, facePositionIndexes, materialIndex, faceNormals, faceColors, faceUVs, faceWeights, faceWeightIndices, faceLength);\n polygonIndex++;\n faceLength = 0; // reset arrays for the next face\n\n facePositionIndexes = [];\n faceNormals = [];\n faceColors = [];\n faceUVs = [];\n faceWeights = [];\n faceWeightIndices = [];\n }\n });\n return buffers;\n } // Generate data for a single face in a geometry. If the face is a quad then split it into 2 tris\n\n }, {\n key: \"genFace\",\n value: function genFace(buffers, geoInfo, facePositionIndexes, materialIndex, faceNormals, faceColors, faceUVs, faceWeights, faceWeightIndices, faceLength) {\n var _loop3 = function _loop3(i) {\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[0]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[1]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[2]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[(i - 1) * 3]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[(i - 1) * 3 + 1]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[(i - 1) * 3 + 2]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[i * 3]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[i * 3 + 1]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[i * 3 + 2]]);\n\n if (geoInfo.skeleton) {\n buffers.vertexWeights.push(faceWeights[0]);\n buffers.vertexWeights.push(faceWeights[1]);\n buffers.vertexWeights.push(faceWeights[2]);\n buffers.vertexWeights.push(faceWeights[3]);\n buffers.vertexWeights.push(faceWeights[(i - 1) * 4]);\n buffers.vertexWeights.push(faceWeights[(i - 1) * 4 + 1]);\n buffers.vertexWeights.push(faceWeights[(i - 1) * 4 + 2]);\n buffers.vertexWeights.push(faceWeights[(i - 1) * 4 + 3]);\n buffers.vertexWeights.push(faceWeights[i * 4]);\n buffers.vertexWeights.push(faceWeights[i * 4 + 1]);\n buffers.vertexWeights.push(faceWeights[i * 4 + 2]);\n buffers.vertexWeights.push(faceWeights[i * 4 + 3]);\n buffers.weightsIndices.push(faceWeightIndices[0]);\n buffers.weightsIndices.push(faceWeightIndices[1]);\n buffers.weightsIndices.push(faceWeightIndices[2]);\n buffers.weightsIndices.push(faceWeightIndices[3]);\n buffers.weightsIndices.push(faceWeightIndices[(i - 1) * 4]);\n buffers.weightsIndices.push(faceWeightIndices[(i - 1) * 4 + 1]);\n buffers.weightsIndices.push(faceWeightIndices[(i - 1) * 4 + 2]);\n buffers.weightsIndices.push(faceWeightIndices[(i - 1) * 4 + 3]);\n buffers.weightsIndices.push(faceWeightIndices[i * 4]);\n buffers.weightsIndices.push(faceWeightIndices[i * 4 + 1]);\n buffers.weightsIndices.push(faceWeightIndices[i * 4 + 2]);\n buffers.weightsIndices.push(faceWeightIndices[i * 4 + 3]);\n }\n\n if (geoInfo.color) {\n buffers.colors.push(faceColors[0]);\n buffers.colors.push(faceColors[1]);\n buffers.colors.push(faceColors[2]);\n buffers.colors.push(faceColors[(i - 1) * 3]);\n buffers.colors.push(faceColors[(i - 1) * 3 + 1]);\n buffers.colors.push(faceColors[(i - 1) * 3 + 2]);\n buffers.colors.push(faceColors[i * 3]);\n buffers.colors.push(faceColors[i * 3 + 1]);\n buffers.colors.push(faceColors[i * 3 + 2]);\n }\n\n if (geoInfo.material && geoInfo.material.mappingType !== 'AllSame') {\n buffers.materialIndex.push(materialIndex);\n buffers.materialIndex.push(materialIndex);\n buffers.materialIndex.push(materialIndex);\n }\n\n if (geoInfo.normal) {\n buffers.normal.push(faceNormals[0]);\n buffers.normal.push(faceNormals[1]);\n buffers.normal.push(faceNormals[2]);\n buffers.normal.push(faceNormals[(i - 1) * 3]);\n buffers.normal.push(faceNormals[(i - 1) * 3 + 1]);\n buffers.normal.push(faceNormals[(i - 1) * 3 + 2]);\n buffers.normal.push(faceNormals[i * 3]);\n buffers.normal.push(faceNormals[i * 3 + 1]);\n buffers.normal.push(faceNormals[i * 3 + 2]);\n }\n\n if (geoInfo.uv) {\n geoInfo.uv.forEach(function (uv, j) {\n if (buffers.uvs[j] === undefined) buffers.uvs[j] = [];\n buffers.uvs[j].push(faceUVs[j][0]);\n buffers.uvs[j].push(faceUVs[j][1]);\n buffers.uvs[j].push(faceUVs[j][(i - 1) * 2]);\n buffers.uvs[j].push(faceUVs[j][(i - 1) * 2 + 1]);\n buffers.uvs[j].push(faceUVs[j][i * 2]);\n buffers.uvs[j].push(faceUVs[j][i * 2 + 1]);\n });\n }\n };\n\n for (var i = 2; i < faceLength; i++) {\n _loop3(i);\n }\n }\n }, {\n key: \"addMorphTargets\",\n value: function addMorphTargets(parentGeo, parentGeoNode, morphTargets, preTransform) {\n if (morphTargets.length === 0) return;\n parentGeo.morphTargetsRelative = true;\n parentGeo.morphAttributes.position = []; // parentGeo.morphAttributes.normal = []; // not implemented\n\n var scope = this;\n morphTargets.forEach(function (morphTarget) {\n morphTarget.rawTargets.forEach(function (rawTarget) {\n var morphGeoNode = fbxTree.Objects.Geometry[rawTarget.geoID];\n\n if (morphGeoNode !== undefined) {\n scope.genMorphGeometry(parentGeo, parentGeoNode, morphGeoNode, preTransform, rawTarget.name);\n }\n });\n });\n } // a morph geometry node is similar to a standard node, and the node is also contained\n // in FBXTree.Objects.Geometry, however it can only have attributes for position, normal\n // and a special attribute Index defining which vertices of the original geometry are affected\n // Normal and position attributes only have data for the vertices that are affected by the morph\n\n }, {\n key: \"genMorphGeometry\",\n value: function genMorphGeometry(parentGeo, parentGeoNode, morphGeoNode, preTransform, name) {\n var vertexIndices = parentGeoNode.PolygonVertexIndex !== undefined ? parentGeoNode.PolygonVertexIndex.a : [];\n var morphPositionsSparse = morphGeoNode.Vertices !== undefined ? morphGeoNode.Vertices.a : [];\n var indices = morphGeoNode.Indexes !== undefined ? morphGeoNode.Indexes.a : [];\n var length = parentGeo.attributes.position.count * 3;\n var morphPositions = new Float32Array(length);\n\n for (var i = 0; i < indices.length; i++) {\n var morphIndex = indices[i] * 3;\n morphPositions[morphIndex] = morphPositionsSparse[i * 3];\n morphPositions[morphIndex + 1] = morphPositionsSparse[i * 3 + 1];\n morphPositions[morphIndex + 2] = morphPositionsSparse[i * 3 + 2];\n } // TODO: add morph normal support\n\n\n var morphGeoInfo = {\n vertexIndices: vertexIndices,\n vertexPositions: morphPositions\n };\n var morphBuffers = this.genBuffers(morphGeoInfo);\n var positionAttribute = new Float32BufferAttribute(morphBuffers.vertex, 3);\n positionAttribute.name = name || morphGeoNode.attrName;\n positionAttribute.applyMatrix4(preTransform);\n parentGeo.morphAttributes.position.push(positionAttribute);\n } // Parse normal from FBXTree.Objects.Geometry.LayerElementNormal if it exists\n\n }, {\n key: \"parseNormals\",\n value: function parseNormals(NormalNode) {\n var mappingType = NormalNode.MappingInformationType;\n var referenceType = NormalNode.ReferenceInformationType;\n var buffer = NormalNode.Normals.a;\n var indexBuffer = [];\n\n if (referenceType === 'IndexToDirect') {\n if ('NormalIndex' in NormalNode) {\n indexBuffer = NormalNode.NormalIndex.a;\n } else if ('NormalsIndex' in NormalNode) {\n indexBuffer = NormalNode.NormalsIndex.a;\n }\n }\n\n return {\n dataSize: 3,\n buffer: buffer,\n indices: indexBuffer,\n mappingType: mappingType,\n referenceType: referenceType\n };\n } // Parse UVs from FBXTree.Objects.Geometry.LayerElementUV if it exists\n\n }, {\n key: \"parseUVs\",\n value: function parseUVs(UVNode) {\n var mappingType = UVNode.MappingInformationType;\n var referenceType = UVNode.ReferenceInformationType;\n var buffer = UVNode.UV.a;\n var indexBuffer = [];\n\n if (referenceType === 'IndexToDirect') {\n indexBuffer = UVNode.UVIndex.a;\n }\n\n return {\n dataSize: 2,\n buffer: buffer,\n indices: indexBuffer,\n mappingType: mappingType,\n referenceType: referenceType\n };\n } // Parse Vertex Colors from FBXTree.Objects.Geometry.LayerElementColor if it exists\n\n }, {\n key: \"parseVertexColors\",\n value: function parseVertexColors(ColorNode) {\n var mappingType = ColorNode.MappingInformationType;\n var referenceType = ColorNode.ReferenceInformationType;\n var buffer = ColorNode.Colors.a;\n var indexBuffer = [];\n\n if (referenceType === 'IndexToDirect') {\n indexBuffer = ColorNode.ColorIndex.a;\n }\n\n for (var i = 0, c = new Color(); i < buffer.length; i += 4) {\n c.fromArray(buffer, i).convertSRGBToLinear().toArray(buffer, i);\n }\n\n return {\n dataSize: 4,\n buffer: buffer,\n indices: indexBuffer,\n mappingType: mappingType,\n referenceType: referenceType\n };\n } // Parse mapping and material data in FBXTree.Objects.Geometry.LayerElementMaterial if it exists\n\n }, {\n key: \"parseMaterialIndices\",\n value: function parseMaterialIndices(MaterialNode) {\n var mappingType = MaterialNode.MappingInformationType;\n var referenceType = MaterialNode.ReferenceInformationType;\n\n if (mappingType === 'NoMappingInformation') {\n return {\n dataSize: 1,\n buffer: [0],\n indices: [0],\n mappingType: 'AllSame',\n referenceType: referenceType\n };\n }\n\n var materialIndexBuffer = MaterialNode.Materials.a; // Since materials are stored as indices, there's a bit of a mismatch between FBX and what\n // we expect.So we create an intermediate buffer that points to the index in the buffer,\n // for conforming with the other functions we've written for other data.\n\n var materialIndices = [];\n\n for (var i = 0; i < materialIndexBuffer.length; ++i) {\n materialIndices.push(i);\n }\n\n return {\n dataSize: 1,\n buffer: materialIndexBuffer,\n indices: materialIndices,\n mappingType: mappingType,\n referenceType: referenceType\n };\n } // Generate a NurbGeometry from a node in FBXTree.Objects.Geometry\n\n }, {\n key: \"parseNurbsGeometry\",\n value: function parseNurbsGeometry(geoNode) {\n var order = parseInt(geoNode.Order);\n\n if (isNaN(order)) {\n console.error('THREE.FBXLoader: Invalid Order %s given for geometry ID: %s', geoNode.Order, geoNode.id);\n return new BufferGeometry();\n }\n\n var degree = order - 1;\n var knots = geoNode.KnotVector.a;\n var controlPoints = [];\n var pointsValues = geoNode.Points.a;\n\n for (var i = 0, l = pointsValues.length; i < l; i += 4) {\n controlPoints.push(new Vector4().fromArray(pointsValues, i));\n }\n\n var startKnot, endKnot;\n\n if (geoNode.Form === 'Closed') {\n controlPoints.push(controlPoints[0]);\n } else if (geoNode.Form === 'Periodic') {\n startKnot = degree;\n endKnot = knots.length - 1 - startKnot;\n\n for (var _i = 0; _i < degree; ++_i) {\n controlPoints.push(controlPoints[_i]);\n }\n }\n\n var curve = new NURBSCurve(degree, knots, controlPoints, startKnot, endKnot);\n var points = curve.getPoints(controlPoints.length * 12);\n return new BufferGeometry().setFromPoints(points);\n }\n }]);\n\n return GeometryParser;\n}(); // parse animation data from FBXTree\n\n\nvar AnimationParser = /*#__PURE__*/function () {\n function AnimationParser() {\n _classCallCheck(this, AnimationParser);\n }\n\n _createClass(AnimationParser, [{\n key: \"parse\",\n value: // take raw animation clips and turn them into three.js animation clips\n function parse() {\n var animationClips = [];\n var rawClips = this.parseClips();\n\n if (rawClips !== undefined) {\n for (var key in rawClips) {\n var rawClip = rawClips[key];\n var clip = this.addClip(rawClip);\n animationClips.push(clip);\n }\n }\n\n return animationClips;\n }\n }, {\n key: \"parseClips\",\n value: function parseClips() {\n // since the actual transformation data is stored in FBXTree.Objects.AnimationCurve,\n // if this is undefined we can safely assume there are no animations\n if (fbxTree.Objects.AnimationCurve === undefined) return undefined;\n var curveNodesMap = this.parseAnimationCurveNodes();\n this.parseAnimationCurves(curveNodesMap);\n var layersMap = this.parseAnimationLayers(curveNodesMap);\n var rawClips = this.parseAnimStacks(layersMap);\n return rawClips;\n } // parse nodes in FBXTree.Objects.AnimationCurveNode\n // each AnimationCurveNode holds data for an animation transform for a model (e.g. left arm rotation )\n // and is referenced by an AnimationLayer\n\n }, {\n key: \"parseAnimationCurveNodes\",\n value: function parseAnimationCurveNodes() {\n var rawCurveNodes = fbxTree.Objects.AnimationCurveNode;\n var curveNodesMap = new Map();\n\n for (var nodeID in rawCurveNodes) {\n var rawCurveNode = rawCurveNodes[nodeID];\n\n if (rawCurveNode.attrName.match(/S|R|T|DeformPercent/) !== null) {\n var curveNode = {\n id: rawCurveNode.id,\n attr: rawCurveNode.attrName,\n curves: {}\n };\n curveNodesMap.set(curveNode.id, curveNode);\n }\n }\n\n return curveNodesMap;\n } // parse nodes in FBXTree.Objects.AnimationCurve and connect them up to\n // previously parsed AnimationCurveNodes. Each AnimationCurve holds data for a single animated\n // axis ( e.g. times and values of x rotation)\n\n }, {\n key: \"parseAnimationCurves\",\n value: function parseAnimationCurves(curveNodesMap) {\n var rawCurves = fbxTree.Objects.AnimationCurve; // TODO: Many values are identical up to roundoff error, but won't be optimised\n // e.g. position times: [0, 0.4, 0. 8]\n // position values: [7.23538335023477e-7, 93.67518615722656, -0.9982695579528809, 7.23538335023477e-7, 93.67518615722656, -0.9982695579528809, 7.235384487103147e-7, 93.67520904541016, -0.9982695579528809]\n // clearly, this should be optimised to\n // times: [0], positions [7.23538335023477e-7, 93.67518615722656, -0.9982695579528809]\n // this shows up in nearly every FBX file, and generally time array is length > 100\n\n for (var nodeID in rawCurves) {\n var animationCurve = {\n id: rawCurves[nodeID].id,\n times: rawCurves[nodeID].KeyTime.a.map(convertFBXTimeToSeconds),\n values: rawCurves[nodeID].KeyValueFloat.a\n };\n var relationships = connections.get(animationCurve.id);\n\n if (relationships !== undefined) {\n var animationCurveID = relationships.parents[0].ID;\n var animationCurveRelationship = relationships.parents[0].relationship;\n\n if (animationCurveRelationship.match(/X/)) {\n curveNodesMap.get(animationCurveID).curves['x'] = animationCurve;\n } else if (animationCurveRelationship.match(/Y/)) {\n curveNodesMap.get(animationCurveID).curves['y'] = animationCurve;\n } else if (animationCurveRelationship.match(/Z/)) {\n curveNodesMap.get(animationCurveID).curves['z'] = animationCurve;\n } else if (animationCurveRelationship.match(/DeformPercent/) && curveNodesMap.has(animationCurveID)) {\n curveNodesMap.get(animationCurveID).curves['morph'] = animationCurve;\n }\n }\n }\n } // parse nodes in FBXTree.Objects.AnimationLayer. Each layers holds references\n // to various AnimationCurveNodes and is referenced by an AnimationStack node\n // note: theoretically a stack can have multiple layers, however in practice there always seems to be one per stack\n\n }, {\n key: \"parseAnimationLayers\",\n value: function parseAnimationLayers(curveNodesMap) {\n var rawLayers = fbxTree.Objects.AnimationLayer;\n var layersMap = new Map();\n\n var _loop4 = function _loop4(nodeID) {\n var layerCurveNodes = [];\n var connection = connections.get(parseInt(nodeID));\n\n if (connection !== undefined) {\n // all the animationCurveNodes used in the layer\n var children = connection.children;\n children.forEach(function (child, i) {\n if (curveNodesMap.has(child.ID)) {\n var curveNode = curveNodesMap.get(child.ID); // check that the curves are defined for at least one axis, otherwise ignore the curveNode\n\n if (curveNode.curves.x !== undefined || curveNode.curves.y !== undefined || curveNode.curves.z !== undefined) {\n if (layerCurveNodes[i] === undefined) {\n var modelID = connections.get(child.ID).parents.filter(function (parent) {\n return parent.relationship !== undefined;\n })[0].ID;\n\n if (modelID !== undefined) {\n var rawModel = fbxTree.Objects.Model[modelID.toString()];\n\n if (rawModel === undefined) {\n console.warn('THREE.FBXLoader: Encountered a unused curve.', child);\n return;\n }\n\n var node = {\n modelName: rawModel.attrName ? PropertyBinding.sanitizeNodeName(rawModel.attrName) : '',\n ID: rawModel.id,\n initialPosition: [0, 0, 0],\n initialRotation: [0, 0, 0],\n initialScale: [1, 1, 1]\n };\n sceneGraph.traverse(function (child) {\n if (child.ID === rawModel.id) {\n node.transform = child.matrix;\n if (child.userData.transformData) node.eulerOrder = child.userData.transformData.eulerOrder;\n }\n });\n if (!node.transform) node.transform = new Matrix4(); // if the animated model is pre rotated, we'll have to apply the pre rotations to every\n // animation value as well\n\n if ('PreRotation' in rawModel) node.preRotation = rawModel.PreRotation.value;\n if ('PostRotation' in rawModel) node.postRotation = rawModel.PostRotation.value;\n layerCurveNodes[i] = node;\n }\n }\n\n if (layerCurveNodes[i]) layerCurveNodes[i][curveNode.attr] = curveNode;\n } else if (curveNode.curves.morph !== undefined) {\n if (layerCurveNodes[i] === undefined) {\n var deformerID = connections.get(child.ID).parents.filter(function (parent) {\n return parent.relationship !== undefined;\n })[0].ID;\n var morpherID = connections.get(deformerID).parents[0].ID;\n var geoID = connections.get(morpherID).parents[0].ID; // assuming geometry is not used in more than one model\n\n var _modelID = connections.get(geoID).parents[0].ID;\n var _rawModel = fbxTree.Objects.Model[_modelID];\n var _node = {\n modelName: _rawModel.attrName ? PropertyBinding.sanitizeNodeName(_rawModel.attrName) : '',\n morphName: fbxTree.Objects.Deformer[deformerID].attrName\n };\n layerCurveNodes[i] = _node;\n }\n\n layerCurveNodes[i][curveNode.attr] = curveNode;\n }\n }\n });\n layersMap.set(parseInt(nodeID), layerCurveNodes);\n }\n };\n\n for (var nodeID in rawLayers) {\n _loop4(nodeID);\n }\n\n return layersMap;\n } // parse nodes in FBXTree.Objects.AnimationStack. These are the top level node in the animation\n // hierarchy. Each Stack node will be used to create a AnimationClip\n\n }, {\n key: \"parseAnimStacks\",\n value: function parseAnimStacks(layersMap) {\n var rawStacks = fbxTree.Objects.AnimationStack; // connect the stacks (clips) up to the layers\n\n var rawClips = {};\n\n for (var nodeID in rawStacks) {\n var children = connections.get(parseInt(nodeID)).children;\n\n if (children.length > 1) {\n // it seems like stacks will always be associated with a single layer. But just in case there are files\n // where there are multiple layers per stack, we'll display a warning\n console.warn('THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.');\n }\n\n var layer = layersMap.get(children[0].ID);\n rawClips[nodeID] = {\n name: rawStacks[nodeID].attrName,\n layer: layer\n };\n }\n\n return rawClips;\n }\n }, {\n key: \"addClip\",\n value: function addClip(rawClip) {\n var tracks = [];\n var scope = this;\n rawClip.layer.forEach(function (rawTracks) {\n tracks = tracks.concat(scope.generateTracks(rawTracks));\n });\n return new AnimationClip(rawClip.name, -1, tracks);\n }\n }, {\n key: \"generateTracks\",\n value: function generateTracks(rawTracks) {\n var tracks = [];\n var initialPosition = new Vector3();\n var initialRotation = new Quaternion();\n var initialScale = new Vector3();\n if (rawTracks.transform) rawTracks.transform.decompose(initialPosition, initialRotation, initialScale);\n initialPosition = initialPosition.toArray();\n initialRotation = new Euler().setFromQuaternion(initialRotation, rawTracks.eulerOrder).toArray();\n initialScale = initialScale.toArray();\n\n if (rawTracks.T !== undefined && Object.keys(rawTracks.T.curves).length > 0) {\n var positionTrack = this.generateVectorTrack(rawTracks.modelName, rawTracks.T.curves, initialPosition, 'position');\n if (positionTrack !== undefined) tracks.push(positionTrack);\n }\n\n if (rawTracks.R !== undefined && Object.keys(rawTracks.R.curves).length > 0) {\n var rotationTrack = this.generateRotationTrack(rawTracks.modelName, rawTracks.R.curves, initialRotation, rawTracks.preRotation, rawTracks.postRotation, rawTracks.eulerOrder);\n if (rotationTrack !== undefined) tracks.push(rotationTrack);\n }\n\n if (rawTracks.S !== undefined && Object.keys(rawTracks.S.curves).length > 0) {\n var scaleTrack = this.generateVectorTrack(rawTracks.modelName, rawTracks.S.curves, initialScale, 'scale');\n if (scaleTrack !== undefined) tracks.push(scaleTrack);\n }\n\n if (rawTracks.DeformPercent !== undefined) {\n var morphTrack = this.generateMorphTrack(rawTracks);\n if (morphTrack !== undefined) tracks.push(morphTrack);\n }\n\n return tracks;\n }\n }, {\n key: \"generateVectorTrack\",\n value: function generateVectorTrack(modelName, curves, initialValue, type) {\n var times = this.getTimesForAllAxes(curves);\n var values = this.getKeyframeTrackValues(times, curves, initialValue);\n return new VectorKeyframeTrack(modelName + '.' + type, times, values);\n }\n }, {\n key: \"generateRotationTrack\",\n value: function generateRotationTrack(modelName, curves, initialValue, preRotation, postRotation, eulerOrder) {\n if (curves.x !== undefined) {\n this.interpolateRotations(curves.x);\n curves.x.values = curves.x.values.map(MathUtils.degToRad);\n }\n\n if (curves.y !== undefined) {\n this.interpolateRotations(curves.y);\n curves.y.values = curves.y.values.map(MathUtils.degToRad);\n }\n\n if (curves.z !== undefined) {\n this.interpolateRotations(curves.z);\n curves.z.values = curves.z.values.map(MathUtils.degToRad);\n }\n\n var times = this.getTimesForAllAxes(curves);\n var values = this.getKeyframeTrackValues(times, curves, initialValue);\n\n if (preRotation !== undefined) {\n preRotation = preRotation.map(MathUtils.degToRad);\n preRotation.push(eulerOrder);\n preRotation = new Euler().fromArray(preRotation);\n preRotation = new Quaternion().setFromEuler(preRotation);\n }\n\n if (postRotation !== undefined) {\n postRotation = postRotation.map(MathUtils.degToRad);\n postRotation.push(eulerOrder);\n postRotation = new Euler().fromArray(postRotation);\n postRotation = new Quaternion().setFromEuler(postRotation).invert();\n }\n\n var quaternion = new Quaternion();\n var euler = new Euler();\n var quaternionValues = [];\n\n for (var i = 0; i < values.length; i += 3) {\n euler.set(values[i], values[i + 1], values[i + 2], eulerOrder);\n quaternion.setFromEuler(euler);\n if (preRotation !== undefined) quaternion.premultiply(preRotation);\n if (postRotation !== undefined) quaternion.multiply(postRotation);\n quaternion.toArray(quaternionValues, i / 3 * 4);\n }\n\n return new QuaternionKeyframeTrack(modelName + '.quaternion', times, quaternionValues);\n }\n }, {\n key: \"generateMorphTrack\",\n value: function generateMorphTrack(rawTracks) {\n var curves = rawTracks.DeformPercent.curves.morph;\n var values = curves.values.map(function (val) {\n return val / 100;\n });\n var morphNum = sceneGraph.getObjectByName(rawTracks.modelName).morphTargetDictionary[rawTracks.morphName];\n return new NumberKeyframeTrack(rawTracks.modelName + '.morphTargetInfluences[' + morphNum + ']', curves.times, values);\n } // For all animated objects, times are defined separately for each axis\n // Here we'll combine the times into one sorted array without duplicates\n\n }, {\n key: \"getTimesForAllAxes\",\n value: function getTimesForAllAxes(curves) {\n var times = []; // first join together the times for each axis, if defined\n\n if (curves.x !== undefined) times = times.concat(curves.x.times);\n if (curves.y !== undefined) times = times.concat(curves.y.times);\n if (curves.z !== undefined) times = times.concat(curves.z.times); // then sort them\n\n times = times.sort(function (a, b) {\n return a - b;\n }); // and remove duplicates\n\n if (times.length > 1) {\n var targetIndex = 1;\n var lastValue = times[0];\n\n for (var i = 1; i < times.length; i++) {\n var currentValue = times[i];\n\n if (currentValue !== lastValue) {\n times[targetIndex] = currentValue;\n lastValue = currentValue;\n targetIndex++;\n }\n }\n\n times = times.slice(0, targetIndex);\n }\n\n return times;\n }\n }, {\n key: \"getKeyframeTrackValues\",\n value: function getKeyframeTrackValues(times, curves, initialValue) {\n var prevValue = initialValue;\n var values = [];\n var xIndex = -1;\n var yIndex = -1;\n var zIndex = -1;\n times.forEach(function (time) {\n if (curves.x) xIndex = curves.x.times.indexOf(time);\n if (curves.y) yIndex = curves.y.times.indexOf(time);\n if (curves.z) zIndex = curves.z.times.indexOf(time); // if there is an x value defined for this frame, use that\n\n if (xIndex !== -1) {\n var xValue = curves.x.values[xIndex];\n values.push(xValue);\n prevValue[0] = xValue;\n } else {\n // otherwise use the x value from the previous frame\n values.push(prevValue[0]);\n }\n\n if (yIndex !== -1) {\n var yValue = curves.y.values[yIndex];\n values.push(yValue);\n prevValue[1] = yValue;\n } else {\n values.push(prevValue[1]);\n }\n\n if (zIndex !== -1) {\n var zValue = curves.z.values[zIndex];\n values.push(zValue);\n prevValue[2] = zValue;\n } else {\n values.push(prevValue[2]);\n }\n });\n return values;\n } // Rotations are defined as Euler angles which can have values of any size\n // These will be converted to quaternions which don't support values greater than\n // PI, so we'll interpolate large rotations\n\n }, {\n key: \"interpolateRotations\",\n value: function interpolateRotations(curve) {\n for (var i = 1; i < curve.values.length; i++) {\n var initialValue = curve.values[i - 1];\n var valuesSpan = curve.values[i] - initialValue;\n var absoluteSpan = Math.abs(valuesSpan);\n\n if (absoluteSpan >= 180) {\n var numSubIntervals = absoluteSpan / 180;\n var step = valuesSpan / numSubIntervals;\n var nextValue = initialValue + step;\n var initialTime = curve.times[i - 1];\n var timeSpan = curve.times[i] - initialTime;\n var interval = timeSpan / numSubIntervals;\n var nextTime = initialTime + interval;\n var interpolatedTimes = [];\n var interpolatedValues = [];\n\n while (nextTime < curve.times[i]) {\n interpolatedTimes.push(nextTime);\n nextTime += interval;\n interpolatedValues.push(nextValue);\n nextValue += step;\n }\n\n curve.times = inject(curve.times, i, interpolatedTimes);\n curve.values = inject(curve.values, i, interpolatedValues);\n }\n }\n }\n }]);\n\n return AnimationParser;\n}(); // parse an FBX file in ASCII format\n\n\nvar TextParser = /*#__PURE__*/function () {\n function TextParser() {\n _classCallCheck(this, TextParser);\n }\n\n _createClass(TextParser, [{\n key: \"getPrevNode\",\n value: function getPrevNode() {\n return this.nodeStack[this.currentIndent - 2];\n }\n }, {\n key: \"getCurrentNode\",\n value: function getCurrentNode() {\n return this.nodeStack[this.currentIndent - 1];\n }\n }, {\n key: \"getCurrentProp\",\n value: function getCurrentProp() {\n return this.currentProp;\n }\n }, {\n key: \"pushStack\",\n value: function pushStack(node) {\n this.nodeStack.push(node);\n this.currentIndent += 1;\n }\n }, {\n key: \"popStack\",\n value: function popStack() {\n this.nodeStack.pop();\n this.currentIndent -= 1;\n }\n }, {\n key: \"setCurrentProp\",\n value: function setCurrentProp(val, name) {\n this.currentProp = val;\n this.currentPropName = name;\n }\n }, {\n key: \"parse\",\n value: function parse(text) {\n this.currentIndent = 0;\n this.allNodes = new FBXTree();\n this.nodeStack = [];\n this.currentProp = [];\n this.currentPropName = '';\n var scope = this;\n var split = text.split(/[\\r\\n]+/);\n split.forEach(function (line, i) {\n var matchComment = line.match(/^[\\s\\t]*;/);\n var matchEmpty = line.match(/^[\\s\\t]*$/);\n if (matchComment || matchEmpty) return;\n var matchBeginning = line.match('^\\\\t{' + scope.currentIndent + '}(\\\\w+):(.*){', '');\n var matchProperty = line.match('^\\\\t{' + scope.currentIndent + '}(\\\\w+):[\\\\s\\\\t\\\\r\\\\n](.*)');\n var matchEnd = line.match('^\\\\t{' + (scope.currentIndent - 1) + '}}');\n\n if (matchBeginning) {\n scope.parseNodeBegin(line, matchBeginning);\n } else if (matchProperty) {\n scope.parseNodeProperty(line, matchProperty, split[++i]);\n } else if (matchEnd) {\n scope.popStack();\n } else if (line.match(/^[^\\s\\t}]/)) {\n // large arrays are split over multiple lines terminated with a ',' character\n // if this is encountered the line needs to be joined to the previous line\n scope.parseNodePropertyContinued(line);\n }\n });\n return this.allNodes;\n }\n }, {\n key: \"parseNodeBegin\",\n value: function parseNodeBegin(line, property) {\n var nodeName = property[1].trim().replace(/^\"/, '').replace(/\"$/, '');\n var nodeAttrs = property[2].split(',').map(function (attr) {\n return attr.trim().replace(/^\"/, '').replace(/\"$/, '');\n });\n var node = {\n name: nodeName\n };\n var attrs = this.parseNodeAttr(nodeAttrs);\n var currentNode = this.getCurrentNode(); // a top node\n\n if (this.currentIndent === 0) {\n this.allNodes.add(nodeName, node);\n } else {\n // a subnode\n // if the subnode already exists, append it\n if (nodeName in currentNode) {\n // special case Pose needs PoseNodes as an array\n if (nodeName === 'PoseNode') {\n currentNode.PoseNode.push(node);\n } else if (currentNode[nodeName].id !== undefined) {\n currentNode[nodeName] = {};\n currentNode[nodeName][currentNode[nodeName].id] = currentNode[nodeName];\n }\n\n if (attrs.id !== '') currentNode[nodeName][attrs.id] = node;\n } else if (typeof attrs.id === 'number') {\n currentNode[nodeName] = {};\n currentNode[nodeName][attrs.id] = node;\n } else if (nodeName !== 'Properties70') {\n if (nodeName === 'PoseNode') currentNode[nodeName] = [node];else currentNode[nodeName] = node;\n }\n }\n\n if (typeof attrs.id === 'number') node.id = attrs.id;\n if (attrs.name !== '') node.attrName = attrs.name;\n if (attrs.type !== '') node.attrType = attrs.type;\n this.pushStack(node);\n }\n }, {\n key: \"parseNodeAttr\",\n value: function parseNodeAttr(attrs) {\n var id = attrs[0];\n\n if (attrs[0] !== '') {\n id = parseInt(attrs[0]);\n\n if (isNaN(id)) {\n id = attrs[0];\n }\n }\n\n var name = '',\n type = '';\n\n if (attrs.length > 1) {\n name = attrs[1].replace(/^(\\w+)::/, '');\n type = attrs[2];\n }\n\n return {\n id: id,\n name: name,\n type: type\n };\n }\n }, {\n key: \"parseNodeProperty\",\n value: function parseNodeProperty(line, property, contentLine) {\n var propName = property[1].replace(/^\"/, '').replace(/\"$/, '').trim();\n var propValue = property[2].replace(/^\"/, '').replace(/\"$/, '').trim(); // for special case: base64 image data follows \"Content: ,\" line\n //\tContent: ,\n //\t \"/9j/4RDaRXhpZgAATU0A...\"\n\n if (propName === 'Content' && propValue === ',') {\n propValue = contentLine.replace(/\"/g, '').replace(/,$/, '').trim();\n }\n\n var currentNode = this.getCurrentNode();\n var parentName = currentNode.name;\n\n if (parentName === 'Properties70') {\n this.parseNodeSpecialProperty(line, propName, propValue);\n return;\n } // Connections\n\n\n if (propName === 'C') {\n var connProps = propValue.split(',').slice(1);\n var from = parseInt(connProps[0]);\n var to = parseInt(connProps[1]);\n var rest = propValue.split(',').slice(3);\n rest = rest.map(function (elem) {\n return elem.trim().replace(/^\"/, '');\n });\n propName = 'connections';\n propValue = [from, to];\n append(propValue, rest);\n\n if (currentNode[propName] === undefined) {\n currentNode[propName] = [];\n }\n } // Node\n\n\n if (propName === 'Node') currentNode.id = propValue; // connections\n\n if (propName in currentNode && Array.isArray(currentNode[propName])) {\n currentNode[propName].push(propValue);\n } else {\n if (propName !== 'a') currentNode[propName] = propValue;else currentNode.a = propValue;\n }\n\n this.setCurrentProp(currentNode, propName); // convert string to array, unless it ends in ',' in which case more will be added to it\n\n if (propName === 'a' && propValue.slice(-1) !== ',') {\n currentNode.a = parseNumberArray(propValue);\n }\n }\n }, {\n key: \"parseNodePropertyContinued\",\n value: function parseNodePropertyContinued(line) {\n var currentNode = this.getCurrentNode();\n currentNode.a += line; // if the line doesn't end in ',' we have reached the end of the property value\n // so convert the string to an array\n\n if (line.slice(-1) !== ',') {\n currentNode.a = parseNumberArray(currentNode.a);\n }\n } // parse \"Property70\"\n\n }, {\n key: \"parseNodeSpecialProperty\",\n value: function parseNodeSpecialProperty(line, propName, propValue) {\n // split this\n // P: \"Lcl Scaling\", \"Lcl Scaling\", \"\", \"A\",1,1,1\n // into array like below\n // [\"Lcl Scaling\", \"Lcl Scaling\", \"\", \"A\", \"1,1,1\" ]\n var props = propValue.split('\",').map(function (prop) {\n return prop.trim().replace(/^\\\"/, '').replace(/\\s/, '_');\n });\n var innerPropName = props[0];\n var innerPropType1 = props[1];\n var innerPropType2 = props[2];\n var innerPropFlag = props[3];\n var innerPropValue = props[4]; // cast values where needed, otherwise leave as strings\n\n switch (innerPropType1) {\n case 'int':\n case 'enum':\n case 'bool':\n case 'ULongLong':\n case 'double':\n case 'Number':\n case 'FieldOfView':\n innerPropValue = parseFloat(innerPropValue);\n break;\n\n case 'Color':\n case 'ColorRGB':\n case 'Vector3D':\n case 'Lcl_Translation':\n case 'Lcl_Rotation':\n case 'Lcl_Scaling':\n innerPropValue = parseNumberArray(innerPropValue);\n break;\n } // CAUTION: these props must append to parent's parent\n\n\n this.getPrevNode()[innerPropName] = {\n 'type': innerPropType1,\n 'type2': innerPropType2,\n 'flag': innerPropFlag,\n 'value': innerPropValue\n };\n this.setCurrentProp(this.getPrevNode(), innerPropName);\n }\n }]);\n\n return TextParser;\n}(); // Parse an FBX file in Binary format\n\n\nvar BinaryParser = /*#__PURE__*/function () {\n function BinaryParser() {\n _classCallCheck(this, BinaryParser);\n }\n\n _createClass(BinaryParser, [{\n key: \"parse\",\n value: function parse(buffer) {\n var reader = new BinaryReader(buffer);\n reader.skip(23); // skip magic 23 bytes\n\n var version = reader.getUint32();\n\n if (version < 6400) {\n throw new Error('THREE.FBXLoader: FBX version not supported, FileVersion: ' + version);\n }\n\n var allNodes = new FBXTree();\n\n while (!this.endOfContent(reader)) {\n var node = this.parseNode(reader, version);\n if (node !== null) allNodes.add(node.name, node);\n }\n\n return allNodes;\n } // Check if reader has reached the end of content.\n\n }, {\n key: \"endOfContent\",\n value: function endOfContent(reader) {\n // footer size: 160bytes + 16-byte alignment padding\n // - 16bytes: magic\n // - padding til 16-byte alignment (at least 1byte?)\n //\t(seems like some exporters embed fixed 15 or 16bytes?)\n // - 4bytes: magic\n // - 4bytes: version\n // - 120bytes: zero\n // - 16bytes: magic\n if (reader.size() % 16 === 0) {\n return (reader.getOffset() + 160 + 16 & ~0xf) >= reader.size();\n } else {\n return reader.getOffset() + 160 + 16 >= reader.size();\n }\n } // recursively parse nodes until the end of the file is reached\n\n }, {\n key: \"parseNode\",\n value: function parseNode(reader, version) {\n var node = {}; // The first three data sizes depends on version.\n\n var endOffset = version >= 7500 ? reader.getUint64() : reader.getUint32();\n var numProperties = version >= 7500 ? reader.getUint64() : reader.getUint32();\n version >= 7500 ? reader.getUint64() : reader.getUint32(); // the returned propertyListLen is not used\n\n var nameLen = reader.getUint8();\n var name = reader.getString(nameLen); // Regards this node as NULL-record if endOffset is zero\n\n if (endOffset === 0) return null;\n var propertyList = [];\n\n for (var i = 0; i < numProperties; i++) {\n propertyList.push(this.parseProperty(reader));\n } // Regards the first three elements in propertyList as id, attrName, and attrType\n\n\n var id = propertyList.length > 0 ? propertyList[0] : '';\n var attrName = propertyList.length > 1 ? propertyList[1] : '';\n var attrType = propertyList.length > 2 ? propertyList[2] : ''; // check if this node represents just a single property\n // like (name, 0) set or (name2, [0, 1, 2]) set of {name: 0, name2: [0, 1, 2]}\n\n node.singleProperty = numProperties === 1 && reader.getOffset() === endOffset ? true : false;\n\n while (endOffset > reader.getOffset()) {\n var subNode = this.parseNode(reader, version);\n if (subNode !== null) this.parseSubNode(name, node, subNode);\n }\n\n node.propertyList = propertyList; // raw property list used by parent\n\n if (typeof id === 'number') node.id = id;\n if (attrName !== '') node.attrName = attrName;\n if (attrType !== '') node.attrType = attrType;\n if (name !== '') node.name = name;\n return node;\n }\n }, {\n key: \"parseSubNode\",\n value: function parseSubNode(name, node, subNode) {\n // special case: child node is single property\n if (subNode.singleProperty === true) {\n var value = subNode.propertyList[0];\n\n if (Array.isArray(value)) {\n node[subNode.name] = subNode;\n subNode.a = value;\n } else {\n node[subNode.name] = value;\n }\n } else if (name === 'Connections' && subNode.name === 'C') {\n var array = [];\n subNode.propertyList.forEach(function (property, i) {\n // first Connection is FBX type (OO, OP, etc.). We'll discard these\n if (i !== 0) array.push(property);\n });\n\n if (node.connections === undefined) {\n node.connections = [];\n }\n\n node.connections.push(array);\n } else if (subNode.name === 'Properties70') {\n var keys = Object.keys(subNode);\n keys.forEach(function (key) {\n node[key] = subNode[key];\n });\n } else if (name === 'Properties70' && subNode.name === 'P') {\n var innerPropName = subNode.propertyList[0];\n var innerPropType1 = subNode.propertyList[1];\n var innerPropType2 = subNode.propertyList[2];\n var innerPropFlag = subNode.propertyList[3];\n var innerPropValue;\n if (innerPropName.indexOf('Lcl ') === 0) innerPropName = innerPropName.replace('Lcl ', 'Lcl_');\n if (innerPropType1.indexOf('Lcl ') === 0) innerPropType1 = innerPropType1.replace('Lcl ', 'Lcl_');\n\n if (innerPropType1 === 'Color' || innerPropType1 === 'ColorRGB' || innerPropType1 === 'Vector' || innerPropType1 === 'Vector3D' || innerPropType1.indexOf('Lcl_') === 0) {\n innerPropValue = [subNode.propertyList[4], subNode.propertyList[5], subNode.propertyList[6]];\n } else {\n innerPropValue = subNode.propertyList[4];\n } // this will be copied to parent, see above\n\n\n node[innerPropName] = {\n 'type': innerPropType1,\n 'type2': innerPropType2,\n 'flag': innerPropFlag,\n 'value': innerPropValue\n };\n } else if (node[subNode.name] === undefined) {\n if (typeof subNode.id === 'number') {\n node[subNode.name] = {};\n node[subNode.name][subNode.id] = subNode;\n } else {\n node[subNode.name] = subNode;\n }\n } else {\n if (subNode.name === 'PoseNode') {\n if (!Array.isArray(node[subNode.name])) {\n node[subNode.name] = [node[subNode.name]];\n }\n\n node[subNode.name].push(subNode);\n } else if (node[subNode.name][subNode.id] === undefined) {\n node[subNode.name][subNode.id] = subNode;\n }\n }\n }\n }, {\n key: \"parseProperty\",\n value: function parseProperty(reader) {\n var type = reader.getString(1);\n var length;\n\n switch (type) {\n case 'C':\n return reader.getBoolean();\n\n case 'D':\n return reader.getFloat64();\n\n case 'F':\n return reader.getFloat32();\n\n case 'I':\n return reader.getInt32();\n\n case 'L':\n return reader.getInt64();\n\n case 'R':\n length = reader.getUint32();\n return reader.getArrayBuffer(length);\n\n case 'S':\n length = reader.getUint32();\n return reader.getString(length);\n\n case 'Y':\n return reader.getInt16();\n\n case 'b':\n case 'c':\n case 'd':\n case 'f':\n case 'i':\n case 'l':\n var arrayLength = reader.getUint32();\n var encoding = reader.getUint32(); // 0: non-compressed, 1: compressed\n\n var compressedLength = reader.getUint32();\n\n if (encoding === 0) {\n switch (type) {\n case 'b':\n case 'c':\n return reader.getBooleanArray(arrayLength);\n\n case 'd':\n return reader.getFloat64Array(arrayLength);\n\n case 'f':\n return reader.getFloat32Array(arrayLength);\n\n case 'i':\n return reader.getInt32Array(arrayLength);\n\n case 'l':\n return reader.getInt64Array(arrayLength);\n }\n }\n\n var data = fflate.unzlibSync(new Uint8Array(reader.getArrayBuffer(compressedLength)));\n var reader2 = new BinaryReader(data.buffer);\n\n switch (type) {\n case 'b':\n case 'c':\n return reader2.getBooleanArray(arrayLength);\n\n case 'd':\n return reader2.getFloat64Array(arrayLength);\n\n case 'f':\n return reader2.getFloat32Array(arrayLength);\n\n case 'i':\n return reader2.getInt32Array(arrayLength);\n\n case 'l':\n return reader2.getInt64Array(arrayLength);\n }\n\n break;\n // cannot happen but is required by the DeepScan\n\n default:\n throw new Error('THREE.FBXLoader: Unknown property type ' + type);\n }\n }\n }]);\n\n return BinaryParser;\n}();\n\nvar BinaryReader = /*#__PURE__*/function () {\n function BinaryReader(buffer, littleEndian) {\n _classCallCheck(this, BinaryReader);\n\n this.dv = new DataView(buffer);\n this.offset = 0;\n this.littleEndian = littleEndian !== undefined ? littleEndian : true;\n this._textDecoder = new TextDecoder();\n }\n\n _createClass(BinaryReader, [{\n key: \"getOffset\",\n value: function getOffset() {\n return this.offset;\n }\n }, {\n key: \"size\",\n value: function size() {\n return this.dv.buffer.byteLength;\n }\n }, {\n key: \"skip\",\n value: function skip(length) {\n this.offset += length;\n } // seems like true/false representation depends on exporter.\n // true: 1 or 'Y'(=0x59), false: 0 or 'T'(=0x54)\n // then sees LSB.\n\n }, {\n key: \"getBoolean\",\n value: function getBoolean() {\n return (this.getUint8() & 1) === 1;\n }\n }, {\n key: \"getBooleanArray\",\n value: function getBooleanArray(size) {\n var a = [];\n\n for (var i = 0; i < size; i++) {\n a.push(this.getBoolean());\n }\n\n return a;\n }\n }, {\n key: \"getUint8\",\n value: function getUint8() {\n var value = this.dv.getUint8(this.offset);\n this.offset += 1;\n return value;\n }\n }, {\n key: \"getInt16\",\n value: function getInt16() {\n var value = this.dv.getInt16(this.offset, this.littleEndian);\n this.offset += 2;\n return value;\n }\n }, {\n key: \"getInt32\",\n value: function getInt32() {\n var value = this.dv.getInt32(this.offset, this.littleEndian);\n this.offset += 4;\n return value;\n }\n }, {\n key: \"getInt32Array\",\n value: function getInt32Array(size) {\n var a = [];\n\n for (var i = 0; i < size; i++) {\n a.push(this.getInt32());\n }\n\n return a;\n }\n }, {\n key: \"getUint32\",\n value: function getUint32() {\n var value = this.dv.getUint32(this.offset, this.littleEndian);\n this.offset += 4;\n return value;\n } // JavaScript doesn't support 64-bit integer so calculate this here\n // 1 << 32 will return 1 so using multiply operation instead here.\n // There's a possibility that this method returns wrong value if the value\n // is out of the range between Number.MAX_SAFE_INTEGER and Number.MIN_SAFE_INTEGER.\n // TODO: safely handle 64-bit integer\n\n }, {\n key: \"getInt64\",\n value: function getInt64() {\n var low, high;\n\n if (this.littleEndian) {\n low = this.getUint32();\n high = this.getUint32();\n } else {\n high = this.getUint32();\n low = this.getUint32();\n } // calculate negative value\n\n\n if (high & 0x80000000) {\n high = ~high & 0xFFFFFFFF;\n low = ~low & 0xFFFFFFFF;\n if (low === 0xFFFFFFFF) high = high + 1 & 0xFFFFFFFF;\n low = low + 1 & 0xFFFFFFFF;\n return -(high * 0x100000000 + low);\n }\n\n return high * 0x100000000 + low;\n }\n }, {\n key: \"getInt64Array\",\n value: function getInt64Array(size) {\n var a = [];\n\n for (var i = 0; i < size; i++) {\n a.push(this.getInt64());\n }\n\n return a;\n } // Note: see getInt64() comment\n\n }, {\n key: \"getUint64\",\n value: function getUint64() {\n var low, high;\n\n if (this.littleEndian) {\n low = this.getUint32();\n high = this.getUint32();\n } else {\n high = this.getUint32();\n low = this.getUint32();\n }\n\n return high * 0x100000000 + low;\n }\n }, {\n key: \"getFloat32\",\n value: function getFloat32() {\n var value = this.dv.getFloat32(this.offset, this.littleEndian);\n this.offset += 4;\n return value;\n }\n }, {\n key: \"getFloat32Array\",\n value: function getFloat32Array(size) {\n var a = [];\n\n for (var i = 0; i < size; i++) {\n a.push(this.getFloat32());\n }\n\n return a;\n }\n }, {\n key: \"getFloat64\",\n value: function getFloat64() {\n var value = this.dv.getFloat64(this.offset, this.littleEndian);\n this.offset += 8;\n return value;\n }\n }, {\n key: \"getFloat64Array\",\n value: function getFloat64Array(size) {\n var a = [];\n\n for (var i = 0; i < size; i++) {\n a.push(this.getFloat64());\n }\n\n return a;\n }\n }, {\n key: \"getArrayBuffer\",\n value: function getArrayBuffer(size) {\n var value = this.dv.buffer.slice(this.offset, this.offset + size);\n this.offset += size;\n return value;\n }\n }, {\n key: \"getString\",\n value: function getString(size) {\n var start = this.offset;\n var a = new Uint8Array(this.dv.buffer, start, size);\n this.skip(size);\n var nullByte = a.indexOf(0);\n if (nullByte >= 0) a = new Uint8Array(this.dv.buffer, start, nullByte);\n return this._textDecoder.decode(a);\n }\n }]);\n\n return BinaryReader;\n}(); // FBXTree holds a representation of the FBX data, returned by the TextParser ( FBX ASCII format)\n// and BinaryParser( FBX Binary format)\n\n\nvar FBXTree = /*#__PURE__*/function () {\n function FBXTree() {\n _classCallCheck(this, FBXTree);\n }\n\n _createClass(FBXTree, [{\n key: \"add\",\n value: function add(key, val) {\n this[key] = val;\n }\n }]);\n\n return FBXTree;\n}(); // ************** UTILITY FUNCTIONS **************\n\n\nfunction isFbxFormatBinary(buffer) {\n var CORRECT = \"Kaydara FBX Binary \\0\";\n return buffer.byteLength >= CORRECT.length && CORRECT === convertArrayBufferToString(buffer, 0, CORRECT.length);\n}\n\nfunction isFbxFormatASCII(text) {\n var CORRECT = ['K', 'a', 'y', 'd', 'a', 'r', 'a', '\\\\', 'F', 'B', 'X', '\\\\', 'B', 'i', 'n', 'a', 'r', 'y', '\\\\', '\\\\'];\n var cursor = 0;\n\n function read(offset) {\n var result = text[offset - 1];\n text = text.slice(cursor + offset);\n cursor++;\n return result;\n }\n\n for (var i = 0; i < CORRECT.length; ++i) {\n var num = read(1);\n\n if (num === CORRECT[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction getFbxVersion(text) {\n var versionRegExp = /FBXVersion: (\\d+)/;\n var match = text.match(versionRegExp);\n\n if (match) {\n var version = parseInt(match[1]);\n return version;\n }\n\n throw new Error('THREE.FBXLoader: Cannot find the version number for the file given.');\n} // Converts FBX ticks into real time seconds.\n\n\nfunction convertFBXTimeToSeconds(time) {\n return time / 46186158000;\n}\n\nvar dataArray = []; // extracts the data from the correct position in the FBX array based on indexing type\n\nfunction getData(polygonVertexIndex, polygonIndex, vertexIndex, infoObject) {\n var index;\n\n switch (infoObject.mappingType) {\n case 'ByPolygonVertex':\n index = polygonVertexIndex;\n break;\n\n case 'ByPolygon':\n index = polygonIndex;\n break;\n\n case 'ByVertice':\n index = vertexIndex;\n break;\n\n case 'AllSame':\n index = infoObject.indices[0];\n break;\n\n default:\n console.warn('THREE.FBXLoader: unknown attribute mapping type ' + infoObject.mappingType);\n }\n\n if (infoObject.referenceType === 'IndexToDirect') index = infoObject.indices[index];\n var from = index * infoObject.dataSize;\n var to = from + infoObject.dataSize;\n return slice(dataArray, infoObject.buffer, from, to);\n}\n\nvar tempEuler = new Euler();\nvar tempVec = new Vector3(); // generate transformation from FBX transform data\n// ref: https://help.autodesk.com/view/FBX/2017/ENU/?guid=__files_GUID_10CDD63C_79C1_4F2D_BB28_AD2BE65A02ED_htm\n// ref: http://docs.autodesk.com/FBX/2014/ENU/FBX-SDK-Documentation/index.html?url=cpp_ref/_transformations_2main_8cxx-example.html,topicNumber=cpp_ref__transformations_2main_8cxx_example_htmlfc10a1e1-b18d-4e72-9dc0-70d0f1959f5e\n\nfunction generateTransform(transformData) {\n var lTranslationM = new Matrix4();\n var lPreRotationM = new Matrix4();\n var lRotationM = new Matrix4();\n var lPostRotationM = new Matrix4();\n var lScalingM = new Matrix4();\n var lScalingPivotM = new Matrix4();\n var lScalingOffsetM = new Matrix4();\n var lRotationOffsetM = new Matrix4();\n var lRotationPivotM = new Matrix4();\n var lParentGX = new Matrix4();\n var lParentLX = new Matrix4();\n var lGlobalT = new Matrix4();\n var inheritType = transformData.inheritType ? transformData.inheritType : 0;\n if (transformData.translation) lTranslationM.setPosition(tempVec.fromArray(transformData.translation));\n\n if (transformData.preRotation) {\n var array = transformData.preRotation.map(MathUtils.degToRad);\n array.push(transformData.eulerOrder || Euler.DEFAULT_ORDER);\n lPreRotationM.makeRotationFromEuler(tempEuler.fromArray(array));\n }\n\n if (transformData.rotation) {\n var _array = transformData.rotation.map(MathUtils.degToRad);\n\n _array.push(transformData.eulerOrder || Euler.DEFAULT_ORDER);\n\n lRotationM.makeRotationFromEuler(tempEuler.fromArray(_array));\n }\n\n if (transformData.postRotation) {\n var _array2 = transformData.postRotation.map(MathUtils.degToRad);\n\n _array2.push(transformData.eulerOrder || Euler.DEFAULT_ORDER);\n\n lPostRotationM.makeRotationFromEuler(tempEuler.fromArray(_array2));\n lPostRotationM.invert();\n }\n\n if (transformData.scale) lScalingM.scale(tempVec.fromArray(transformData.scale)); // Pivots and offsets\n\n if (transformData.scalingOffset) lScalingOffsetM.setPosition(tempVec.fromArray(transformData.scalingOffset));\n if (transformData.scalingPivot) lScalingPivotM.setPosition(tempVec.fromArray(transformData.scalingPivot));\n if (transformData.rotationOffset) lRotationOffsetM.setPosition(tempVec.fromArray(transformData.rotationOffset));\n if (transformData.rotationPivot) lRotationPivotM.setPosition(tempVec.fromArray(transformData.rotationPivot)); // parent transform\n\n if (transformData.parentMatrixWorld) {\n lParentLX.copy(transformData.parentMatrix);\n lParentGX.copy(transformData.parentMatrixWorld);\n }\n\n var lLRM = lPreRotationM.clone().multiply(lRotationM).multiply(lPostRotationM); // Global Rotation\n\n var lParentGRM = new Matrix4();\n lParentGRM.extractRotation(lParentGX); // Global Shear*Scaling\n\n var lParentTM = new Matrix4();\n lParentTM.copyPosition(lParentGX);\n var lParentGRSM = lParentTM.clone().invert().multiply(lParentGX);\n var lParentGSM = lParentGRM.clone().invert().multiply(lParentGRSM);\n var lLSM = lScalingM;\n var lGlobalRS = new Matrix4();\n\n if (inheritType === 0) {\n lGlobalRS.copy(lParentGRM).multiply(lLRM).multiply(lParentGSM).multiply(lLSM);\n } else if (inheritType === 1) {\n lGlobalRS.copy(lParentGRM).multiply(lParentGSM).multiply(lLRM).multiply(lLSM);\n } else {\n var lParentLSM = new Matrix4().scale(new Vector3().setFromMatrixScale(lParentLX));\n var lParentLSM_inv = lParentLSM.clone().invert();\n var lParentGSM_noLocal = lParentGSM.clone().multiply(lParentLSM_inv);\n lGlobalRS.copy(lParentGRM).multiply(lLRM).multiply(lParentGSM_noLocal).multiply(lLSM);\n }\n\n var lRotationPivotM_inv = lRotationPivotM.clone().invert();\n var lScalingPivotM_inv = lScalingPivotM.clone().invert(); // Calculate the local transform matrix\n\n var lTransform = lTranslationM.clone().multiply(lRotationOffsetM).multiply(lRotationPivotM).multiply(lPreRotationM).multiply(lRotationM).multiply(lPostRotationM).multiply(lRotationPivotM_inv).multiply(lScalingOffsetM).multiply(lScalingPivotM).multiply(lScalingM).multiply(lScalingPivotM_inv);\n var lLocalTWithAllPivotAndOffsetInfo = new Matrix4().copyPosition(lTransform);\n var lGlobalTranslation = lParentGX.clone().multiply(lLocalTWithAllPivotAndOffsetInfo);\n lGlobalT.copyPosition(lGlobalTranslation);\n lTransform = lGlobalT.clone().multiply(lGlobalRS); // from global to local\n\n lTransform.premultiply(lParentGX.invert());\n return lTransform;\n} // Returns the three.js intrinsic Euler order corresponding to FBX extrinsic Euler order\n// ref: http://help.autodesk.com/view/FBX/2017/ENU/?guid=__cpp_ref_class_fbx_euler_html\n\n\nfunction getEulerOrder(order) {\n order = order || 0;\n var enums = ['ZYX', // -> XYZ extrinsic\n 'YZX', // -> XZY extrinsic\n 'XZY', // -> YZX extrinsic\n 'ZXY', // -> YXZ extrinsic\n 'YXZ', // -> ZXY extrinsic\n 'XYZ' // -> ZYX extrinsic\n //'SphericXYZ', // not possible to support\n ];\n\n if (order === 6) {\n console.warn('THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect.');\n return enums[0];\n }\n\n return enums[order];\n} // Parses comma separated list of numbers and returns them an array.\n// Used internally by the TextParser\n\n\nfunction parseNumberArray(value) {\n var array = value.split(',').map(function (val) {\n return parseFloat(val);\n });\n return array;\n}\n\nfunction convertArrayBufferToString(buffer, from, to) {\n if (from === undefined) from = 0;\n if (to === undefined) to = buffer.byteLength;\n return new TextDecoder().decode(new Uint8Array(buffer, from, to));\n}\n\nfunction append(a, b) {\n for (var i = 0, j = a.length, l = b.length; i < l; i++, j++) {\n a[j] = b[i];\n }\n}\n\nfunction slice(a, b, from, to) {\n for (var i = from, j = 0; i < to; i++, j++) {\n a[j] = b[i];\n }\n\n return a;\n} // inject array a2 into array a1 at index\n\n\nfunction inject(a1, index, a2) {\n return a1.slice(0, index).concat(a2).concat(a1.slice(index));\n}\n\nexport { FBXLoader };","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\n\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};","var global = require('../internals/global');\n\nvar TypeError = global.TypeError; // `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\n\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};","module.exports = false;","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar global = require('../internals/global');\n\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar isObject = require('../internals/is-object');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar hasOwn = require('../internals/has-own-property');\n\nvar shared = require('../internals/shared-store');\n\nvar sharedKey = require('../internals/shared-key');\n\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function enforce(it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function getterFor(TYPE) {\n return function (it) {\n var state;\n\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n }\n\n return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n\n set = function set(it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n\n get = function get(it) {\n return wmget(store, it) || {};\n };\n\n has = function has(it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n\n set = function set(it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n\n get = function get(it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n\n has = function has(it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};","/**\n * CIE XYZ\n *\n * @module color-space/xyz\n */\n'use strict';\n\nvar rgb = require('./rgb');\n\nvar xyz = {\n name: 'xyz',\n min: [0, 0, 0],\n channel: ['X', 'Y', 'Z'],\n alias: ['XYZ', 'ciexyz', 'cie1931']\n};\n/**\n * Whitepoint reference values with observer/illuminant\n *\n * http://en.wikipedia.org/wiki/Standard_illuminant\n */\n\nxyz.whitepoint = {\n //1931 2°\n 2: {\n //incadescent\n A: [109.85, 100, 35.585],\n // B:[],\n C: [98.074, 100, 118.232],\n D50: [96.422, 100, 82.521],\n D55: [95.682, 100, 92.149],\n //daylight\n D65: [95.045592705167, 100, 108.9057750759878],\n D75: [94.972, 100, 122.638],\n //flourescent\n // F1: [],\n F2: [99.187, 100, 67.395],\n // F3: [],\n // F4: [],\n // F5: [],\n // F6:[],\n F7: [95.044, 100, 108.755],\n // F8: [],\n // F9: [],\n // F10: [],\n F11: [100.966, 100, 64.370],\n // F12: [],\n E: [100, 100, 100]\n },\n //1964 10°\n 10: {\n //incadescent\n A: [111.144, 100, 35.200],\n C: [97.285, 100, 116.145],\n D50: [96.720, 100, 81.427],\n D55: [95.799, 100, 90.926],\n //daylight\n D65: [94.811, 100, 107.304],\n D75: [94.416, 100, 120.641],\n //flourescent\n F2: [103.280, 100, 69.026],\n F7: [95.792, 100, 107.687],\n F11: [103.866, 100, 65.627],\n E: [100, 100, 100]\n }\n};\n/**\n * Top values are the whitepoint’s top values, default are D65\n */\n\nxyz.max = xyz.whitepoint[2].D65;\n/**\n * Transform xyz to rgb\n *\n * @param {Array} xyz Array of xyz values\n *\n * @return {Array} RGB values\n */\n\nxyz.rgb = function (_xyz, white) {\n //FIXME: make sure we have to divide like this. Probably we have to replace matrix as well then\n white = white || xyz.whitepoint[2].E;\n var x = _xyz[0] / white[0],\n y = _xyz[1] / white[1],\n z = _xyz[2] / white[2],\n r,\n g,\n b; // assume sRGB\n // http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\n r = x * 3.240969941904521 + y * -1.537383177570093 + z * -0.498610760293;\n g = x * -0.96924363628087 + y * 1.87596750150772 + z * 0.041555057407175;\n b = x * 0.055630079696993 + y * -0.20397695888897 + z * 1.056971514242878;\n r = r > 0.0031308 ? 1.055 * Math.pow(r, 1.0 / 2.4) - 0.055 : r = r * 12.92;\n g = g > 0.0031308 ? 1.055 * Math.pow(g, 1.0 / 2.4) - 0.055 : g = g * 12.92;\n b = b > 0.0031308 ? 1.055 * Math.pow(b, 1.0 / 2.4) - 0.055 : b = b * 12.92;\n r = Math.min(Math.max(0, r), 1);\n g = Math.min(Math.max(0, g), 1);\n b = Math.min(Math.max(0, b), 1);\n return [r * 255, g * 255, b * 255];\n};\n/**\n * RGB to XYZ\n *\n * @param {Array} rgb RGB channels\n *\n * @return {Array} XYZ channels\n */\n\n\nrgb.xyz = function (rgb, white) {\n var r = rgb[0] / 255,\n g = rgb[1] / 255,\n b = rgb[2] / 255; // assume sRGB\n\n r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92;\n g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92;\n b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92;\n var x = r * 0.41239079926595 + g * 0.35758433938387 + b * 0.18048078840183;\n var y = r * 0.21263900587151 + g * 0.71516867876775 + b * 0.072192315360733;\n var z = r * 0.019330818715591 + g * 0.11919477979462 + b * 0.95053215224966;\n white = white || xyz.whitepoint[2].E;\n return [x * white[0], y * white[1], z * white[2]];\n};\n\nmodule.exports = xyz;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar useDebounce_1 = require(\"./useDebounce\");\n\nexports.useDebounce = useDebounce_1.default;\n\nvar useDebouncedCallback_1 = require(\"./useDebouncedCallback\");\n\nexports.useDebouncedCallback = useDebouncedCallback_1.default;","/*\n * Copyright 2020 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport function isRefObject(value) {\n return value != null && typeof value !== \"function\";\n}\nexport function isRefCallback(value) {\n return typeof value === \"function\";\n}\n/**\n * Assign the given ref to a target, either a React ref object or a callback which takes the ref as its first argument.\n */\n\nexport function setRef(refTarget, ref) {\n if (isRefObject(refTarget)) {\n refTarget.current = ref;\n } else if (isRefCallback(refTarget)) {\n refTarget(ref);\n }\n}\n/** @deprecated use mergeRefs() instead */\n\nexport function combineRefs(ref1, ref2) {\n return mergeRefs(ref1, ref2);\n}\n/**\n * Utility for merging refs into one singular callback ref.\n * If using in a functional component, would recomend using `useMemo` to preserve function identity.\n */\n\nexport function mergeRefs() {\n var refs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n refs[_i] = arguments[_i];\n }\n\n return function (value) {\n refs.forEach(function (ref) {\n setRef(ref, value);\n });\n };\n}\nexport function getRef(ref) {\n var _a;\n\n if (ref === null) {\n return null;\n }\n\n return (_a = ref.current) !== null && _a !== void 0 ? _a : ref;\n}\n/**\n * Creates a ref handler which assigns the ref returned by React for a mounted component to a field on the target object.\n * The target object is usually a component class.\n *\n * If provided, it will also update the given `refProp` with the value of the ref.\n */\n\nexport function refHandler(refTargetParent, refTargetKey, refProp) {\n return function (ref) {\n refTargetParent[refTargetKey] = ref;\n setRef(refProp, ref);\n };\n}","var anObject = require('../internals/an-object');\n\nvar aConstructor = require('../internals/a-constructor');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species'); // `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\n\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace); // `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\n\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '"') + '\"';\n return p1 + '>' + S + '';\n};","var fails = require('../internals/fails'); // check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\n\n\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};","'use strict';\n\nvar bind = require('./helpers/bind');\n/*global toString:true*/\n// utils is a library of generic helper functions non-specific to axios\n\n\nvar toString = Object.prototype.toString;\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\n\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\n\n\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\n\n\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nfunction isFormData(val) {\n return typeof FormData !== 'undefined' && val instanceof FormData;\n}\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && val.buffer instanceof ArrayBuffer;\n }\n\n return result;\n}\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\n\n\nfunction isString(val) {\n return typeof val === 'string';\n}\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\n\n\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\n\n\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\n\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\n\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\n\n\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\n\n\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\n\n\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction\n /* obj1, obj2, obj3, ... */\nmerge() {\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction\n /* obj1, obj2, obj3, ... */\ndeepMerge() {\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};","module.exports = require('./lib/axios');","import _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport createContext from '@hypnosphi/create-react-context';\nexport var ManagerReferenceNodeContext = createContext();\nexport var ManagerReferenceNodeSetterContext = createContext();\n\nvar Manager = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Manager, _React$Component);\n\n function Manager() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"referenceNode\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setReferenceNode\", function (newReferenceNode) {\n if (newReferenceNode && _this.referenceNode !== newReferenceNode) {\n _this.referenceNode = newReferenceNode;\n\n _this.forceUpdate();\n }\n });\n\n return _this;\n }\n\n var _proto = Manager.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.referenceNode = null;\n };\n\n _proto.render = function render() {\n return React.createElement(ManagerReferenceNodeContext.Provider, {\n value: this.referenceNode\n }, React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: this.setReferenceNode\n }, this.props.children));\n };\n\n return Manager;\n}(React.Component);\n\nexport { Manager as default };","/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === \"function\") {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Does a shallow equality check of two objects by comparing the reference\n * equality of each value.\n */\n\nexport var shallowEqual = function shallowEqual(objA, objB) {\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n\n if (bKeys.length !== aKeys.length) {\n return false;\n }\n\n for (var i = 0; i < bKeys.length; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key]) {\n return false;\n }\n }\n\n return true;\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === \"function\") {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport warning from 'warning';\nimport { ManagerReferenceNodeSetterContext } from './Manager';\nimport { safeInvoke, unwrapArray, setRef } from './utils';\n\nvar InnerReference = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InnerReference, _React$Component);\n\n function InnerReference() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"refHandler\", function (node) {\n setRef(_this.props.innerRef, node);\n safeInvoke(_this.props.setReferenceNode, node);\n });\n\n return _this;\n }\n\n var _proto = InnerReference.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n setRef(this.props.innerRef, null);\n };\n\n _proto.render = function render() {\n warning(Boolean(this.props.setReferenceNode), '`Reference` should not be used outside of a `Manager` component.');\n return unwrapArray(this.props.children)({\n ref: this.refHandler\n });\n };\n\n return InnerReference;\n}(React.Component);\n\nexport default function Reference(props) {\n return React.createElement(ManagerReferenceNodeSetterContext.Consumer, null, function (setReferenceNode) {\n return React.createElement(InnerReference, _extends({\n setReferenceNode: setReferenceNode\n }, props));\n });\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport deepEqual from \"deep-equal\";\nimport * as React from 'react';\nimport PopperJS from 'popper.js';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef, shallowEqual } from './utils';\nvar initialStyle = {\n position: 'absolute',\n top: 0,\n left: 0,\n opacity: 0,\n pointerEvents: 'none'\n};\nvar initialArrowStyle = {};\nexport var InnerPopper = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InnerPopper, _React$Component);\n\n function InnerPopper() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n data: undefined,\n placement: undefined\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"popperInstance\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"popperNode\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"arrowNode\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setPopperNode\", function (popperNode) {\n if (!popperNode || _this.popperNode === popperNode) return;\n setRef(_this.props.innerRef, popperNode);\n _this.popperNode = popperNode;\n\n _this.updatePopperInstance();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setArrowNode\", function (arrowNode) {\n _this.arrowNode = arrowNode;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"updateStateModifier\", {\n enabled: true,\n order: 900,\n fn: function fn(data) {\n var placement = data.placement;\n\n _this.setState({\n data: data,\n placement: placement\n });\n\n return data;\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getOptions\", function () {\n return {\n placement: _this.props.placement,\n eventsEnabled: _this.props.eventsEnabled,\n positionFixed: _this.props.positionFixed,\n modifiers: _extends({}, _this.props.modifiers, {\n arrow: _extends({}, _this.props.modifiers && _this.props.modifiers.arrow, {\n enabled: !!_this.arrowNode,\n element: _this.arrowNode\n }),\n applyStyle: {\n enabled: false\n },\n updateStateModifier: _this.updateStateModifier\n })\n };\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getPopperStyle\", function () {\n return !_this.popperNode || !_this.state.data ? initialStyle : _extends({\n position: _this.state.data.offsets.popper.position\n }, _this.state.data.styles);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getPopperPlacement\", function () {\n return !_this.state.data ? undefined : _this.state.placement;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getArrowStyle\", function () {\n return !_this.arrowNode || !_this.state.data ? initialArrowStyle : _this.state.data.arrowStyles;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getOutOfBoundariesState\", function () {\n return _this.state.data ? _this.state.data.hide : undefined;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"destroyPopperInstance\", function () {\n if (!_this.popperInstance) return;\n\n _this.popperInstance.destroy();\n\n _this.popperInstance = null;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"updatePopperInstance\", function () {\n _this.destroyPopperInstance();\n\n var _assertThisInitialize = _assertThisInitialized(_assertThisInitialized(_this)),\n popperNode = _assertThisInitialize.popperNode;\n\n var referenceElement = _this.props.referenceElement;\n if (!referenceElement || !popperNode) return;\n _this.popperInstance = new PopperJS(referenceElement, popperNode, _this.getOptions());\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"scheduleUpdate\", function () {\n if (_this.popperInstance) {\n _this.popperInstance.scheduleUpdate();\n }\n });\n\n return _this;\n }\n\n var _proto = InnerPopper.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // If the Popper.js options have changed, update the instance (destroy + create)\n if (this.props.placement !== prevProps.placement || this.props.referenceElement !== prevProps.referenceElement || this.props.positionFixed !== prevProps.positionFixed || !deepEqual(this.props.modifiers, prevProps.modifiers, {\n strict: true\n })) {\n // develop only check that modifiers isn't being updated needlessly\n if (process.env.NODE_ENV === \"development\") {\n if (this.props.modifiers !== prevProps.modifiers && this.props.modifiers != null && prevProps.modifiers != null && shallowEqual(this.props.modifiers, prevProps.modifiers)) {\n console.warn(\"'modifiers' prop reference updated even though all values appear the same.\\nConsider memoizing the 'modifiers' object to avoid needless rendering.\");\n }\n }\n\n this.updatePopperInstance();\n } else if (this.props.eventsEnabled !== prevProps.eventsEnabled && this.popperInstance) {\n this.props.eventsEnabled ? this.popperInstance.enableEventListeners() : this.popperInstance.disableEventListeners();\n } // A placement difference in state means popper determined a new placement\n // apart from the props value. By the time the popper element is rendered with\n // the new position Popper has already measured it, if the place change triggers\n // a size change it will result in a misaligned popper. So we schedule an update to be sure.\n\n\n if (prevState.placement !== this.state.placement) {\n this.scheduleUpdate();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n setRef(this.props.innerRef, null);\n this.destroyPopperInstance();\n };\n\n _proto.render = function render() {\n return unwrapArray(this.props.children)({\n ref: this.setPopperNode,\n style: this.getPopperStyle(),\n placement: this.getPopperPlacement(),\n outOfBoundaries: this.getOutOfBoundariesState(),\n scheduleUpdate: this.scheduleUpdate,\n arrowProps: {\n ref: this.setArrowNode,\n style: this.getArrowStyle()\n }\n });\n };\n\n return InnerPopper;\n}(React.Component);\n\n_defineProperty(InnerPopper, \"defaultProps\", {\n placement: 'bottom',\n eventsEnabled: true,\n referenceElement: undefined,\n positionFixed: false\n});\n\nvar placements = PopperJS.placements;\nexport { placements };\nexport default function Popper(_ref) {\n var referenceElement = _ref.referenceElement,\n props = _objectWithoutPropertiesLoose(_ref, [\"referenceElement\"]);\n\n return React.createElement(ManagerReferenceNodeContext.Consumer, null, function (referenceNode) {\n return React.createElement(InnerPopper, _extends({\n referenceElement: referenceElement !== undefined ? referenceElement : referenceNode\n }, props));\n });\n}","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __extends } from \"tslib\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport * as Classes from \"../../common/classes\";\nimport * as Errors from \"../../common/errors\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { isFunction } from \"../../common/utils\";\n/** Detect if `React.createPortal()` API method does not exist. */\n\nvar cannotCreatePortal = !isFunction(ReactDOM.createPortal);\nvar REACT_CONTEXT_TYPES = {\n blueprintPortalClassName: function blueprintPortalClassName(obj, key) {\n if (obj[key] != null && typeof obj[key] !== \"string\") {\n return new Error(Errors.PORTAL_CONTEXT_CLASS_NAME_STRING);\n }\n\n return undefined;\n }\n};\n/**\n * This component detaches its contents and re-attaches them to document.body.\n * Use it when you need to circumvent DOM z-stacking (for dialogs, popovers, etc.).\n * Any class names passed to this element will be propagated to the new container element on document.body.\n */\n\nvar Portal =\n/** @class */\nfunction (_super) {\n __extends(Portal, _super);\n\n function Portal() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.context = {};\n _this.state = {\n hasMounted: false\n };\n _this.portalElement = null;\n return _this;\n }\n\n Portal.prototype.render = function () {\n // Only render `children` once this component has mounted in a browser environment, so they are\n // immediately attached to the DOM tree and can do DOM things like measuring or `autoFocus`.\n // See long comment on componentDidMount in https://reactjs.org/docs/portals.html#event-bubbling-through-portals\n if (cannotCreatePortal || typeof document === \"undefined\" || !this.state.hasMounted || this.portalElement === null) {\n return null;\n } else {\n return ReactDOM.createPortal(this.props.children, this.portalElement);\n }\n };\n\n Portal.prototype.componentDidMount = function () {\n if (!this.props.container) {\n return;\n }\n\n this.portalElement = this.createContainerElement();\n this.props.container.appendChild(this.portalElement);\n /* eslint-disable-next-line react/no-did-mount-set-state */\n\n this.setState({\n hasMounted: true\n }, this.props.onChildrenMount);\n\n if (cannotCreatePortal) {\n this.unstableRenderNoPortal();\n }\n };\n\n Portal.prototype.componentDidUpdate = function (prevProps) {\n // update className prop on portal DOM element\n if (this.portalElement != null && prevProps.className !== this.props.className) {\n maybeRemoveClass(this.portalElement.classList, prevProps.className);\n maybeAddClass(this.portalElement.classList, this.props.className);\n }\n\n if (cannotCreatePortal) {\n this.unstableRenderNoPortal();\n }\n };\n\n Portal.prototype.componentWillUnmount = function () {\n if (this.portalElement != null) {\n if (cannotCreatePortal) {\n ReactDOM.unmountComponentAtNode(this.portalElement);\n }\n\n this.portalElement.remove();\n }\n };\n\n Portal.prototype.createContainerElement = function () {\n var container = document.createElement(\"div\");\n container.classList.add(Classes.PORTAL);\n maybeAddClass(container.classList, this.props.className);\n\n if (this.context != null) {\n maybeAddClass(container.classList, this.context.blueprintPortalClassName);\n }\n\n return container;\n };\n\n Portal.prototype.unstableRenderNoPortal = function () {\n if (this.portalElement === null) {\n return;\n }\n\n ReactDOM.unstable_renderSubtreeIntoContainer(\n /* parentComponent */\n this, React.createElement(\"div\", null, this.props.children), this.portalElement);\n };\n\n Portal.displayName = \"\".concat(DISPLAYNAME_PREFIX, \".Portal\");\n Portal.contextTypes = REACT_CONTEXT_TYPES;\n Portal.defaultProps = {\n container: typeof document !== \"undefined\" ? document.body : undefined\n };\n return Portal;\n}(React.Component);\n\nexport { Portal };\n\nfunction maybeRemoveClass(classList, className) {\n if (className != null && className !== \"\") {\n classList.remove.apply(classList, className.split(\" \"));\n }\n}\n\nfunction maybeAddClass(classList, className) {\n if (className != null && className !== \"\") {\n classList.add.apply(classList, className.split(\" \"));\n }\n}","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __decorate, __extends } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { findDOMNode } from \"react-dom\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { CSSTransition, TransitionGroup } from \"react-transition-group\";\nimport { AbstractPureComponent2, Classes, Keys } from \"../../common\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { isFunction } from \"../../common/utils\";\nimport { Portal } from \"../portal/portal\"; // HACKHACK: https://github.com/palantir/blueprint/issues/4342\n// eslint-disable-next-line deprecation/deprecation\n\nvar Overlay =\n/** @class */\nfunction (_super) {\n __extends(Overlay, _super);\n\n function Overlay() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.isAutoFocusing = false;\n _this.state = {\n hasEverOpened: _this.props.isOpen\n }; // an HTMLElement that contains the backdrop and any children, to query for focus target\n\n _this.containerElement = null; // An empty, keyboard-focusable div at the beginning of the Overlay content\n\n _this.startFocusTrapElement = null; // An empty, keyboard-focusable div at the end of the Overlay content\n\n _this.endFocusTrapElement = null;\n _this.refHandlers = {\n // HACKHACK: see https://github.com/palantir/blueprint/issues/3979\n\n /* eslint-disable-next-line react/no-find-dom-node */\n container: function container(ref) {\n return _this.containerElement = findDOMNode(ref);\n },\n endFocusTrap: function endFocusTrap(ref) {\n return _this.endFocusTrapElement = ref;\n },\n startFocusTrap: function startFocusTrap(ref) {\n return _this.startFocusTrapElement = ref;\n }\n };\n\n _this.maybeRenderChild = function (child) {\n if (isFunction(child)) {\n child = child();\n }\n\n if (child == null) {\n return null;\n } // add a special class to each child element that will automatically set the appropriate\n // CSS position mode under the hood.\n\n\n var decoratedChild = typeof child === \"object\" ? React.cloneElement(child, {\n className: classNames(child.props.className, Classes.OVERLAY_CONTENT)\n }) : React.createElement(\"span\", {\n className: Classes.OVERLAY_CONTENT\n }, child);\n var _a = _this.props,\n onOpening = _a.onOpening,\n onOpened = _a.onOpened,\n onClosing = _a.onClosing,\n transitionDuration = _a.transitionDuration,\n transitionName = _a.transitionName; // a breaking change in react-transition-group types requires us to be explicit about the type overload here,\n // using a technique similar to Select.ofType() in @blueprintjs/select\n\n var CSSTransitionImplicit = CSSTransition;\n return React.createElement(CSSTransitionImplicit, {\n classNames: transitionName,\n onEntering: onOpening,\n onEntered: onOpened,\n onExiting: onClosing,\n onExited: _this.handleTransitionExited,\n timeout: transitionDuration,\n addEndListener: _this.handleTransitionAddEnd\n }, decoratedChild);\n };\n /**\n * Ensures repeatedly pressing shift+tab keeps focus inside the Overlay. Moves focus to\n * the `endFocusTrapElement` or the first keyboard-focusable element in the Overlay (excluding\n * the `startFocusTrapElement`), depending on whether the element losing focus is inside the\n * Overlay.\n */\n\n\n _this.handleStartFocusTrapElementFocus = function (e) {\n var _a;\n\n if (!_this.props.enforceFocus || _this.isAutoFocusing) {\n return;\n } // e.relatedTarget will not be defined if this was a programmatic focus event, as is the\n // case when we call this.bringFocusInsideOverlay() after a user clicked on the backdrop.\n // Otherwise, we're handling a user interaction, and we should wrap around to the last\n // element in this transition group.\n\n\n if (e.relatedTarget != null && _this.containerElement.contains(e.relatedTarget) && e.relatedTarget !== _this.endFocusTrapElement) {\n (_a = _this.endFocusTrapElement) === null || _a === void 0 ? void 0 : _a.focus({\n preventScroll: true\n });\n }\n };\n /**\n * Wrap around to the end of the dialog if `enforceFocus` is enabled.\n */\n\n\n _this.handleStartFocusTrapElementKeyDown = function (e) {\n var _a;\n\n if (!_this.props.enforceFocus) {\n return;\n } // HACKHACK: https://github.com/palantir/blueprint/issues/4165\n\n /* eslint-disable-next-line deprecation/deprecation */\n\n\n if (e.shiftKey && e.which === Keys.TAB) {\n var lastFocusableElement = _this.getKeyboardFocusableElements().pop();\n\n if (lastFocusableElement != null) {\n lastFocusableElement.focus();\n } else {\n (_a = _this.endFocusTrapElement) === null || _a === void 0 ? void 0 : _a.focus({\n preventScroll: true\n });\n }\n }\n };\n /**\n * Ensures repeatedly pressing tab keeps focus inside the Overlay. Moves focus to the\n * `startFocusTrapElement` or the last keyboard-focusable element in the Overlay (excluding the\n * `startFocusTrapElement`), depending on whether the element losing focus is inside the\n * Overlay.\n */\n\n\n _this.handleEndFocusTrapElementFocus = function (e) {\n var _a, _b; // No need for this.props.enforceFocus check here because this element is only rendered\n // when that prop is true.\n // During user interactions, e.relatedTarget will be defined, and we should wrap around to the\n // \"start focus trap\" element.\n // Otherwise, we're handling a programmatic focus event, which can only happen after a user\n // presses shift+tab from the first focusable element in the overlay.\n\n\n if (e.relatedTarget != null && _this.containerElement.contains(e.relatedTarget) && e.relatedTarget !== _this.startFocusTrapElement) {\n var firstFocusableElement = _this.getKeyboardFocusableElements().shift(); // ensure we don't re-focus an already active element by comparing against e.relatedTarget\n\n\n if (!_this.isAutoFocusing && firstFocusableElement != null && firstFocusableElement !== e.relatedTarget) {\n firstFocusableElement.focus();\n } else {\n (_a = _this.startFocusTrapElement) === null || _a === void 0 ? void 0 : _a.focus({\n preventScroll: true\n });\n }\n } else {\n var lastFocusableElement = _this.getKeyboardFocusableElements().pop();\n\n if (lastFocusableElement != null) {\n lastFocusableElement.focus();\n } else {\n // Keeps focus within Overlay even if there are no keyboard-focusable children\n (_b = _this.startFocusTrapElement) === null || _b === void 0 ? void 0 : _b.focus({\n preventScroll: true\n });\n }\n }\n };\n\n _this.handleTransitionExited = function (node) {\n var _a, _b;\n\n if (_this.props.shouldReturnFocusOnClose && _this.lastActiveElementBeforeOpened instanceof HTMLElement) {\n _this.lastActiveElementBeforeOpened.focus();\n }\n\n (_b = (_a = _this.props).onClosed) === null || _b === void 0 ? void 0 : _b.call(_a, node);\n };\n\n _this.handleBackdropMouseDown = function (e) {\n var _a;\n\n var _b = _this.props,\n backdropProps = _b.backdropProps,\n canOutsideClickClose = _b.canOutsideClickClose,\n enforceFocus = _b.enforceFocus,\n onClose = _b.onClose;\n\n if (canOutsideClickClose) {\n onClose === null || onClose === void 0 ? void 0 : onClose(e);\n }\n\n if (enforceFocus) {\n _this.bringFocusInsideOverlay();\n }\n\n (_a = backdropProps === null || backdropProps === void 0 ? void 0 : backdropProps.onMouseDown) === null || _a === void 0 ? void 0 : _a.call(backdropProps, e);\n };\n\n _this.handleDocumentClick = function (e) {\n var _a = _this.props,\n canOutsideClickClose = _a.canOutsideClickClose,\n isOpen = _a.isOpen,\n onClose = _a.onClose; // get the actual target even in the Shadow DOM\n\n var eventTarget = e.composed ? e.composedPath()[0] : e.target;\n var stackIndex = Overlay_1.openStack.indexOf(_this);\n var isClickInThisOverlayOrDescendant = Overlay_1.openStack.slice(stackIndex).some(function (_a) {\n var elem = _a.containerElement; // `elem` is the container of backdrop & content, so clicking on that container\n // should not count as being \"inside\" the overlay.\n\n return elem && elem.contains(eventTarget) && !elem.isSameNode(eventTarget);\n });\n\n if (isOpen && !isClickInThisOverlayOrDescendant && canOutsideClickClose) {\n // casting to any because this is a native event\n onClose === null || onClose === void 0 ? void 0 : onClose(e);\n }\n };\n /**\n * When multiple Overlays are open, this event handler is only active for the most recently\n * opened one to avoid Overlays competing with each other for focus.\n */\n\n\n _this.handleDocumentFocus = function (e) {\n // get the actual target even in the Shadow DOM\n var eventTarget = e.composed ? e.composedPath()[0] : e.target;\n\n if (_this.props.enforceFocus && _this.containerElement != null && eventTarget instanceof Node && !_this.containerElement.contains(eventTarget)) {\n // prevent default focus behavior (sometimes auto-scrolls the page)\n e.preventDefault();\n e.stopImmediatePropagation();\n\n _this.bringFocusInsideOverlay();\n }\n };\n\n _this.handleKeyDown = function (e) {\n var _a = _this.props,\n canEscapeKeyClose = _a.canEscapeKeyClose,\n onClose = _a.onClose; // HACKHACK: https://github.com/palantir/blueprint/issues/4165\n\n /* eslint-disable-next-line deprecation/deprecation */\n\n if (e.which === Keys.ESCAPE && canEscapeKeyClose) {\n onClose === null || onClose === void 0 ? void 0 : onClose(e); // prevent browser-specific escape key behavior (Safari exits fullscreen)\n\n e.preventDefault();\n }\n };\n\n _this.handleTransitionAddEnd = function () {// no-op\n };\n\n return _this;\n }\n\n Overlay_1 = Overlay;\n\n Overlay.getDerivedStateFromProps = function (_a) {\n var hasEverOpened = _a.isOpen;\n\n if (hasEverOpened) {\n return {\n hasEverOpened: hasEverOpened\n };\n }\n\n return null;\n };\n\n Overlay.prototype.render = function () {\n var _a;\n\n var _b; // oh snap! no reason to render anything at all if we're being truly lazy\n\n\n if (this.props.lazy && !this.state.hasEverOpened) {\n return null;\n }\n\n var _c = this.props,\n autoFocus = _c.autoFocus,\n children = _c.children,\n className = _c.className,\n enforceFocus = _c.enforceFocus,\n usePortal = _c.usePortal,\n isOpen = _c.isOpen; // TransitionGroup types require single array of children; does not support nested arrays.\n // So we must collapse backdrop and children into one array, and every item must be wrapped in a\n // Transition element (no ReactText allowed).\n\n var childrenWithTransitions = isOpen ? (_b = React.Children.map(children, this.maybeRenderChild)) !== null && _b !== void 0 ? _b : [] : [];\n var maybeBackdrop = this.maybeRenderBackdrop();\n\n if (maybeBackdrop !== null) {\n childrenWithTransitions.unshift(maybeBackdrop);\n }\n\n if (isOpen && (autoFocus || enforceFocus) && childrenWithTransitions.length > 0) {\n childrenWithTransitions.unshift(this.renderDummyElement(\"__start\", {\n className: Classes.OVERLAY_START_FOCUS_TRAP,\n onFocus: this.handleStartFocusTrapElementFocus,\n onKeyDown: this.handleStartFocusTrapElementKeyDown,\n ref: this.refHandlers.startFocusTrap\n }));\n\n if (enforceFocus) {\n childrenWithTransitions.push(this.renderDummyElement(\"__end\", {\n className: Classes.OVERLAY_END_FOCUS_TRAP,\n onFocus: this.handleEndFocusTrapElementFocus,\n ref: this.refHandlers.endFocusTrap\n }));\n }\n }\n\n var containerClasses = classNames(Classes.OVERLAY, (_a = {}, _a[Classes.OVERLAY_OPEN] = isOpen, _a[Classes.OVERLAY_INLINE] = !usePortal, _a), className);\n var transitionGroup = React.createElement(TransitionGroup, {\n appear: true,\n \"aria-live\": \"polite\",\n className: containerClasses,\n component: \"div\",\n onKeyDown: this.handleKeyDown,\n ref: this.refHandlers.container\n }, childrenWithTransitions);\n\n if (usePortal) {\n return React.createElement(Portal, {\n className: this.props.portalClassName,\n container: this.props.portalContainer\n }, transitionGroup);\n } else {\n return transitionGroup;\n }\n };\n\n Overlay.prototype.componentDidMount = function () {\n if (this.props.isOpen) {\n this.overlayWillOpen();\n }\n };\n\n Overlay.prototype.componentDidUpdate = function (prevProps) {\n if (prevProps.isOpen && !this.props.isOpen) {\n this.overlayWillClose();\n } else if (!prevProps.isOpen && this.props.isOpen) {\n this.overlayWillOpen();\n }\n };\n\n Overlay.prototype.componentWillUnmount = function () {\n this.overlayWillClose();\n };\n /**\n * @public for testing\n * @internal\n */\n\n\n Overlay.prototype.bringFocusInsideOverlay = function () {\n var _this = this; // always delay focus manipulation to just before repaint to prevent scroll jumping\n\n\n return this.requestAnimationFrame(function () {\n var _a; // container ref may be undefined between component mounting and Portal rendering\n // activeElement may be undefined in some rare cases in IE\n\n\n if (_this.containerElement == null || document.activeElement == null || !_this.props.isOpen) {\n return;\n }\n\n var isFocusOutsideModal = !_this.containerElement.contains(document.activeElement);\n\n if (isFocusOutsideModal) {\n (_a = _this.startFocusTrapElement) === null || _a === void 0 ? void 0 : _a.focus({\n preventScroll: true\n });\n _this.isAutoFocusing = false;\n }\n });\n };\n\n Overlay.prototype.maybeRenderBackdrop = function () {\n var _a = this.props,\n backdropClassName = _a.backdropClassName,\n backdropProps = _a.backdropProps,\n hasBackdrop = _a.hasBackdrop,\n isOpen = _a.isOpen,\n transitionDuration = _a.transitionDuration,\n transitionName = _a.transitionName;\n\n if (hasBackdrop && isOpen) {\n return React.createElement(CSSTransition, {\n classNames: transitionName,\n key: \"__backdrop\",\n timeout: transitionDuration,\n addEndListener: this.handleTransitionAddEnd\n }, React.createElement(\"div\", __assign({}, backdropProps, {\n className: classNames(Classes.OVERLAY_BACKDROP, backdropClassName, backdropProps === null || backdropProps === void 0 ? void 0 : backdropProps.className),\n onMouseDown: this.handleBackdropMouseDown\n })));\n } else {\n return null;\n }\n };\n\n Overlay.prototype.renderDummyElement = function (key, props) {\n var _a = this.props,\n transitionDuration = _a.transitionDuration,\n transitionName = _a.transitionName;\n return React.createElement(CSSTransition, {\n classNames: transitionName,\n key: key,\n addEndListener: this.handleTransitionAddEnd,\n timeout: transitionDuration,\n unmountOnExit: true\n }, React.createElement(\"div\", __assign({\n tabIndex: 0\n }, props)));\n };\n\n Overlay.prototype.getKeyboardFocusableElements = function () {\n var focusableElements = this.containerElement !== null ? Array.from( // Order may not be correct if children elements use tabindex values > 0.\n // Selectors derived from this SO question:\n // https://stackoverflow.com/questions/1599660/which-html-elements-can-receive-focus\n this.containerElement.querySelectorAll(['a[href]:not([tabindex=\"-1\"])', 'button:not([disabled]):not([tabindex=\"-1\"])', 'details:not([tabindex=\"-1\"])', 'input:not([disabled]):not([tabindex=\"-1\"])', 'select:not([disabled]):not([tabindex=\"-1\"])', 'textarea:not([disabled]):not([tabindex=\"-1\"])', '[tabindex]:not([tabindex=\"-1\"])'].join(\",\"))) : [];\n return focusableElements.filter(function (el) {\n return !el.classList.contains(Classes.OVERLAY_START_FOCUS_TRAP) && !el.classList.contains(Classes.OVERLAY_END_FOCUS_TRAP);\n });\n };\n\n Overlay.prototype.overlayWillClose = function () {\n document.removeEventListener(\"focus\", this.handleDocumentFocus,\n /* useCapture */\n true);\n document.removeEventListener(\"mousedown\", this.handleDocumentClick);\n var openStack = Overlay_1.openStack;\n var stackIndex = openStack.indexOf(this);\n\n if (stackIndex !== -1) {\n openStack.splice(stackIndex, 1);\n\n if (openStack.length > 0) {\n var lastOpenedOverlay = Overlay_1.getLastOpened(); // Only bring focus back to last overlay if it had autoFocus _and_ enforceFocus enabled.\n // If `autoFocus={false}`, it's likely that the overlay never received focus in the first place,\n // so it would be surprising for us to send it there. See https://github.com/palantir/blueprint/issues/4921\n\n if (lastOpenedOverlay.props.autoFocus && lastOpenedOverlay.props.enforceFocus) {\n lastOpenedOverlay.bringFocusInsideOverlay();\n document.addEventListener(\"focus\", lastOpenedOverlay.handleDocumentFocus,\n /* useCapture */\n true);\n }\n }\n\n if (openStack.filter(function (o) {\n return o.props.usePortal && o.props.hasBackdrop;\n }).length === 0) {\n document.body.classList.remove(Classes.OVERLAY_OPEN);\n }\n }\n };\n\n Overlay.prototype.overlayWillOpen = function () {\n var getLastOpened = Overlay_1.getLastOpened,\n openStack = Overlay_1.openStack;\n\n if (openStack.length > 0) {\n document.removeEventListener(\"focus\", getLastOpened().handleDocumentFocus,\n /* useCapture */\n true);\n }\n\n openStack.push(this);\n\n if (this.props.autoFocus) {\n this.isAutoFocusing = true;\n this.bringFocusInsideOverlay();\n }\n\n if (this.props.enforceFocus) {\n // Focus events do not bubble, but setting useCapture allows us to listen in and execute\n // our handler before all others\n document.addEventListener(\"focus\", this.handleDocumentFocus,\n /* useCapture */\n true);\n }\n\n if (this.props.canOutsideClickClose && !this.props.hasBackdrop) {\n document.addEventListener(\"mousedown\", this.handleDocumentClick);\n }\n\n if (this.props.hasBackdrop && this.props.usePortal) {\n // add a class to the body to prevent scrolling of content below the overlay\n document.body.classList.add(Classes.OVERLAY_OPEN);\n }\n\n this.lastActiveElementBeforeOpened = document.activeElement;\n };\n\n var Overlay_1;\n Overlay.displayName = \"\".concat(DISPLAYNAME_PREFIX, \".Overlay\");\n Overlay.defaultProps = {\n autoFocus: true,\n backdropProps: {},\n canEscapeKeyClose: true,\n canOutsideClickClose: true,\n enforceFocus: true,\n hasBackdrop: true,\n isOpen: false,\n lazy: true,\n shouldReturnFocusOnClose: true,\n transitionDuration: 300,\n transitionName: Classes.OVERLAY,\n usePortal: true\n };\n Overlay.openStack = [];\n\n Overlay.getLastOpened = function () {\n return Overlay_1.openStack[Overlay_1.openStack.length - 1];\n };\n\n Overlay = Overlay_1 = __decorate([polyfill], Overlay);\n return Overlay;\n}(AbstractPureComponent2);\n\nexport { Overlay };","var ResizeObserverBoxOptions;\n\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\n\nexport { ResizeObserverBoxOptions };","var resizeObservers = [];\nexport { resizeObservers };","var msg = 'ResizeObserver loop completed with undelivered notifications.';\n\nvar deliverResizeLoopError = function deliverResizeLoopError() {\n var event;\n\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n } else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n\n window.dispatchEvent(event);\n};\n\nexport { deliverResizeLoopError };","export var freeze = function freeze(obj) {\n return Object.freeze(obj);\n};","var trigger;\nvar callbacks = [];\n\nvar notify = function notify() {\n return callbacks.splice(0).forEach(function (cb) {\n return cb();\n });\n};\n\nvar queueMicroTask = function queueMicroTask(callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = {\n characterData: true\n };\n new MutationObserver(function () {\n return notify();\n }).observe(el_1, config);\n\n trigger = function trigger() {\n el_1.textContent = \"\" + (toggle_1 ? toggle_1-- : toggle_1++);\n };\n }\n\n callbacks.push(callback);\n trigger();\n};\n\nexport { queueMicroTask };","import { freeze } from './utils/freeze';\n\nvar ResizeObserverSize = function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n\n return ResizeObserverSize;\n}();\n\nexport { ResizeObserverSize };","import { freeze } from './utils/freeze';\n\nvar DOMRectReadOnly = function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this,\n x = _a.x,\n y = _a.y,\n top = _a.top,\n right = _a.right,\n bottom = _a.bottom,\n left = _a.left,\n width = _a.width,\n height = _a.height;\n\n return {\n x: x,\n y: y,\n top: top,\n right: right,\n bottom: bottom,\n left: left,\n width: width,\n height: height\n };\n };\n\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n\n return DOMRectReadOnly;\n}();\n\nexport { DOMRectReadOnly };","var isSVG = function isSVG(target) {\n return target instanceof SVGElement && 'getBBox' in target;\n};\n\nvar isHidden = function isHidden(target) {\n if (isSVG(target)) {\n var _a = target.getBBox(),\n width = _a.width,\n height = _a.height;\n\n return !width && !height;\n }\n\n var _b = target,\n offsetWidth = _b.offsetWidth,\n offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\n\nvar isElement = function isElement(obj) {\n var _a, _b;\n\n if (obj instanceof Element) {\n return true;\n }\n\n var scope = (_b = (_a = obj) === null || _a === void 0 ? void 0 : _a.ownerDocument) === null || _b === void 0 ? void 0 : _b.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\n\nvar isReplacedElement = function isReplacedElement(target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n\n return false;\n};\n\nexport { isSVG, isHidden, isElement, isReplacedElement };","export var global = typeof window !== 'undefined' ? window : {};","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = /msie|trident/i.test(global.navigator && global.navigator.userAgent);\n\nvar parseDimension = function parseDimension(pixel) {\n return parseFloat(pixel || '0');\n};\n\nvar size = function size(inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) {\n inlineSize = 0;\n }\n\n if (blockSize === void 0) {\n blockSize = 0;\n }\n\n if (switchSizes === void 0) {\n switchSizes = false;\n }\n\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\n\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\n\nvar calculateBoxSizes = function calculateBoxSizes(target, forceRecalculation) {\n if (forceRecalculation === void 0) {\n forceRecalculation = false;\n }\n\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\n\nvar calculateBoxSize = function calculateBoxSize(target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation),\n borderBoxSize = _a.borderBoxSize,\n contentBoxSize = _a.contentBoxSize,\n devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n\n default:\n return contentBoxSize;\n }\n};\n\nexport { calculateBoxSize, calculateBoxSizes };","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\n\nvar ResizeObserverEntry = function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n\n return ResizeObserverEntry;\n}();\n\nexport { ResizeObserverEntry };","import { isHidden } from '../utils/element';\n\nvar calculateDepthForNode = function calculateDepthForNode(node) {\n if (isHidden(node)) {\n return Infinity;\n }\n\n var depth = 0;\n var parent = node.parentNode;\n\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n\n return depth;\n};\n\nexport { calculateDepthForNode };","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\n\nvar broadcastActiveObservations = function broadcastActiveObservations() {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n\n return shallowestDepth;\n};\n\nexport { broadcastActiveObservations };","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\n\nvar gatherActiveObservationsAtDepth = function gatherActiveObservationsAtDepth(depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n } else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\n\nexport { gatherActiveObservationsAtDepth };","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\n\nvar process = function process() {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n\n return depth > 0;\n};\n\nexport { process };","import { resizeObservers } from '../utils/resizeObservers';\n\nvar hasActiveObservations = function hasActiveObservations() {\n return resizeObservers.some(function (ro) {\n return ro.activeTargets.length > 0;\n });\n};\n\nexport { hasActiveObservations };","import { resizeObservers } from '../utils/resizeObservers';\n\nvar hasSkippedObservations = function hasSkippedObservations() {\n return resizeObservers.some(function (ro) {\n return ro.skippedTargets.length > 0;\n });\n};\n\nexport { hasSkippedObservations };","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\n\nvar isWatching = function isWatching() {\n return !!watching;\n};\n\nvar CATCH_PERIOD = 250;\nvar observerConfig = {\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true\n};\nvar events = ['resize', 'load', 'transitionend', 'animationend', 'animationstart', 'animationiteration', 'keyup', 'keydown', 'mouseup', 'mousedown', 'mouseover', 'mouseout', 'blur', 'focus'];\n\nvar time = function time(timeout) {\n if (timeout === void 0) {\n timeout = 0;\n }\n\n return Date.now() + timeout;\n};\n\nvar scheduled = false;\n\nvar Scheduler = function () {\n function Scheduler() {\n var _this = this;\n\n this.stopped = true;\n\n this.listener = function () {\n return _this.schedule();\n };\n }\n\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n\n if (timeout === void 0) {\n timeout = CATCH_PERIOD;\n }\n\n if (scheduled) {\n return;\n }\n\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n\n try {\n elementsHaveResized = process();\n } finally {\n scheduled = false;\n timeout = until - time();\n\n if (!isWatching()) {\n return;\n }\n\n if (elementsHaveResized) {\n _this.run(1000);\n } else if (timeout > 0) {\n _this.run(timeout);\n } else {\n _this.start();\n }\n }\n });\n };\n\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n\n Scheduler.prototype.observe = function () {\n var _this = this;\n\n var cb = function cb() {\n return _this.observer && _this.observer.observe(document.body, observerConfig);\n };\n\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n\n Scheduler.prototype.start = function () {\n var _this = this;\n\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) {\n return global.addEventListener(name, _this.listener, true);\n });\n }\n };\n\n Scheduler.prototype.stop = function () {\n var _this = this;\n\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) {\n return global.removeEventListener(name, _this.listener, true);\n });\n this.stopped = true;\n }\n };\n\n return Scheduler;\n}();\n\nvar scheduler = new Scheduler();\n\nvar updateCount = function updateCount(n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\n\nexport { scheduler, updateCount };","import { queueMicroTask } from './queueMicroTask';\n\nvar queueResizeObserver = function queueResizeObserver(cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\n\nexport { queueResizeObserver };","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\n\nvar skipNotifyOnElement = function skipNotifyOnElement(target) {\n return !isSVG(target) && !isReplacedElement(target) && getComputedStyle(target).display === 'inline';\n};\n\nvar ResizeObservation = function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n\n if (this.lastReportedSize.inlineSize !== size.inlineSize || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n\n return false;\n };\n\n return ResizeObservation;\n}();\n\nexport { ResizeObservation };","var ResizeObserverDetail = function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n\n return ResizeObserverDetail;\n}();\n\nexport { ResizeObserverDetail };","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\n\nvar getObservationIndex = function getObservationIndex(observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n\n return -1;\n};\n\nvar ResizeObserverController = function () {\n function ResizeObserverController() {}\n\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) {\n return _this.unobserve(resizeObserver, ot.target);\n });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n\n return ResizeObserverController;\n}();\n\nexport { ResizeObserverController };","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\n\nvar ResizeObserver = function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n\n ResizeObserverController.connect(this, callback);\n }\n\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n\n ResizeObserverController.observe(this, target, options);\n };\n\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n\n ResizeObserverController.unobserve(this, target);\n };\n\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n\n return ResizeObserver;\n}();\n\nexport { ResizeObserver };","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __decorate, __extends } from \"tslib\";\nimport { ResizeObserver } from \"@juggle/resize-observer\";\nimport * as React from \"react\";\nimport { findDOMNode } from \"react-dom\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2 } from \"../../common\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\n/** `ResizeSensor` requires a single DOM element child and will error otherwise. */\n\nvar ResizeSensor =\n/** @class */\nfunction (_super) {\n __extends(ResizeSensor, _super);\n\n function ResizeSensor() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.element = null;\n _this.observer = new ResizeObserver(function (entries) {\n var _a, _b;\n\n return (_b = (_a = _this.props).onResize) === null || _b === void 0 ? void 0 : _b.call(_a, entries);\n });\n return _this;\n }\n\n ResizeSensor.prototype.render = function () {\n // pass-through render of single child\n return React.Children.only(this.props.children);\n };\n\n ResizeSensor.prototype.componentDidMount = function () {\n this.observeElement();\n };\n\n ResizeSensor.prototype.componentDidUpdate = function (prevProps) {\n this.observeElement(this.props.observeParents !== prevProps.observeParents);\n };\n\n ResizeSensor.prototype.componentWillUnmount = function () {\n this.observer.disconnect();\n };\n /**\n * Observe the DOM element, if defined and different from the currently\n * observed element. Pass `force` argument to skip element checks and always\n * re-observe.\n */\n\n\n ResizeSensor.prototype.observeElement = function (force) {\n if (force === void 0) {\n force = false;\n }\n\n var element = this.getElement();\n\n if (!(element instanceof Element)) {\n // stop everything if not defined\n this.observer.disconnect();\n return;\n }\n\n if (element === this.element && !force) {\n // quit if given same element -- nothing to update (unless forced)\n return;\n } else {\n // clear observer list if new element\n this.observer.disconnect(); // remember element reference for next time\n\n this.element = element;\n } // observer callback is invoked immediately when observing new elements\n\n\n this.observer.observe(element);\n\n if (this.props.observeParents) {\n var parent_1 = element.parentElement;\n\n while (parent_1 != null) {\n this.observer.observe(parent_1);\n parent_1 = parent_1.parentElement;\n }\n }\n };\n\n ResizeSensor.prototype.getElement = function () {\n try {\n // using findDOMNode for two reasons:\n // 1. cloning to insert a ref is unwieldy and not performant.\n // 2. ensure that we resolve to an actual DOM node (instead of any JSX ref instance).\n // HACKHACK: see https://github.com/palantir/blueprint/issues/3979\n\n /* eslint-disable-next-line react/no-find-dom-node */\n return findDOMNode(this);\n } catch (_a) {\n // swallow error if findDOMNode is run on unmounted component.\n return null;\n }\n };\n\n ResizeSensor.displayName = \"\".concat(DISPLAYNAME_PREFIX, \".ResizeSensor\");\n ResizeSensor = __decorate([polyfill], ResizeSensor);\n return ResizeSensor;\n}(AbstractPureComponent2);\n\nexport { ResizeSensor };","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __decorate, __extends, __rest } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2, Classes } from \"../../common\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\"; // eslint-disable-next-line import/no-cycle\n\nimport { Popover, PopoverInteractionKind } from \"../popover/popover\";\n/** @deprecated use { Tooltip2 } from \"@blueprintjs/popover2\" */\n\nvar Tooltip =\n/** @class */\nfunction (_super) {\n __extends(Tooltip, _super);\n\n function Tooltip() {\n var _this = _super !== null && _super.apply(this, arguments) || this; // eslint-disable-next-line deprecation/deprecation\n\n\n _this.popover = null;\n return _this;\n }\n\n Tooltip.prototype.render = function () {\n var _a;\n\n var _this = this;\n\n var _b = this.props,\n children = _b.children,\n intent = _b.intent,\n popoverClassName = _b.popoverClassName,\n restProps = __rest(_b, [\"children\", \"intent\", \"popoverClassName\"]);\n\n var classes = classNames(Classes.TOOLTIP, (_a = {}, _a[Classes.MINIMAL] = this.props.minimal, _a), Classes.intentClass(intent), popoverClassName);\n return (\n /* eslint-disable deprecation/deprecation */\n React.createElement(Popover, __assign({\n interactionKind: PopoverInteractionKind.HOVER_TARGET_ONLY,\n modifiers: {\n arrow: {\n enabled: !this.props.minimal\n }\n }\n }, restProps, {\n autoFocus: false,\n canEscapeKeyClose: false,\n enforceFocus: false,\n lazy: true,\n popoverClassName: classes,\n portalContainer: this.props.portalContainer,\n ref: function ref(_ref) {\n return _this.popover = _ref;\n }\n }), children)\n );\n };\n\n Tooltip.prototype.reposition = function () {\n if (this.popover != null) {\n this.popover.reposition();\n }\n };\n\n Tooltip.displayName = \"\".concat(DISPLAYNAME_PREFIX, \".Tooltip\");\n Tooltip.defaultProps = {\n hoverCloseDelay: 0,\n hoverOpenDelay: 100,\n minimal: false,\n transitionDuration: 100\n };\n Tooltip = __decorate([polyfill], Tooltip);\n return Tooltip;\n}(AbstractPureComponent2);\n\nexport { Tooltip };","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Popper placement utils\n// ======================\n\n/** Converts a full placement to one of the four positions by stripping text after the `-`. */\nexport function getPosition(placement) {\n return placement.split(\"-\")[0];\n}\n/** Returns true if position is left or right. */\n\nexport function isVerticalPosition(side) {\n return [\"left\", \"right\"].indexOf(side) !== -1;\n}\n/** Returns the opposite position. */\n\nexport function getOppositePosition(side) {\n switch (side) {\n case \"top\":\n return \"bottom\";\n\n case \"left\":\n return \"right\";\n\n case \"bottom\":\n return \"top\";\n\n default:\n return \"left\";\n }\n}\n/** Returns the CSS alignment keyword corresponding to given placement. */\n\nexport function getAlignment(placement) {\n var align = placement.split(\"-\")[1];\n\n switch (align) {\n case \"start\":\n return \"left\";\n\n case \"end\":\n return \"right\";\n\n default:\n return \"center\";\n }\n} // Popper modifiers\n// ================\n\n/** Modifier helper function to compute popper transform-origin based on arrow position */\n\nexport function getTransformOrigin(data) {\n var position = getPosition(data.placement);\n\n if (data.arrowElement == null) {\n return isVerticalPosition(position) ? \"\".concat(getOppositePosition(position), \" \").concat(getAlignment(position)) : \"\".concat(getAlignment(position), \" \").concat(getOppositePosition(position));\n } else {\n var arrowSizeShift = data.arrowElement.clientHeight / 2;\n var arrow = data.offsets.arrow; // can use keyword for dimension without the arrow, to ease computation burden.\n // move origin by half arrow's height to keep it centered.\n\n return isVerticalPosition(position) ? \"\".concat(getOppositePosition(position), \" \").concat(arrow.top + arrowSizeShift, \"px\") : \"\".concat(arrow.left + arrowSizeShift, \"px \").concat(getOppositePosition(position));\n }\n} // additional space between arrow and edge of target\n\nvar ARROW_SPACING = 4;\n/** Popper modifier that offsets popper and arrow so arrow points out of the correct side */\n\nexport var arrowOffsetModifier = function arrowOffsetModifier(data) {\n if (data.arrowElement == null) {\n return data;\n } // our arrows have equal width and height\n\n\n var arrowSize = data.arrowElement.clientWidth; // this logic borrowed from original Popper arrow modifier itself\n\n var position = getPosition(data.placement);\n var isVertical = isVerticalPosition(position);\n var len = isVertical ? \"width\" : \"height\";\n var offsetSide = isVertical ? \"left\" : \"top\";\n var arrowOffsetSize = Math.round(arrowSize / 2 / Math.sqrt(2)); // offset popover by arrow size, offset arrow in the opposite direction\n\n if (position === \"top\" || position === \"left\") {\n // the \"up & back\" directions require negative popper offsets\n data.offsets.popper[offsetSide] -= arrowOffsetSize + ARROW_SPACING; // can only use left/top on arrow so gotta get clever with 100% + X\n\n data.offsets.arrow[offsetSide] = data.offsets.popper[len] - arrowSize + arrowOffsetSize;\n } else {\n data.offsets.popper[offsetSide] += arrowOffsetSize + ARROW_SPACING;\n data.offsets.arrow[offsetSide] = -arrowOffsetSize;\n }\n\n return data;\n};","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport * as React from \"react\";\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { getPosition } from \"./popperUtils\"; // these paths come from the Core Kit Sketch file\n// https://github.com/palantir/blueprint/blob/develop/resources/sketch/Core%20Kit.sketch\n\nvar SVG_SHADOW_PATH = \"M8.11 6.302c1.015-.936 1.887-2.922 1.887-4.297v26c0-1.378\" + \"-.868-3.357-1.888-4.297L.925 17.09c-1.237-1.14-1.233-3.034 0-4.17L8.11 6.302z\";\nvar SVG_ARROW_PATH = \"M8.787 7.036c1.22-1.125 2.21-3.376 2.21-5.03V0v30-2.005\" + \"c0-1.654-.983-3.9-2.21-5.03l-7.183-6.616c-.81-.746-.802-1.96 0-2.7l7.183-6.614z\";\n/** Modifier helper function to compute arrow rotate() transform */\n\nfunction getArrowAngle(placement) {\n if (placement == null) {\n return 0;\n } // can only be top/left/bottom/right - auto is resolved internally\n\n\n switch (getPosition(placement)) {\n case \"top\":\n return -90;\n\n case \"left\":\n return 180;\n\n case \"bottom\":\n return 90;\n\n default:\n return 0;\n }\n}\n\nexport var PopoverArrow = function PopoverArrow(_a) {\n var _b = _a.arrowProps,\n ref = _b.ref,\n style = _b.style,\n placement = _a.placement;\n return React.createElement(\"div\", {\n className: Classes.POPOVER_ARROW,\n ref: ref,\n style: style.left == null || isNaN(+style.left) ? {} : style\n }, React.createElement(\"svg\", {\n viewBox: \"0 0 30 30\",\n style: {\n transform: \"rotate(\".concat(getArrowAngle(placement), \"deg)\")\n }\n }, React.createElement(\"path\", {\n className: Classes.POPOVER_ARROW + \"-border\",\n d: SVG_SHADOW_PATH\n }), React.createElement(\"path\", {\n className: Classes.POPOVER_ARROW + \"-fill\",\n d: SVG_ARROW_PATH\n })));\n};\nPopoverArrow.displayName = \"\".concat(DISPLAYNAME_PREFIX, \".PopoverArrow\");","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Position } from \"../../common/position\";\n/**\n * Convert a position to a placement.\n *\n * @param position the position to convert\n */\n\nexport function positionToPlacement(position) {\n /* istanbul ignore next */\n switch (position) {\n case Position.TOP_LEFT:\n return \"top-start\";\n\n case Position.TOP:\n return \"top\";\n\n case Position.TOP_RIGHT:\n return \"top-end\";\n\n case Position.RIGHT_TOP:\n return \"right-start\";\n\n case Position.RIGHT:\n return \"right\";\n\n case Position.RIGHT_BOTTOM:\n return \"right-end\";\n\n case Position.BOTTOM_RIGHT:\n return \"bottom-end\";\n\n case Position.BOTTOM:\n return \"bottom\";\n\n case Position.BOTTOM_LEFT:\n return \"bottom-start\";\n\n case Position.LEFT_BOTTOM:\n return \"left-end\";\n\n case Position.LEFT:\n return \"left\";\n\n case Position.LEFT_TOP:\n return \"left-start\";\n\n case \"auto\":\n case \"auto-start\":\n case \"auto-end\":\n // Return the string unchanged.\n return position;\n\n default:\n return assertNever(position);\n }\n}\n/* istanbul ignore next */\n\nfunction assertNever(x) {\n throw new Error(\"Unexpected position: \" + x);\n}","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __decorate, __extends } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { Manager, Popper, Reference } from \"react-popper\";\nimport { AbstractPureComponent2, Classes, refHandler, setRef } from \"../../common\";\nimport * as Errors from \"../../common/errors\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport * as Utils from \"../../common/utils\";\nimport { Overlay } from \"../overlay/overlay\";\nimport { ResizeSensor } from \"../resize-sensor/resizeSensor\"; // eslint-disable-next-line import/no-cycle\n\nimport { Tooltip } from \"../tooltip/tooltip\";\nimport { PopoverArrow } from \"./popoverArrow\";\nimport { positionToPlacement } from \"./popoverMigrationUtils\";\nimport { arrowOffsetModifier, getTransformOrigin } from \"./popperUtils\";\nexport var PopoverInteractionKind = {\n CLICK: \"click\",\n CLICK_TARGET_ONLY: \"click-target\",\n HOVER: \"hover\",\n HOVER_TARGET_ONLY: \"hover-target\"\n};\n/** @deprecated use { Popover2 } from \"@blueprintjs/popover2\" */\n\nvar Popover =\n/** @class */\nfunction (_super) {\n __extends(Popover, _super);\n\n function Popover() {\n var _this = _super !== null && _super.apply(this, arguments) || this; // eslint-disable-next-line deprecation/deprecation\n\n\n _this.popoverRef = Utils.createReactRef();\n /**\n * DOM element that contains the popover.\n * When `usePortal={true}`, this element will be portaled outside the usual DOM flow,\n * so this reference can be very useful for testing.\n */\n\n _this.popoverElement = null;\n /** DOM element that contains the target. */\n\n _this.targetElement = null;\n _this.state = {\n hasDarkParent: false,\n isOpen: _this.getIsOpen(_this.props),\n transformOrigin: \"\"\n }; // a flag that lets us detect mouse movement between the target and popover,\n // now that mouseleave is triggered when you cross the gap between the two.\n\n _this.isMouseInTargetOrPopover = false; // a flag that indicates whether the target previously lost focus to another\n // element on the same page.\n\n _this.lostFocusOnSamePage = true;\n _this.handlePopoverRef = refHandler(_this, \"popoverElement\", _this.props.popoverRef);\n\n _this.handleTargetRef = function (ref) {\n return _this.targetElement = ref;\n };\n /**\n * Instance method to instruct the `Popover` to recompute its position.\n *\n * This method should only be used if you are updating the target in a way\n * that does not cause it to re-render, such as changing its _position_\n * without changing its _size_ (since `Popover` already repositions when it\n * detects a resize).\n */\n\n\n _this.reposition = function () {\n var _a;\n\n return (_a = _this.popperScheduleUpdate) === null || _a === void 0 ? void 0 : _a.call(_this);\n };\n\n _this.renderPopover = function (popperProps) {\n var _a;\n\n var _b = _this.props,\n interactionKind = _b.interactionKind,\n usePortal = _b.usePortal;\n var transformOrigin = _this.state.transformOrigin; // Need to update our reference to this on every render as it will change.\n\n _this.popperScheduleUpdate = popperProps.scheduleUpdate;\n var popoverHandlers = {\n // always check popover clicks for dismiss class\n onClick: _this.handlePopoverClick\n };\n\n if (interactionKind === PopoverInteractionKind.HOVER || !usePortal && interactionKind === PopoverInteractionKind.HOVER_TARGET_ONLY) {\n popoverHandlers.onMouseEnter = _this.handleMouseEnter;\n popoverHandlers.onMouseLeave = _this.handleMouseLeave;\n }\n\n var popoverClasses = classNames(Classes.POPOVER, (_a = {}, _a[Classes.DARK] = _this.props.inheritDarkTheme && _this.state.hasDarkParent, _a[Classes.MINIMAL] = _this.props.minimal, _a[Classes.POPOVER_CAPTURING_DISMISS] = _this.props.captureDismiss, _a[Classes.POPOVER_OUT_OF_BOUNDARIES] = popperProps.outOfBoundaries === true, _a), _this.props.popoverClassName);\n return React.createElement(\"div\", {\n className: Classes.TRANSITION_CONTAINER,\n ref: popperProps.ref,\n style: popperProps.style\n }, React.createElement(ResizeSensor, {\n onResize: _this.reposition\n }, React.createElement(\"div\", __assign({\n className: popoverClasses,\n style: {\n transformOrigin: transformOrigin\n },\n ref: _this.popoverRef\n }, popoverHandlers), _this.isArrowEnabled() && React.createElement(PopoverArrow, {\n arrowProps: popperProps.arrowProps,\n placement: popperProps.placement\n }), React.createElement(\"div\", {\n className: Classes.POPOVER_CONTENT\n }, _this.understandChildren().content))));\n };\n\n _this.renderTarget = function (referenceProps) {\n var _a, _b;\n\n var _c = _this.props,\n fill = _c.fill,\n openOnTargetFocus = _c.openOnTargetFocus,\n targetClassName = _c.targetClassName,\n _d = _c.targetProps,\n targetProps = _d === void 0 ? {} : _d;\n var isOpen = _this.state.isOpen;\n\n var isControlled = _this.isControlled();\n\n var isHoverInteractionKind = _this.isHoverInteractionKind();\n\n var targetTagName = _this.props.targetTagName;\n\n if (fill) {\n targetTagName = \"div\";\n }\n\n var finalTargetProps = isHoverInteractionKind ? {\n // HOVER handlers\n onBlur: _this.handleTargetBlur,\n onFocus: _this.handleTargetFocus,\n onMouseEnter: _this.handleMouseEnter,\n onMouseLeave: _this.handleMouseLeave\n } : {\n // CLICK needs only one handler\n onClick: _this.handleTargetClick\n };\n finalTargetProps[\"aria-haspopup\"] = \"true\";\n finalTargetProps.className = classNames(Classes.POPOVER_TARGET, (_a = {}, _a[Classes.POPOVER_OPEN] = isOpen, _a), targetProps.className, targetClassName);\n finalTargetProps.ref = referenceProps.ref;\n var rawTarget = Utils.ensureElement(_this.understandChildren().target);\n\n if (rawTarget === undefined) {\n return null;\n }\n\n var rawTabIndex = rawTarget.props.tabIndex; // ensure target is focusable if relevant prop enabled\n\n var tabIndex = rawTabIndex == null && openOnTargetFocus && isHoverInteractionKind ? 0 : rawTabIndex;\n var clonedTarget = React.cloneElement(rawTarget, {\n className: classNames(rawTarget.props.className, (_b = {}, // this class is mainly useful for button targets; we should only apply it for uncontrolled popovers\n // when they are opened by a user interaction\n _b[Classes.ACTIVE] = isOpen && !isControlled && !isHoverInteractionKind, _b)),\n // force disable single Tooltip child when popover is open (BLUEPRINT-552)\n\n /* eslint-disable-next-line deprecation/deprecation */\n disabled: isOpen && Utils.isElementOfType(rawTarget, Tooltip) ? true : rawTarget.props.disabled,\n tabIndex: tabIndex\n });\n var target = React.createElement(targetTagName, __assign(__assign({}, targetProps), finalTargetProps), clonedTarget);\n return React.createElement(ResizeSensor, {\n onResize: _this.reposition\n }, target);\n };\n\n _this.isControlled = function () {\n return _this.props.isOpen !== undefined;\n };\n\n _this.handleTargetFocus = function (e) {\n var _a, _b;\n\n if (_this.props.openOnTargetFocus && _this.isHoverInteractionKind()) {\n if (e.relatedTarget == null && !_this.lostFocusOnSamePage) {\n // ignore this focus event -- the target was already focused but the page itself\n // lost focus (e.g. due to switching tabs).\n return;\n }\n\n _this.handleMouseEnter(e);\n }\n\n (_b = (_a = _this.props.targetProps) === null || _a === void 0 ? void 0 : _a.onFocus) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n };\n\n _this.handleTargetBlur = function (e) {\n var _a, _b;\n\n if (_this.props.openOnTargetFocus && _this.isHoverInteractionKind()) {\n // if the next element to receive focus is within the popover, we'll want to leave the\n // popover open. e.relatedTarget ought to tell us the next element to receive focus, but if the user just\n // clicked on an element which is not focusable (either by default or with a tabIndex attribute),\n // it won't be set. So, we filter those out here and assume that a click handler somewhere else will\n // close the popover if necessary.\n if (e.relatedTarget != null && !_this.isElementInPopover(e.relatedTarget)) {\n _this.handleMouseLeave(e);\n }\n }\n\n _this.lostFocusOnSamePage = e.relatedTarget != null;\n (_b = (_a = _this.props.targetProps) === null || _a === void 0 ? void 0 : _a.onBlur) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n };\n\n _this.handleMouseEnter = function (e) {\n var _a, _b;\n\n _this.isMouseInTargetOrPopover = true; // if we're entering the popover, and the mode is set to be HOVER_TARGET_ONLY, we want to manually\n // trigger the mouse leave event, as hovering over the popover shouldn't count.\n\n if (!_this.props.usePortal && _this.isElementInPopover(e.target) && _this.props.interactionKind === PopoverInteractionKind.HOVER_TARGET_ONLY && !_this.props.openOnTargetFocus) {\n _this.handleMouseLeave(e);\n } else if (!_this.props.disabled) {\n // only begin opening popover when it is enabled\n _this.setOpenState(true, e, _this.props.hoverOpenDelay);\n }\n\n (_b = (_a = _this.props.targetProps) === null || _a === void 0 ? void 0 : _a.onMouseEnter) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n };\n\n _this.handleMouseLeave = function (e) {\n var _a, _b;\n\n _this.isMouseInTargetOrPopover = false; // wait until the event queue is flushed, because we want to leave the\n // popover open if the mouse entered the popover immediately after\n // leaving the target (or vice versa).\n\n _this.setTimeout(function () {\n if (_this.isMouseInTargetOrPopover) {\n return;\n } // user-configurable closing delay is helpful when moving mouse from target to popover\n\n\n _this.setOpenState(false, e, _this.props.hoverCloseDelay);\n });\n\n (_b = (_a = _this.props.targetProps) === null || _a === void 0 ? void 0 : _a.onMouseLeave) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n };\n\n _this.handlePopoverClick = function (e) {\n var eventTarget = e.target;\n var eventPopover = eventTarget.closest(\".\".concat(Classes.POPOVER));\n var isEventFromSelf = eventPopover === _this.popoverRef.current;\n var isEventPopoverCapturing = eventPopover === null || eventPopover === void 0 ? void 0 : eventPopover.classList.contains(Classes.POPOVER_CAPTURING_DISMISS); // an OVERRIDE inside a DISMISS does not dismiss, and a DISMISS inside an OVERRIDE will dismiss.\n\n var dismissElement = eventTarget.closest(\".\".concat(Classes.POPOVER_DISMISS, \", .\").concat(Classes.POPOVER_DISMISS_OVERRIDE));\n var shouldDismiss = dismissElement != null && dismissElement.classList.contains(Classes.POPOVER_DISMISS);\n var isDisabled = eventTarget.closest(\":disabled, .\".concat(Classes.DISABLED)) != null;\n\n if (shouldDismiss && !isDisabled && (!isEventPopoverCapturing || isEventFromSelf)) {\n _this.setOpenState(false, e);\n }\n };\n\n _this.handleOverlayClose = function (e) {\n if (_this.targetElement === null || e === undefined) {\n return;\n }\n\n var eventTarget = e.target; // if click was in target, target event listener will handle things, so don't close\n\n if (!Utils.elementIsOrContains(_this.targetElement, eventTarget) || e.nativeEvent instanceof KeyboardEvent) {\n _this.setOpenState(false, e);\n }\n };\n\n _this.handleTargetClick = function (e) {\n var _a, _b; // ensure click did not originate from within inline popover before closing\n\n\n if (!_this.props.disabled && !_this.isElementInPopover(e.target)) {\n if (_this.props.isOpen == null) {\n _this.setState(function (prevState) {\n return {\n isOpen: !prevState.isOpen\n };\n });\n } else {\n _this.setOpenState(!_this.props.isOpen, e);\n }\n }\n\n (_b = (_a = _this.props.targetProps) === null || _a === void 0 ? void 0 : _a.onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n };\n /** Popper modifier that updates React state (for style properties) based on latest data. */\n\n\n _this.updatePopoverState = function (data) {\n // always set string; let shouldComponentUpdate determine if update is necessary\n _this.setState({\n transformOrigin: getTransformOrigin(data)\n });\n\n return data;\n };\n\n return _this;\n }\n\n Popover.prototype.render = function () {\n var _a;\n\n var _b; // rename wrapper tag to begin with uppercase letter so it's recognized\n // as JSX component instead of intrinsic element. but because of its\n // type, tsc actually recognizes that it is _any_ intrinsic element, so\n // it can typecheck the HTML props!!\n\n\n var _c = this.props,\n className = _c.className,\n disabled = _c.disabled,\n fill = _c.fill,\n placement = _c.placement,\n _d = _c.position,\n position = _d === void 0 ? \"auto\" : _d,\n shouldReturnFocusOnClose = _c.shouldReturnFocusOnClose;\n var isOpen = this.state.isOpen;\n var wrapperTagName = this.props.wrapperTagName;\n\n if (fill) {\n wrapperTagName = \"div\";\n }\n\n var isContentEmpty = Utils.ensureElement(this.understandChildren().content) == null; // need to do this check in render(), because `isOpen` is derived from\n // state, and state can't necessarily be accessed in validateProps.\n\n if (isContentEmpty && !disabled && isOpen !== false && !Utils.isNodeEnv(\"production\")) {\n console.warn(Errors.POPOVER_WARN_EMPTY_CONTENT);\n }\n\n var wrapperClasses = classNames(Classes.POPOVER_WRAPPER, className, (_a = {}, _a[Classes.FILL] = fill, _a));\n var defaultAutoFocus = this.isHoverInteractionKind() ? false : undefined;\n var wrapper = React.createElement(wrapperTagName, {\n className: wrapperClasses\n }, React.createElement(Reference, {\n innerRef: this.handleTargetRef\n }, this.renderTarget), React.createElement(Overlay, {\n autoFocus: (_b = this.props.autoFocus) !== null && _b !== void 0 ? _b : defaultAutoFocus,\n backdropClassName: Classes.POPOVER_BACKDROP,\n backdropProps: this.props.backdropProps,\n canEscapeKeyClose: this.props.canEscapeKeyClose,\n canOutsideClickClose: this.props.interactionKind === PopoverInteractionKind.CLICK,\n className: this.props.portalClassName,\n enforceFocus: this.props.enforceFocus,\n hasBackdrop: this.props.hasBackdrop,\n isOpen: isOpen && !isContentEmpty,\n onClose: this.handleOverlayClose,\n onClosed: this.props.onClosed,\n onClosing: this.props.onClosing,\n onOpened: this.props.onOpened,\n onOpening: this.props.onOpening,\n transitionDuration: this.props.transitionDuration,\n transitionName: Classes.POPOVER,\n usePortal: this.props.usePortal,\n portalContainer: this.props.portalContainer,\n // if hover interaciton, it doesn't make sense to take over focus control\n shouldReturnFocusOnClose: this.isHoverInteractionKind() ? false : shouldReturnFocusOnClose\n }, React.createElement(Popper, {\n innerRef: this.handlePopoverRef,\n placement: placement !== null && placement !== void 0 ? placement : positionToPlacement(position),\n modifiers: this.getPopperModifiers()\n }, this.renderPopover)));\n return React.createElement(Manager, null, wrapper);\n };\n\n Popover.prototype.componentDidMount = function () {\n this.updateDarkParent();\n };\n\n Popover.prototype.componentDidUpdate = function (prevProps, prevState) {\n _super.prototype.componentDidUpdate.call(this, prevProps, prevState);\n\n if (prevProps.popoverRef !== this.props.popoverRef) {\n setRef(prevProps.popoverRef, null);\n this.handlePopoverRef = refHandler(this, \"popoverElement\", this.props.popoverRef);\n setRef(this.props.popoverRef, this.popoverElement);\n }\n\n this.updateDarkParent();\n var nextIsOpen = this.getIsOpen(this.props);\n\n if (this.props.isOpen != null && nextIsOpen !== this.state.isOpen) {\n this.setOpenState(nextIsOpen); // tricky: setOpenState calls setState only if this.props.isOpen is\n // not controlled, so we need to invoke setState manually here.\n\n this.setState({\n isOpen: nextIsOpen\n });\n } else if (this.props.disabled && this.state.isOpen && this.props.isOpen == null) {\n // special case: close an uncontrolled popover when disabled is set to true\n this.setOpenState(false);\n }\n };\n\n Popover.prototype.validateProps = function (props) {\n if (props.isOpen == null && props.onInteraction != null) {\n console.warn(Errors.POPOVER_WARN_UNCONTROLLED_ONINTERACTION);\n }\n\n if (props.hasBackdrop && !props.usePortal) {\n console.warn(Errors.POPOVER_WARN_HAS_BACKDROP_INLINE);\n }\n\n if (props.hasBackdrop && props.interactionKind !== PopoverInteractionKind.CLICK) {\n console.error(Errors.POPOVER_HAS_BACKDROP_INTERACTION);\n }\n\n if (props.placement !== undefined && props.position !== undefined) {\n console.warn(Errors.POPOVER_WARN_PLACEMENT_AND_POSITION_MUTEX);\n }\n\n var childrenCount = React.Children.count(props.children);\n var hasContentProp = props.content !== undefined;\n var hasTargetProp = props.target !== undefined;\n\n if (childrenCount === 0 && !hasTargetProp) {\n console.error(Errors.POPOVER_REQUIRES_TARGET);\n }\n\n if (childrenCount > 2) {\n console.warn(Errors.POPOVER_WARN_TOO_MANY_CHILDREN);\n }\n\n if (childrenCount > 0 && hasTargetProp) {\n console.warn(Errors.POPOVER_WARN_DOUBLE_TARGET);\n }\n\n if (childrenCount === 2 && hasContentProp) {\n console.warn(Errors.POPOVER_WARN_DOUBLE_CONTENT);\n }\n };\n\n Popover.prototype.updateDarkParent = function () {\n if (this.props.usePortal && this.state.isOpen) {\n var hasDarkParent = this.targetElement != null && this.targetElement.closest(\".\".concat(Classes.DARK)) != null;\n this.setState({\n hasDarkParent: hasDarkParent\n });\n }\n }; // content and target can be specified as props or as children. this method\n // normalizes the two approaches, preferring child over prop.\n\n\n Popover.prototype.understandChildren = function () {\n var _a = this.props,\n children = _a.children,\n contentProp = _a.content,\n targetProp = _a.target; // #validateProps asserts that 1 <= children.length <= 2 so content is optional\n\n var _b = React.Children.toArray(children),\n targetChild = _b[0],\n contentChild = _b[1];\n\n return {\n content: contentChild == null ? contentProp : contentChild,\n target: targetChild == null ? targetProp : targetChild\n };\n };\n\n Popover.prototype.getIsOpen = function (props) {\n // disabled popovers should never be allowed to open.\n if (props.disabled) {\n return false;\n } else if (props.isOpen != null) {\n return props.isOpen;\n } else {\n return props.defaultIsOpen;\n }\n };\n\n Popover.prototype.getPopperModifiers = function () {\n var _a = this.props,\n boundary = _a.boundary,\n modifiers = _a.modifiers;\n var _b = modifiers,\n _c = _b.flip,\n flip = _c === void 0 ? {} : _c,\n _d = _b.preventOverflow,\n preventOverflow = _d === void 0 ? {} : _d;\n return __assign(__assign({}, modifiers), {\n arrowOffset: {\n enabled: this.isArrowEnabled(),\n fn: arrowOffsetModifier,\n order: 510\n },\n flip: __assign({\n boundariesElement: boundary\n }, flip),\n preventOverflow: __assign({\n boundariesElement: boundary\n }, preventOverflow),\n updatePopoverState: {\n enabled: true,\n fn: this.updatePopoverState,\n order: 900\n }\n });\n }; // a wrapper around setState({isOpen}) that will call props.onInteraction instead when in controlled mode.\n // starts a timeout to delay changing the state if a non-zero duration is provided.\n\n\n Popover.prototype.setOpenState = function (isOpen, e, timeout) {\n var _this = this;\n\n var _a, _b, _c, _d, _e; // cancel any existing timeout because we have new state\n\n\n (_a = this.cancelOpenTimeout) === null || _a === void 0 ? void 0 : _a.call(this);\n\n if (timeout !== undefined && timeout > 0) {\n this.cancelOpenTimeout = this.setTimeout(function () {\n return _this.setOpenState(isOpen, e);\n }, timeout);\n } else {\n if (this.props.isOpen == null) {\n this.setState({\n isOpen: isOpen\n });\n } else {\n (_c = (_b = this.props).onInteraction) === null || _c === void 0 ? void 0 : _c.call(_b, isOpen, e);\n }\n\n if (!isOpen) {\n // non-null assertion because the only time `e` is undefined is when in controlled mode\n // or the rare special case in uncontrolled mode when the `disabled` flag is toggled true\n (_e = (_d = this.props).onClose) === null || _e === void 0 ? void 0 : _e.call(_d, e);\n }\n }\n };\n\n Popover.prototype.isArrowEnabled = function () {\n var _a = this.props,\n minimal = _a.minimal,\n modifiers = _a.modifiers; // omitting `arrow` from `modifiers` uses Popper default, which does show an arrow.\n\n return !minimal && ((modifiers === null || modifiers === void 0 ? void 0 : modifiers.arrow) == null || modifiers.arrow.enabled);\n };\n\n Popover.prototype.isElementInPopover = function (element) {\n var _a;\n\n return (_a = this.popoverElement) === null || _a === void 0 ? void 0 : _a.contains(element);\n };\n\n Popover.prototype.isHoverInteractionKind = function () {\n return this.props.interactionKind === PopoverInteractionKind.HOVER || this.props.interactionKind === PopoverInteractionKind.HOVER_TARGET_ONLY;\n };\n\n Popover.displayName = \"\".concat(DISPLAYNAME_PREFIX, \".Popover\");\n Popover.defaultProps = {\n boundary: \"scrollParent\",\n captureDismiss: false,\n defaultIsOpen: false,\n disabled: false,\n fill: false,\n hasBackdrop: false,\n hoverCloseDelay: 300,\n hoverOpenDelay: 150,\n inheritDarkTheme: true,\n interactionKind: PopoverInteractionKind.CLICK,\n minimal: false,\n modifiers: {},\n openOnTargetFocus: true,\n shouldReturnFocusOnClose: false,\n // N.B. we don't set a default for `placement` or `position` here because that would trigger\n // a warning in validateProps if the other prop is specified by a user of this component\n targetTagName: \"span\",\n transitionDuration: 300,\n usePortal: true,\n wrapperTagName: \"span\"\n };\n Popover = __decorate([polyfill], Popover);\n return Popover;\n}(AbstractPureComponent2);\n\nexport { Popover };","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __decorate, __extends, __rest } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2, Classes, Position } from \"../../common\";\nimport { Popover } from \"../popover/popover\";\nvar POPPER_MODIFIERS = {\n preventOverflow: {\n boundariesElement: \"viewport\"\n }\n};\nvar TRANSITION_DURATION = 100;\n/* istanbul ignore next */\n\n/** @deprecated use ContextMenu2 */\n\nvar ContextMenu =\n/** @class */\nfunction (_super) {\n __extends(ContextMenu, _super);\n\n function ContextMenu() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {\n isDarkTheme: false,\n isOpen: false\n };\n\n _this.cancelContextMenu = function (e) {\n return e.preventDefault();\n };\n\n _this.handleBackdropContextMenu = function (e) {\n // React function to remove from the event pool, useful when using a event within a callback\n e.persist();\n e.preventDefault(); // wait for backdrop to disappear so we can find the \"real\" element at event coordinates.\n // timeout duration is equivalent to transition duration so we know it's animated out.\n\n _this.setTimeout(function () {\n // retrigger context menu event at the element beneath the backdrop.\n // if it has a `contextmenu` event handler then it'll be invoked.\n // if it doesn't, no native menu will show (at least on OSX) :(\n var newTarget = document.elementFromPoint(e.clientX, e.clientY);\n\n var view = e.view,\n newEventInit = __rest(e, [\"view\"]);\n\n newTarget === null || newTarget === void 0 ? void 0 : newTarget.dispatchEvent(new MouseEvent(\"contextmenu\", newEventInit));\n }, TRANSITION_DURATION);\n };\n\n _this.handlePopoverInteraction = function (nextOpenState) {\n if (!nextOpenState) {\n // delay the actual hiding till the event queue clears\n // to avoid flicker of opening twice\n _this.requestAnimationFrame(function () {\n return _this.hide();\n });\n }\n };\n\n return _this;\n }\n\n ContextMenu.prototype.render = function () {\n var _a; // prevent right-clicking in a context menu\n\n\n var content = React.createElement(\"div\", {\n onContextMenu: this.cancelContextMenu\n }, this.state.menu);\n var popoverClassName = classNames((_a = {}, _a[Classes.DARK] = this.state.isDarkTheme, _a)); // HACKHACK: workaround until we have access to Popper#scheduleUpdate().\n // https://github.com/palantir/blueprint/issues/692\n // Generate key based on offset so a new Popover instance is created\n // when offset changes, to force recomputing position.\n\n var key = this.state.offset === undefined ? \"\" : \"\".concat(this.state.offset.left, \"x\").concat(this.state.offset.top); // wrap the popover in a positioned div to make sure it is properly\n // offset on the screen.\n\n /* eslint-disable deprecation/deprecation */\n\n return React.createElement(\"div\", {\n className: Classes.CONTEXT_MENU_POPOVER_TARGET,\n style: this.state.offset\n }, React.createElement(Popover, __assign({}, this.props, {\n backdropProps: {\n onContextMenu: this.handleBackdropContextMenu\n },\n content: content,\n enforceFocus: false,\n key: key,\n hasBackdrop: true,\n isOpen: this.state.isOpen,\n minimal: true,\n modifiers: POPPER_MODIFIERS,\n onInteraction: this.handlePopoverInteraction,\n position: Position.RIGHT_TOP,\n popoverClassName: popoverClassName,\n target: React.createElement(\"div\", null),\n transitionDuration: TRANSITION_DURATION\n })));\n /* eslint-enable deprecation/deprecation */\n };\n\n ContextMenu.prototype.show = function (menu, offset, onClose, isDarkTheme) {\n if (isDarkTheme === void 0) {\n isDarkTheme = false;\n }\n\n this.setState({\n isOpen: true,\n menu: menu,\n offset: offset,\n onClose: onClose,\n isDarkTheme: isDarkTheme\n });\n };\n\n ContextMenu.prototype.hide = function () {\n var _a, _b;\n\n (_b = (_a = this.state).onClose) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.setState({\n isOpen: false,\n onClose: undefined\n });\n };\n\n ContextMenu = __decorate([polyfill], ContextMenu);\n return ContextMenu;\n}(AbstractPureComponent2);\n\nvar contextMenuElement; // eslint-disable-next-line deprecation/deprecation\n\nvar contextMenu;\n/**\n * Show the given menu element at the given offset from the top-left corner of the viewport.\n * The menu will appear below-right of this point and will flip to below-left if there is not enough\n * room onscreen. The optional callback will be invoked when this menu closes.\n */\n\nexport function show(menu, offset, onClose, isDarkTheme) {\n if (contextMenuElement === undefined) {\n contextMenuElement = document.createElement(\"div\");\n contextMenuElement.classList.add(Classes.CONTEXT_MENU);\n document.body.appendChild(contextMenuElement);\n /* eslint-disable deprecation/deprecation */\n\n contextMenu = ReactDOM.render(React.createElement(ContextMenu, {\n onClosed: remove\n }), contextMenuElement);\n /* eslint-enable deprecation/deprecation */\n }\n\n contextMenu.show(menu, offset, onClose, isDarkTheme);\n}\n/** Hide the open context menu. */\n\nexport function hide() {\n contextMenu === null || contextMenu === void 0 ? void 0 : contextMenu.hide();\n}\n/** Return whether a context menu is currently open. */\n\nexport function isOpen() {\n return contextMenu != null && contextMenu.state.isOpen;\n}\n\nfunction remove() {\n if (contextMenuElement != null) {\n ReactDOM.unmountComponentAtNode(contextMenuElement);\n contextMenuElement.remove();\n contextMenuElement = undefined;\n contextMenu = undefined;\n }\n}","/*\n * Copyright 2021 Palantir Technologies, Inc. All rights reserved.\n */\nexport var IconSvgPaths16 = {\n \"add\": [\"M10.99 6.99h-2v-2c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1zm-3-7c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.68 6-6 6z\"],\n \"add-clip\": [\"M12 0a1 1 0 00-1 1v2H9a1 1 0 000 2h2v2a1 1 0 102 0V5h2a1 1 0 100-2h-2V1a1 1 0 00-1-1zM0 4a1 1 0 011-1h3.5a1 1 0 010 2H2v2a1 1 0 01-2 0V4zm1 12a1 1 0 01-1-1v-3a1 1 0 112 0v2h2.5a1 1 0 110 2H1zm11 0a1 1 0 001-1v-3a1 1 0 10-2 0v2H9a1 1 0 100 2h3zm-5.5-4a2.5 2.5 0 100-5 2.5 2.5 0 000 5z\"],\n \"add-column-left\": [\"M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-5 14H2V2h8v12zm4 0h-3V2h3v12zM4 9h1v1c0 .55.45 1 1 1s1-.45 1-1V9h1c.55 0 1-.45 1-1s-.45-1-1-1H7V6c0-.55-.45-1-1-1s-1 .45-1 1v1H4c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"add-column-right\": [\"M8 9h1v1c0 .55.45 1 1 1s1-.45 1-1V9h1c.55 0 1-.45 1-1s-.45-1-1-1h-1V6c0-.55-.45-1-1-1s-1 .45-1 1v1H8c-.55 0-1 .45-1 1s.45 1 1 1zm7-9H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM5 14H2V2h3v12zm9 0H6V2h8v12z\"],\n \"add-location\": [\"M8 0a1 1 0 110 2 6 6 0 106 6 1 1 0 012 0 8 8 0 11-8-8zm0 5a3 3 0 110 6 3 3 0 010-6zm5-5a1 1 0 011 1v.999L15 2a1 1 0 010 2h-1v1a1 1 0 01-2 0V4h-1a1 1 0 010-2h1V1a1 1 0 011-1z\"],\n \"add-row-bottom\": [\"M6 11h1v1c0 .55.45 1 1 1s1-.45 1-1v-1h1c.55 0 1-.45 1-1s-.45-1-1-1H9V8c0-.55-.45-1-1-1s-1 .45-1 1v1H6c-.55 0-1 .45-1 1s.45 1 1 1zm9-11H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2V6h12v8zm0-9H2V2h12v3z\"],\n \"add-row-top\": [\"M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2v-3h12v3zm0-4H2V2h12v8zM6 7h1v1c0 .55.45 1 1 1s1-.45 1-1V7h1c.55 0 1-.45 1-1s-.45-1-1-1H9V4c0-.55-.45-1-1-1s-1 .45-1 1v1H6c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"add-to-artifact\": [\"M14 4.01h-1v-1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1v-1h1c.55 0 1-.45 1-1 0-.56-.45-1-1-1zm-13 2h6c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm8 6H1c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1 0-.56-.45-1-1-1zm0-4H1c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1 0-.56-.45-1-1-1z\"],\n \"add-to-folder\": [\"M.01 7V5H16v7c0 .55-.45 1-1 1H9.005v-2.99C8.974 8.332 7.644 7 5.996 7H.01zM15 2H7.416L5.706.29a.996.996 0 00-.71-.29H1C.45 0 0 .45 0 1v3h15.99V3c.01-.55-.44-1-.99-1zM5.997 9H2c-.55 0-1 .45-1 1s.45 1 1 1h1.589L.3 14.29a1.003 1.003 0 001.42 1.42l3.287-3.29v1.59c0 .55.45 1 1 1 .549 0 .999-.45.999-1v-4A1.02 1.02 0 005.996 9z\"],\n \"airplane\": [\"M16 1.5A1.498 1.498 0 0013.44.44L9.91 3.97 2 1 1 3l5.93 3.95L3.88 10H1l-1 1 3 2 2 3 1-1v-2.88l3.05-3.05L13 15l2-1-2.97-7.91 3.53-3.53c.27-.27.44-.65.44-1.06z\"],\n \"align-center\": [\"M4 4c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1H4zM1 3h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm13 10H2c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zm1-6H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm-5 5c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1s.45 1 1 1h4z\"],\n \"align-justify\": [\"M15 12.98H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm-14-10h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1 0 .56.45 1 1 1zm14 4H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm0-3H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm0 6H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"align-left\": [\"M13 13H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zM1 3h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm0 3h8c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 1H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM1 12h4c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"align-right\": [\"M15 12.98H3c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zm-14-10h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1 0 .56.45 1 1 1zm14 1H7c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zm0 6h-4c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1zm0-3H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"alignment-bottom\": [\"M10 12h3c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm5 2H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM3 12h3c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1z\"],\n \"alignment-horizontal-center\": [\"M15 7h-1V6c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v1H7V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v4H1c-.55 0-1 .45-1 1s.45 1 1 1h1v4c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V9h2v1c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V9h1c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"alignment-left\": [\"M9 9H5c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zM1 0C.45 0 0 .45 0 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm13 2H5c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z\"],\n \"alignment-right\": [\"M11 9H7c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm4-9c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm-4 2H2c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z\"],\n \"alignment-top\": [\"M15 0H1C.45 0 0 .45 0 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM6 4H3c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm7 0h-3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1z\"],\n \"alignment-vertical-center\": [\"M13 2H9V1c0-.55-.45-1-1-1S7 .45 7 1v1H3c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4v2H6c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1v-1h1c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1H9V7h4c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z\"],\n \"annotation\": [\"M15.52 2.77c.3-.29.48-.7.48-1.15C16 .73 15.27 0 14.38 0c-.45 0-.85.18-1.15.48l-1.34 1.34 2.3 2.3 1.33-1.35zM7.4 10.9l6.21-6.21-2.3-2.3L5.1 8.6l2.3 2.3zM14 14H2V2h6.34l2-2H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V5.66l-2 2V14zM3 13l3.58-1.29-2.29-2.27L3 13z\"],\n \"antenna\": [\"M2.673 10.758a1.396 1.396 0 01.093.234c.127.442.012.932-.362 1.212-.441.332-1.075.246-1.349-.233a8 8 0 1114.014-.225c-.259.488-.889.594-1.341.277-.382-.269-.513-.755-.4-1.2a1.259 1.259 0 01.085-.238 6 6 0 10-10.74.173zm2.464-1.862a1.783 1.783 0 01.076.404c.03.415-.096.831-.43 1.078-.444.328-1.08.237-1.314-.264a5.003 5.003 0 01-.24-.62l-.004-.011a5 5 0 119.574-.08l-.003.011c-.063.213-.14.422-.23.625-.226.504-.861.606-1.31.285-.338-.241-.47-.654-.448-1.07a1.737 1.737 0 01.07-.405 2.99 2.99 0 00-.216-2.233 3 3 0 00-5.525 2.28zM8 7a1 1 0 011 1v3.586l2.707 2.707a1 1 0 01-1.414 1.414L8 13.414l-2.293 2.293a1 1 0 01-1.414-1.414L7 11.586V8a1 1 0 011-1z\"],\n \"app-header\": [\"M15 0a1 1 0 011 1v14a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1h14zM6 4a1 1 0 00-1.993-.117L4 4v8a1 1 0 001.993.117L6 12V9h4v3a1 1 0 001.993.117L12 12V4a1 1 0 00-1.993-.117L10 4v3H6V4z\"],\n \"application\": [\"M3.5 7h7c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-7c-.28 0-.5.22-.5.5s.22.5.5.5zM15 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm-1 12H2V5h12v8zM3.5 9h4c.28 0 .5-.22.5-.5S7.78 8 7.5 8h-4c-.28 0-.5.22-.5.5s.22.5.5.5zm0 2h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-5c-.28 0-.5.22-.5.5s.22.5.5.5z\"],\n \"applications\": [\"M3.5 11h2c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-2c-.28 0-.5.22-.5.5s.22.5.5.5zm0-2h5c.28 0 .5-.22.5-.5S8.78 8 8.5 8h-5c-.28 0-.5.22-.5.5s.22.5.5.5zM11 4H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 10H2V7h8v7zm5-14H5c-.55 0-1 .45-1 1v2h2V2h8v7h-1v2h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM3.5 13h3c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-3c-.28 0-.5.22-.5.5s.22.5.5.5z\"],\n \"archive\": [\"M13.382 0a1 1 0 01.894.553L16 4v11a1 1 0 01-1 1H1a1 1 0 01-1-1V4L1.724.553A1 1 0 012.618 0h10.764zM8 6c-.55 0-1 .45-1 1v2.59l-.29-.29-.081-.076A.97.97 0 006 9a1.003 1.003 0 00-.71 1.71l2 2 .096.084c.168.13.38.206.614.206.28 0 .53-.11.71-.29l2-2 .084-.096A1.003 1.003 0 009.29 9.29l-.29.3V7l-.007-.116A1.004 1.004 0 008 6zm5-4H3L2 4h12l-1-2z\"],\n \"area-of-interest\": [\"M4 3.664C4 1.644 5.793 0 8 0s3.993 1.643 4 3.664C12 5.692 8 11 8 11S4 5.692 4 3.664zM6 4a2 2 0 104.001-.001A2 2 0 006 4zm7.504 6.269l-2.68-1.609.021-.033c.34-.538.688-1.115 1-1.687l3.67 2.202a1 1 0 01.266 1.482l-4 5A1 1 0 0111 16H5a1 1 0 01-.78-.376l-4-5a1 1 0 01.266-1.482l3.67-2.202a30.46 30.46 0 00.999 1.687l.021.033-2.68 1.609 2.985 3.73h5.038l2.985-3.73z\"],\n \"array\": [\"M15 0a1 1 0 01.993.883L16 1v14a1 1 0 01-.883.993L15 16h-3a1 1 0 01-.117-1.993L12 14h2V2h-2a1 1 0 01-.993-.883L11 1a1 1 0 01.883-.993L12 0h3zM4 0a1 1 0 01.117 1.993L4 2H2v12h2a1 1 0 01.993.883L5 15a1 1 0 01-.883.993L4 16H1a1 1 0 01-.993-.883L0 15V1A1 1 0 01.883.007L1 0h3zm4 7a1 1 0 110 2 1 1 0 010-2zM5 7a1 1 0 110 2 1 1 0 010-2zm6 0a1 1 0 110 2 1 1 0 010-2z\"],\n \"array-boolean\": [\"M15 0a1 1 0 01.993.883L16 1v14a1 1 0 01-.883.993L15 16h-3a1 1 0 01-.117-1.993L12 14h2V2h-2a1 1 0 01-.993-.883L11 1a1 1 0 01.883-.993L12 0h3zM4 0a1 1 0 01.117 1.993L4 2H2v12h2a1 1 0 01.993.883L5 15a1 1 0 01-.883.993L4 16H1a1 1 0 01-.993-.883L0 15V1A1 1 0 01.883.007L1 0h3zm7 6a1 1 0 01.993.883L12 7v2a1 1 0 01-.883.993L11 10H5a1 1 0 01-.993-.883L4 9V7a1 1 0 01.883-.993L5 6h6zm0 1H8v2h3V7z\"],\n \"array-date\": [\"M15 0a1 1 0 01.993.883L16 1v14a1 1 0 01-.883.993L15 16h-3a1 1 0 01-.117-1.993L12 14h2V2h-2a1 1 0 01-.993-.883L11 1a1 1 0 01.883-.993L12 0h3zM4 0a1 1 0 01.117 1.993L4 2H2v12h2a1 1 0 01.993.883L5 15a1 1 0 01-.883.993L4 16H1a1 1 0 01-.993-.883L0 15V1A1 1 0 01.883.007L1 0h3zm6.5 4a.5.5 0 01.5.5V5a1 1 0 01.993.883L12 6v5a1 1 0 01-.883.993L11 12H5a1 1 0 01-.993-.883L4 11V6a1 1 0 01.883-.993L5 5v-.5a.5.5 0 011 0V5h4v-.5a.5.5 0 01.5-.5zm.5 3H5v4h6V7z\"],\n \"array-numeric\": [\"M15 0a1 1 0 01.993.883L16 1v14a1 1 0 01-.883.993L15 16h-3a1 1 0 01-.117-1.993L12 14h2V2h-2a1 1 0 01-.993-.883L11 1a1 1 0 01.883-.993L12 0h3zM4 0a1 1 0 01.117 1.993L4 2H2v12h2a1 1 0 01.993.883L5 15a1 1 0 01-.883.993L4 16H1a1 1 0 01-.993-.883L0 15V1A1 1 0 01.883.007L1 0h3zm6.904 5c.256 0 .483.037.68.112a1.343 1.343 0 01.812.788c.072.184.108.385.108.604 0 .23-.05.441-.152.636a1.314 1.314 0 01-.456.492v.016l.08.04c.055.031.111.072.168.124.085.077.163.172.232.284a1.673 1.673 0 01.24.872c0 .25-.043.477-.128.68a1.518 1.518 0 01-.896.852 1.937 1.937 0 01-.68.116c-.427 0-.792-.101-1.096-.304a1.362 1.362 0 01-.584-.864c-.01-.053.01-.088.064-.104l.696-.16.033-.002c.03.002.051.022.063.058.059.16.155.296.288.408.133.112.312.168.536.168.256 0 .453-.076.592-.228a.827.827 0 00.208-.58c0-.277-.08-.495-.24-.652-.16-.157-.376-.236-.648-.236h-.232l-.035-.005c-.03-.01-.045-.035-.045-.075v-.632l.005-.035c.01-.03.035-.045.075-.045h.216l.138-.009a.734.734 0 00.438-.207c.144-.144.216-.336.216-.576a.745.745 0 00-.192-.532c-.128-.136-.307-.204-.536-.204-.203 0-.363.05-.48.152a.815.815 0 00-.248.408c-.016.048-.048.067-.096.056l-.68-.16-.034-.012c-.028-.016-.038-.044-.03-.084a1.347 1.347 0 01.516-.828c.136-.104.296-.185.48-.244A1.98 1.98 0 0110.904 5zm-6.152.088l.035.005c.03.01.045.035.045.075v5.28l-.005.035c-.01.03-.035.045-.075.045h-.736l-.035-.005c-.03-.01-.045-.035-.045-.075V6.16H3.92l-.832.584-.032.016C3.02 6.773 3 6.751 3 6.696V5.88l.006-.04a.157.157 0 01.05-.072l.872-.632.04-.027a.236.236 0 01.104-.021h.68zM7.344 5c.256 0 .483.04.68.12.197.08.364.188.5.324s.24.296.312.48c.072.184.108.383.108.596 0 .245-.045.47-.136.676-.09.205-.216.404-.376.596l-1.584 1.92v.016h2.016l.035.005c.03.01.045.035.045.075v.64l-.005.035c-.01.03-.035.045-.075.045H5.808l-.035-.005c-.03-.01-.045-.035-.045-.075v-.6l.004-.04a.132.132 0 01.036-.064l1.92-2.392.1-.133a1.95 1.95 0 00.156-.267.985.985 0 00.096-.432.736.736 0 00-.188-.512c-.125-.139-.303-.208-.532-.208-.219 0-.39.061-.512.184a.826.826 0 00-.224.496c-.01.053-.04.075-.088.064L5.792 6.4l-.034-.012c-.028-.016-.038-.044-.03-.084a1.425 1.425 0 01.94-1.192A1.88 1.88 0 017.344 5z\"],\n \"array-string\": [\"M15 0a1 1 0 01.993.883L16 1v14a1 1 0 01-.883.993L15 16h-3a1 1 0 01-.117-1.993L12 14h2V2h-2a1 1 0 01-.993-.883L11 1a1 1 0 01.883-.993L12 0h3zM4 0a1 1 0 01.117 1.993L4 2H2v12h2a1 1 0 01.993.883L5 15a1 1 0 01-.883.993L4 16H1a1 1 0 01-.993-.883L0 15V1A1 1 0 01.883.007L1 0h3zm1.61 5c.514 0 .962.212 1.343.637.382.425.573.997.573 1.716 0 .838-.258 1.588-.773 2.252-.514.663-1.327 1.2-2.437 1.609v-.465l.233-.095a3.09 3.09 0 001.274-1.017c.366-.505.55-1.03.55-1.577a.478.478 0 00-.057-.26c-.018-.037-.043-.056-.074-.056s-.08.025-.149.075c-.198.142-.446.214-.744.214-.36 0-.675-.145-.944-.433A1.453 1.453 0 014 6.572c0-.422.155-.79.465-1.102.31-.313.692-.47 1.144-.47zm4.474 0c.514 0 .963.212 1.344.637.381.425.572.997.572 1.716 0 .838-.257 1.588-.772 2.252-.515.663-1.327 1.2-2.437 1.609v-.465l.233-.095a3.09 3.09 0 001.274-1.017c.366-.505.549-1.03.549-1.577a.478.478 0 00-.056-.26c-.019-.037-.044-.056-.075-.056-.03 0-.08.025-.149.075-.198.142-.446.214-.744.214-.36 0-.674-.145-.944-.433a1.453 1.453 0 01-.405-1.028c0-.422.155-.79.466-1.102.31-.313.691-.47 1.144-.47z\"],\n \"array-timestamp\": [\"M15 0a1 1 0 01.993.883L16 1v14a1 1 0 01-.883.993L15 16h-3a1 1 0 01-.117-1.993L12 14h2V2h-2a1 1 0 01-.993-.883L11 1a1 1 0 01.883-.993L12 0h3zM4 0a1 1 0 01.117 1.993L4 2H2v12h2a1 1 0 01.993.883L5 15a1 1 0 01-.883.993L4 16H1a1 1 0 01-.993-.883L0 15V1A1 1 0 01.883.007L1 0h3zm4 3a5 5 0 110 10A5 5 0 018 3zm0 1a4 4 0 100 8 4 4 0 000-8zm2.354 1.646a.5.5 0 01.057.638l-.057.07-2 2a.5.5 0 01-.638.057l-.07-.057-1-1a.5.5 0 01.638-.765l.07.057.646.647 1.646-1.647a.5.5 0 01.708 0z\"],\n \"arrow-bottom-left\": [\"M14 3a1.003 1.003 0 00-1.71-.71L4 10.59V6c0-.55-.45-1-1-1s-1 .45-1 1v7c0 .55.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1H5.41l8.29-8.29c.19-.18.3-.43.3-.71z\"],\n \"arrow-bottom-right\": [\"M13 5c-.55 0-1 .45-1 1v4.59l-8.29-8.3a1.003 1.003 0 00-1.42 1.42l8.3 8.29H6c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z\"],\n \"arrow-down\": [\"M13 8c-.3 0-.5.1-.7.3L9 11.6V2c0-.5-.4-1-1-1s-1 .5-1 1v9.6L3.7 8.3C3.5 8.1 3.3 8 3 8c-.5 0-1 .5-1 1 0 .3.1.5.3.7l5 5c.2.2.4.3.7.3s.5-.1.7-.3l5-5c.2-.2.3-.4.3-.7 0-.6-.4-1-1-1z\"],\n \"arrow-left\": [\"M13.99 6.99H4.41L7.7 3.7a1.003 1.003 0 00-1.42-1.42l-5 5a1.014 1.014 0 000 1.42l5 5a1.003 1.003 0 001.42-1.42L4.41 8.99H14c.55 0 1-.45 1-1s-.46-1-1.01-1z\"],\n \"arrow-right\": [\"M14.7 7.29l-5-5a.965.965 0 00-.71-.3 1.003 1.003 0 00-.71 1.71l3.29 3.29H1.99c-.55 0-1 .45-1 1s.45 1 1 1h9.59l-3.29 3.29a1.003 1.003 0 001.42 1.42l5-5c.18-.18.29-.43.29-.71s-.12-.52-.3-.7z\"],\n \"arrow-top-left\": [\"M13.71 12.29L5.41 4H10c.55 0 1-.45 1-1s-.45-1-1-1H3c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1s1-.45 1-1V5.41l8.29 8.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z\"],\n \"arrow-top-right\": [\"M13 2H6c-.55 0-1 .45-1 1s.45 1 1 1h4.59L2.3 12.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L12 5.41V10c0 .55.45 1 1 1s1-.45 1-1V3c0-.55-.45-1-1-1z\"],\n \"arrow-up\": [\"M13.7 6.3l-5-5C8.5 1.1 8.3 1 8 1s-.5.1-.7.3l-5 5c-.2.2-.3.4-.3.7 0 .6.5 1 1 1 .3 0 .5-.1.7-.3L7 4.4V14c0 .6.4 1 1 1s1-.4 1-1V4.4l3.3 3.3c.2.2.4.3.7.3.6 0 1-.4 1-1 0-.3-.1-.5-.3-.7z\"],\n \"arrows-horizontal\": [\"M15.7 7.3l-4-4c-.2-.2-.4-.3-.7-.3-.6 0-1 .5-1 1 0 .3.1.5.3.7L12.6 7H3.4l2.3-2.3c.2-.2.3-.4.3-.7 0-.5-.4-1-1-1-.3 0-.5.1-.7.3l-4 4c-.2.2-.3.4-.3.7s.1.5.3.7l4 4c.2.2.4.3.7.3.6 0 1-.4 1-1 0-.3-.1-.5-.3-.7L3.4 9h9.2l-2.3 2.3c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3l4-4c.2-.2.3-.4.3-.7s-.1-.5-.3-.7z\"],\n \"arrows-vertical\": [\"M12 10c-.3 0-.5.1-.7.3L9 12.6V3.4l2.3 2.3c.2.2.4.3.7.3.6 0 1-.4 1-1 0-.3-.1-.5-.3-.7l-4-4C8.5.1 8.3 0 8 0s-.5.1-.7.3l-4 4c-.2.2-.3.4-.3.7 0 .6.5 1 1 1 .3 0 .5-.1.7-.3L7 3.4v9.2l-2.3-2.3c-.2-.2-.4-.3-.7-.3-.5 0-1 .4-1 1 0 .3.1.5.3.7l4 4c.2.2.4.3.7.3s.5-.1.7-.3l4-4c.2-.2.3-.4.3-.7 0-.6-.4-1-1-1z\"],\n \"asterisk\": [\"M14.54 11.18l.01-.02L9.8 8l4.75-3.17-.01-.02c.27-.17.46-.46.46-.81 0-.55-.45-1-1-1-.21 0-.39.08-.54.18l-.01-.02L9 6.13V1c0-.55-.45-1-1-1S7 .45 7 1v5.13L2.55 3.17l-.01.01A.969.969 0 002 3c-.55 0-1 .45-1 1 0 .35.19.64.46.82l-.01.01L6.2 8l-4.75 3.17.01.02c-.27.17-.46.46-.46.81 0 .55.45 1 1 1 .21 0 .39-.08.54-.18l.01.02L7 9.87V15c0 .55.45 1 1 1s1-.45 1-1V9.87l4.45 2.96.01-.02c.15.11.33.19.54.19.55 0 1-.45 1-1 0-.35-.19-.64-.46-.82z\"],\n \"automatic-updates\": [\"M8 14c-3.31 0-6-2.69-6-6 0-1.77.78-3.36 2-4.46V5c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1s.45 1 1 1h1.74A7.95 7.95 0 000 8c0 4.42 3.58 8 8 8 .55 0 1-.45 1-1s-.45-1-1-1zM8 2a5.9 5.9 0 012.95.81l1.47-1.47A7.893 7.893 0 008 0c-.55 0-1 .45-1 1s.45 1 1 1zm2.71 6.71l5-5a1.003 1.003 0 00-1.42-1.42L10 6.59l-1.29-1.3a1.003 1.003 0 00-1.42 1.42l2 2c.18.18.43.29.71.29s.53-.11.71-.29zM16 8c0-.55-.06-1.08-.16-1.6l-1.87 1.87A5.966 5.966 0 0112 12.45V11c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1h-1.74A7.95 7.95 0 0016 8z\"],\n \"backlink\": [\"M14 10a1 1 0 110 2h-.585l2.292 2.293a1 1 0 01-1.32 1.497l-.094-.083L12 13.415V14a1 1 0 11-2 0l.003-3.075.012-.1.012-.059.033-.108.034-.081.052-.098.067-.096.08-.09a1.01 1.01 0 01.112-.097l.11-.071.143-.065.076-.024.091-.02.116-.014L14 10zM6.036 6.136l-3.45 3.45-.117.127a2 2 0 002.818 2.818l.127-.117 3.45-3.449a4 4 0 01-.885 3.704l-.15.16-1 1A4 4 0 011.02 8.33l.15-.16 1-1a3.998 3.998 0 013.865-1.035zm4.671-1.843a1 1 0 01.083 1.32l-.083.094-5 5a1 1 0 01-1.497-1.32l.083-.094 5-5a1 1 0 011.414 0zm3.121-3.121a4 4 0 01.151 5.497l-.15.16-1 1a3.998 3.998 0 01-3.864 1.036l3.45-3.45.116-.128a2 2 0 00-2.818-2.818l-.127.117-3.45 3.45A4 4 0 017.02 2.33l.15-.16 1-1a4 4 0 015.657 0z\"],\n \"badge\": [\"M13.36 4.59c-.15-1.13.5-2.01 1.1-2.87L13.43.53c-1.72.88-4.12.65-5.63-.53-1.51 1.18-3.91 1.41-5.63.52l-1.03 1.2c.61.86 1.25 1.74 1.1 2.87-.3 2.29-2.45 4.17-1.32 6.68.45 1.14 1.44 1.9 2.72 2.2 1.56.36 3.52.72 4.16 2.53.64-1.81 2.6-2.16 4.16-2.54 1.28-.3 2.27-1.06 2.72-2.2 1.12-2.5-1.03-4.38-1.32-6.67z\"],\n \"ban-circle\": [\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm3 9H5c-.55 0-1-.45-1-1s.45-1 1-1h6c.55 0 1 .45 1 1s-.45 1-1 1z\"],\n \"bank-account\": [\"M15.36 6.46l-.62-.14c-.31-1.12-.98-2.15-1.87-2.99l.4-1.77a.438.438 0 00-.49-.56c-.85.09-1.6.42-2.14.98-.84-.32-1.87-.51-2.85-.51-2.49 0-4.63 1.17-5.92 2.89-.18-.04-.36-.09-.53-.09-.76 0-1.34.61-1.34 1.4 0 .56.31 1.03.76 1.26-.05.33-.09.7-.09 1.07 0 1.68.71 3.17 1.83 4.34l-.27 1.59c-.09.56.35 1.07.89 1.07h.58c.45 0 .8-.33.89-.79l.04-.37c.94.42 2 .7 3.16.7 1.11 0 2.23-.23 3.16-.7l.05.37c.09.47.45.79.89.79h.58c.53 0 .98-.51.89-1.07l-.27-1.54c.62-.61 1.07-1.35 1.38-2.15l.8-.19c.4-.09.71-.47.71-.93V7.4c.09-.47-.22-.84-.62-.94zM12 8c-.6 0-1-.7-1-1.5S11.4 5 12 5s1 .7 1 1.5S12.6 8 12 8zM6.21 4.92c-.41.2-.91.04-1.12-.36-.21-.4-.04-.88.37-1.07 1.35-.65 2.73-.65 4.08 0 .41.2.58.68.37 1.07-.21.4-.71.56-1.12.36-.87-.43-1.71-.43-2.58 0z\"],\n \"barcode\": [\"M0 14h2V2H0v12zm6 0h1V2H6v12zm2 0h1V2H8v12zm-5 0h2V2H3v12zM15 2v12h1V2h-1zm-5 12h1V2h-1v12zm2 0h2V2h-2v12z\"],\n \"blank\": [],\n \"blocked-person\": [\"M9.39 12.69c-1.2-.53-1.04-.85-1.08-1.29-.01-.07-.01-.13-.02-.2.41-.37.75-.87.97-1.44 0 0 .01-.03.01-.04.05-.13.09-.26.13-.39.27-.06.43-.36.5-.63.01-.03.03-.08.05-.12C8.18 7.8 6.94 6.04 6.94 4c0-.32.04-.62.09-.92-.17-.03-.35-.08-.51-.08-.65 0-1.37.2-1.88.59-.5.38-.87.92-1.05 1.51-.04.14-.07.27-.09.41-.09.48-.14 1.23-.14 1.74v.06c-.19.08-.36.27-.4.68-.03.31.1.59.16.7.06.28.23.59.51.64.04.14.08.27.13.39 0 .01.01.02.01.02v.01c.22.59.57 1.1.99 1.46 0 .06-.01.12-.01.17-.04.44.08.76-1.12 1.29-1.2.53-3.01 1.1-3.38 1.95C-.12 15.5.03 16 .03 16h12.96s.15-.5-.22-1.36c-.37-.85-2.18-1.42-3.38-1.95zM11.97 0C9.75 0 7.94 1.79 7.94 4s1.8 4 4.03 4S16 6.21 16 4s-1.8-4-4.03-4zM9.96 4c0-1.1.9-2 2.01-2 .37 0 .72.11 1.02.28l-2.75 2.73c-.17-.3-.28-.64-.28-1.01zm2.01 2c-.37 0-.72-.11-1.02-.28l2.75-2.73c.18.3.28.64.28 1.01.01 1.1-.9 2-2.01 2z\"],\n \"bold\": [\"M11.7 7c.2-.4.3-1 .3-1.5v-.4V5c0-.1 0-.2-.1-.3v-.1C11.4 3.1 10.1 2 8.5 2H4c-.5 0-1 .4-1 1v10c0 .5.4 1 1 1h5c2.2 0 4-1.8 4-4 0-1.2-.5-2.3-1.3-3zM6 5h2c.6 0 1 .4 1 1s-.4 1-1 1H6V5zm3 6H6V9h3c.6 0 1 .4 1 1s-.4 1-1 1z\"],\n \"book\": [\"M2 1v14c0 .55.45 1 1 1h1V0H3c-.55 0-1 .45-1 1zm11-1h-1v7l-2-2-2 2V0H5v16h8c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"bookmark\": [\"M11.2.01h-.15C11.03.01 11.02 0 11 0H5c-.02 0-.03.01-.05.01H4.8c-.44 0-.8.37-.8.82v14.75c0 .45.25.56.57.24l2.87-2.94c.31-.32.82-.32 1.13 0l2.87 2.94c.31.32.57.21.57-.24V.83C12 .38 11.64.01 11.2.01z\"],\n \"box\": [\"M6 10h4c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1s.45 1 1 1zm9.93-4.37v-.02L13.94.63C13.78.26 13.42 0 13 0H3c-.42 0-.78.26-.93.63L.08 5.61l-.01.02C.03 5.74 0 5.87 0 6v9c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V6c0-.13-.03-.26-.07-.37zM9 2h3.32l1.2 3H9V2zM3.68 2H7v3H2.48l1.2-3zM14 14H2V7h12v7z\"],\n \"briefcase\": [\"M15 3.98h-3v-2c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v2H1c-.55 0-1 .45-1 1v4h3v-1h2v1h6v-1h2v1h3v-4c0-.55-.45-1-1-1zm-5 0H6v-1h4v1zm3 7h-2v-1H5v1H3v-1H0v4c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-4h-3v1z\"],\n \"bring-data\": [\"M14 14a1 1 0 010 2H2a1 1 0 010-2h12zM7.995 3.005c.55 0 1 .45 1 .999v5.584l1.29-1.288a1.002 1.002 0 011.42 1.419l-3 2.996a1.015 1.015 0 01-1.42 0l-3-2.997A1.002 1.002 0 015.705 8.3l1.29 1.29V4.013c0-.55.45-1.009 1-1.009zM14 0a1 1 0 110 2 1 1 0 010-2zm-3 0a1 1 0 110 2 1 1 0 010-2zM8 0a1 1 0 110 2 1 1 0 010-2zM5 0a1 1 0 110 2 1 1 0 010-2zM2 0a1 1 0 110 2 1 1 0 010-2z\"],\n \"buggy\": [\"M13.928.629A1 1 0 0012.89.006l-9 1a1 1 0 00-.747.48L.431 6.005A.5.5 0 000 6.5v3a.5.5 0 00.5.5h2.798c.341 0 .672.116.938.329l1.952 1.561A.5.5 0 006.5 12H10a.5.5 0 00.4-.2l.9-1.2a1.5 1.5 0 011.2-.6h3a.5.5 0 00.5-.5v-4a.5.5 0 00-.308-.462L13.928.628zM12.36 2.094l-.006-.016-3.166.352 1.121 3.083 2.052-3.419zm.467 1.166l-1.649 2.748 2.51-.594-.861-2.154zM9.603 6.496L8.166 2.543l-3.563.396L2.766 6H3.5a.5.5 0 01.367.16L6.218 8.7h1.914l1.452-2.177a.5.5 0 01.019-.027zM2.5 16a2.5 2.5 0 100-5 2.5 2.5 0 000 5zm11 0a2.5 2.5 0 100-5 2.5 2.5 0 000 5z\"],\n \"build\": [\"M15.39 12.41L7.7 6l1.07-1.1c.34-.34-.12-.63.12-1.26.88-2.17 3.41-2.35 3.41-2.35s.36-.37.71-.72C9.74-.81 7.53.53 6.54 1.4L3.12 4.9l-.71.72c-.39.4-.39 1.05 0 1.45l-.7.72c-.39-.4-1.02-.4-1.41 0s-.39 1.05 0 1.45l1.41 1.45c.39.4 1.02.4 1.41 0s.39-1.05 0-1.45l.71-.72c.39.4 1.02.4 1.41 0l.8-.82 6.39 7.67c.82.82 2.14.82 2.96 0 .81-.82.81-2.15 0-2.96z\"],\n \"calculator\": [\"M13 0H3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM6 14H4v-2h2v2zm0-3H4V9h2v2zm0-3H4V6h2v2zm3 6H7v-2h2v2zm0-3H7V9h2v2zm0-3H7V6h2v2zm3 6h-2V9h2v5zm0-6h-2V6h2v2zm0-3H4V2h8v3z\"],\n \"calendar\": [\"M11 3c.6 0 1-.5 1-1V1c0-.6-.4-1-1-1s-1 .4-1 1v1c0 .5.4 1 1 1zm3-2h-1v1c0 1.1-.9 2-2 2s-2-.9-2-2V1H6v1c0 1.1-.9 2-2 2s-2-.9-2-2V1H1c-.6 0-1 .5-1 1v12c0 .6.4 1 1 1h13c.6 0 1-.4 1-1V2c0-.6-.5-1-1-1zM5 13H2v-3h3v3zm0-4H2V6h3v3zm4 4H6v-3h3v3zm0-4H6V6h3v3zm4 4h-3v-3h3v3zm0-4h-3V6h3v3zM4 3c.6 0 1-.5 1-1V1c0-.6-.4-1-1-1S3 .4 3 1v1c0 .5.4 1 1 1z\"],\n \"camera\": [\"M15 3h-2.59L10.7 1.29A.956.956 0 0010 1H6c-.28 0-.53.11-.71.29L3.59 3H1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h2.56c1.1 1.22 2.67 2 4.44 2s3.34-.78 4.44-2H15c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM3 6H1V5h2v1zm5 6c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"caret-down\": [\"M12 6.5c0-.28-.22-.5-.5-.5h-7a.495.495 0 00-.37.83l3.5 4c.09.1.22.17.37.17s.28-.07.37-.17l3.5-4c.08-.09.13-.2.13-.33z\"],\n \"caret-left\": [\"M9.5 4c-.13 0-.24.05-.33.13l-4 3.5c-.1.09-.17.22-.17.37s.07.28.17.37l4 3.5a.495.495 0 00.83-.37v-7c0-.28-.22-.5-.5-.5z\"],\n \"caret-right\": [\"M11 8c0-.15-.07-.28-.17-.37l-4-3.5A.495.495 0 006 4.5v7a.495.495 0 00.83.37l4-3.5c.1-.09.17-.22.17-.37z\"],\n \"caret-up\": [\"M11.87 9.17s.01 0 0 0l-3.5-4C8.28 5.07 8.15 5 8 5s-.28.07-.37.17l-3.5 4a.495.495 0 00.37.83h7a.495.495 0 00.37-.83z\"],\n \"cargo-ship\": [\"M10 1h3a1 1 0 011 1v2h-4V1zM2.25 4a.25.25 0 00-.25.25V9H.883a.5.5 0 00-.429.757l1.072 1.787c.207.344.477.638.791.87A9.76 9.76 0 011 12.5a.5.5 0 000 1c2.067 0 3.414-.543 4.161-.917.55.373 1.505.917 2.839.917 1.32 0 2.27-.533 2.822-.905l.004.002c.196.105.48.24.856.374.75.268 1.857.529 3.318.529a.5.5 0 000-1c-.326 0-.63-.014-.916-.039.47-.328.848-.79 1.07-1.347l.572-1.428A.5.5 0 0015.26 9H4V4.25A.25.25 0 003.75 4h-1.5zm2.714 9.56a.5.5 0 01.527.033c.455.325 1.277.907 2.509.907s2.054-.582 2.51-.907a.5.5 0 01.579-.001l.006.004.036.023c.034.022.09.055.168.097.154.082.394.197.72.313.649.232 1.642.471 2.981.471a.5.5 0 010 1c-1.46 0-2.568-.261-3.318-.53a6.316 6.316 0 01-.856-.373l-.004-.002c-.552.372-1.502.905-2.822.905-1.334 0-2.289-.544-2.839-.917-.747.374-2.094.917-4.161.917a.5.5 0 010-1c2.129 0 3.384-.63 3.964-.94zM14 5h-4v3h3a1 1 0 001-1V5zM5 2a1 1 0 011-1h3v3H5V2zm4 3H5v2a1 1 0 001 1h3V5z\"],\n \"cell-tower\": [\"M8.97 6.76c-.01-.05-.04-.08-.06-.13-.02-.05-.03-.1-.05-.15.08-.14.14-.3.14-.48 0-.55-.45-1-1-1s-1 .45-1 1c0 .18.06.34.14.48-.03.05-.03.1-.05.15-.02.05-.05.08-.06.13l-2 8c-.13.54.19 1.08.73 1.21a.995.995 0 001.21-.73L7.53 13h.94l.56 2.24a1 1 0 001.94-.48l-2-8zM3.72 1.7C4.1 1.3 4.09.67 3.7.28S2.67-.09 2.28.3c-3.05 3.12-3.05 8.28 0 11.4a.996.996 0 101.43-1.39c-2.28-2.35-2.28-6.27.01-8.61zM11.6 3.2c-.44-.33-1.07-.24-1.4.2-.33.44-.24 1.07.2 1.4.43.32.53 1.96-.04 2.43-.42.35-.48.98-.13 1.41.35.42.98.48 1.41.13 1.59-1.33 1.39-4.5-.04-5.57z\", \"M13.72.3c-.39-.4-1.02-.4-1.41-.02s-.41 1.02-.03 1.42c2.29 2.34 2.29 6.26 0 8.6-.39.39-.38 1.03.02 1.41s1.03.38 1.41-.02c3.05-3.11 3.05-8.27.01-11.39zM5.4 7.23c-.57-.47-.47-2.11-.04-2.43.44-.33.53-.96.2-1.4s-.96-.53-1.4-.2c-1.44 1.07-1.63 4.24-.04 5.57.42.35 1.05.3 1.41-.13.35-.42.29-1.06-.13-1.41z\"],\n \"changes\": [\"M8.29 7.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3a1.003 1.003 0 00-1.42-1.42L13 7.59V1c0-.55-.45-1-1-1s-1 .45-1 1v6.59l-1.29-1.3a1.003 1.003 0 00-1.42 1.42zM14.5 13h-13c-.83 0-1.5.67-1.5 1.5S.67 16 1.5 16h13c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5zM1 5c.28 0 .53-.11.71-.29L3 3.41V10c0 .55.45 1 1 1s1-.45 1-1V3.41L6.29 4.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3C4.53.11 4.28 0 4 0s-.53.11-.71.29l-3 3A1.003 1.003 0 001 5z\"],\n \"chart\": [\"M0 15c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V9.4L0 11v4zm6-5.5V15c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-5l-1 1-3-1.5zM13 7l-1 1v7c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V7.88c-.26.07-.58.12-1 .12-1.96 0-2-1-2-1zm2-6h-3c-.55 0-1 .45-1 1s.45 1 1 1h.59L8.8 6.78 5.45 5.11v.01C5.31 5.05 5.16 5 5 5s-.31.05-.44.11V5.1l-4 2v.01C.23 7.28 0 7.61 0 8c0 .55.45 1 1 1 .16 0 .31-.05.44-.11v.01L5 7.12 8.55 8.9v-.01c.14.06.29.11.45.11.28 0 .53-.11.71-.29L14 4.41V5c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z\"],\n \"chat\": [\"M6 10c-1.1 0-2-.9-2-2V3H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1v2a1.003 1.003 0 001.71.71L5.41 13H10c.55 0 1-.45 1-1v-1.17l-.83-.83H6zm9-10H6c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h4.59l2.71 2.71c.17.18.42.29.7.29.55 0 1-.45 1-1V9c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"chevron-backward\": [\"M7.41 8l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L6 6.59V4c0-.55-.45-1-1-1s-1 .45-1 1v8c0 .55.45 1 1 1s1-.45 1-1V9.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L7.41 8z\"],\n \"chevron-down\": [\"M12 5c-.28 0-.53.11-.71.29L8 8.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0012 5z\"],\n \"chevron-forward\": [\"M10 3c-.55 0-1 .45-1 1v2.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42L7.59 8 4.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L9 9.41V12c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"chevron-left\": [\"M7.41 8l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C5.11 7.47 5 7.72 5 8c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L7.41 8z\"],\n \"chevron-right\": [\"M10.71 7.29l-4-4a1.003 1.003 0 00-1.42 1.42L8.59 8 5.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"chevron-up\": [\"M12.71 9.29l-4-4C8.53 5.11 8.28 5 8 5s-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L8 7.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z\"],\n \"circle\": [\"M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 14c-3.3 0-6-2.7-6-6s2.7-6 6-6 6 2.7 6 6-2.7 6-6 6z\"],\n \"circle-arrow-down\": [\"M11 7c-.28 0-.53.11-.71.29L9 8.59V5c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-1.29-1.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0011 7zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\"],\n \"circle-arrow-left\": [\"M11 7H7.41L8.7 5.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C4.11 7.47 4 7.72 4 8c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L7.41 9H11c.55 0 1-.45 1-1s-.45-1-1-1zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\"],\n \"circle-arrow-right\": [\"M8.71 4.29a1.003 1.003 0 00-1.42 1.42L8.59 7H5c-.55 0-1 .45-1 1s.45 1 1 1h3.59L7.3 10.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\"],\n \"circle-arrow-up\": [\"M8.71 4.29C8.53 4.11 8.28 4 8 4s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L7 7.41V11c0 .55.45 1 1 1s1-.45 1-1V7.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\"],\n \"citation\": [\"M15.02 5c0-1.66-1.34-3-3-3s-3 1.34-3 3a2.996 2.996 0 003.6 2.94C12.1 9.76 11.14 11 10.02 11c-.55 0-1 .45-1 1s.45 1 1 1c2.76 0 5-3.13 5-7 0-.2-.02-.39-.04-.58.01-.14.04-.28.04-.42zm-11-3c-1.66 0-3 1.34-3 3a2.996 2.996 0 003.6 2.94C4.1 9.76 3.14 11 2.02 11c-.55 0-1 .45-1 1s.45 1 1 1c2.76 0 5-3.13 5-7 0-.2-.02-.39-.04-.58.01-.14.04-.28.04-.42 0-1.66-1.35-3-3-3z\"],\n \"clean\": [\"M12 8l-1.2 2.796-2.8 1.2 2.8 1.197L12 16l1.2-2.807L16 12l-2.8-1.204zM5 0L3.5 3.5 0 4.995 3.5 6.5 5 10l1.5-3.5L10 5 6.5 3.5z\"],\n \"clip\": [\"M0 1a1 1 0 011-1h4a1 1 0 010 2H2v3a1 1 0 01-2 0V1zm1 15a1 1 0 01-1-1v-4a1 1 0 112 0v3h3a1 1 0 110 2H1zm14 0a1 1 0 001-1v-4a1 1 0 10-2 0v3h-3a1 1 0 100 2h4zm0-16a1 1 0 011 1v4a1 1 0 11-2 0V2h-3a1 1 0 110-2h4zM8 11a3 3 0 100-6 3 3 0 000 6z\"],\n \"clipboard\": [\"M11 2c0-.55-.45-1-1-1h.22C9.88.4 9.24 0 8.5 0S7.12.4 6.78 1H7c-.55 0-1 .45-1 1v1h5V2zm2 0h-1v2H5V2H4c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z\"],\n \"cloud\": [\"M12 6c-.03 0-.07 0-.1.01A5 5 0 002 7c0 .11.01.22.02.33A3.51 3.51 0 000 10.5C0 12.43 1.57 14 3.5 14H12c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"],\n \"cloud-download\": [\"M11 11c-.28 0-.53.11-.71.29L9 12.59V8c0-.55-.45-1-1-1s-1 .45-1 1v4.59L5.71 11.3A.965.965 0 005 11a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0011 11zm1-7c-.03 0-.07 0-.1.01A5 5 0 002 5c0 .11.01.22.02.33A3.51 3.51 0 000 8.5c0 1.41.84 2.61 2.03 3.17C2.2 10.17 3.46 9 5 9c.06 0 .13.02.19.02C5.07 8.7 5 8.36 5 8c0-1.66 1.34-3 3-3s3 1.34 3 3c0 .36-.07.7-.19 1.02.06 0 .13-.02.19-.02 1.48 0 2.7 1.07 2.95 2.47A3.964 3.964 0 0016 8c0-2.21-1.79-4-4-4z\"],\n \"cloud-upload\": [\"M8.71 7.29C8.53 7.11 8.28 7 8 7s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L7 10.41V15c0 .55.45 1 1 1s1-.45 1-1v-4.59l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3zM12 4c-.03 0-.07 0-.1.01A5 5 0 002 5c0 .11.01.22.02.33a3.495 3.495 0 00.07 6.37c-.05-.23-.09-.46-.09-.7 0-.83.34-1.58.88-2.12l3-3a2.993 2.993 0 014.24 0l3 3c.54.54.88 1.29.88 2.12 0 .16-.02.32-.05.47C15.17 10.78 16 9.5 16 8c0-2.21-1.79-4-4-4z\"],\n \"code\": [\"M15.71 7.29l-3-3a1.003 1.003 0 00-1.42 1.42L13.59 8l-2.29 2.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM5 5a1.003 1.003 0 00-1.71-.71l-3 3C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L2.41 8 4.7 5.71c.19-.18.3-.43.3-.71zm4-3c-.48 0-.87.35-.96.81l-2 10c-.01.06-.04.12-.04.19 0 .55.45 1 1 1 .48 0 .87-.35.96-.81l2-10c.01-.06.04-.12.04-.19 0-.55-.45-1-1-1z\"],\n \"code-block\": [\"M15 3h-2V2c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v1H7V2c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-8.29 8.29a1.003 1.003 0 01-1.42 1.42l-3-3C2.11 9.53 2 9.28 2 9s.11-.53.29-.71l3-3a1.003 1.003 0 011.42 1.42L4.41 9l2.3 2.29zm7-1.58l-3 3a1.003 1.003 0 01-1.42-1.42L11.59 9l-2.3-2.29a1.003 1.003 0 011.42-1.42l3 3c.18.18.29.43.29.71s-.11.53-.29.71z\"],\n \"cog\": [\"M15.19 6.39h-1.85c-.11-.37-.27-.71-.45-1.04l1.36-1.36c.31-.31.31-.82 0-1.13l-1.13-1.13a.803.803 0 00-1.13 0l-1.36 1.36c-.33-.17-.67-.33-1.04-.44V.79c0-.44-.36-.8-.8-.8h-1.6c-.44 0-.8.36-.8.8v1.86c-.39.12-.75.28-1.1.47l-1.3-1.3c-.3-.3-.79-.3-1.09 0L1.82 2.91c-.3.3-.3.79 0 1.09l1.3 1.3c-.2.34-.36.7-.48 1.09H.79c-.44 0-.8.36-.8.8v1.6c0 .44.36.8.8.8h1.85c.11.37.27.71.45 1.04l-1.36 1.36c-.31.31-.31.82 0 1.13l1.13 1.13c.31.31.82.31 1.13 0l1.36-1.36c.33.18.67.33 1.04.44v1.86c0 .44.36.8.8.8h1.6c.44 0 .8-.36.8-.8v-1.86c.39-.12.75-.28 1.1-.47l1.3 1.3c.3.3.79.3 1.09 0l1.09-1.09c.3-.3.3-.79 0-1.09l-1.3-1.3c.19-.35.36-.71.48-1.1h1.85c.44 0 .8-.36.8-.8v-1.6a.816.816 0 00-.81-.79zm-7.2 4.6c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\"],\n \"collapse-all\": [\"M7.29 6.71c.18.18.43.29.71.29s.53-.11.71-.29l4-4a1.003 1.003 0 00-1.42-1.42L8 4.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4zm1.42 2.58C8.53 9.11 8.28 9 8 9s-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L8 11.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4z\"],\n \"column-layout\": [\"M15 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM4 13H2V3h2v10zm3 0H5V3h2v10zm7 0H8V3h6v10z\"],\n \"comment\": [\"M14 1H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h2v3a1.003 1.003 0 001.71.71L8.41 12H14c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM3.5 8C2.67 8 2 7.33 2 6.5S2.67 5 3.5 5 5 5.67 5 6.5 4.33 8 3.5 8zm4 0C6.67 8 6 7.33 6 6.5S6.67 5 7.5 5 9 5.67 9 6.5 8.33 8 7.5 8zm4 0c-.83 0-1.5-.67-1.5-1.5S10.67 5 11.5 5s1.5.67 1.5 1.5S12.33 8 11.5 8z\"],\n \"comparison\": [\"M7.99-.01c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1v-14c0-.55-.45-1-1-1zm-3 3h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm10 0h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm0 3h-4v-2h4v2zm0 3h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm0 3h-4v-2h4v2zm-10-3h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1z\"],\n \"compass\": [\"M12 8c0 .14-.03.27-.08.39l-3 6.99c-.15.37-.51.62-.92.62s-.77-.25-.92-.61l-3-6.99a1.006 1.006 0 010-.79l3-6.99C7.23.25 7.59 0 8 0s.77.25.92.61l3 6.99c.05.13.08.26.08.4zM8 3.54L6.09 8h3.82L8 3.54z\"],\n \"compressed\": [\"M15.93 5.63v-.02L13.94.63C13.78.26 13.42 0 13 0H3c-.42 0-.78.26-.93.63L.08 5.61l-.01.02C.03 5.74 0 5.87 0 6v9c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V6c0-.13-.03-.26-.07-.37zM9 2h3.32l1.2 3H9V2zM3.68 2H7v3H2.48l1.2-3zM14 14H2V7h5v2.59l-1.29-1.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3a1.003 1.003 0 00-1.42-1.42L9 9.59V7h5v7z\"],\n \"confirm\": [\"M8.7 4.29a.965.965 0 00-.71-.3 1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l5-5a1.003 1.003 0 00-1.42-1.42l-4.29 4.3L8.7 4.29zm5.22 3.01c.03.23.07.45.07.69 0 3.31-2.69 6-6 6s-6-2.69-6-6 2.69-6 6-6c.81 0 1.59.17 2.3.46l1.5-1.5A7.998 7.998 0 00-.01 7.99c0 4.42 3.58 8 8 8s8-3.58 8-8c0-.83-.13-1.64-.36-2.39l-1.71 1.7z\"],\n \"console\": [\"M15 15H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h14c.55 0 1 .45 1 1v12c0 .55-.45 1-1 1zM14 5H2v8h12V5zM4 6c.28 0 .53.11.71.29l2 2c.18.18.29.43.29.71s-.11.53-.29.71l-2 2a1.003 1.003 0 01-1.42-1.42L4.59 9l-1.3-1.29A1.003 1.003 0 014 6zm5 4h3c.55 0 1 .45 1 1s-.45 1-1 1H9c-.55 0-1-.45-1-1s.45-1 1-1z\"],\n \"contrast\": [\"M15.2 6.4h-1.44c-.13-.47-.32-.92-.56-1.34L14.26 4c.31-.31.31-.82 0-1.13l-1.13-1.13a.803.803 0 00-1.13 0L10.94 2.8c-.42-.24-.86-.42-1.34-.56V.8c0-.44-.36-.8-.8-.8H7.2c-.44 0-.8.36-.8.8v1.44c-.5.14-.96.34-1.4.59l-1-1c-.3-.3-.79-.3-1.09 0L1.83 2.91c-.3.3-.3.79 0 1.09l1 1c-.25.44-.45.9-.59 1.4H.8c-.44 0-.8.36-.8.8v1.6c0 .44.36.8.8.8h1.44c.13.47.32.92.56 1.34L1.74 12c-.31.31-.31.82 0 1.13l1.13 1.13c.31.31.82.31 1.13 0l1.06-1.06c.42.24.86.42 1.34.56v1.44c0 .44.36.8.8.8h1.6c.44 0 .8-.36.8-.8v-1.44c.5-.14.96-.33 1.4-.59l1 1c.3.3.79.3 1.09 0l1.09-1.09c.3-.3.3-.79 0-1.09l-1-1c.25-.43.45-.9.59-1.4h1.44c.44 0 .8-.36.8-.8V7.2a.818.818 0 00-.81-.8zM8 12c-2.21 0-4-1.79-4-4s1.79-4 4-4v8z\"],\n \"control\": [\"M13 8H8v5h5V8zm0-5H8v4h5V3zm2-3H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2V2h12v12zM7 3H3v10h4V3z\"],\n \"credit-card\": [\"M14.99 2.95h-14c-.55 0-1 .45-1 1v1h16v-1c0-.55-.45-1-1-1zm-15 10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-6h-16v6zm5.5-2h5c.28 0 .5.22.5.5s-.22.5-.5.5h-5c-.28 0-.5-.22-.5-.5s.23-.5.5-.5zm-3 0h1c.28 0 .5.22.5.5s-.22.5-.5.5h-1c-.28 0-.5-.22-.5-.5s.23-.5.5-.5z\"],\n \"cross\": [\"M9.41 8l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L8 6.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42L6.59 8 3.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L8 9.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L9.41 8z\"],\n \"crown\": [\"M2 6l3 2 3-4 3 4 3-2-1 6H3L2 6zm6-5a1 1 0 110 2 1 1 0 010-2zM1 3a1 1 0 110 2 1 1 0 010-2zm14 0a1 1 0 110 2 1 1 0 010-2zM3 13h10v2H3v-2z\"],\n \"cube\": [\"M14.194 3.54L8 7.41 1.806 3.54 7.504.283a1 1 0 01.992 0l5.698 3.255zm.75.71a1 1 0 01.056.33v6.84a1 1 0 01-.504.868L8.5 15.714V8.277l6.444-4.027zm-13.888 0L7.5 8.277v7.437l-5.996-3.426A1 1 0 011 11.42V4.58a1 1 0 01.056-.33z\"],\n \"cube-add\": [\"M14 2h1a1 1 0 010 2h-1v1a1 1 0 01-2 0V4h-1a1 1 0 010-2h1V1a1 1 0 012 0v1zM9.136.65a3.001 3.001 0 00.992 5.222c.018.058.038.115.059.172L8 7.41 1.806 3.54 7.504.283a1 1 0 01.992 0l.64.365zM15 7.235v4.184a1 1 0 01-.504.868L8.5 15.714V8.277l2.187-1.367A2.994 2.994 0 0013 8c.768 0 1.47-.289 2-.764zM1.056 4.25L7.5 8.277v7.437l-5.996-3.426A1 1 0 011 11.42V4.58a1 1 0 01.056-.33z\"],\n \"cube-remove\": [\"M10.365 5.933L8 7.41 1.806 3.54 7.504.283a1 1 0 01.992 0l.64.365a3.001 3.001 0 001.228 5.283zM15 6v5.42a1 1 0 01-.504.868L8.5 15.714V8.277L12.143 6H15zM1.056 4.25L7.5 8.277v7.437l-5.996-3.426A1 1 0 011 11.42V4.58a1 1 0 01.056-.33zM11 2h4a1 1 0 010 2h-4a1 1 0 010-2z\"],\n \"curved-range-chart\": [\"M15 12H3.12l1.81-1.39c1.73 1.01 5.53-.03 9.08-2.61l-1.22-1.5C10.3 8.3 7.86 9.37 6.65 9.29L14.3 3.4l-.6-.8-7.83 6.03c-.01-1.07 1.8-3.19 4.47-5.13L9.12 2C5.38 4.7 3.34 8.1 4.25 9.87L2 11.6V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"cut\": [\"M13 2s.71-1.29 0-2L8.66 5.07l1.05 1.32L13 2zm.07 8c-.42 0-.82.09-1.18.26L3.31 0c-.69.71 0 2 0 2l3.68 5.02-2.77 3.24A2.996 2.996 0 000 13c0 1.66 1.34 3 3 3s3-1.34 3-3c0-.46-.11-.89-.29-1.27L8.1 8.54l2.33 3.19c-.18.39-.29.82-.29 1.27 0 1.66 1.31 3 2.93 3S16 14.66 16 13s-1.31-3-2.93-3zM3 14c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm10.07 0c-.54 0-.98-.45-.98-1s.44-1 .98-1 .98.45.98 1-.44 1-.98 1z\"],\n \"cycle\": [\"M13 9a3 3 0 110 6 3 3 0 010-6zM3 9a3 3 0 110 6 3 3 0 010-6zm6.169-5.27l.087.09 1.51 1.746 1.589.549a1 1 0 01.65 1.16l-.032.112a1 1 0 01-1.159.65l-.112-.032-1.843-.636a1 1 0 01-.337-.198l-.092-.093-.959-1.109L7.041 7.5l1.691 1.819a1 1 0 01.26.556L9 10v3a1 1 0 01-1.993.117L7 13l-.001-2.608-2.056-2.211a1 1 0 01-.081-1.264l.082-.1 2.825-3.026a1 1 0 011.4-.061zM13 10.5a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm-10 0a1.5 1.5 0 100 3 1.5 1.5 0 000-3zM11 1a1.5 1.5 0 110 3 1.5 1.5 0 010-3z\"],\n \"dashboard\": [\"M5 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM4 7c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4-2c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-2 6c0 1.1.9 2 2 2s2-.9 2-2c0-.53-2-5-2-5s-2 4.47-2 5zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm4-9c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zm0 2c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z\"],\n \"data-connection\": [\"M1 9.52c.889.641 2.308 1.133 4.003 1.354L5 11a5.994 5.994 0 002.664 4.988c-.217.008-.44.012-.664.012-3.215 0-5.846-.85-5.993-1.906L1 14V9.52zM11 6c2.762 0 5 2.238 5 5s-2.238 5-5 5-5-2.238-5-5 2.238-5 5-5zm1 1l-4 5h2.5l-.5 3 4-5h-2.5l.5-3zm1-3.48v1.822a6.002 6.002 0 00-7.9 4.556l-.248-.03c-2.168-.28-3.733-.966-3.845-1.774L1 8V3.52C2.22 4.4 4.44 5 7 5s4.78-.6 6-1.48zM7 0c3.31 0 6 .9 6 2s-2.69 2-6 2c-3.32 0-6-.9-6-2s2.68-2 6-2z\"],\n \"data-lineage\": [\"M1.067 0C.477 0 0 .478 0 1.067V3.2c0 .59.478 1.067 1.067 1.067h2.24a5.342 5.342 0 002.9 3.734 5.337 5.337 0 00-2.9 3.733h-2.24C.477 11.733 0 12.21 0 12.8v2.133C0 15.523.478 16 1.067 16H6.4c.59 0 1.067-.478 1.067-1.067V12.8c0-.59-.478-1.067-1.067-1.067H4.401a4.27 4.27 0 013.92-3.194l.212-.006V9.6c0 .59.478 1.067 1.067 1.067h5.333c.59 0 1.067-.478 1.067-1.067V6.4c0-.59-.478-1.067-1.067-1.067H9.6c-.59 0-1.067.478-1.067 1.067v1.067a4.268 4.268 0 01-4.132-3.2H6.4c.59 0 1.067-.478 1.067-1.067V1.067C7.467.477 6.989 0 6.4 0H1.067z\"],\n \"database\": [\"M8 4c3.31 0 6-.9 6-2s-2.69-2-6-2C4.68 0 2 .9 2 2s2.68 2 6 2zm-6-.48V8c0 1.1 2.69 2 6 2s6-.9 6-2V3.52C12.78 4.4 10.56 5 8 5s-4.78-.6-6-1.48zm0 6V14c0 1.1 2.69 2 6 2s6-.9 6-2V9.52C12.78 10.4 10.56 11 8 11s-4.78-.6-6-1.48z\"],\n \"delete\": [\"M11.99 4.99a1.003 1.003 0 00-1.71-.71l-2.29 2.3L5.7 4.29a.965.965 0 00-.71-.3 1.003 1.003 0 00-.71 1.71l2.29 2.29-2.29 2.29A1.003 1.003 0 005.7 11.7l2.29-2.29 2.29 2.29a1.003 1.003 0 001.42-1.42L9.41 7.99 11.7 5.7c.18-.18.29-.43.29-.71zm-4-5c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.68 6-6 6z\"],\n \"delta\": [\"M8 0L0 16h16L8 0zM7 5l5 10H2L7 5z\"],\n \"derive-column\": [\"M6.08 6.67h-.84c.24-.92.56-1.6.96-2.03.24-.27.48-.4.71-.4.05 0 .08.01.11.04s.04.06.04.1c0 .04-.03.11-.1.21-.06.1-.1.2-.1.29 0 .13.05.24.15.33.1.09.23.14.39.14.17 0 .31-.06.42-.17A.58.58 0 008 4.73c0-.22-.09-.39-.26-.53-.17-.13-.44-.2-.81-.2-.59 0-1.12.16-1.59.48-.48.32-.93.85-1.36 1.59-.15.26-.29.42-.42.49s-.35.11-.64.1l-.19.65h.81l-1.19 4.37c-.2.72-.33 1.16-.4 1.33-.1.24-.26.45-.46.62-.08.07-.18.1-.3.1-.03 0-.06-.01-.08-.03l-.03-.04c0-.02.03-.06.09-.11.06-.06.09-.14.09-.26 0-.13-.05-.23-.14-.32a.6.6 0 00-.4-.13c-.21 0-.38.05-.51.16s-.21.25-.21.4c0 .16.08.3.23.42.16.12.4.18.74.18.53 0 .99-.13 1.4-.39.41-.26.76-.65 1.07-1.19.3-.54.62-1.4.94-2.59l.68-2.53h.82l.2-.63zM15 0H8c-.55 0-1 .45-1 1v2h2V2h5v12H9v-1H7v2c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM8.3 9.94c.18.52.33.89.46 1.13.13.24.28.4.44.51.17.1.37.16.62.16.24 0 .49-.08.74-.25.33-.21.66-.58 1.01-1.09l-.21-.11c-.23.31-.41.5-.52.57a.44.44 0 01-.26.07c-.12 0-.24-.07-.36-.21-.2-.24-.46-.91-.8-2 .3-.49.55-.81.75-.96.15-.11.3-.16.47-.16.06 0 .17.02.34.06.16.04.31.06.43.06.17 0 .31-.06.43-.17.1-.11.16-.25.16-.43 0-.19-.06-.33-.17-.44-.12-.11-.28-.16-.49-.16-.19 0-.37.04-.54.13-.17.09-.39.27-.65.56-.2.21-.48.58-.87 1.11-.15-.66-.41-1.26-.78-1.81l-2.05.33-.04.21c.15-.03.28-.04.39-.04.2 0 .37.08.5.25.21.26.5 1.03.88 2.33-.29.37-.49.61-.6.72-.18.18-.33.3-.44.36-.09.04-.19.07-.3.07-.09 0-.23-.04-.42-.13a.866.866 0 00-.36-.09c-.2 0-.36.06-.49.18a.59.59 0 00-.19.46c0 .17.06.32.18.43.12.11.28.16.48.16.2 0 .38-.04.55-.11.17-.08.39-.24.65-.49.24-.27.6-.66 1.06-1.21z\"],\n \"desktop\": [\"M15 0H1C.45 0 0 .45 0 1v10c0 .55.45 1 1 1h4.75l-.5 2H4c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1h-1.25l-.5-2H15c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 10H2V2h12v8z\"],\n \"diagnosis\": [\"M3.2 1a1 1 0 01.117 1.993L3.2 3H3v3a2 2 0 001.85 1.995L5 8a2 2 0 001.995-1.85L7 6V3h-.2a1 1 0 01-.993-.883L5.8 2a1 1 0 01.883-.993L6.8 1H8a1 1 0 01.993.883L9 2v4a4.002 4.002 0 01-3.007 3.876v.007L6 10a3 3 0 005.995.176L12 10V7.792a2.5 2.5 0 112 0V10a5 5 0 01-10 0c0-.042.003-.084.008-.125A4 4 0 011.005 6.2L1 6V2a1 1 0 01.883-.993L2 1h1.2z\"],\n \"diagram-tree\": [\"M15 8v3h-2V9H9v2H7V9H3v2H1V8a1 1 0 011-1h5V5h2v2h5a1 1 0 011 1zM1 12h2a1 1 0 011 1v2a1 1 0 01-1 1H1a1 1 0 01-1-1v-2a1 1 0 011-1zm12 0h2a1 1 0 011 1v2a1 1 0 01-1 1h-2a1 1 0 01-1-1v-2a1 1 0 011-1zm-6 0h2a1 1 0 011 1v2a1 1 0 01-1 1H7a1 1 0 01-1-1v-2a1 1 0 011-1zM7 0h2a1 1 0 011 1v2a1 1 0 01-1 1H7a1 1 0 01-1-1V1a1 1 0 011-1z\"],\n \"direction-left\": [\"M16 1.99l-16 6 16 6-4-6z\"],\n \"direction-right\": [\"M16 7.99l-16-6 4 6-4 6z\"],\n \"disable\": [\"M7.99-.01c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm-6 8c0-3.31 2.69-6 6-6 1.3 0 2.49.42 3.47 1.12l-8.35 8.35c-.7-.98-1.12-2.17-1.12-3.47zm6 6c-1.3 0-2.49-.42-3.47-1.12l8.35-8.35c.7.98 1.12 2.17 1.12 3.47 0 3.32-2.68 6-6 6z\"],\n \"document\": [\"M9 0H3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V5L9 0zm3 14H4V2h4v4h4v8z\"],\n \"document-open\": [\"M6 12c0 .55.45 1 1 1s1-.45 1-1V8c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1s.45 1 1 1h1.59L1.3 12.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L6 10.41V12zm4-12H4c-.55 0-1 .45-1 1v4h2V2h4v4h4v8H5.24l-1.8 1.8c.16.12.35.2.56.2h10c.55 0 1-.45 1-1V5l-5-5z\"],\n \"document-share\": [\"M10 14H2V2h4v4h1c0-.83.36-1.55.91-2.09l-.03-.03.9-.9C8.3 2.45 8 1.77 8 1L7 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V8.22c-.53.48-1.23.78-2 .78v5zm5-14h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59l-3.3 3.29a1.003 1.003 0 001.42 1.42L14 3.41V5c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"dollar\": [\"M12.83 9.51c-.1-.3-.25-.58-.45-.84s-.45-.49-.75-.7c-.3-.2-.65-.36-1.05-.48-.16-.04-.43-.11-.8-.2-.35-.09-.73-.18-1.12-.28-.39-.1-.74-.19-1.06-.27-.31-.08-.49-.12-.54-.13-.43-.12-.78-.29-1.05-.52-.27-.23-.4-.55-.4-.95 0-.29.07-.53.21-.72.14-.19.32-.34.54-.46.22-.11.46-.19.72-.24.26-.05.52-.08.77-.08.74 0 1.35.15 1.83.46.48.3.75.83.81 1.56h2.14c0-.6-.13-1.13-.38-1.58-.25-.45-.59-.84-1.02-1.15-.43-.31-.93-.54-1.49-.7-.24-.06-.49-.1-.75-.14V1c0-.55-.45-1-1-1s-1 .45-1 1v1.08c-.23.03-.46.07-.68.13-.54.13-1.02.34-1.44.61-.42.28-.76.63-1.02 1.05-.26.43-.39.93-.39 1.5 0 .3.04.59.13.88.09.29.23.56.44.82.21.26.48.49.83.7.35.21.79.38 1.31.51.85.21 1.56.38 2.14.52.58.13 1.08.28 1.52.42.25.09.48.23.69.44.21.21.32.53.32.97 0 .21-.05.42-.14.63-.09.21-.24.39-.45.55-.21.16-.47.29-.81.39-.33.1-.73.15-1.2.15-.43 0-.84-.05-1.21-.14-.37-.09-.7-.24-.99-.43-.29-.2-.51-.45-.67-.76-.16-.31-.24-.68-.24-1.12H3c.01.71.15 1.32.43 1.84.27.52.64.94 1.1 1.27.46.33.99.58 1.61.74.27.07.56.12.85.16V15c0 .55.45 1 1 1s1-.45 1-1v-1.05c.3-.03.61-.08.9-.15.58-.13 1.1-.34 1.56-.63.46-.29.83-.66 1.11-1.11.28-.45.42-1 .42-1.64 0-.31-.05-.61-.15-.91z\"],\n \"dot\": [\"M8 5a3 3 0 100 6 3 3 0 100-6z\"],\n \"double-caret-horizontal\": [\"M13.71 7.29l-3-3A1.003 1.003 0 009 5v6a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM6 4c-.28 0-.53.11-.71.29l-3 3C2.11 7.47 2 7.72 2 8c0 .28.11.53.29.71l3 3A1.003 1.003 0 007 11V5c0-.55-.45-1-1-1z\"],\n \"double-caret-vertical\": [\"M5 7h6a1.003 1.003 0 00.71-1.71l-3-3C8.53 2.11 8.28 2 8 2s-.53.11-.71.29l-3 3A1.003 1.003 0 005 7zm6 2H5a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0011 9z\"],\n \"double-chevron-down\": [\"M7.29 8.71c.18.18.43.29.71.29s.53-.11.71-.29l4-4a1.003 1.003 0 00-1.42-1.42L8 6.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4zM12 8c-.28 0-.53.11-.71.29L8 11.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0012 8z\"],\n \"double-chevron-left\": [\"M4.41 8L7.7 4.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C2.11 7.47 2 7.72 2 8c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L4.41 8zm5 0l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C7.11 7.47 7 7.72 7 8c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L9.41 8z\"],\n \"double-chevron-right\": [\"M9 8c0-.28-.11-.53-.29-.71l-4-4a1.003 1.003 0 00-1.42 1.42L6.59 8 3.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4C8.89 8.53 9 8.28 9 8zm4.71-.71l-4-4a1.003 1.003 0 00-1.42 1.42L11.59 8 8.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"double-chevron-up\": [\"M4 8c.28 0 .53-.11.71-.29L8 4.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4C8.53 2.11 8.28 2 8 2s-.53.11-.71.29l-4 4A1.003 1.003 0 004 8zm4.71-.71C8.53 7.11 8.28 7 8 7s-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L8 9.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4z\"],\n \"doughnut-chart\": [\"M11.86 7h4.05C15.45 3.39 12.61.52 9 .07v4.07A4 4 0 0111.86 7zM12 8c0 2.21-1.79 4-4 4s-4-1.79-4-4 1.79-4 4-4V0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8h-4z\"],\n \"download\": [\"M7.99-.01c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zM11.7 9.7l-3 3c-.18.18-.43.29-.71.29s-.53-.11-.71-.29l-3-3A1.003 1.003 0 015.7 8.28l1.29 1.29V3.99c0-.55.45-1 1-1s1 .45 1 1v5.59l1.29-1.29a1.003 1.003 0 011.71.71c0 .27-.11.52-.29.7z\"],\n \"drag-handle-horizontal\": [\"M2 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm8-2c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 2c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-4-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM6 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z\"],\n \"drag-handle-vertical\": [\"M6 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4-6c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zM6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4 8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z\"],\n \"draw\": [\"M14.9 11c-.3 0-.5.1-.7.3l-3 3c-.2.2-.3.4-.3.7 0 .6.5 1 1 1 .3 0 .5-.1.7-.3l3-3c.2-.2.3-.4.3-.7 0-.5-.4-1-1-1zm-1-1v-.2l-1-5c-.1-.3-.3-.6-.6-.7l-11-4-.3.3 5.8 5.8c.2-.1.4-.2.6-.2.8 0 1.5.7 1.5 1.5S8.3 9 7.4 9s-1.5-.7-1.5-1.5c0-.2.1-.4.2-.6L.3 1.1l-.3.3 4 11c.1.3.4.6.7.6l5 1h.2c.3 0 .5-.1.7-.3l3-3c.2-.2.3-.4.3-.7z\"],\n \"drawer-left\": [\"M7 0a1 1 0 011 1v14a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1h6zM6 2H2v12h4V2zm2 5h4.59L11.3 5.71A.965.965 0 0111 5a1.003 1.003 0 011.71-.71l3 3c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-3 3a1.003 1.003 0 01-1.42-1.42L12.59 9H8V7z\"],\n \"drawer-left-filled\": [\"M1 0h6a1 1 0 011 1v14a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1zm7 7h4.59L11.3 5.71A.965.965 0 0111 5a1.003 1.003 0 011.71-.71l3 3c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-3 3a1.003 1.003 0 01-1.42-1.42L12.59 9H8V7z\"],\n \"drawer-right\": [\"M15 0a1 1 0 011 1v14a1 1 0 01-1 1H9a1 1 0 01-1-1V1a1 1 0 011-1h6zm-1 2h-4v12h4V2zM8 7H3.41L4.7 5.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L3.41 9H8V7z\"],\n \"drawer-right-filled\": [\"M9 0h6a1 1 0 011 1v14a1 1 0 01-1 1H9a1 1 0 01-1-1V1a1 1 0 011-1zM8 7H3.41L4.7 5.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L3.41 9H8V7z\"],\n \"drive-time\": [\"M15.12 4.76h-1.05l-.76-2.12c-.19-.53-.76-1.08-1.27-1.24 0 0-1.32-.4-4.04-.4-2.72 0-4.04.4-4.04.4-.5.16-1.07.71-1.26 1.24l-.77 2.12H.88c-.48 0-.88.42-.88.94s.4.94.88.94h.38L1 7c-.03.69 0 1.44 0 2v5c0 .66.38 1 1 1s1-.34 1-1v-1h10v1c0 .66.38 1 1 1s1-.34 1-1V9c0-.56-.01-1.37 0-2l-.26-.37h.38c.48 0 .88-.42.88-.93 0-.52-.4-.94-.88-.94zM5 10H3V8h2v2zm8 0h-2V8h2v2zm0-4H3c-.18 0-.06-.82 0-1l.73-1.63C3.79 3.19 3.82 3 4 3h8c.18 0 .21.19.27.37L13 5c.06.18.18 1 0 1z\"],\n \"duplicate\": [\"M15 0H5c-.55 0-1 .45-1 1v2h2V2h8v7h-1v2h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-4 4H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 10H2V6h8v8z\"],\n \"edit\": [\"M3.25 10.26l2.47 2.47 6.69-6.69-2.46-2.48-6.7 6.7zM.99 14.99l3.86-1.39-2.46-2.44-1.4 3.83zm12.25-14c-.48 0-.92.2-1.24.51l-1.44 1.44 2.47 2.47 1.44-1.44c.32-.32.51-.75.51-1.24.01-.95-.77-1.74-1.74-1.74z\"],\n \"eject\": [\"M4 9h8a1.003 1.003 0 00.71-1.71l-4-4C8.53 3.11 8.28 3 8 3s-.53.11-.71.29l-4 4A1.003 1.003 0 004 9zm8 1H4c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1z\"],\n \"emoji\": [\"M8 0a8 8 0 110 16A8 8 0 018 0zm0 1a7 7 0 100 14A7 7 0 008 1zM4 8c.228 2.262 2 4 4 4 1.938 0 3.77-1.738 3.984-3.8L12 8h1c-.128 2.888-2.317 5-5 5a5 5 0 01-4.995-4.783L3 8h1zm2-3a1 1 0 110 2 1 1 0 010-2zm4 0a1 1 0 110 2 1 1 0 010-2z\"],\n \"endorsed\": [\"M15.86 7.5l-.81-1.42V4.5c0-.36-.19-.68-.49-.87l-1.37-.8-.81-1.41c-.19-.31-.51-.49-.86-.49H9.89L8.5.14a.948.948 0 00-1 0l-1.39.8H4.52a1 1 0 00-.86.49l-.8 1.37-1.44.83c-.3.19-.49.51-.49.87v1.65l-.8 1.37c-.08.15-.13.32-.13.49s.05.34.14.49l.8 1.37v1.65c0 .36.19.68.49.87l1.42.81.8 1.37c.19.31.51.49.86.49H6.1l1.39.8c.15.09.32.14.48.14s.34-.05.49-.14l1.39-.8h1.63a1 1 0 00.86-.49l.81-1.41 1.37-.8c.3-.19.49-.51.49-.87V9.93l.81-1.42a.89.89 0 00.04-1.01zm-4.12-.82l-4.01 4.01c-.18.18-.43.29-.71.29s-.53-.11-.71-.29l-2-2c-.18-.19-.3-.44-.3-.71a1.003 1.003 0 011.71-.71l1.3 1.3 3.3-3.3a1.003 1.003 0 011.71.71.95.95 0 01-.29.7z\"],\n \"envelope\": [\"M0 3.06v9.88L4.94 8 0 3.06zM14.94 2H1.06L8 8.94 14.94 2zm-6.41 8.53c-.14.14-.32.22-.53.22s-.39-.08-.53-.22L6 9.06 1.06 14h13.88L10 9.06l-1.47 1.47zM11.06 8L16 12.94V3.06L11.06 8z\"],\n \"equals\": [\"M3 5h10a1 1 0 010 2H3a1 1 0 110-2zm0 4h10a1 1 0 010 2H3a1 1 0 010-2z\"],\n \"eraser\": [\"M8.06 13.91l7.63-7.44c.41-.4.41-1.05 0-1.45L10.86.3c-.41-.4-1.08-.4-1.49 0L.31 9.13c-.41.4-.41 1.05 0 1.45l5.58 5.44h8.12v-.01c.55 0 1-.45 1-1s-.45-1-1-1H7.96l.1-.1zm-2.17.06L1.67 9.85l4.22-4.11 4.22 4.11-4.22 4.12z\"],\n \"error\": [\"M7.99-.01c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm1 13h-2v-2h2v2zm0-3h-2v-7h2v7z\"],\n \"euro\": [\"M6.52 3.18c.51-.27 1.12-.4 1.83-.4.48 0 .91.06 1.27.18.37.12.68.29.96.51.18.14.3.33.44.51l1.53-1.53c-.12-.11-.23-.22-.36-.32a5.61 5.61 0 00-1.74-.83c-.66-.2-1.36-.3-2.1-.3-.99 0-1.88.18-2.66.53-.79.35-1.45.82-2 1.41-.55.58-.96 1.27-1.26 2.06H2c-.55 0-1 .45-1 1s.45 1 1 1h.04c-.01.17-.04.33-.04.5 0 .17.03.33.04.5H2c-.55 0-1 .45-1 1s.45 1 1 1h.43c0 .01 0 .02.01.02a6.2 6.2 0 001.25 2.07 5.77 5.77 0 002 1.4c.78.34 1.67.51 2.66.51.81 0 1.54-.12 2.21-.36.67-.24 1.25-.59 1.75-1.03l.03-.03-1.55-1.33c-.01.01-.02.03-.03.04-.29.3-.63.53-1.02.69-.4.17-.85.25-1.37.25-.71 0-1.32-.13-1.83-.4s-.93-.62-1.25-1.07c-.19-.24-.34-.49-.46-.76H9c.55 0 1-.45 1-1s-.45-1-1-1H4.35c-.01-.17-.03-.33-.03-.5 0-.17.02-.34.03-.5H10c.55 0 1-.45 1-1s-.45-1-1-1H4.83c.13-.27.27-.52.44-.76.32-.44.74-.8 1.25-1.06zM14 8.98v0z\"],\n \"exchange\": [\"M1.99 5.99c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.89-2-2-2zm4.15 1.86a.495.495 0 10.7-.7L5.7 5.99h5.79c.28 0 .5-.22.5-.5s-.22-.5-.5-.5H5.7l1.15-1.15a.495.495 0 10-.7-.7l-2 2c-.1.09-.16.21-.16.35s.06.26.15.35l2 2.01zm7.85-1.86c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.89-2-2-2zM9.85 8.14a.533.533 0 00-.36-.15.495.495 0 00-.35.85l1.15 1.15h-5.8c-.28 0-.5.22-.5.5s.22.5.5.5h5.79l-1.15 1.15a.495.495 0 10.7.7l2-2c.09-.09.15-.22.15-.35s-.06-.26-.15-.35l-1.98-2z\"],\n \"exclude-row\": [\"M0 10a1.003 1.003 0 001.71.71L3 9.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L4.41 8 5.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L3 6.59l-1.29-1.3A1.003 1.003 0 00.29 6.71L1.59 8 .29 9.29C.11 9.47 0 9.72 0 10zm1-7h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 10H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm-1-7H9c-1.1 0-2 .9-2 2s.9 2 2 2h5c1.1 0 2-.9 2-2s-.9-2-2-2z\"],\n \"expand-all\": [\"M4 7c.28 0 .53-.11.71-.29L8 3.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4C8.53 1.11 8.28 1 8 1s-.53.11-.71.29l-4 4A1.003 1.003 0 004 7zm8 2c-.28 0-.53.11-.71.29L8 12.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0012 9z\"],\n \"export\": [\"M4 6c.28 0 .53-.11.71-.29L7 3.41V11c0 .55.45 1 1 1s1-.45 1-1V3.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4C8.53.11 8.28 0 8 0s-.53.11-.71.29l-4 4A1.003 1.003 0 004 6zm11 5c-.55 0-1 .45-1 1v2H2v-2c0-.55-.45-1-1-1s-1 .45-1 1v3c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1z\"],\n \"eye-off\": [\"M16 7.97v-.02-.01-.02-.02a.672.672 0 00-.17-.36c-.49-.63-1.07-1.2-1.65-1.72l-3.16 2.26a2.978 2.978 0 01-2.98 2.9c-.31 0-.6-.06-.88-.15L5.09 12.3c.44.19.9.36 1.37.47.97.23 1.94.24 2.92.05.88-.17 1.74-.54 2.53-.98 1.25-.7 2.39-1.67 3.38-2.75.18-.2.37-.41.53-.62.09-.1.15-.22.17-.36v-.02-.02-.01-.02-.03c.01-.02.01-.03.01-.04zm-.43-4.17c.25-.18.43-.46.43-.8 0-.55-.45-1-1-1-.22 0-.41.08-.57.2l-.01-.01-2.67 1.91c-.69-.38-1.41-.69-2.17-.87a6.8 6.8 0 00-2.91-.05c-.88.18-1.74.54-2.53.99-1.25.7-2.39 1.67-3.38 2.75-.18.2-.37.41-.53.62-.23.29-.23.63-.01.92.51.66 1.11 1.25 1.73 1.79.18.16.38.29.56.44l-2.09 1.5.01.01c-.25.18-.43.46-.43.8 0 .55.45 1 1 1 .22 0 .41-.08.57-.2l.01.01 14-10-.01-.01zm-10.41 5a3.03 3.03 0 01-.11-.8 2.99 2.99 0 012.99-2.98c.62 0 1.19.21 1.66.53L5.16 8.8z\"],\n \"eye-on\": [\"M10.29 6.7c.18.18.43.29.71.29s.53-.11.71-.29l4-4c.17-.18.29-.43.29-.7a1.003 1.003 0 00-1.71-.71L11 4.58 9.71 3.29A.997.997 0 009 3c-.55 0-1 .44-1 1a1 1 0 00.3.7l1.99 2zM16 7.96v-.02-.01-.02-.02a.64.64 0 00-.17-.36c-.3-.4-.65-.76-1-1.12l-1.7 1.7c-.55.55-1.3.88-2.13.88-.06 0-.11-.01-.17-.02C10.42 10.15 9.32 11 8.01 11A3.005 3.005 0 016.4 5.46c-.24-.43-.39-.93-.39-1.46 0-.26.04-.5.1-.74-.7.2-1.37.5-2.01.86-1.26.7-2.4 1.68-3.4 2.77-.18.21-.36.41-.53.63-.22.29-.22.64 0 .93.51.67 1.12 1.27 1.73 1.81 1.33 1.17 2.85 2.15 4.53 2.55.97.23 1.95.24 2.92.05.89-.18 1.74-.54 2.54-.99 1.25-.71 2.4-1.69 3.39-2.78.18-.2.37-.41.54-.63.09-.1.15-.23.17-.37v-.02-.02-.01-.02-.03c.01-.01.01-.02.01-.03zM8.01 9c.48 0 .87-.35.96-.81a.55.55 0 01-.07-.09l-.02.01L7.8 7.03c-.45.1-.79.48-.79.96 0 .56.45 1.01 1 1.01z\"],\n \"eye-open\": [\"M8.002 7.003a1.003 1.003 0 000 2.005 1.003 1.003 0 000-2.005zm7.988.972v-.02-.01-.02-.02a.675.675 0 00-.17-.36c-.509-.673-1.118-1.264-1.737-1.806-1.328-1.173-2.846-2.155-4.523-2.546a6.702 6.702 0 00-2.925-.06c-.889.18-1.738.541-2.546.992C2.84 4.837 1.692 5.81.694 6.902c-.18.211-.36.411-.53.632a.742.742 0 000 .932c.51.672 1.119 1.264 1.738 1.805 1.328 1.173 2.846 2.156 4.523 2.547.968.23 1.947.24 2.925.04.889-.18 1.738-.542 2.546-.993 1.248-.712 2.397-1.684 3.395-2.777.18-.2.37-.411.54-.632.09-.1.149-.23.169-.36v-.02-.02-.01-.02-.03c0-.01-.01-.01-.01-.02zm-7.988 3.038a2.998 2.998 0 01-2.995-3.008 2.998 2.998 0 012.995-3.008 2.998 2.998 0 012.996 3.008 2.998 2.998 0 01-2.996 3.008z\"],\n \"fast-backward\": [\"M14 3c-.24 0-.44.09-.62.23l-.01-.01L9 6.72V4c0-.55-.45-1-1-1-.24 0-.44.09-.62.23v-.01l-5 4 .01.01C2.16 7.41 2 7.68 2 8s.16.59.38.77v.01l5 4 .01-.01c.17.14.37.23.61.23.55 0 1-.45 1-1V9.28l4.38 3.5.01-.01c.17.14.37.23.61.23.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"fast-forward\": [\"M15 8c0-.32-.16-.59-.38-.77l.01-.01-5-4-.01.01A.987.987 0 009 3c-.55 0-1 .45-1 1v2.72l-4.38-3.5v.01A.987.987 0 003 3c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1 .24 0 .44-.09.62-.23l.01.01L8 9.28V12c0 .55.45 1 1 1 .24 0 .44-.09.62-.23l.01.01 5-4-.01-.01c.22-.18.38-.45.38-.77z\"],\n \"feed\": [\"M1.99 11.99c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.89-2-2-2zm1-4c-.55 0-1 .45-1 1s.45 1 1 1c1.66 0 3 1.34 3 3 0 .55.45 1 1 1s1-.45 1-1c0-2.76-2.24-5-5-5zm0-4c-.55 0-1 .45-1 1s.45 1 1 1c3.87 0 7 3.13 7 7 0 .55.45 1 1 1s1-.45 1-1a9 9 0 00-9-9zm0-4c-.55 0-1 .45-1 1s.45 1 1 1c6.08 0 11 4.92 11 11 0 .55.45 1 1 1s1-.45 1-1c0-7.18-5.82-13-13-13z\"],\n \"feed-subscribed\": [\"M3 2c1.06 0 2.08.16 3.06.45.13-.71.52-1.32 1.05-1.76C5.82.25 4.44 0 3 0c-.55 0-1 .45-1 1s.45 1 1 1zM2 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm8.32-6.33a.99.99 0 001.4 0l3.98-3.98c.19-.18.3-.42.3-.7 0-.55-.45-.99-1-.99-.28 0-.52.11-.7.29l-3.28 3.28-1.29-1.29a.99.99 0 00-.7-.29 1 1 0 00-1 .99c0 .27.11.52.29.7l2 1.99zm3.73.53l-.93.93-.02-.02c-.17.17-.35.33-.56.45C13.47 9.16 14 11.02 14 13c0 .55.45 1 1 1s1-.45 1-1c0-2.5-.73-4.82-1.95-6.8zM3 8c-.55 0-1 .45-1 1s.45 1 1 1c1.66 0 3 1.34 3 3 0 .55.45 1 1 1s1-.45 1-1c0-2.76-2.24-5-5-5zm5.91-.91l-.03.03-2-2 .03-.03c-.11-.11-.23-.2-.33-.33A8.9 8.9 0 003 4c-.55 0-1 .45-1 1s.45 1 1 1c3.87 0 7 3.13 7 7 0 .55.45 1 1 1s1-.45 1-1c0-1.87-.57-3.61-1.55-5.06-.61-.11-1.13-.42-1.54-.85z\"],\n \"film\": [\"M15 1h-5v2H6V1H1c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h5v-2h4v2h5c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM4 13H2v-2h2v2zm0-3H2V8h2v2zm0-3H2V5h2v2zm0-3H2V2h2v2zm6 6H6V5h4v5zm4 3h-2v-2h2v2zm0-3h-2V8h2v2zm0-3h-2V5h2v2zm0-3h-2V2h2v2z\"],\n \"filter\": [\"M13.99.99h-12a1.003 1.003 0 00-.71 1.71l4.71 4.71V14a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71V7.41L14.7 2.7a1.003 1.003 0 00-.71-1.71z\"],\n \"filter-keep\": [\"M15 10c-.28 0-.53.11-.71.29L12 12.59l-1.29-1.29A.965.965 0 0010 11a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0015 10zm-3-8c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L4 6.41V12a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71V6.41l3.71-3.71c.18-.17.29-.42.29-.7z\"],\n \"filter-list\": [\"M9 8c0 .55.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1h-5c-.55 0-1 .45-1 1zm3-6c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L4 6.41V12a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71V6.41l3.71-3.71c.18-.17.29-.42.29-.7zm3 8h-5c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm0 3h-5c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"filter-open\": [\"M15.707 10.293a1 1 0 010 1.414l-3 3c-.63.63-1.707.184-1.707-.707V8c0-.89 1.077-1.337 1.707-.707l3 3zM12 2c0 .28-.11.53-.29.7L8 6.41V10c0 .28-.11.53-.29.71l-2 2A1.003 1.003 0 014 12V6.41L.29 2.71A1.003 1.003 0 011 1h10c.55 0 1 .45 1 1z\"],\n \"filter-remove\": [\"M12 2c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L4 6.41V12a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71V6.41l3.71-3.71c.18-.17.29-.42.29-.7zm2.41 10l1.29-1.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L13 10.59 11.71 9.3A.965.965 0 0011 9a1.003 1.003 0 00-.71 1.71l1.3 1.29-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l1.29-1.3 1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L14.41 12z\"],\n \"flag\": [\"M2.99 2.99c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1s1-.45 1-1v-11c0-.55-.45-1-1-1zm0-3c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm2 3.03v7.23c2.07-2.11 5.92 1.75 9 0V3.02c-3 2.07-6.94-2.03-9 0z\"],\n \"flame\": [\"M9.217 0c0 1.368.368 2.462 1.104 3.282C12.774 5.197 14 7.385 14 9.846c0 2.735-1.472 4.786-4.415 6.154 2.165-2.4 1.84-3.385-.368-6.4-2.342 1.2-1.967 2-1.592 3.6-.786 0-1.5 0-1.875-.4 0 .547.898 2 1.464 3.2-2.943-.82-6.092-5.744-4.988-6.154.736-.273 1.594-.137 2.575.41C3.575 5.333 5.047 1.915 9.217 0z\"],\n \"flash\": [\"M4 8c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1h2c.55 0 1-.45 1-1zm4-4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1S7 .45 7 1v2c0 .55.45 1 1 1zM3.79 5.21a1.003 1.003 0 001.42-1.42l-1.5-1.5a1.003 1.003 0 00-1.42 1.42l1.5 1.5zm.71 5.29c-.28 0-.53.11-.71.29l-1.5 1.5a1.003 1.003 0 001.42 1.42l1.5-1.5a1.003 1.003 0 00-.71-1.71zm7-5c.28 0 .53-.11.71-.29l1.5-1.5a1.003 1.003 0 00-1.42-1.42l-1.5 1.5a1.003 1.003 0 00.71 1.71zm.71 5.29a1.003 1.003 0 00-1.42 1.42l1.5 1.5a1.003 1.003 0 001.42-1.42l-1.5-1.5zM15 7h-2c-.55 0-1 .45-1 1s.45 1 1 1h2c.55 0 1-.45 1-1s-.45-1-1-1zM8 5C6.34 5 5 6.34 5 8s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0 3c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1z\"],\n \"floppy-disk\": [\"M15.71 2.29l-2-2A.997.997 0 0013 0h-1v6H4V0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V3c0-.28-.11-.53-.29-.71zM14 15H2V9c0-.55.45-1 1-1h10c.55 0 1 .45 1 1v6zM11 1H9v4h2V1z\"],\n \"flow-branch\": [\"M10.643 6.595c.22.418.344.894.344 1.399 0 .439-.094.855-.263 1.231l3.265 3.462-.002-1.75a.973.973 0 01.314-.68.99.99 0 011.388.048c.186.2.316.46.3.715l-.009 4.03a.959.959 0 01-.3.68.972.972 0 01-.698.266l-4.053.002a.97.97 0 01-.679-.314 1.031 1.031 0 01.05-1.42.972.972 0 01.698-.266l1.7-.001-3.305-3.35a2.998 2.998 0 01-4.228-1.653H.999a1 1 0 010-2h4.166a2.998 2.998 0 014.06-1.735l3.449-3.268-1.745.002a.979.979 0 01-.631-1.692c.199-.186.459-.316.713-.3l4.025.009c.247.008.493.1.679.3.186.2.274.451.265.7l.002 4.046a.972.972 0 01-.313.68 1.03 1.03 0 01-1.42-.05.973.973 0 01-.266-.7V3.295l-3.34 3.301z\"],\n \"flow-end\": [\"M9.702 7.31c.176.176.293.41.293.684a.976.976 0 01-.283.695c-1.888 1.91-2.892 2.918-3.011 3.027-.179.164-.42.284-.693.284a.995.995 0 01-.997-.985c0-.274.112-.541.292-.72.12-.12.624-.551 1.514-1.293H.98c-.536 0-.975-.47-.975-1.008 0-.537.439-.996.975-.996h5.837c-.895-.752-1.4-1.187-1.514-1.304a1.03 1.03 0 01-.292-.705C5.01 4.45 5.464 4 6 4c.272 0 .52.108.695.294A535.7 535.7 0 009.702 7.31zM13 11.002c-1.657 0-3-1.347-3-3.008a3.004 3.004 0 013-3.007c1.657 0 3 1.346 3 3.007a3.004 3.004 0 01-3 3.008z\"],\n \"flow-linear\": [\"M4.16 9.002H.977C.44 9.002 0 8.532 0 7.994c0-.537.44-.99.978-.99h3.18A3.01 3.01 0 016.995 5a3.01 3.01 0 012.839 2.004h2.98c-.898-.756-1.404-1.193-1.518-1.31a1.03 1.03 0 01-.293-.705c0-.538.454-.989.992-.989.274 0 .521.108.697.294.118.124 1.122 1.13 3.014 3.016a.96.96 0 01.293.684.975.975 0 01-.284.695l-3.018 3.027a.974.974 0 01-.694.284c-.553 0-1-.447-1-.985 0-.274.117-.545.293-.72l1.518-1.293H9.833A3.01 3.01 0 016.996 11 3.01 3.01 0 014.16 9.002z\"],\n \"flow-review\": [\"M5.175 7.004a3.003 3.003 0 012.83-2.001c1.305 0 2.416.835 2.83 2.001h1.985c-.896-.756-1.401-1.193-1.515-1.31a1.03 1.03 0 01-.292-.705c0-.538.453-.989.99-.989a.95.95 0 01.696.294c.117.124 1.12 1.13 3.008 3.016.176.176.293.41.293.684a.976.976 0 01-.283.695l-3.013 3.027a.995.995 0 01-1.691-.702c0-.273.116-.544.292-.72l1.515-1.292h-1.98a3.003 3.003 0 01-2.835 2.016A3.003 3.003 0 015.17 9.002H3.18l1.515 1.292c.176.176.292.447.292.72a.995.995 0 01-1.69.702L.282 8.69A.976.976 0 010 7.994c0-.273.117-.508.293-.684A535.858 535.858 0 003.3 4.294.95.95 0 013.997 4c.537 0 .99.45.99.989 0 .273-.12.528-.292.705-.114.117-.62.554-1.515 1.31h1.995z\"],\n \"flow-review-branch\": [\"M10.392 10.647A3.002 3.002 0 016.16 8.995H3.37l1.338 1.318c.172.178.287.41.282.683-.01.536-.524.995-.99.995-.465 0-.63-.187-.747-.294L.281 8.682A.956.956 0 010 7.994a.971.971 0 01.294-.687l3.01-3.028a.973.973 0 01.697-.27c.536.01.998.485.989 1.021a.971.971 0 01-.295.687L3.37 6.997h2.79a3.002 3.002 0 014.106-1.716l2.416-2.277-1.732.004a.99.99 0 01-.679-.329.978.978 0 01.05-1.378c.199-.186.459-.315.714-.3l4.012.005c.248.009.493.1.68.3.185.2.273.45.264.699L15.99 6.05a.973.973 0 01-.314.679 1.03 1.03 0 01-1.421-.048.971.971 0 01-.265-.699V4.29L11.65 6.602c.219.416.343.89.343 1.394 0 .451-.1.88-.279 1.263L14 11.68l-.004-1.73a.982.982 0 01.323-.68.978.978 0 011.378.049c.187.2.316.46.3.714l-.004 4.011a.983.983 0 01-.3.691.972.972 0 01-.7.265l-4.046-.001a.987.987 0 01-.679-.326 1.017 1.017 0 01.048-1.41.972.972 0 01.699-.265h1.693l-2.315-2.35z\"],\n \"flows\": [\"M13.5 6a2.5 2.5 0 00-2.45 2h-1.3L5.74 4l-.75.75L8.25 8h-3.3a2.5 2.5 0 100 1h3.3l-3.26 3.25.75.75 4.01-4h1.3a2.5 2.5 0 102.45-3z\"],\n \"folder-close\": [\"M-.01 14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V7h-16v7zm15-10H7.41L5.7 2.3a.965.965 0 00-.71-.3h-4c-.55 0-1 .45-1 1v3h16V5c0-.55-.45-1-1-1z\"],\n \"folder-new\": [\"M10.165 7a3.003 3.003 0 002.827 2 3.003 3.003 0 002.827-2H16v7c0 .55-.45 1-1 1H1.01c-.55 0-1-.45-1-1V7h10.155zM8.76 6H0V3c0-.55.45-1 1-1h1.998c.28 0 .53.11.71.29L5.417 4h2.578c0 .768.29 1.469.765 2zm6.23-3c.55 0 1 .45 1 1s-.45 1-1 1h-.999v1c0 .55-.45 1-1 1-.549 0-.998-.45-.998-1V5h-1c-.55 0-1-.45-1-1s.45-1 1-1h1V2c0-.55.45-1 .999-1 .55 0 1 .45 1 1v1h.999z\"],\n \"folder-open\": [\"M2.06 6.69c.14-.4.5-.69.94-.69h11V5c0-.55-.45-1-1-1H6.41l-1.7-1.71A.997.997 0 004 2H1c-.55 0-1 .45-1 1v9.84l2.05-6.15h.01zM16 8c0-.55-.45-1-1-1H4a.99.99 0 00-.94.69l-2 6c-.04.09-.06.2-.06.31 0 .55.45 1 1 1h11c.44 0 .81-.29.94-.69l2-6c.04-.09.06-.2.06-.31z\"],\n \"folder-shared\": [\"M8.76 5.98c-.47-.53-.77-1.22-.77-1.99h-.58L5.7 2.29a.965.965 0 00-.71-.3h-4c-.55 0-1 .45-1 1v3h8.76l.01-.01zm6.23-2.99h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59l-3.3 3.3a.99.99 0 00-.29.7 1.003 1.003 0 001.71.71l3.29-3.29V8c0 .55.45 1 1 1s1-.45 1-1V4c0-.56-.45-1.01-1-1.01zm-1.98 7.23l-.9.9-.01-.01c-.54.55-1.28.89-2.11.89-1.66 0-3-1.34-3-3 0-.77.3-1.47.78-2H-.01v7c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3.18c-.31.11-.65.18-1 .18-.76-.01-1.45-.31-1.98-.78z\"],\n \"folder-shared-open\": [\"M13.02 10.22l-.9.9-.01-.01c-.54.55-1.28.89-2.11.89-1.66 0-3-1.34-3-3 0-.77.3-1.47.78-2H4a.99.99 0 00-.94.69l-2 6c-.04.09-.06.2-.06.31 0 .55.45 1 1 1h11c.44 0 .81-.29.94-.69l1.11-3.32c-.01 0-.03.01-.05.01-.77 0-1.45-.3-1.98-.78zM2.06 6.69c.14-.4.5-.69.94-.69h5.76l.01-.01C8.3 5.46 8 4.77 8 4H6.41l-1.7-1.71A.997.997 0 004 2H1c-.55 0-1 .45-1 1v9.84l2.05-6.15h.01zM15 3h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59l-3.3 3.29a1.003 1.003 0 001.42 1.42L14 6.41V8c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"follower\": [\"M9.37 12.69c-1.2-.53-1.04-.85-1.08-1.29-.01-.06-.01-.12-.01-.19.41-.37.75-.87.97-1.44 0 0 .01-.03.01-.04.05-.13.09-.26.12-.39.28-.06.44-.36.5-.63.06-.11.19-.39.16-.7-.04-.4-.2-.59-.38-.67v-.07c0-.52-.05-1.26-.14-1.74a2.72 2.72 0 00-.09-.43 3.02 3.02 0 00-1.04-1.51C7.87 3.2 7.15 3 6.5 3c-.64 0-1.36.2-1.87.59-.5.38-.87.92-1.05 1.51-.04.13-.07.27-.09.4-.09.49-.14 1.24-.14 1.75v.06c-.19.07-.36.26-.4.68-.03.31.1.59.16.7.06.28.23.59.51.64.04.14.08.27.13.39 0 .01.01.02.01.02v.01c.22.59.57 1.1.99 1.46 0 .06-.01.12-.01.17-.04.44.08.76-1.12 1.29-1.2.53-3.01 1.1-3.38 1.95C-.13 15.5.02 16 .02 16h12.96s.15-.5-.22-1.36c-.38-.85-2.19-1.42-3.39-1.95zm6.33-10.4l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H9.99c-.55 0-1 .45-1 1s.45 1 1 1h2.58l-.29.29a1.003 1.003 0 001.42 1.42l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"following\": [\"M9.37 12.69c-1.2-.53-1.04-.85-1.08-1.29-.01-.06-.01-.12-.01-.19.41-.37.75-.87.97-1.44 0 0 .01-.03.01-.04.05-.13.09-.26.12-.39.28-.06.44-.36.5-.63.06-.11.19-.39.16-.7-.04-.4-.2-.59-.38-.67v-.07c0-.52-.05-1.26-.14-1.74a2.72 2.72 0 00-.09-.43 3.02 3.02 0 00-1.04-1.51C7.87 3.2 7.15 3 6.5 3c-.64 0-1.36.2-1.87.59-.5.38-.87.92-1.05 1.51-.04.13-.07.27-.09.4-.09.49-.14 1.24-.14 1.75v.06c-.19.07-.36.26-.4.68-.03.31.1.59.16.7.06.28.23.59.51.64.04.14.08.27.13.39 0 .01.01.02.01.02v.01c.22.59.57 1.1.99 1.46 0 .06-.01.12-.01.17-.04.44.08.76-1.12 1.29-1.2.53-3.01 1.1-3.38 1.95C-.13 15.5.02 16 .02 16h12.96s.15-.5-.22-1.36c-.38-.85-2.19-1.42-3.39-1.95zM14.99 2h-2.58l.29-.29A1.003 1.003 0 0011.28.29l-2 2c-.17.18-.29.43-.29.71 0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L12.41 4h2.58c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"font\": [\"M13.93 14.67L8.94.67h-.01C8.79.28 8.43 0 8 0s-.79.28-.93.67h-.01l-5 14h.01c-.04.1-.07.21-.07.33 0 .55.45 1 1 1 .43 0 .79-.28.93-.67h.01L5.49 11h5.02l1.55 4.34h.01c.14.38.5.66.93.66.55 0 1-.45 1-1 0-.12-.03-.23-.07-.33zM6.2 9L8 3.97 9.8 9H6.2z\"],\n \"fork\": [\"M13.7 9.29a1.003 1.003 0 00-1.42 1.42l.29.29H11.4l-5-5h6.17l-.29.29a1.003 1.003 0 001.42 1.42l2-2c.18-.18.29-.43.29-.71s-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l.29.29H.99c-.55 0-1 .45-1 1s.45 1 1 1h2.59l6.71 6.71c.18.18.43.29.71.29h1.59l-.29.29a1.003 1.003 0 001.42 1.42l2-2c.18-.18.29-.43.29-.71s-.11-.53-.29-.71l-2.02-2z\"],\n \"form\": [\"M2 11v2h2v-2H2zM1 9h4c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1zm9-6h5c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1zM6 1a1.003 1.003 0 01.71 1.71l-3 4C3.53 6.89 3.28 7 3 7s-.53-.11-.71-.29l-2-2a1.003 1.003 0 011.42-1.42L3 4.59l2.29-3.3C5.47 1.11 5.72 1 6 1zm4 10h5c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1z\"],\n \"full-circle\": [\"M8 0a8 8 0 100 16A8 8 0 108 0z\"],\n \"full-stacked-chart\": [\"M13 12h1c.55 0 1-.45 1-1V8h-3v3c0 .55.45 1 1 1zM10 2c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1v3h3V2zm0 4H7v3h3V6zm5-4c0-.55-.45-1-1-1h-1c-.55 0-1 .45-1 1v2h3V2zm0 3h-3v2h3V5zM5 5H2v3h3V5zm-2 7h1c.55 0 1-.45 1-1V9H2v2c0 .55.45 1 1 1zm12 1H2c-.55 0-1 .45-1 1s.45 1 1 1h13c.55 0 1-.45 1-1s-.45-1-1-1zM5 2c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v2h3V2zm3 10h1c.55 0 1-.45 1-1v-1H7v1c0 .55.45 1 1 1z\"],\n \"fullscreen\": [\"M3.41 2H5c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v4c0 .55.45 1 1 1s1-.45 1-1V3.41L5.29 6.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L3.41 2zM6 9c-.28 0-.53.11-.71.29L2 12.59V11c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.41l3.29-3.29c.19-.18.3-.43.3-.71 0-.55-.45-1-1-1zm9 1c-.55 0-1 .45-1 1v1.59L10.71 9.3A.965.965 0 0010 9a1.003 1.003 0 00-.71 1.71l3.3 3.29H11c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm0-10h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59l-3.3 3.29a1.003 1.003 0 001.42 1.42L14 3.41V5c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"function\": [\"M8.12 4.74H6.98c.33-1.29.75-2.24 1.28-2.84.33-.37.64-.56.95-.56.06 0 .11.02.15.05.04.04.06.09.06.15 0 .05-.04.15-.13.29-.09.14-.13.28-.13.4 0 .18.07.33.2.46.14.13.31.19.52.19.22 0 .41-.08.56-.23.15-.16.23-.37.23-.63 0-.3-.11-.55-.34-.74C10.1 1.09 9.74 1 9.24 1c-.78 0-1.49.22-2.12.67-.64.45-1.24 1.2-1.81 2.23-.2.36-.38.59-.56.69-.18.1-.46.15-.85.15l-.26.9h1.08l-1.59 6.12c-.27 1.01-.44 1.63-.54 1.86-.14.34-.34.63-.62.87-.11.1-.24.15-.4.15a.15.15 0 01-.11-.04l-.04-.05c0-.03.04-.08.12-.16.08-.08.12-.2.12-.36 0-.18-.06-.33-.19-.44-.12-.12-.3-.18-.54-.18-.28 0-.51.08-.68.23-.16.14-.25.32-.25.53 0 .22.1.42.31.59.21.17.53.25.97.25.7 0 1.32-.18 1.87-.54.54-.36 1.02-.92 1.42-1.67.41-.75.82-1.96 1.25-3.63l.91-3.54h1.1l.29-.89zm5.43 1.52c.2-.15.41-.23.62-.23.08 0 .23.03.45.09s.41.09.57.09c.23 0 .42-.08.57-.23.16-.16.24-.36.24-.61 0-.26-.08-.47-.23-.62-.15-.15-.37-.23-.66-.23-.25 0-.5.06-.72.18-.23.12-.51.38-.86.78-.26.3-.64.81-1.15 1.55-.2-.91-.55-1.75-1.05-2.51l-2.72.46-.06.29c.2-.04.37-.06.51-.06.27 0 .49.11.67.34.28.36.67 1.45 1.17 3.26-.39.52-.66.85-.8 1.01-.24.26-.44.42-.59.5-.12.06-.25.09-.41.09-.11 0-.3-.06-.56-.18-.18-.08-.34-.12-.48-.12-.27 0-.48.08-.66.25-.17.17-.26.38-.26.64 0 .25.08.44.24.6.16.15.37.23.64.23.26 0 .5-.05.73-.16.23-.11.52-.34.86-.69.35-.35.82-.9 1.43-1.67.23.73.44 1.25.61 1.58s.37.57.59.71c.22.15.5.22.83.22.32 0 .65-.11.98-.34.44-.3.88-.81 1.34-1.53l-.26-.15c-.31.43-.54.7-.69.8-.1.07-.22.1-.35.1-.16 0-.32-.1-.48-.3-.27-.34-.62-1.27-1.06-2.8.4-.68.73-1.13 1-1.34z\"],\n \"gantt-chart\": [\"M10 10c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1h-4c-.55 0-1 .45-1 1zM6 7c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1zm9 5H2V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM4 5h3c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"geofence\": [\"M6 9c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1s-1-.45-1-1v-1.59l-3.29 3.3A1.003 1.003 0 010 15c0-.28.11-.53.3-.71L3.59 11H2c-.55 0-1-.45-1-1s.45-1 1-1zM9.088.004l.097.013.097.024.057.018.1.042.054.029.095.061.052.04 6 5 .05.046.076.08.053.07.06.095.051.11c.056.141.079.294.067.446l-.014.105-.037.143-.035.087-.043.083-4 7-.034.056-.059.08-.038.044-.096.092-.114.082-.116.062-.086.034-.109.03-.1.017-.069.006H8.83c.088-.25.144-.515.163-.79L9 13v-3a3 3 0 00-2.824-2.995L6 7H3c-.351 0-.689.06-1.002.171L2 5l.002-.07.013-.1.015-.073.025-.085.043-.104.056-.101.045-.066.079-.093.084-.078.083-.062 6-4 .07-.043.12-.056.111-.036.108-.022.083-.01h.031c.046-.002.083 0 .12.003z\"],\n \"geolocation\": [\"M-.01 6.66l7.34 2 2 7.33 6.66-16z\"],\n \"geosearch\": [\"M8.82 12.4h.66c.23 0 .36-.17.36-.4v-1.48l.19-.18c-.27.03-.55.06-.83.06-.28 0-.56-.03-.84-.07.02.04.05.08.07.13V12c0 .23.15.4.39.4zM6.4 15.1A5.51 5.51 0 01.9 9.6c0-.49.06-.98.18-1.43.03 0 .05-.01.08-.01h.08v.44c0 .19.17.34.36.34.03 0 .07-.01.1-.01l.71.7c.07.07.19.07.26 0s.07-.19 0-.26l-.7-.72c0-.02.03-.03.03-.05v-.11c0-.15.08-.2.23-.33h.42c.08 0 .15-.01.22-.04h.02c.02-.02.03-.02.04-.04.01-.01.01-.01.02-.01l.02-.01.9-.9c-.13-.26-.24-.52-.34-.8h-.5v-.43c0-.01.05.05.04-.08h.31c-.03-.13-.06-.26-.08-.39h-.57c.16-.12.34-.24.51-.36-.02-.23-.04-.46-.04-.7 0-.12.01-.23.02-.34A6.385 6.385 0 000 9.6C0 13.13 2.87 16 6.4 16c3.1 0 5.67-2.22 6.26-5.15l-.78-.88c-.21 2.85-2.58 5.13-5.48 5.13zm-1.7-2.93v-.28h.12c.23 0 .39-.19.39-.42v-.54s.01-.01 0-.01L3.77 9.45h-.62c-.23 0-.38.19-.38.42v1.6c0 .23.14.42.38.42h.26v1.61c0 .23.22.41.45.41s.45-.18.45-.41v-.97H4.3c.24 0 .4-.13.4-.36zm11.07-2.34l-2.94-2.94c.11-.17.21-.34.3-.52.01-.03.03-.06.04-.09.08-.18.16-.36.22-.55v-.01c.06-.19.1-.38.14-.58.01-.05.01-.09.02-.14.03-.2.05-.4.05-.61a4.4 4.4 0 00-4.4-4.4C6.77 0 4.8 1.97 4.8 4.4s1.97 4.4 4.4 4.4c.21 0 .41-.02.61-.05.04 0 .09-.01.14-.02.2-.03.39-.08.58-.14h.01c.19-.06.37-.14.55-.22.03-.01.06-.03.09-.04.18-.09.35-.19.52-.3l2.94 2.94a.8.8 0 00.57.23c.44 0 .8-.36.8-.8a.895.895 0 00-.24-.57zM9.2 7.6C7.43 7.6 6 6.17 6 4.4c0-1.77 1.43-3.2 3.2-3.2s3.2 1.43 3.2 3.2c0 1.77-1.43 3.2-3.2 3.2zm1.54 4.26v-.52c0-.09-.1-.17-.19-.17s-.19.07-.19.17v.52c0 .09.1.17.19.17s.19-.07.19-.17z\"],\n \"git-branch\": [\"M12 1c-1.66 0-3 1.34-3 3 0 1.25.76 2.32 1.85 2.77A2.02 2.02 0 019 8H7c-.73 0-1.41.2-2 .55V5.82C6.16 5.4 7 4.3 7 3c0-1.66-1.34-3-3-3S1 1.34 1 3c0 1.3.84 2.4 2 2.82v4.37c-1.16.4-2 1.51-2 2.81 0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.04-.53-1.95-1.32-2.49.35-.31.81-.51 1.32-.51h2c1.92 0 3.52-1.35 3.91-3.15A2.996 2.996 0 0012 1zM4 2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 12c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm8-9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"git-commit\": [\"M15 7h-3.14c-.45-1.72-2-3-3.86-3S4.59 5.28 4.14 7H1c-.55 0-1 .45-1 1s.45 1 1 1h3.14c.45 1.72 2 3 3.86 3s3.41-1.28 3.86-3H15c.55 0 1-.45 1-1s-.45-1-1-1zm-7 3c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"],\n \"git-merge\": [\"M12 6c-1.3 0-2.4.84-2.82 2H9c-1.62 0-3-.96-3.63-2.34C6.33 5.16 7 4.16 7 3c0-1.66-1.34-3-3-3S1 1.34 1 3c0 1.3.84 2.4 2 2.81v4.37C1.84 10.6 1 11.7 1 13c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.3-.84-2.4-2-2.82V8.43A5.89 5.89 0 009 10h.18A2.996 2.996 0 0015 9c0-1.66-1.34-3-3-3zm-8 8c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM4 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm8 6c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"git-new-branch\": [\"M14 2h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1zm-3.18 4.8C10.51 7.51 9.82 8 9 8H7c-.73 0-1.41.2-2 .55V5.82C6.16 5.4 7 4.3 7 3c0-1.66-1.34-3-3-3S1 1.34 1 3c0 1.3.84 2.4 2 2.82v4.37c-1.16.4-2 1.51-2 2.81 0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.04-.53-1.95-1.32-2.49.35-.31.81-.51 1.32-.51h2c1.9 0 3.49-1.33 3.89-3.11-.29.07-.58.11-.89.11-.41 0-.8-.08-1.18-.2zM4 2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 12c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"git-pull\": [\"M3 1C1.34 1 0 2.34 0 4c0 1.3.84 2.4 2 2.82v3.37C.84 10.6 0 11.7 0 13c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.3-.84-2.4-2-2.82V6.82C5.16 6.4 6 5.3 6 4c0-1.66-1.34-3-3-3zm0 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm11 5.18V6c0-1.66-1.34-3-3-3H9.41l1.29-1.29c.19-.18.3-.43.3-.71A1.003 1.003 0 009.29.29l-3 3C6.11 3.47 6 3.72 6 4c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L9.41 5H11c.55 0 1 .45 1 1v4.18A2.996 2.996 0 0013 16c1.66 0 3-1.34 3-3 0-1.3-.84-2.4-2-2.82zM13 14c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"git-push\": [\"M4 6h1V5H4v1zm9 3c0-.28-.11-.53-.29-.71l-3-3C9.53 5.11 9.28 5 9 5s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L8 8.41V15c0 .55.45 1 1 1s1-.45 1-1V8.41l1.29 1.29c.18.19.43.3.71.3.55 0 1-.45 1-1zM5 3H4v1h1V3zm10-3H1C.45 0 0 .45 0 1v13c0 .55.45 1 1 1h5v-2H2v-1h4v-1H3V2h11v9h-2v1h2v1h-2v2h3c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"git-repo\": [\"M5 9H4v1h1V9zm10-9H1C.45 0 0 .45 0 1v13c0 .55.45 1 1 1h3v1l2-1 2 1v-1h7c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM4 13H2v-1h2v1zm10 0H8v-1h6v1zm0-2H3V2h11v9zM5 3H4v1h1V3zm0 4H4v1h1V7zm0-2H4v1h1V5z\"],\n \"glass\": [\"M2 0v4c0 2.97 2.16 5.43 5 5.91V14H5c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1H9V9.91c2.84-.48 5-2.94 5-5.91V0H2z\"],\n \"globe\": [\"M4.45 7.83c-.26 0-.41.21-.41.46v1.75c0 .26.16.46.41.46h.29v1.77c0 .25.24.45.49.45s.49-.2.49-.45V11.2h-.01c.26 0 .44-.14.44-.4v-.3h.14c.26 0 .43-.2.43-.46v-.59s.01-.01 0-.01l-1.58-1.6h-.69zM8.51 3.9h.22c.06 0 .12-.01.12-.07 0-.06-.05-.07-.12-.07h-.22c-.06 0-.12.01-.12.07.01.06.06.07.12.07zm-2.33-.05c.07-.07.07-.19 0-.26l-.5-.5a.187.187 0 00-.26 0c-.07.07-.07.19 0 .26l.5.5c.07.07.19.07.26 0zm3.06.89c.07 0 .14-.06.14-.12v-.31c0-.07-.07-.12-.14-.12s-.14.06-.14.12v.31c0 .07.07.12.14.12zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-.55.1-1.07.23-1.57h.11v.47c0 .2.18.37.39.37.03 0 .08-.01.11-.02l.78.77c.08.08.2.08.28 0 .08-.08.08-.2 0-.28l-.75-.78c0-.02.04-.04.04-.06v-.12c0-.16.09-.22.25-.36h.46c.09 0 .17-.01.24-.05h.02c.02-.01.03-.02.05-.03.01-.01.01-.01.02-.01l.02-.02 1.59-1.58c.18-.18.18-.46 0-.64s-.47-.15-.65.03l-.3.34h-.57v-.48c0-.01.05.05.05-.09h.64c.12 0 .22-.09.22-.21s-.1-.21-.22-.21H4.1c.18-.15.34-.31.54-.44l.01-.01c.21-.14.45-.25.68-.37.15-.07.29-.15.44-.21.17-.07.35-.11.53-.17.18-.05.35-.12.53-.16a6.05 6.05 0 013.47.35c.05.02.1.05.16.08.25.11.48.24.71.39.25.16.49.34.71.55H10.6s0-.03-.01-.03c-.04 0-.09 0-.13.03l-.51.51a.17.17 0 000 .23c.06.06.17.06.23 0l.42-.44.01-.02h.25c0 .14-.07.09-.07.12v.07c0 .22-.15.37-.36.37h-.38c-.19 0-.38.21-.38.4v.17h-.1c-.12 0-.2.06-.2.18v.25h-.23c-.17 0-.3.11-.3.28 0 .17.13.26.3.26.07 0 .14.03.19-.11l.04.01.49-.46h.17l.39.37c.03.03.08.02.12-.01.03-.03.03-.12 0-.15l-.32-.35h.23l.09.12c.18.18.48.17.66-.01l.09-.1h.4c.02 0 .08.05.08.05v.24l-.05-.01h-.36c-.11 0-.21.1-.21.21 0 .11.09.21.21.21h.41v.15c-.14.21-.24.42-.45.42h-.94v-.01l-.44-.44a.47.47 0 00-.66 0l-.42.43v.01H8.6c-.26 0-.49.21-.49.46v.92c0 .26.23.45.49.45h.9c.34.14.57.35.72.69v1.68c0 .26.17.44.42.44h.72c.26 0 .4-.18.4-.44V9l.89-.86.03-.02.02-.01h.03c.07-.08.15-.19.15-.31v-.91c0-.18-.16-.32-.31-.46H13c.01.28.21.42.46.42h.42c.08.37.12.76.12 1.15 0 3.31-2.69 6-6 6zm4.54-4.27c-.1 0-.21.08-.21.18v.57c0 .1.11.18.21.18.1 0 .21-.08.21-.18v-.57c0-.1-.11-.18-.21-.18zM8.37 3.19c0-.25-.2-.42-.46-.42h-.54c-.25 0-.42.18-.42.43 0 .03-.1.04.05.08v.47c0 .15.06.27.21.27s.21-.12.21-.27v-.14h.5c.24 0 .45-.16.45-.42z\"],\n \"globe-network\": [\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm5.17 5h-2.44c-.21-1.11-.51-2.03-.91-2.69 1.43.46 2.61 1.43 3.35 2.69zM10 8c0 .73-.05 1.39-.12 2H6.12C6.05 9.39 6 8.73 6 8s.05-1.39.12-2h3.76c.07.61.12 1.27.12 2zM8 2c.67 0 1.36 1.1 1.73 3H6.27C6.64 3.1 7.33 2 8 2zm-1.82.31c-.4.66-.71 1.58-.91 2.69H2.83a6.025 6.025 0 013.35-2.69zM2 8c0-.7.13-1.37.35-2h2.76C5.04 6.62 5 7.28 5 8s.04 1.38.11 2H2.35C2.13 9.37 2 8.7 2 8zm.83 3h2.44c.21 1.11.51 2.03.91 2.69A6.025 6.025 0 012.83 11zM8 14c-.67 0-1.36-1.1-1.73-3h3.46c-.37 1.9-1.06 3-1.73 3zm1.82-.31c.4-.66.7-1.58.91-2.69h2.44a6.025 6.025 0 01-3.35 2.69zM13.65 10h-2.76c.07-.62.11-1.28.11-2s-.04-1.38-.11-2h2.76c.22.63.35 1.3.35 2s-.13 1.37-.35 2z\"],\n \"graph\": [\"M14 3c-1.06 0-1.92.83-1.99 1.88l-1.93.97A2.95 2.95 0 008 5c-.56 0-1.08.16-1.52.43L3.97 3.34C3.98 3.23 4 3.12 4 3c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.24 0 .47-.05.68-.13l2.51 2.09C5.08 7.29 5 7.63 5 8c0 .96.46 1.81 1.16 2.35l-.56 1.69c-.91.19-1.6.99-1.6 1.96 0 1.1.9 2 2 2s2-.9 2-2c0-.51-.2-.97-.51-1.32l.56-1.69A2.99 2.99 0 0011 8c0-.12-.02-.24-.04-.36l1.94-.97c.32.21.69.33 1.1.33 1.1 0 2-.9 2-2s-.9-2-2-2z\"],\n \"graph-remove\": [\"M12.89 8.11l-.01.01-.38-.38-.38.38-.02-.02c-.54.55-1.27.9-2.1.9-1.66 0-3-1.34-3-3 0-.83.35-1.56.9-2.1l-.02-.02.38-.38-.38-.38.01-.01C7.35 2.57 7 1.83 7 1c0-.34.07-.65.17-.96A8.004 8.004 0 000 8c0 4.42 3.58 8 8 8 4.14 0 7.54-3.14 7.96-7.17-.31.1-.62.17-.96.17-.83 0-1.57-.35-2.11-.89zm1.02-4.61l1.79-1.79c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-1.79 1.8L10.71.3A.965.965 0 0010 0a1.003 1.003 0 00-.71 1.71l1.79 1.79-1.79 1.79a1.003 1.003 0 001.42 1.42l1.79-1.79 1.79 1.79a1.003 1.003 0 001.42-1.42l-1.8-1.79z\"],\n \"greater-than\": [\"M2.713 5.958a1 1 0 01.574-1.916l10 3c.95.285.95 1.63 0 1.916l-10 3a1 1 0 01-.574-1.916L9.52 8 2.713 5.958z\"],\n \"greater-than-or-equal-to\": [\"M2.713 3.958a1 1 0 01.574-1.916l10 3c.95.285.95 1.63 0 1.916l-10 3a1 1 0 01-.574-1.916L9.52 6 2.713 3.958zM3 12h10a1 1 0 010 2H3a1 1 0 010-2z\"],\n \"grid\": [\"M15 9c.55 0 1-.45 1-1s-.45-1-1-1h-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1H9V1c0-.55-.45-1-1-1S7 .45 7 1v1H4V1c0-.55-.45-1-1-1S2 .45 2 1v1H1c-.55 0-1 .45-1 1s.45 1 1 1h1v3H1c-.55 0-1 .45-1 1s.45 1 1 1h1v3H1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1v-1h3v1c0 .55.45 1 1 1s1-.45 1-1v-1h3v1c0 .55.45 1 1 1s1-.45 1-1v-1h1c.55 0 1-.45 1-1s-.45-1-1-1h-1V9h1zm-8 3H4V9h3v3zm0-5H4V4h3v3zm5 5H9V9h3v3zm0-5H9V4h3v3z\"],\n \"grid-view\": [\"M0 1v6h7V0H1C.45 0 0 .45 0 1zm0 14c0 .55.45 1 1 1h6V9H0v6zM15 0H9v7h7V1c0-.55-.45-1-1-1zM9 16h6c.55 0 1-.45 1-1V9H9v7z\"],\n \"group-objects\": [\"M5 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6-3H5C2.24 3 0 5.24 0 8s2.24 5 5 5h6c2.76 0 5-2.24 5-5s-2.24-5-5-5zm0 9H5c-2.21 0-4-1.79-4-4s1.79-4 4-4h6c2.21 0 4 1.79 4 4s-1.79 4-4 4zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"grouped-bar-chart\": [\"M10 12c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1s-1 .45-1 1v8c0 .55.45 1 1 1zm3 0c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55.45 1 1 1zm2 1H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm-9-1c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1s-1 .45-1 1v3c0 .55.45 1 1 1zm-3 0c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1v9c0 .55.45 1 1 1z\"],\n \"hand\": [\"M15 5c0-.55-.45-1-1-1-.41 0-.76.24-.91.59v.01s0 .01-.01.01L11.57 8h-.36l.78-4.84C12 3.11 12 3.05 12 3a1 1 0 00-1.99-.16v.01L9.18 8H9V1c0-.55-.45-1-1-1S7 .45 7 1v7h-.09l-.93-5.18A1 1 0 005 2c-.55 0-1 .45-1 1 0 .05 0 .11.01.16L5.26 11h-.04L2.83 7.44C2.65 7.18 2.35 7 2 7c-.55 0-1 .45-1 1 0 .17.04.33.12.47l3 5.69h.01v.01A5.002 5.002 0 0013 11v-.59l1.93-5.05c.05-.11.07-.23.07-.36z\"],\n \"hand-down\": [\"M14.72 7.87c-1.54-.67-2.99-2.68-3.7-3.95C10.11 1.95 9.93 0 6.14 0 4.05 0 2.71.61 1.92 2.12 1.27 3.36 1 5.21 1 7.83v.79c0 .65.6 1.18 1.35 1.18.34 0 .64-.11.88-.29.17.48.68.84 1.29.84.41 0 .78-.16 1.03-.42.23.37.67.63 1.19.63.57 0 1.05-.31 1.25-.74l.01.63v4.05c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V7.9c.58.41 1.55 1.21 2.47 1.29 1.57.14 1.82-1.07 1.25-1.32z\"],\n \"hand-left\": [\"M12.08 4.97c-1.26-.71-3.27-2.15-3.95-3.7C7.88.7 6.67.96 6.81 2.52c.09.93.89 1.9 1.3 2.48H1.5C.67 5 0 5.67 0 6.5S.67 8 1.5 8h4.05l.63.01c-.44.2-.75.69-.75 1.25 0 .52.26.96.63 1.19-.26.25-.42.61-.42 1.03 0 .61.35 1.12.84 1.29-.18.24-.29.54-.29.88 0 .75.54 1.35 1.19 1.35h.79c2.62 0 4.47-.28 5.71-.92 1.51-.79 2.12-2.14 2.12-4.22 0-3.79-1.95-3.97-3.92-4.89z\"],\n \"hand-right\": [\"M14.5 5H7.89c.41-.58 1.21-1.55 1.3-2.47C9.34.97 8.12.71 7.87 1.28c-.67 1.54-2.68 2.99-3.95 3.7C1.95 5.89 0 6.07 0 9.86c0 2.09.61 3.43 2.12 4.22 1.24.65 3.09.92 5.71.92h.79c.65 0 1.18-.6 1.18-1.35 0-.34-.11-.64-.29-.88.48-.17.84-.68.84-1.29 0-.41-.16-.78-.42-1.03.37-.23.63-.67.63-1.19 0-.57-.31-1.05-.74-1.25l.63-.01h4.05c.83 0 1.5-.67 1.5-1.5S15.33 5 14.5 5z\"],\n \"hand-up\": [\"M13.65 6.19c-.34 0-.64.11-.88.29-.17-.48-.68-.84-1.29-.84-.41 0-.78.16-1.03.42-.23-.37-.67-.63-1.19-.63-.57 0-1.05.31-1.25.74L8 5.55V1.5C8 .67 7.33 0 6.5 0S5 .67 5 1.5v6.61c-.58-.41-1.55-1.21-2.48-1.3C.96 6.67.7 7.88 1.28 8.13c1.54.67 2.99 2.68 3.7 3.95C5.89 14.05 6.07 16 9.86 16c2.09 0 3.43-.61 4.22-2.12.64-1.24.92-3.09.92-5.71v-.79c0-.65-.6-1.19-1.35-1.19z\"],\n \"hat\": [\"M15 10c.495 0 .933.379.993.882L16 11v.505c0 1.461-3.524 2.45-7.707 2.493L8 14c-4.31 0-8-1-8-2.495V11c0-.561.466-1 1-1 .895 0 3 1 7 1l.381-.003C12.135 10.937 14.134 10 15 10zm-4-8c1.13 0 2.02 2.153 2.671 6.46-1.063.266-2.644.652-4.887.727l-.403.01L8 9.2c-2.664 0-4.488-.444-5.673-.74C2.98 4.153 3.87 2 5 2c2 0 1.329 2 3 2s1-2 3-2z\"],\n \"header\": [\"M13 1c-.55 0-1 .45-1 1v5H4V2c0-.55-.45-1-1-1s-1 .45-1 1v12c0 .55.45 1 1 1s1-.45 1-1V9h8v5c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z\"],\n \"header-one\": [\"M14.06 8c-.04.23-.12.44-.25.61-.13.17-.29.3-.48.41-.18.11-.39.18-.62.23-.23.04-.46.07-.71.07v1.03h1.74V16H15V8h-.94zM7 0c-.56 0-1 .45-1 1v4H2V1c0-.55-.45-1-1-1-.56 0-1 .45-1 1v10c0 .55.45 1 1 1 .56 0 1-.45 1-1V7h4v4c0 .55.45 1 1 1 .56 0 1-.45 1-1V1c0-.54-.45-1-1-1z\"],\n \"header-three\": [\"M1 0C.44 0 0 .45 0 1v10c0 .54.45 1 1 1 .56 0 1-.45 1-1V7h4v4c0 .54.45 1 1 1 .56 0 1-.45 1-1V1c0-.54-.45-1-1-1-.56 0-1 .45-1 1v4H2V1c0-.54-.45-1-1-1zm13.71 11.72c.41.08.72.3.95.65.23.35.34.77.34 1.27 0 .37-.07.7-.2.97-.14.29-.32.54-.55.74-.23.2-.5.36-.8.47-.3.11-.62.16-.96.16-.41 0-.77-.06-1.08-.19-.31-.12-.56-.31-.77-.54-.21-.24-.36-.52-.47-.85-.11-.33-.16-.7-.17-1.1h1.14c-.01.47.09.86.32 1.17.23.31.57.47 1.02.47.39 0 .71-.12.97-.36s.39-.58.39-1.02c0-.3-.05-.53-.16-.71-.11-.17-.25-.31-.43-.4-.17-.09-.37-.15-.59-.17-.22-.02-.44-.03-.67-.02v-.93c.19.01.38 0 .57-.04.19-.03.36-.1.51-.19.14-.09.26-.22.35-.38.09-.16.14-.36.14-.59 0-.33-.1-.59-.31-.79-.2-.2-.47-.3-.79-.3-.21 0-.38.04-.53.13-.15.09-.27.21-.37.36-.1.15-.17.32-.22.51-.05.19-.07.38-.06.58h-1.15c.01-.38.08-.72.19-1.04.11-.32.27-.6.47-.83.19-.23.44-.42.72-.55.28-.13.6-.2.96-.2.28 0 .55.04.82.13.27.08.51.21.72.38.21.17.38.38.51.64s.19.56.19.9c0 .39-.08.73-.24 1.02-.16.29-.42.5-.76.63v.02z\"],\n \"header-two\": [\"M13.17 13.93c-.17.15-.33.29-.46.44-.13.16-.22.32-.27.49h3.55V16H11c.01-.65.16-1.22.44-1.71s.67-.91 1.17-1.27c.24-.18.49-.36.75-.54.25-.18.49-.36.71-.57.21-.2.39-.42.53-.65.14-.24.21-.51.22-.82 0-.14-.02-.29-.05-.45-.03-.16-.09-.31-.18-.45a1.13 1.13 0 00-.37-.35c-.16-.09-.37-.14-.63-.14-.24 0-.43.05-.59.15-.16.1-.29.24-.38.42-.1.17-.17.38-.21.62-.05.24-.07.5-.08.77h-1.19c0-.43.05-.83.16-1.2s.27-.69.49-.96c.21-.25.48-.46.79-.62.31-.15.67-.23 1.07-.23.45 0 .82.08 1.11.23.3.16.55.36.73.6.19.24.32.5.39.79.08.28.12.54.12.79 0 .31-.04.6-.13.85s-.22.49-.37.7c-.15.21-.32.41-.52.59s-.4.35-.61.51l-.63.45c-.21.14-.39.28-.57.42zM0 1c0-.55.44-1 1-1 .55 0 1 .46 1 1v10c0 .55-.44 1-1 1-.55 0-1-.46-1-1V1zm6 0c0-.55.44-1 1-1 .55 0 1 .46 1 1v10c0 .55-.44 1-1 1-.55 0-1-.46-1-1V1zM2 5h4v2H2V5z\"],\n \"headset\": [\"M14.85 6.34C14.18 2.72 11.37 0 8 0S1.82 2.72 1.15 6.34C.47 6.9 0 8.1 0 9.5 0 11.43.9 13 2 13c0 1.1.9 2 2 2h2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1H4c-.55 0-1-.45-1-1 .55 0 1-.45 1-1V7c0-.45-.3-.81-.71-.94C3.97 3.7 5.81 2 8 2s4.03 1.7 4.71 4.06c-.41.13-.71.49-.71.94v5c0 .55.45 1 1 1h1c1.1 0 2-1.57 2-3.5 0-1.4-.47-2.6-1.15-3.16z\"],\n \"heart\": [\"M16 5.095c0-2.255-1.88-4.083-4.2-4.083-1.682 0-3.13.964-3.8 2.352a4.206 4.206 0 00-3.8-2.352C1.88 1.012 0 2.84 0 5.095c0 .066.007.13.01.194H.004c.001.047.01.096.014.143l.013.142c.07.8.321 1.663.824 2.573C2.073 10.354 4.232 12.018 8 15c3.767-2.982 5.926-4.647 7.144-6.854.501-.905.752-1.766.823-2.562.007-.055.012-.11.016-.164.003-.043.012-.088.013-.13h-.006c.003-.066.01-.13.01-.195z\"],\n \"heart-broken\": [\"M7.71 8.87L6.17 6.55l.02-.01A.906.906 0 016 6c0-.07.03-.13.04-.19h-.02l.78-3.92C6.09 1.34 5.19 1 4.2 1 1.88 1 0 2.83 0 5.09c0 .07.01.13.01.19H0c0 .05.01.1.01.14 0 .05.01.1.01.14.07.8.32 1.66.82 2.57 1.07 1.94 2.88 3.47 5.86 5.84l-.68-2.74h.02C6.03 11.16 6 11.08 6 11c0-.28.11-.53.29-.71l1.42-1.42zM16 5.09C16 2.83 14.12 1 11.8 1c-1.2 0-2.27.5-3.04 1.28l-.7 3.51 1.77 2.66-.01.01c.1.15.18.33.18.54 0 .28-.11.53-.29.71l-1.6 1.6.75 3.01c3.23-2.56 5.16-4.15 6.28-6.18.5-.91.75-1.77.82-2.56.01-.05.01-.11.02-.16 0-.04.01-.09.01-.13h-.01c.01-.07.02-.14.02-.2z\"],\n \"heat-grid\": [\"M0 10h5V7H0v3zm1-2h3v1H1V8zm14-5h-4v3h5V4c0-.55-.45-1-1-1zm0 2h-3V4h3v1zM0 4v2h5V3H1c-.55 0-1 .45-1 1zm0 9c0 .55.45 1 1 1h4v-3H0v2zm6-7h4V3H6v3zm0 8h4v-3H6v3zm1-2h2v1H7v-1zm4 2h4c.55 0 1-.45 1-1v-2h-5v3zm0-4h5V7h-5v3zm-5 0h4V7H6v3z\"],\n \"heatmap\": [\"M2 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm11-7c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm3 4.5A2.5 2.5 0 0013.5 6c-.98 0-1.82.57-2.23 1.39-.6-.78-1.51-1.3-2.56-1.36.18-.49.29-.99.29-1.53C9 2.01 6.99 0 4.5 0S0 2.01 0 4.5 2.01 9 4.5 9c.19 0 .37-.03.56-.06-.03.19-.06.37-.06.56C5 11.43 6.57 13 8.5 13c1.63 0 2.98-1.11 3.37-2.62.44.38 1 .62 1.63.62A2.5 2.5 0 0016 8.5zM14.5 13c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"],\n \"helicopter\": [\"M.5 2a.5.5 0 01.5.5V4h7V3H2.5a.5.5 0 010-1h13a.5.5 0 010 1H10v1h1c2.26 0 4 1.79 4 4 0 1.87-1.247 3.44-3 3.878V13h.382l1.894-.947a.5.5 0 11.448.894L12.618 14H4.5a.5.5 0 010-1H7v-2.306C5.749 9.736 5 8.368 5 7L1 6v1.5a.5.5 0 01-1 0v-5A.5.5 0 01.5 2zM8 11.316V13h3v-1a6.73 6.73 0 01-3-.684zM11 5v3h3a3 3 0 00-3-3z\"],\n \"help\": [\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm1 13H7v-2h2v2zm1.93-6.52c-.14.32-.35.64-.62.97L9.25 8.83c-.12.15-.24.29-.28.42-.04.13-.09.3-.09.52V10H7.12V8.88s.05-.51.21-.71L8.4 6.73c.22-.26.35-.49.44-.68.09-.19.12-.38.12-.58 0-.3-.1-.55-.28-.75-.18-.19-.44-.28-.76-.28-.33 0-.59.1-.78.29-.19.19-.33.46-.4.81-.03.11-.1.15-.2.14l-1.7-.25c-.12-.01-.16-.08-.14-.19.12-.82.46-1.47 1.03-1.94.57-.48 1.32-.72 2.25-.72.47 0 .9.07 1.29.22s.72.34 1 .59c.28.25.49.55.65.89.15.35.22.72.22 1.12s-.07.75-.21 1.08z\"],\n \"helper-management\": [\"M13 5h-2v2h2V5zm0 6h-2v2h2v-2zm0-3h-2v2h2V8zm2-8H1C.4 0 0 .4 0 1v14c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V1c0-.6-.4-1-1-1zm-1 14H2V2h12v12zm-7-3H5v2h2v-2zm3 0H8v2h2v-2z\"],\n \"high-priority\": [\"M9 14v2H7v-2h2zm1-14L9 12H7L6 0h4z\"],\n \"highlight\": [\"M9.12 11.07l2-2.02.71.71 4-4.04L10.17 0l-4 4.04.71.71-2 2.02 4.24 4.3zM2 12.97h4c.28 0 .53-.11.71-.3l1-1.01-3.42-3.45-3 3.03c-.18.18-.29.44-.29.72 0 .55.45 1.01 1 1.01zm13 1.01H1c-.55 0-1 .45-1 1.01S.45 16 1 16h14c.55 0 1-.45 1-1.01s-.45-1.01-1-1.01z\"],\n \"history\": [\"M8 3c-.55 0-1 .45-1 1v4c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L9 7.59V4c0-.55-.45-1-1-1zm0-3a7.95 7.95 0 00-6 2.74V1c0-.55-.45-1-1-1S0 .45 0 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.54C4.64 2.78 6.23 2 8 2c3.31 0 6 2.69 6 6 0 2.61-1.67 4.81-4 5.63v-.01c-.63.23-1.29.38-2 .38-3.31 0-6-2.69-6-6 0-.55-.45-1-1-1s-1 .45-1 1c0 4.42 3.58 8 8 8 .34 0 .67-.03 1-.07.02 0 .04-.01.06-.01C12.98 15.4 16 12.06 16 8c0-4.42-3.58-8-8-8z\"],\n \"home\": [\"M2 10v5c0 .55.45 1 1 1h3v-5h4v5h3c.55 0 1-.45 1-1v-5L8 4l-6 6zm13.71-2.71L14 5.59V2c0-.55-.45-1-1-1s-1 .45-1 1v1.59L8.71.29C8.53.11 8.28 0 8 0s-.53.11-.71.29l-7 7a1.003 1.003 0 001.42 1.42L8 2.41l6.29 6.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z\"],\n \"horizontal-bar-chart\": [\"M4 5h7c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zM1 1c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1zm14 6H4c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h11c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-6 5H4c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1z\"],\n \"horizontal-bar-chart-asc\": [\"M1 3h5c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm0 4h7c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 6H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM1 11h10c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"horizontal-bar-chart-desc\": [\"M15 1H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM8 9H1c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1zm-2 4H1c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm5-8H1c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"horizontal-distribution\": [\"M2 0c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm13 0c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm-5 2H7c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z\"],\n \"hurricane\": [\"M3.5 12c-.86 0-2.5-.5-3.5-1 1 3.5 4.506 4 7 4a7 7 0 007-7l-.006-.004a5.974 5.974 0 00-1.29-3.988c.896.066 2.37.53 3.296.992-1-3.5-4.506-4-7-4a6.998 6.998 0 00-6.14 3.635 5.972 5.972 0 00-.859 3.226L2 8l.006.005a5.98 5.98 0 001.771 3.99A7.469 7.469 0 013.5 12zM8 6a2 2 0 100 4 2 2 0 000-4z\", \"M0 0h16v16H0z\"],\n \"id-number\": [\"M2 5v7h12V5H2zm0-2h12c1.1 0 2 .9 2 2v7c0 1.1-.9 2-2 2H2c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z\", \"M7.9 10.48c-.14-.33-.84-.55-1.3-.75-.46-.2-.4-.33-.42-.5v-.07c.16-.14.29-.33.37-.56 0 0 0-.01.01-.02.02-.05.03-.1.05-.15.1-.01.16-.13.19-.23.03-.04.07-.15.06-.27-.02-.16-.08-.24-.15-.26v-.03c0-.2-.02-.48-.05-.67-.01-.05-.02-.1-.03-.16-.07-.23-.21-.44-.4-.58-.2-.15-.48-.23-.73-.23s-.53.08-.72.23c-.19.14-.33.35-.4.58-.02.05-.03.1-.03.16-.05.18-.06.47-.06.67v.03c-.07.03-.14.1-.15.26-.02.12.03.22.06.27.02.1.09.22.2.24.01.05.03.1.05.15v.01c.08.23.22.42.38.56v.07c-.02.17.03.29-.43.5-.46.2-1.16.42-1.3.75s-.09.52-.09.52H8c-.01 0 .05-.19-.1-.52zM10 6h2c.55 0 1 .45 1 1s-.45 1-1 1h-2c-.55 0-1-.45-1-1s.45-1 1-1zM10 9h2c.55 0 1 .45 1 1s-.45 1-1 1h-2c-.55 0-1-.45-1-1s.45-1 1-1z\"],\n \"image-rotate-left\": [\"M13 2h-1.59l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C8.11 2.47 8 2.72 8 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H13c.55 0 1 .45 1 1v3c0 .55.45 1 1 1s1-.45 1-1V5c0-1.66-1.34-3-3-3zm-5.5 9c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7H1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 6.33L7 12l-1 1-2-3-2 2.67V9h7v4.33z\"],\n \"image-rotate-right\": [\"M5.71 5.71l2-2C7.89 3.53 8 3.28 8 3c0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H3C1.34 2 0 3.34 0 5v3c0 .55.45 1 1 1s1-.45 1-1V5c0-.55.45-1 1-1h1.59l-.3.29a1.003 1.003 0 001.42 1.42zM12.5 11c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM15 7H6c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 6.33L12 12l-1 1-2-3-2 2.67V9h7v4.33z\"],\n \"import\": [\"M7.29 11.71c.18.18.43.29.71.29s.53-.11.71-.29l4-4a1.003 1.003 0 00-1.42-1.42L9 8.59V1c0-.55-.45-1-1-1S7 .45 7 1v7.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l4 4zM15 11c-.55 0-1 .45-1 1v2H2v-2c0-.55-.45-1-1-1s-1 .45-1 1v3c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1z\"],\n \"inbox\": [\"M13.91 2.6c-.16-.36-.51-.61-.92-.61h-10c-.41 0-.77.25-.92.61L-.01 7.45v5.54c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V7.45L13.91 2.6zm-1.92 5.39c-.55 0-1 .45-1 1v1h-6v-1c0-.55-.45-1-1-1H1.94l1.71-4h8.68l1.71 4h-2.05z\"],\n \"inbox-filtered\": [\"M6.432 2c.094.14.202.273.324.394L8.42 4H3.66L1.95 8H4c.55 0 1 .45 1 1v1h6.557c.693 0 1.363-.262 1.837-.736l.103-.102.85-1.14a2.564 2.564 0 00.623-1.682V5.058L16 7.46V13c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V7.46l2.08-4.85C2.23 2.25 2.59 2 3 2h3.432zm9.048-2c.31 0 .52.26.52.57 0 .16-.06.3-.17.41l-2.86 2.73v2.63c0 .16-.06.3-.17.41l-.82 1.1c-.1.1-.25.17-.41.17-.31 0-.57-.26-.57-.57V3.71L8.17.98A.566.566 0 018 .57c0-.31.26-.57.57-.57h6.91z\"],\n \"inbox-geo\": [\"M6.341 2A5.99 5.99 0 006 4H3.66L1.95 8H4c.55 0 1 .45 1 1v1h7a5.978 5.978 0 004-1.528V13c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V7.46l2.08-4.85C2.23 2.25 2.59 2 3 2h3.341zm3.679 2.145c0-.125.075-.23.205-.225h.345l.79.8c.005 0 0 .005 0 .005v.295c0 .13-.085.23-.215.23h-.07v.15c0 .13-.09.2-.215.2v.535c0 .125-.12.225-.245.225s-.245-.1-.245-.225V5.25h-.145c-.125 0-.205-.1-.205-.23v-.875zm2.235-2.195c-.03 0-.055-.005-.06-.035 0-.03.03-.035.06-.035h.11c.035 0 .06.005.06.035 0 .03-.03.035-.06.035h-.11zm-1.165-.025a.094.094 0 01-.13 0l-.25-.25a.094.094 0 010-.13.094.094 0 01.13 0l.25.25a.094.094 0 010 .13zm1.53.445c-.035 0-.07-.025-.07-.06v-.155c0-.03.035-.06.07-.06s.07.025.07.06v.155c0 .03-.035.06-.07.06zM12 0c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4zm0 7c1.655 0 3-1.345 3-3 0-.195-.02-.39-.06-.575h-.21c-.125 0-.225-.07-.23-.21h-.215c.075.07.155.14.155.23V3.9c0 .06-.04.115-.075.155h-.015l-.01.005-.015.01-.445.43v.815c0 .13-.07.22-.2.22h-.36c-.125 0-.21-.09-.21-.22v-.84a.627.627 0 00-.36-.345h-.45c-.13 0-.245-.095-.245-.225v-.46c0-.125.115-.23.245-.23l.13-.005.21-.215c.09-.09.24-.09.33 0l.22.225h.47c.105 0 .155-.105.225-.21v-.075h-.205a.106.106 0 01-.105-.105.11.11 0 01.105-.105h.18l.025.005v-.12s-.03-.025-.04-.025h-.2l-.045.05a.235.235 0 01-.33.005l-.045-.06h-.115l.16.175c.015.015.015.06 0 .075-.02.015-.045.02-.06.005l-.195-.185h-.085l-.245.23-.02-.005c-.025.07-.06.055-.095.055-.085 0-.15-.045-.15-.13s.065-.14.15-.14h.115v-.125c0-.06.04-.09.1-.09h.05V2.36c0-.095.095-.2.19-.2h.19c.105 0 .18-.075.18-.185V1.94c0-.015.035.01.035-.06h-.125l-.005.01-.21.22a.085.085 0 01-.115 0 .085.085 0 010-.115l.255-.255c.02-.015.045-.015.065-.015.005 0 .005.015.005.015h.64a2.327 2.327 0 00-.355-.275 2.452 2.452 0 00-.355-.195c-.03-.015-.055-.03-.08-.04a3.025 3.025 0 00-1.735-.175c-.09.02-.175.055-.265.08-.09.03-.18.05-.265.085-.075.03-.145.07-.22.105-.115.06-.235.115-.34.185l-.005.005c-.1.065-.18.145-.27.22h.455c.06 0 .11.045.11.105s-.05.105-.11.105h-.32c0 .07-.025.04-.025.045v.24h.285l.15-.17c.09-.09.235-.105.325-.015.09.09.09.23 0 .32l-.795.79-.01.01c-.005 0-.005 0-.01.005l-.025.015h-.01a.235.235 0 01-.12.025h-.23c-.08.07-.125.1-.125.18v.06c0 .01-.02.02-.02.03l.375.39c.04.04.04.1 0 .14-.04.04-.1.04-.14 0l-.39-.385a.213.213 0 01-.055.01c-.105 0-.195-.085-.195-.185v-.235h-.055A3.1 3.1 0 009 4c0 1.655 1.345 3 3 3zm2.27-2.135c.05 0 .105.04.105.09v.285c0 .05-.055.09-.105.09-.05 0-.105-.04-.105-.09v-.285c0-.05.055-.09.105-.09zm-2.085-3.27c0 .13-.105.21-.225.21h-.25v.07c0 .075-.03.135-.105.135s-.105-.06-.105-.135V1.64c-.075-.02-.025-.025-.025-.04 0-.125.085-.215.21-.215h.27c.13 0 .23.085.23.21z\"],\n \"inbox-search\": [\"M5.639 2a5.391 5.391 0 00-.144 2H3.66L1.95 8H4c.55 0 1 .45 1 1v1h6V9c0-.088.012-.174.033-.255.12-.007.238-.019.39-.038.154-.008.252-.03.442-.077a5.34 5.34 0 00.24-.05h.05l.122-.04 1.266 1.271c.425.47 1.116.769 1.847.769.21 0 .414-.025.61-.071V13c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V7.46l2.08-4.85C2.23 2.25 2.59 2 3 2h2.639zM15.82 7.53c.1.12.17.27.18.44 0 .34-.27.61-.61.61a.57.57 0 01-.43-.18l-2.24-2.25c-.13.08-.26.16-.4.23-.02.01-.05.02-.07.03-.14.06-.27.12-.42.17h-.01c-.14.05-.29.08-.44.11-.04.01-.08.02-.11.02-.15.02-.3.04-.46.04-1.85 0-3.35-1.51-3.35-3.37S8.96.01 10.81 0c1.85 0 3.35 1.51 3.35 3.37 0 .16-.02.31-.04.47-.01.04-.01.07-.02.11-.02.15-.05.29-.1.44v.01c-.05.15-.11.28-.17.42-.01.02-.02.05-.03.07-.07.14-.14.27-.23.4l2.25 2.24zm-5.01-1.94c1.22 0 2.21-.99 2.21-2.22 0-1.23-.99-2.22-2.21-2.22S8.6 2.14 8.6 3.37c0 1.22.99 2.22 2.21 2.22z\"],\n \"inbox-update\": [\"M8.1 2a5.023 5.023 0 000 2H3.66L1.95 8H4c.55 0 1 .45 1 1v1h6V9c0-.55.45-1 1-1h2.05c.708 0 1.352-.241 1.905-.645L16 7.46V13c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V7.46l2.08-4.85C2.23 2.25 2.59 2 3 2h5.1zM13 6a3 3 0 110-6 3 3 0 010 6z\"],\n \"info-sign\": [\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zM7 3h2v2H7V3zm3 10H6v-1h1V7H6V6h3v6h1v1z\"],\n \"inheritance\": [\"M5 8c0 1.66 1.34 3 3 3h4.59L11.3 9.71A.965.965 0 0111 9a1.003 1.003 0 011.71-.71l3 3c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-3 3a1.003 1.003 0 01-1.42-1.42l1.3-1.29H8c-2.76 0-5-2.24-5-5H1a1 1 0 01-1-1V1a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5zM2 2v4h4V2H2z\"],\n \"inherited-group\": [\"M1 7c.51 0 .935.388.993.884L2 8v3c0 .51.388.935.884.993L3 12h1.59l-.3-.29a1.003 1.003 0 011.324-1.504l.096.084 2 2c.18.18.29.43.29.71 0 .233-.076.446-.206.614l-.084.096-2 2A1.003 1.003 0 014 15c0-.24.08-.458.224-.629l.076-.081.29-.29H3a2.996 2.996 0 01-2.995-2.823L0 11V8c0-.55.45-1 1-1zm5.388-7c.629 0 1.338.21 1.838.6.48.38.85.91 1.019 1.52.04.13.07.27.09.4.09.48.14 1.22.14 1.73v.07c.18.08.34.27.37.67.03.32-.09.59-.16.71-.06.28-.21.58-.48.63-.03.13-.07.26-.12.39 0 .01-.01.04-.01.04-.22.58-.55 1.08-.949 1.45v.18c.04.45-.12.77 1.059 1.3 1.179.53 2.947 1.09 3.307 1.95.37.86.22 1.36.22 1.36H9c0-.539-.21-1.045-.583-1.417l-2-2A1.997 1.997 0 005 9c-.149 0-.296-.015-.442-.045.099-.19.082-.37.101-.575 0-.05.01-.11.01-.17-.41-.35-.75-.86-.969-1.45v-.01s-.01-.01-.01-.02c-.04-.12-.09-.26-.12-.39-.28-.05-.44-.36-.5-.64-.06-.12-.19-.39-.16-.71.04-.41.21-.6.39-.68v-.06c0-.51.05-1.26.14-1.74.02-.13.05-.27.09-.4.17-.6.54-1.13 1.02-1.51C5.048.21 5.757 0 6.387 0zm4.625 2.04c.49 0 1.05.16 1.439.46.38.29.67.7.8 1.17.03.1.05.21.07.31.07.37.11.94.11 1.33v.05c.139.06.269.21.289.51.02.25-.07.45-.13.54-.05.21-.16.44-.38.48a1.711 1.711 0 01-.1.33c-.17.44-.43.83-.749 1.11v.14c.03.35-.09.59.83 1 .929.41 2.317.84 2.597 1.5.29.66.17 1.04.17 1.04H13.66v.01c-.05-.24-.14-.5-.25-.76-.36-.86-1.119-1.33-2.687-2-.14-.06-.59-.25-.6-.25-.21-.09-.36-.15-.5-.22.02-.1.02-.2.03-.31 0-.04.01-.08.01-.13-.07-.06-.13-.12-.19-.19.22-.32.4-.67.54-1.05.02-.06.02-.06.03-.1.29-.23.48-.57.59-.96.16-.33.25-.73.21-1.16-.03-.4-.16-.76-.37-1.03-.02-.53-.07-1.13-.15-1.54-.01-.06-.02-.12-.03-.19.23-.06.48-.09.72-.09z\"],\n \"inner-join\": [\"M6.6 3.3C5.3 4.4 4.5 6.1 4.5 8s.8 3.6 2.1 4.7c-.5.2-1 .3-1.6.3-2.8 0-5-2.2-5-5s2.2-5 5-5c.6 0 1.1.1 1.6.3zm-1.96 8.68C3.92 10.83 3.5 9.46 3.5 8s.42-2.83 1.14-3.98C2.6 4.2 1 5.91 1 8s1.6 3.8 3.64 3.98zM8 4c-1.2.9-2 2.4-2 4s.8 3.1 2 4c1.2-.9 2-2.3 2-4s-.8-3.1-2-4zm3-1c2.8 0 5 2.2 5 5s-2.2 5-5 5c-.6 0-1.1-.1-1.6-.3 1.3-1.1 2.1-2.9 2.1-4.7s-.8-3.5-2.1-4.7c.5-.2 1-.3 1.6-.3zm.35 1.02c.73 1.15 1.14 2.52 1.14 3.98s-.42 2.83-1.14 3.98c2.04-.18 3.64-1.9 3.64-3.98s-1.6-3.8-3.64-3.98z\"],\n \"insert\": [\"M5 9h2v2c0 .6.4 1 1 1s1-.4 1-1V9h2c.6 0 1-.4 1-1s-.4-1-1-1H9V5c0-.6-.4-1-1-1s-1 .4-1 1v2H5c-.6 0-1 .4-1 1s.4 1 1 1zm10-9H1C.4 0 0 .4 0 1v14c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V1c0-.6-.4-1-1-1zm-1 14H2V2h12v12z\"],\n \"intersection\": [\"M10 3c-.92 0-1.76.26-2.5.69C6.76 3.26 5.92 3 5 3 2.24 3 0 5.24 0 8s2.24 5 5 5c.92 0 1.76-.26 2.5-.69.74.43 1.58.69 2.5.69 2.76 0 5-2.24 5-5s-2.24-5-5-5zm-4.1 7.85c-.29.09-.59.15-.9.15-1.66 0-3-1.34-3-3s1.34-3 3-3c.31 0 .61.06.9.15C5.33 5.96 5 6.94 5 8s.33 2.04.9 2.85zM10 11c-.31 0-.61-.06-.9-.15.57-.81.9-1.79.9-2.85s-.33-2.04-.9-2.85c.29-.09.59-.15.9-.15 1.66 0 3 1.34 3 3s-1.34 3-3 3z\"],\n \"ip-address\": [\"M5 2.66C5 4.14 8 8 8 8s3-3.86 3-5.34C10.99 1.2 9.66 0 8 0S5 1.2 5 2.66zM7 3c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1zM10.5 10H8v5h1v-4h1v1H9v1h2v-3h-.5zM2 9h12c.55 0 1 .45 1 1v5c0 .55-.45 1-1 1H2c-.55 0-1-.45-1-1v-5c0-.55.45-1 1-1zm4 1v5h1v-5H6z\"],\n \"issue\": [\"M8 16A8 8 0 118 0a8 8 0 010 16zm0-2A6 6 0 108 2a6 6 0 000 12zm1-2H7v-2h2v2zm0-3H7V4h2v5z\"],\n \"issue-closed\": [\"M9.296.104a2.99 2.99 0 00-1.003.664 2.987 2.987 0 00-.75 1.25 6 6 0 106.28 4.527c.043-.039.085-.079.127-.12l1.456-1.456A8 8 0 119.296.105zm2.532 5.2a.997.997 0 01-.707-.294L9.707 3.596a1 1 0 011.414-1.414l.707.707 1.768-1.768a1 1 0 111.414 1.415L12.536 5.01a.997.997 0 01-.708.293zM9 12H7v-2h2v2zm0-3H7V4h2v5z\"],\n \"issue-new\": [\"M10.568.421c-.01.04-.018.08-.026.121-.837.156-1.53.73-1.85 1.497a6 6 0 105.27 5.273 2.51 2.51 0 001.496-1.854c.04-.008.081-.016.121-.026A8 8 0 1110.568.421zM9 12H7v-2h2v2zm0-3H7V4h2v5zm1-6c0-.55.45-1 1-1h1V1c0-.55.45-1 1-1s1 .45 1 1v1h1c.55 0 1 .45 1 1s-.45 1-1 1h-1v1.005c0 .55-.45 1-1 1s-1-.45-1-1V4h-1c-.55 0-1-.45-1-1z\"],\n \"italic\": [\"M9.8 4H11c.5 0 1-.4 1-1s-.4-1-1-1H7c-.5 0-1 .4-1 1s.4 1 1 1h.8l-1.6 8H5c-.5 0-1 .4-1 1s.4 1 1 1h4c.5 0 1-.4 1-1s-.4-1-1-1h-.8l1.6-8z\"],\n \"join-table\": [\"M15 5h-3V2c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h3v3c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-5-1v2H6V4h4zm0 6H6V7h4v3zM2 4h3v2H2V4zm0 5V7h3v2H2zm4 4v-2h4v2H6zm8 0h-3v-2h3v2zm0-3h-3V8h3v2z\"],\n \"key\": [\"M11 0C8.24 0 6 2.24 6 5c0 1.02.31 1.96.83 2.75L.29 14.29a1.003 1.003 0 001.42 1.42L3 14.41l1.29 1.29c.18.19.43.3.71.3s.53-.11.71-.29l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71L6.41 11l1.83-1.83c.8.52 1.74.83 2.76.83 2.76 0 5-2.24 5-5s-2.24-5-5-5zm0 8c-.23 0-.45-.03-.66-.08-.01 0-.02-.01-.03-.01-.21-.05-.41-.12-.6-.21a3.014 3.014 0 01-1.62-2c0-.01-.01-.02-.01-.03C8.03 5.45 8 5.23 8 5c0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3z\"],\n \"key-backspace\": [\"M15 2H6c-.28 0-.53.11-.71.29l-5 5C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l5 5c.18.18.43.29.71.29h9c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm-2.29 7.29a1.003 1.003 0 01-1.42 1.42L10 9.41 8.71 10.7c-.18.19-.43.3-.71.3a1.003 1.003 0 01-.71-1.71L8.59 8l-1.3-1.29a1.003 1.003 0 011.42-1.42L10 6.59l1.29-1.29c.18-.19.43-.3.71-.3a1.003 1.003 0 01.71 1.71L11.41 8l1.3 1.29z\"],\n \"key-command\": [\"M12 9h-1V7h1c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3v1H7V4c0-1.66-1.34-3-3-3S1 2.34 1 4s1.34 3 3 3h1v2H4c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3v-1h2v1c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3zm0-6c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM4 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-8c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm5 4H7V7h2v2zm3 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"key-control\": [\"M12.71 5.29l-4-4C8.53 1.11 8.28 1 8 1s-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L8 3.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z\"],\n \"key-delete\": [\"M15.71 7.29l-5-5A.997.997 0 0010 2H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h9c.28 0 .53-.11.71-.29l5-5c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zm-7 2a1.003 1.003 0 01-1.42 1.42L6 9.41 4.71 10.7c-.18.19-.43.3-.71.3a1.003 1.003 0 01-.71-1.71L4.59 8l-1.3-1.29a1.003 1.003 0 011.42-1.42L6 6.59 7.29 5.3c.18-.19.43-.3.71-.3a1.003 1.003 0 01.71 1.71L7.41 8l1.3 1.29z\"],\n \"key-enter\": [\"M14 2c-.55 0-1 .45-1 1v3c0 1.66-1.34 3-3 3H4.41L5.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L4.41 11H10c2.76 0 5-2.24 5-5V3c0-.55-.45-1-1-1z\"],\n \"key-escape\": [\"M2 7c.55 0 1-.45 1-1V4.41L7.29 8.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L4.41 3H6c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm7-5.9v2A5 5 0 113.1 9h-2c.49 3.39 3.38 6 6.9 6 3.87 0 7-3.13 7-7 0-3.52-2.61-6.41-6-6.9z\"],\n \"key-option\": [\"M11 4h4c.55 0 1-.45 1-1s-.45-1-1-1h-4c-.55 0-1 .45-1 1s.45 1 1 1zm4 8h-3.43L5.86 2.49h-.02A.975.975 0 005 2H1c-.55 0-1 .45-1 1s.45 1 1 1h3.43l5.71 9.51.01-.01c.18.3.49.5.85.5h4c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"key-shift\": [\"M13.71 7.29l-5-5C8.53 2.11 8.28 2 8 2s-.53.11-.71.29l-5 5A1.003 1.003 0 003 9h2v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V9h2a1.003 1.003 0 00.71-1.71z\"],\n \"key-tab\": [\"M15 10H4.41L5.7 8.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L2 9.59V8c0-.55-.45-1-1-1s-1 .45-1 1v6c0 .55.45 1 1 1s1-.45 1-1v-1.59l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L4.41 12H15c.55 0 1-.45 1-1s-.45-1-1-1zm0-9c-.55 0-1 .45-1 1v1.59L11.71 1.3A.965.965 0 0011 1a1.003 1.003 0 00-.71 1.71L11.59 4H1c-.55 0-1 .45-1 1s.45 1 1 1h10.59L10.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L14 6.41V8c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z\"],\n \"known-vehicle\": [\"M15 3a.997.997 0 00-.707.293L12 5.586l-1.293-1.293a1 1 0 10-1.414 1.414l2 2a.997.997 0 001.414 0l3-3A1 1 0 0015 3zm-.879 6.121l-.007-.007c-.313.309-.69.552-1.114.702V10h-.998H12h-1v-.184c-.424-.15-.8-.395-1.112-.704l-.01.01-2-2 .012-.012A2.978 2.978 0 017.184 6H3c-.176 0-.06-.824 0-1l.73-1.63C3.79 3.192 3.823 3 4 3H7.78C8.328 2.39 9.115 2 10 2c.768 0 1.461.293 1.987.77l.844-.844c-.238-.244-.524-.442-.794-.524C12.037 1.402 10.72 1 8 1c-2.72 0-4.037.402-4.037.402-.508.155-1.078.711-1.268 1.237l-.763 2.117H.88c-.484 0-.88.423-.88.939s.396.939.88.939h.375L1 7c-.034.685 0 1.436 0 2v5c0 .657.384 1 1 1s1-.343 1-1v-1h10v1c0 .657.384 1 1 1s1-.343 1-1V9l-.003-.754-.876.875zM5.001 10H3V8h2v2z\"],\n \"lab-test\": [\"M11 1a1 1 0 010 2v3l3 7v1.25a.75.75 0 01-.75.75H2.75a.75.75 0 01-.75-.75V13l3-7V3a1 1 0 110-2h6zM9 3H7v3l-1.714 4h5.428L9 6V3z\"],\n \"label\": [\"M11 2H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V7l-5-5zm3 10H2V4h8v2H3v1h7v1h4v4zm-3-5V4l3 3h-3zm-8 3h10V9H3v1z\"],\n \"layer\": [\"M16 8c0-.37-.21-.68-.51-.85l.01-.01-7-4-.01.01C8.34 3.06 8.18 3 8 3s-.34.06-.49.15l-.01-.02-7 4 .01.01C.21 7.32 0 7.63 0 8s.21.68.51.85l-.01.01 7 4 .01-.01c.15.09.31.15.49.15s.34-.06.49-.15l.01.01 7-4-.01-.01c.3-.17.51-.48.51-.85z\"],\n \"layer-outline\": [\"M7.504 3.132l-7 4a1 1 0 000 1.736l7 4a1 1 0 00.992 0l7-4a1 1 0 000-1.736l-7-4a1 1 0 00-.992 0zM8 5.152L12.983 8 8 10.847 3.016 8 8 5.152z\"],\n \"layers\": [\"M.55 4.89l7 3.5c.14.07.29.11.45.11s.31-.04.45-.11l7-3.5a.998.998 0 00-.06-1.81L8.4.08a1.006 1.006 0 00-.79 0l-6.99 3a.992.992 0 00-.07 1.81zM15 10c-.16 0-.31.04-.45.11L8 13.38 1.45 10.1c-.14-.06-.29-.1-.45-.1-.55 0-1 .45-1 1 0 .39.23.73.55.89l7 3.5c.14.07.29.11.45.11s.31-.04.45-.11l7-3.5c.32-.16.55-.5.55-.89 0-.55-.45-1-1-1zm0-3.5c-.16 0-.31.04-.45.11L8 9.88 1.45 6.61A.997.997 0 001 6.5c-.55 0-1 .45-1 1 0 .39.23.73.55.89l7 3.5c.14.07.29.11.45.11s.31-.04.45-.11l7-3.5c.32-.16.55-.5.55-.89 0-.55-.45-1-1-1z\"],\n \"layout\": [\"M14 4c-1.1 0-2 .9-2 2 0 .47.17.9.44 1.24l-.68.91A1.996 1.996 0 009.07 9.5H7.93C7.71 8.64 6.93 8 6 8c-.47 0-.9.17-1.24.44l-.91-.68c.1-.23.15-.49.15-.76 0-.37-.11-.71-.28-1.01l2.27-2.27c.3.17.64.28 1.01.28 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .37.11.71.28 1.01L3.01 5.28C2.71 5.11 2.37 5 2 5 .9 5 0 5.9 0 7s.9 2 2 2c.47 0 .9-.17 1.24-.44l.91.68c-.1.23-.15.49-.15.76 0 .37.11.71.28 1.01l-1.27 1.27C2.71 12.11 2.37 12 2 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2c0-.37-.11-.71-.28-1.01l1.27-1.27c.3.17.64.28 1.01.28.93 0 1.71-.64 1.93-1.5h1.14c.22.86 1 1.5 1.93 1.5 1.1 0 2-.9 2-2 0-.47-.17-.9-.44-1.24l.68-.91c.23.1.49.15.76.15 1.1 0 2-.9 2-2s-.9-2-2-2z\"],\n \"layout-auto\": [\"M14 9.5c-.56 0-1.06.23-1.42.59L8.99 8l3.59-2.09A2.002 2.002 0 0016 4.5c0-1.1-.9-2-2-2s-2 .9-2 2c0 .19.03.37.08.54L8.5 7.13v-3.2c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S6 .9 6 2c0 .93.64 1.71 1.5 1.93v3.2L3.92 5.04c.05-.17.08-.35.08-.54 0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.56 0 1.06-.23 1.42-.59L7.01 8l-3.59 2.09A2.002 2.002 0 000 11.5c0 1.1.9 2 2 2s2-.9 2-2c0-.19-.03-.37-.08-.54L7.5 8.87v3.2c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93v-3.2l3.58 2.09c-.05.17-.08.35-.08.54 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2z\"],\n \"layout-balloon\": [\"M14 11c-.2 0-.38.04-.56.09L12.42 9.4c.36-.36.58-.85.58-1.4 0-.55-.22-1.04-.58-1.4l1.01-1.69c.19.05.37.09.57.09 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .55.22 1.04.58 1.4l-1.01 1.69C11.38 6.04 11.2 6 11 6c-.93 0-1.71.64-1.93 1.5H6.93C6.71 6.64 5.93 6 5 6c-.2 0-.38.04-.56.09L3.42 4.4C3.78 4.04 4 3.55 4 3c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.2 0 .38-.04.56-.09L3.58 6.6C3.22 6.96 3 7.45 3 8c0 .55.22 1.04.58 1.4l-1.01 1.69C2.38 11.04 2.2 11 2 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2c0-.55-.22-1.04-.58-1.4l1.01-1.69c.19.05.37.09.57.09.93 0 1.71-.64 1.93-1.5h2.14c.22.86 1 1.5 1.93 1.5.2 0 .38-.04.56-.09l1.01 1.69c-.35.36-.57.85-.57 1.4 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2z\"],\n \"layout-circle\": [\"M14.16 6.02c-.12-.36-.26-.7-.43-1.03.17-.29.27-.63.27-.99 0-1.1-.9-2-2-2-.36 0-.7.1-.99.27-.33-.17-.67-.31-1.03-.43A1.987 1.987 0 008 0C6.95 0 6.1.81 6.02 1.84c-.36.12-.7.26-1.03.43C4.7 2.1 4.36 2 4 2c-1.1 0-2 .9-2 2 0 .36.1.7.27.99-.17.33-.31.67-.43 1.03C.81 6.1 0 6.95 0 8c0 1.05.81 1.9 1.84 1.98.12.36.26.7.43 1.03-.17.29-.27.63-.27.99 0 1.1.9 2 2 2 .36 0 .7-.1.99-.27.33.17.67.32 1.03.43C6.1 15.19 6.95 16 8 16c1.05 0 1.9-.81 1.98-1.84.36-.12.7-.26 1.03-.43.29.17.63.27.99.27 1.1 0 2-.9 2-2 0-.36-.1-.7-.27-.99.17-.33.31-.67.43-1.03C15.19 9.9 16 9.05 16 8c0-1.05-.81-1.9-1.84-1.98zm-.99 3.79c-.05.16-.11.31-.17.46-.3-.17-.64-.27-1-.27-1.1 0-2 .9-2 2 0 .36.1.7.27 1-.15.07-.3.12-.46.17C9.5 12.48 8.81 12 8 12s-1.5.48-1.81 1.17c-.16-.06-.32-.11-.46-.17.17-.3.27-.64.27-1 0-1.1-.9-2-2-2-.36 0-.7.1-1 .27-.07-.15-.12-.3-.17-.46C3.52 9.5 4 8.81 4 8s-.48-1.5-1.17-1.81c.06-.16.11-.32.17-.46.3.17.64.27 1 .27 1.1 0 2-.9 2-2 0-.36-.1-.7-.27-1 .15-.07.3-.12.46-.17C6.5 3.52 7.19 4 8 4s1.5-.48 1.81-1.17c.16.06.32.11.46.17-.17.3-.27.64-.27 1 0 1.1.9 2 2 2 .36 0 .7-.1 1-.27.07.15.12.3.17.46C12.48 6.5 12 7.19 12 8s.48 1.5 1.17 1.81z\"],\n \"layout-grid\": [\"M2 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6C.9 6 0 6.9 0 8s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM8 0C6.9 0 6 .9 6 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM8 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"layout-group-by\": [\"M2 6C.9 6 0 6.9 0 8s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 5c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12-7c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM2 1C.9 1 0 1.9 0 3s.9 2 2 2 2-.9 2-2-.9-2-2-2zm7 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm5 3c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"layout-hierarchy\": [\"M14.5 12.07V9.93c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2-.93 0-1.71.64-1.93 1.5H9.93c-.18-.7-.73-1.25-1.43-1.43V3.93c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S6 .9 6 2c0 .93.64 1.71 1.5 1.93v2.14c-.7.18-1.25.73-1.43 1.43H3.93C3.71 6.64 2.93 6 2 6 .9 6 0 6.9 0 8c0 .93.64 1.71 1.5 1.93v2.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93V9.93c.7-.18 1.25-.73 1.43-1.43h2.14c.18.7.73 1.25 1.43 1.43v2.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93V9.93c.7-.18 1.25-.73 1.43-1.43h2.14c.18.7.73 1.25 1.43 1.43v2.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93z\"],\n \"layout-linear\": [\"M14 6c-.93 0-1.71.64-1.93 1.5H9.93C9.71 6.64 8.93 6 8 6s-1.71.64-1.93 1.5H3.93C3.71 6.64 2.93 6 2 6 .9 6 0 6.9 0 8s.9 2 2 2c.93 0 1.71-.64 1.93-1.5h2.13C6.29 9.36 7.07 10 8 10s1.71-.64 1.93-1.5h2.13c.22.86 1 1.5 1.93 1.5 1.1 0 2-.9 2-2C16 6.9 15.1 6 14 6z\"],\n \"layout-skew-grid\": [\"M2 6C.9 6 0 6.9 0 8s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12-2c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM2 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 9c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6-3c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM8 3c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 9c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"layout-sorted-clusters\": [\"M2 6C.9 6 0 6.9 0 8s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM8 9c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"learning\": [\"M8.441 1.104a.985.985 0 00-.882 0L.365 5c-.487.253-.487.747 0 1L7.56 9.896a.985.985 0 00.882 0L15.635 6c.487-.253.487-.747 0-1L8.44 1.104z\", \"M14 5.5l.016 4.514c.002.548.447.99.994.99a.99.99 0 00.99-.99V5.5h-2zM3.371 9.047l4.387 2.432a.5.5 0 00.485 0l4.39-2.432a.25.25 0 01.371.218v2.955a.25.25 0 01-.134.222l-4.635 2.436a.5.5 0 01-.466 0l-4.635-2.436A.25.25 0 013 12.22V9.265a.25.25 0 01.371-.218z\"],\n \"left-join\": [\"M6.6 3.3C6.1 3.1 5.6 3 5 3 2.2 3 0 5.2 0 8s2.2 5 5 5c.6 0 1.1-.1 1.6-.3C5.3 11.6 4.5 9.9 4.5 8s.8-3.6 2.1-4.7zM8 4c-1.2.9-2 2.4-2 4s.8 3.1 2 4c1.2-.9 2-2.3 2-4s-.8-3.1-2-4zm3-1c2.8 0 5 2.2 5 5s-2.2 5-5 5c-.6 0-1.1-.1-1.6-.3 1.3-1.1 2.1-2.9 2.1-4.7s-.8-3.5-2.1-4.7c.5-.2 1-.3 1.6-.3zm.35 1.02c.73 1.15 1.14 2.52 1.14 3.98s-.42 2.83-1.14 3.98c2.04-.18 3.64-1.9 3.64-3.98s-1.6-3.8-3.64-3.98z\"],\n \"less-than\": [\"M13.287 5.958a1 1 0 00-.574-1.916l-10 3c-.95.285-.95 1.631 0 1.916l10 3a1 1 0 00.574-1.916L6.48 8l6.807-2.042z\"],\n \"less-than-or-equal-to\": [\"M13.287 3.958a1 1 0 00-.575-1.916l-10 3c-.95.285-.95 1.63 0 1.916l10 3a1 1 0 00.575-1.916L6.48 6l6.807-2.042zM13 12H3a1 1 0 000 2h10a1 1 0 000-2z\"],\n \"lifesaver\": [\"M9.405 11.746C8.968 11.91 8.495 12 8 12c-.494 0-.968-.09-1.405-.254l-.702 1.873C6.548 13.865 7.258 14 8 14c.742 0 1.452-.135 2.107-.38l-.702-1.874zm2.341-2.341l1.873.702C13.865 9.452 14 8.742 14 8c0-.742-.135-1.452-.38-2.107l-1.874.702c.164.437.254.91.254 1.405 0 .494-.09.968-.254 1.405zM9.405 4.254l.702-1.873A5.987 5.987 0 008 2c-.742 0-1.452.135-2.107.38l.702 1.874C7.032 4.09 7.505 4 8 4c.494 0 .968.09 1.405.254zM4.254 6.595L2.38 5.893A5.987 5.987 0 002 8c0 .742.135 1.452.38 2.107l1.874-.702A3.991 3.991 0 014 8c0-.494.09-.968.254-1.405zM8 16A8 8 0 118 0a8 8 0 010 16zm0-6a2 2 0 100-4 2 2 0 000 4z\"],\n \"lightbulb\": [\"M9.01 14h-2c-.55 0-1 .45-1 1s.45 1 1 1h2c.55 0 1-.45 1-1s-.44-1-1-1zm1-3h-4c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1s-.44-1-1-1zm-2-11C5.26 0 3.03 1.95 3.03 4.35c0 2.37 1.63 2.64 1.94 5.22 0 .24.22.44.5.44h5.09c.28 0 .5-.19.5-.44C11.37 6.99 13 6.72 13 4.35 13 1.95 10.77 0 8.01 0z\"],\n \"lightning\": [\"M7 9H5a1 1 0 01-1-1L4.89.876A1 1 0 015.884 0h4.27a.847.847 0 01.793 1.144L9.125 6h2.05a.825.825 0 01.754 1.16L8.16 15.64A.606.606 0 017 15.394V9z\"],\n \"link\": [\"M4.99 11.99c.28 0 .53-.11.71-.29l6-6a1.003 1.003 0 00-1.42-1.42l-6 6a1.003 1.003 0 00.71 1.71zm3.85-2.02L6.4 12.41l-1 1-.01-.01c-.36.36-.85.6-1.4.6-1.1 0-2-.9-2-2 0-.55.24-1.04.6-1.4l-.01-.01 1-1 2.44-2.44c-.33-.1-.67-.16-1.03-.16-1.1 0-2.09.46-2.81 1.19l-.02-.02-1 1 .02.02c-.73.72-1.19 1.71-1.19 2.81 0 2.21 1.79 4 4 4 1.1 0 2.09-.46 2.81-1.19l.02.02 1-1-.02-.02c.73-.72 1.19-1.71 1.19-2.81 0-.35-.06-.69-.15-1.02zm7.15-5.98c0-2.21-1.79-4-4-4-1.1 0-2.09.46-2.81 1.19l-.02-.02-1 1 .02.02c-.72.72-1.19 1.71-1.19 2.81 0 .36.06.69.15 1.02l2.44-2.44 1-1 .01.01c.36-.36.85-.6 1.4-.6 1.1 0 2 .9 2 2 0 .55-.24 1.04-.6 1.4l.01.01-1 1-2.43 2.45c.33.09.67.15 1.02.15 1.1 0 2.09-.46 2.81-1.19l.02.02 1-1-.02-.02a3.92 3.92 0 001.19-2.81z\"],\n \"list\": [\"M1 3h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 10H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"list-columns\": [\"M6 1c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1h5zm9-12c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1h5z\"],\n \"list-detail-view\": [\"M6 9H1c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm0 4H1c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm9-12h-5c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM6 5H1c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H1c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"locate\": [\"M15 7h-.09A6.98 6.98 0 009 1.1V1c0-.55-.45-1-1-1S7 .45 7 1v.09A6.98 6.98 0 001.1 7H1c-.55 0-1 .45-1 1s.45 1 1 1h.1A6.969 6.969 0 007 14.91V15c0 .55.45 1 1 1s1-.45 1-1v-.09A6.98 6.98 0 0014.9 9h.1c.55 0 1-.45 1-1s-.45-1-1-1zm-6.02 5.9c-.05-.5-.46-.9-.98-.9s-.93.4-.98.9A5.017 5.017 0 013.1 8.98c.5-.05.9-.46.9-.98s-.4-.93-.9-.98A5.017 5.017 0 017.02 3.1c.05.5.46.9.98.9s.93-.4.98-.9c1.97.39 3.52 1.95 3.92 3.92-.5.05-.9.46-.9.98s.4.93.9.98a5.017 5.017 0 01-3.92 3.92zM8 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"lock\": [\"M13.96 7H12V3.95C12 1.77 10.21 0 8 0S4 1.77 4 3.95V7H1.96c-.55 0-.96.35-.96.9v6.91c0 .54.41 1.19.96 1.19h12c.55 0 1.04-.65 1.04-1.19V7.9c0-.55-.49-.9-1.04-.9zM6 7V3.95c0-1.09.9-1.97 2-1.97s2 .88 2 1.97V7H6z\"],\n \"log-in\": [\"M11 8c0-.28-.11-.53-.29-.71l-3-3a1.003 1.003 0 00-1.42 1.42L7.59 7H1c-.55 0-1 .45-1 1s.45 1 1 1h6.59L6.3 10.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71zm4-8H9c-.55 0-1 .45-1 1s.45 1 1 1h5v12H9c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"log-out\": [\"M7 14H2V2h5c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1zm8.71-6.71l-3-3a1.003 1.003 0 00-1.42 1.42L12.59 7H6c-.55 0-1 .45-1 1s.45 1 1 1h6.59l-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"manual\": [\"M15.99 1.13c-.02-.41-.33-.77-.78-.87C12.26-.36 9.84.13 8 1.7 6.16.13 3.74-.36.78.26.33.35.03.72.01 1.13H0v12c0 .08 0 .17.02.26.12.51.65.82 1.19.71 2.63-.55 4.59-.04 6.01 1.57.02.03.06.04.08.06.02.02.03.04.05.06.04.03.09.04.13.07.05.03.09.05.14.07.11.04.23.07.35.07h.04c.12 0 .24-.03.35-.07.05-.02.09-.05.14-.07.04-.02.09-.04.13-.07.02-.02.03-.04.05-.06.03-.02.06-.03.08-.06 1.42-1.6 3.39-2.12 6.01-1.57.54.11 1.07-.21 1.19-.71.04-.09.04-.18.04-.26l-.01-12zM7 12.99c-1.4-.83-3.07-1.14-5-.93V1.96c2.11-.28 3.75.2 5 1.46v9.57zm7-.92c-1.93-.21-3.6.1-5 .93V3.42c1.25-1.26 2.89-1.74 5-1.46v10.11z\"],\n \"manually-entered-data\": [\"M1 8h3.76l2-2H1c-.55 0-1 .45-1 1s.45 1 1 1zm14.49-4.01c.31-.32.51-.76.51-1.24C16 1.78 15.22 1 14.25 1c-.48 0-.92.2-1.24.51l-1.44 1.44 2.47 2.47 1.45-1.43zM1 4h7.76l2-2H1c-.55 0-1 .45-1 1s.45 1 1 1zm0 6c-.55 0-1 .45-1 1 0 .48.35.86.8.96L2.76 10H1zm9.95-6.43l-6.69 6.69 2.47 2.47 6.69-6.69-2.47-2.47zm4.25 2.47L13.24 8H15c.55 0 1-.45 1-1 0-.48-.35-.86-.8-.96zM2 15l3.86-1.39-2.46-2.44L2 15zm13-5h-3.76l-2 2H15c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"many-to-many\": [\"M3 3a1 1 0 100 2 1 1 0 000-2zm3 1c0 .047-.001.094-.003.14.255.081.538.209.832.41.406.28.8.676 1.171 1.225.37-.549.765-.945 1.171-1.224a3.14 3.14 0 01.832-.411 3 3 0 11.77 1.87 1.038 1.038 0 00-.47.19c-.291.2-.752.672-1.227 1.8.475 1.128.936 1.6 1.227 1.8.183.126.336.173.47.19a3 3 0 11-.77 1.87 3.141 3.141 0 01-.832-.41c-.406-.28-.8-.676-1.171-1.225-.37.549-.765.945-1.171 1.224-.294.202-.577.33-.832.411a3 3 0 11-.77-1.87c.134-.017.287-.064.47-.19.291-.2.752-.672 1.227-1.8-.475-1.128-.936-1.6-1.227-1.8a1.038 1.038 0 00-.47-.19A3 3 0 116 4zm6 0a1 1 0 112 0 1 1 0 01-2 0zm-9 7a1 1 0 100 2 1 1 0 000-2zm9 1a1 1 0 112 0 1 1 0 01-2 0z\"],\n \"many-to-one\": [\"M3 2a1 1 0 100 2 1 1 0 000-2zm0-2c1.385 0 2.551.94 2.896 2.215.168.044.34.096.51.158 1.076.394 2.237 1.242 2.575 2.93.161.809.664 1.211 1.293 1.443a3 3 0 110 2.508c-.629.232-1.132.634-1.293 1.442-.338 1.69-1.499 2.537-2.575 2.93a5.436 5.436 0 01-.51.159A3.001 3.001 0 010 13a3 3 0 015.726-1.254c.629-.232 1.132-.634 1.293-1.442.216-1.076.765-1.81 1.413-2.304-.648-.493-1.197-1.228-1.413-2.304-.161-.808-.664-1.21-1.293-1.442A3 3 0 113 0zm1 13a1 1 0 10-2 0 1 1 0 002 0zm8-5a1 1 0 102 0 1 1 0 00-2 0z\"],\n \"map\": [\"M15.55 3.17l-4.49-3A.975.975 0 009.99.15L5.53 2.82 1.56.17A1.003 1.003 0 000 1v11c0 .35.18.65.45.83l4.49 3a.975.975 0 001.07.02l4.46-2.67 3.97 2.65A1.003 1.003 0 0016 15V4c0-.35-.18-.65-.45-.83zM5 13.46l-3-2v-8.6l2.94 1.96c.02.02.04.03.06.04v8.6zm5-2.32s-.01 0-.01.01L6 13.53V4.86s.01 0 .01-.01L10 2.47v8.67zm4 1.99l-2.94-1.96c-.02-.01-.04-.02-.05-.03v-8.6l3 2v8.59z\"],\n \"map-create\": [\"M14 6.82v6.32l-2.94-1.96c-.02-.01-.04-.02-.05-.03V6.22c-.08-.07-.15-.16-.22-.24-.28-.02-.54-.08-.79-.16v5.32s-.01 0-.01.01L6 13.53V4.86s.01 0 .01-.01l2.05-1.23C8.02 3.42 8 3.21 8 3c0-.98.47-1.84 1.2-2.39l-3.67 2.2L1.56.17A1.003 1.003 0 000 1v11c0 .35.18.65.45.83l4.49 3a.975.975 0 001.07.02l4.46-2.67 3.97 2.65A1.003 1.003 0 0016 15V5.82c-.25.09-.52.14-.8.16-.33.36-.73.67-1.2.84zm-9 6.64l-3-2v-8.6l2.94 1.96c.02.02.04.03.06.04v8.6zM11 4h1v1c0 .55.45 1 1 1s1-.45 1-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"map-marker\": [\"M8.46 0C5.42 0 2.95 2.39 2.95 5.33 2.95 8.28 8.46 16 8.46 16s5.51-7.72 5.51-10.67C13.96 2.39 11.5 0 8.46 0zm0 8a2.5 2.5 0 010-5 2.5 2.5 0 010 5z\"],\n \"maximize\": [\"M5.99 8.99c-.28 0-.53.11-.71.29l-3.29 3.29v-1.59c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.41L6.7 10.7a1.003 1.003 0 00-.71-1.71zm9-9h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59l-3.3 3.3a.99.99 0 00-.29.7 1.003 1.003 0 001.71.71l3.29-3.29V5c0 .55.45 1 1 1s1-.45 1-1V1c0-.56-.45-1.01-1-1.01z\"],\n \"media\": [\"M11.99 6.99c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm3-5h-14c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-10c0-.55-.45-1-1-1zm-1 9l-5-3-1 2-3-4-3 5v-7h12v7z\"],\n \"menu\": [\"M1 4h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 8H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm0-5H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"menu-closed\": [\"M14.99 6.99h-9c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zm-12-2c-.28 0-.53.11-.71.29l-2 2a1.014 1.014 0 000 1.42l2 2a1.003 1.003 0 001.71-.71v-4c0-.55-.45-1-1-1zm3-1h9c.55 0 1-.45 1-1s-.45-1-1-1h-9c-.55 0-1 .45-1 1s.45 1 1 1zm9 8h-9c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"menu-open\": [\"M9.99 11.99h-9c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zm0-5h-9c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zm0-5h-9c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zm5.71 5.3l-2-2a1.003 1.003 0 00-1.71.71v4a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71s-.11-.53-.29-.71z\"],\n \"merge-columns\": [\"M5.71 5.29a1.003 1.003 0 00-1.42 1.42l.3.29H2V2h3v1.51c.52.06.99.29 1.34.65l.66.66V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-3.82l-.66.66c-.35.35-.82.59-1.34.65V14H2V9h2.59l-.3.29a1.003 1.003 0 001.42 1.42l2-2C7.89 8.53 8 8.28 8 8c0-.28-.11-.53-.29-.71l-2-2zM15 0h-5c-.55 0-1 .45-1 1v3.82l.66-.66c.35-.35.82-.59 1.34-.65V2h3v5h-2.59l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C8.11 7.47 8 7.72 8 8c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H14v5h-3v-1.51c-.52-.06-.99-.29-1.34-.65L9 11.18V15c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"merge-links\": [\"M8 7c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm6 3c-.93 0-1.71.64-1.93 1.5H11V3c0-1.66-1.34-3-3-3S5 1.34 5 3v4.5H3.93C3.71 6.64 2.93 6 2 6 .9 6 0 6.9 0 8s.9 2 2 2c.93 0 1.71-.64 1.93-1.5H5V13c0 1.66 1.34 3 3 3s3-1.34 3-3V8.5h1.07c.22.86 1 1.5 1.93 1.5 1.1 0 2-.9 2-2s-.9-2-2-2zm-4 7c0 1.1-.9 2-2 2s-2-.9-2-2V3c0-1.1.9-2 2-2s2 .9 2 2v10z\"],\n \"minimize\": [\"M15.99.99a1.003 1.003 0 00-1.71-.71l-3.29 3.29V1.99c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H12.4l3.3-3.29c.18-.18.29-.43.29-.71zm-10 8h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59L.29 14.28a1.003 1.003 0 001.42 1.42L5 12.41V14c0 .55.45 1 1 1s1-.45 1-1v-4a1.02 1.02 0 00-1.01-1.01z\"],\n \"minus\": [\"M13 7H3c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"mobile-phone\": [\"M12 0H4c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM8 15c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3-3H5V3h6v9z\"],\n \"mobile-video\": [\"M15 4c-.28 0-.53.11-.71.29L12 6.59V4c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V9.41l2.29 2.29c.18.19.43.3.71.3.55 0 1-.45 1-1V5c0-.55-.45-1-1-1z\"],\n \"modal\": [\"M15 1a1 1 0 011 1v12a1 1 0 01-1 1H1a1 1 0 01-1-1V2a1 1 0 011-1h14zm-1 4H2v8h12V5zm-3-3H9v2h2V2zm3 0h-2v2h2V2z\"],\n \"modal-filled\": [\"M15 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm1 4H0V3h16v2zm-3-2h-2V1h2v2z\"],\n \"moon\": [\"M15 11.38A7.835 7.835 0 017.85 16C3.51 16 0 12.49 0 8.15 0 4.97 1.89 2.23 4.62 1c-.45.99-.7 2.08-.7 3.23a7.85 7.85 0 007.85 7.85c1.15 0 2.24-.25 3.23-.7z\"],\n \"more\": [\"M2 6.03a2 2 0 100 4 2 2 0 100-4zM14 6.03a2 2 0 100 4 2 2 0 100-4zM8 6.03a2 2 0 100 4 2 2 0 100-4z\"],\n \"mountain\": [\"M16 13H3l6-9h1l2 2h1l3 7zm-2.5-3.5l-1-2.5h-1l-2-2-3 4.5L9 8l1 1 1-1 2.5 1.5zM5.94 7l-4.122 6H0l5-6h.94z\"],\n \"move\": [\"M15.71 7.29l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H9V3.41l.29.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-2-2C8.53.11 8.28 0 8 0s-.53.11-.71.29l-2 2a1.003 1.003 0 001.42 1.42l.29-.3V7H3.41l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L3.41 9H7v3.59l-.29-.29A.965.965 0 006 12a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2a1.003 1.003 0 00-1.42-1.42l-.29.3V9h3.59l-.29.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"mugshot\": [\"M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14h-.15c-.03-.09-.04-.16-.08-.25-.34-.79-2.01-1.31-3.12-1.8-1.11-.49-.96-.79-1-1.2-.01-.06-.01-.12-.01-.18.38-.34.69-.8.89-1.33 0 0 .01-.03.01-.04.04-.12.08-.24.11-.36.25-.05.4-.33.46-.59.06-.1.18-.36.15-.65-.04-.37-.19-.55-.35-.62v-.06c0-.48-.04-1.16-.13-1.61-.02-.12-.05-.25-.08-.37-.16-.55-.51-1.05-.96-1.39C9.26 3.19 8.6 3 8 3c-.59 0-1.26.19-1.73.55-.45.35-.8.84-.96 1.39-.04.13-.06.25-.08.38-.09.45-.13 1.13-.13 1.61v.06c-.18.06-.33.24-.37.62-.03.29.09.54.15.65.06.26.21.54.47.59.03.12.07.25.11.36 0 .01.01.02.01.02v.01c.21.54.53 1.01.92 1.35 0 .05-.01.11-.01.16-.04.41.08.7-1.03 1.2-1.11.49-2.77 1.01-3.12 1.8-.04.09-.05.16-.08.25H2V2h12v12z\"],\n \"multi-select\": [\"M12 3.98H4c-.55 0-1 .45-1 1v1h8v5h1c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1zm3-3H7c-.55 0-1 .45-1 1v1h8v5h1c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1zm-6 6H1c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1zm-1 5H2v-3h6v3z\"],\n \"music\": [\"M15 0c-.07 0-.13.03-.19.04V.02l-10 2v.02C4.35 2.13 4 2.52 4 3v9.12c-.31-.07-.65-.12-1-.12-1.66 0-3 .9-3 2s1.34 2 3 2 3-.9 3-2V6.32l8-1.6v5.4c-.31-.07-.65-.12-1-.12-1.66 0-3 .9-3 2s1.34 2 3 2 3-.9 3-2V1c0-.55-.45-1-1-1z\"],\n \"nest\": [\"M2 2c.55 0 1 .45 1 1v3c0 1.66 1.34 3 3 3h5.59L10.3 7.71A.965.965 0 0110 7a1.003 1.003 0 011.71-.71l3 3c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-3 3a1.003 1.003 0 01-1.42-1.42l1.3-1.29H6c-2.76 0-5-2.24-5-5V3c0-.55.45-1 1-1z\"],\n \"new-drawing\": [\"M14.9 11c.6 0 1 .5 1 1 0 .257-.073.44-.22.614l-.08.086-3 3c-.2.2-.4.3-.7.3-.5 0-1-.4-1-1 0-.257.073-.44.22-.614l.08-.086 3-3c.2-.2.4-.3.7-.3zM1.3.1l6.734 2.45a3.005 3.005 0 002.095 3.322 3.005 3.005 0 003.401 2.081L13.9 9.8v.2c0 .257-.073.44-.22.614l-.08.086-3 3c-.171.171-.343.27-.577.294L9.9 14h-.2l-5-1-.1-.01c-.231-.05-.45-.26-.56-.49L4 12.4l-4-11 .3-.3 5.8 5.8c-.1.2-.2.4-.2.6 0 .8.6 1.5 1.5 1.5s1.5-.7 1.5-1.5S8.2 6 7.4 6c-.16 0-.32.064-.48.14l-.12.06L1 .4l.3-.3zM13 0c.55 0 1 .45 1 1v1h1c.55 0 1 .45 1 1s-.45 1-1 1h-1v1c0 .503-.376.922-.861.99l-.013.002A.999.999 0 0113 6l.097-.006-.027.004a1 1 0 01-.037.001L13 6c-.55 0-1-.45-1-1V4h-1a.993.993 0 01-.855-.482A1 1 0 0110 3c0-.55.45-1 1-1h1V1c0-.55.45-1 1-1z\"],\n \"new-grid-item\": [\"M6 0H1C.45 0 0 .45 0 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm5 14c0-.55-.45-1-1-1s-1 .45-1 1v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1s-.45-1-1-1zM6 9H1c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1zm9 4c-.55 0-1 .45-1 1-.55 0-1 .45-1 1s.45 1 1 1h1c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm-4-4h-1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1s1-.45 1-1c.55 0 1-.45 1-1s-.45-1-1-1zm4-9h-5c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm0 9h-1c-.55 0-1 .45-1 1s.45 1 1 1c0 .55.45 1 1 1s1-.45 1-1v-1c0-.55-.45-1-1-1z\"],\n \"new-layer\": [\"M13.982 6.272l1.518.868-.01.01c.3.17.51.48.51.85s-.21.68-.51.85l.01.01-7 4-.01-.01A.94.94 0 018 13a.94.94 0 01-.49-.15l-.01.01-7-4 .01-.01A.977.977 0 010 8c0-.37.21-.68.51-.86L.5 7.13l7-4 .01.02A.94.94 0 018 3c.086 0 .168.014.246.038a2 2 0 105.736 3.234zM14 3c.55 0 1 .45 1 1s-.45 1-1 1h-1v1c0 .55-.45 1-1 1s-1-.45-1-1V5h-1c-.55 0-1-.45-1-1s.45-1 1-1h1V2c0-.55.45-1 1-1s1 .45 1 1v1h1z\"],\n \"new-layers\": [\"M13 3h2a1 1 0 010 2h-2v2a1 1 0 01-2 0V5H9a1 1 0 110-2h2V1a1 1 0 012 0v2zm-3-1.983V2H9a2 2 0 100 4h1v1c0 .279.057.544.16.785l-1.71.855c-.14.07-.29.11-.45.11-.16 0-.31-.04-.45-.11l-7-3.5a.992.992 0 01.07-1.81l6.99-3a1.006 1.006 0 01.79 0l1.6.687zm.91 7.66a2 2 0 003.085-1.54l.555-.277c.14-.07.29-.11.45-.11.55 0 1 .45 1 1 0 .39-.23.73-.55.89l-7 3.5c-.14.07-.29.11-.45.11-.16 0-.31-.04-.45-.11l-7-3.5C.23 8.48 0 8.14 0 7.75c0-.55.45-1 1-1 .16 0 .31.04.45.11L8 10.13l2.91-1.453zM15 10.25c.55 0 1 .45 1 1 0 .39-.23.73-.55.89l-7 3.5c-.14.07-.29.11-.45.11-.16 0-.31-.04-.45-.11l-7-3.5c-.32-.16-.55-.5-.55-.89 0-.55.45-1 1-1 .16 0 .31.04.45.1L8 13.63l6.55-3.27c.14-.07.29-.11.45-.11z\"],\n \"new-link\": [\"M15 3h-1V2c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V5h1c.55 0 1-.45 1-1s-.45-1-1-1zm-3.5 6a2.5 2.5 0 00-2.45 2h-4.1a2.5 2.5 0 100 1h4.1a2.5 2.5 0 102.45-3z\"],\n \"new-object\": [\"M8 4c0 .6.4 1 1 1h2v2c0 .6.4 1 1 1s1-.4 1-1V5h2c.6 0 1-.4 1-1s-.4-1-1-1h-2V1c0-.6-.4-1-1-1s-1 .4-1 1v2H9c-.6 0-1 .5-1 1zm6.5 2.5V7c0 1.4-1.1 2.5-2.5 2.5S9.5 8.4 9.5 7v-.5H9C7.6 6.5 6.5 5.4 6.5 4S7.6 1.5 9 1.5h.5V1c0-.3.1-.6.1-.8C9.1.1 8.6 0 8 0 3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8c0-.6-.1-1.3-.2-1.9-.4.3-.8.4-1.3.4z\"],\n \"new-person\": [\"M9.12 12.69c-1.17-.53-1.01-.85-1.05-1.29-.01-.06-.01-.12-.01-.19.4-.37.73-.87.94-1.44 0 0 .01-.03.01-.04.05-.14.09-.27.12-.4.27-.06.43-.36.49-.63.06-.11.19-.39.16-.7-.04-.41-.2-.6-.38-.68v-.07c0-.51-.05-1.25-.14-1.74-.02-.13-.05-.27-.09-.4-.17-.6-.53-1.14-1.01-1.52C7.66 3.2 6.96 3 6.33 3c-.62 0-1.33.2-1.82.59-.49.38-.85.92-1.02 1.52-.04.13-.07.26-.09.4-.09.49-.13 1.23-.13 1.74v.06c-.19.08-.35.27-.39.68-.03.31.1.59.16.7.06.28.22.59.5.64.03.14.07.27.11.4 0 .01.01.02.01.02v.01c.22.59.55 1.1.96 1.46 0 .06-.01.12-.01.17-.04.44.08.76-1.09 1.29-1.17.53-2.93 1.1-3.29 1.95-.35.87-.2 1.37-.2 1.37h12.6s.15-.5-.22-1.36c-.36-.85-2.12-1.42-3.29-1.95zM14.89 2h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"new-prescription\": [\"M9.82 11.66l2.48-2.87c.12-.2.13-.37.04-.53-.11-.19-.3-.26-.52-.26h-1.29c-.27 0-.49.13-.63.34L8.44 9.9 6.95 8a.482.482 0 00-.08-.1L5.82 6.55c.57-.24 1.04-.57 1.42-1.01.49-.57.74-1.27.74-2.08 0-.51-.1-.99-.32-1.42-.21-.43-.51-.8-.89-1.11A4.1 4.1 0 005.42.24C4.91.08 4.34 0 3.72 0H.61C.26 0 0 .23 0 .56v9.89c0 .33.26.55.61.55h.8c.36 0 .61-.23.61-.56V6.99H3.3l3.73 4.74-2.71 3.48c-.12.2-.13.37-.04.53.11.19.3.26.52.26h1.27c.27 0 .51-.12.64-.34l1.69-2.15 1.66 2.14c.12.21.34.35.62.35h1.43c.2 0 .39-.08.5-.25.12-.18.09-.38-.02-.55l-2.77-3.54zM4.18 5H1.99V2.02h2.19c.62 0 1.08.13 1.38.37.29.22.44.62.44 1.08 0 .45-.15.94-.44 1.17-.31.23-.76.36-1.38.36zM15 2h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1zM9.99 3.01c0 .02.01.04.01.06V2.95c0 .02-.01.04-.01.06z\"],\n \"new-text-box\": [\"M5 6.5c0 .28.22.5.5.5H7v3.5c0 .28.22.5.5.5s.5-.22.5-.5V7h1.5c.28 0 .5-.22.5-.5S9.78 6 9.5 6h-4c-.28 0-.5.22-.5.5zM15 2h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1zm-2 5c-.55 0-1 .45-1 1v5H3V4h5c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h11c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1z\"],\n \"ninja\": [\"M16 5s-2.52 2.11-4.96 1.99C11.03 4.89 10.39.23 5 0c0 0 2.11 2.54 1.96 4.99C4.86 5.01.23 5.65 0 11c0 0 2.56-2.12 5.02-1.95.02 2.11.67 6.72 5.98 6.95 0 0-2.09-2.54-1.94-4.99 2.11-.02 6.71-.68 6.94-6.01zM8 9.5c-.83 0-1.5-.67-1.5-1.5S7.17 6.5 8 6.5s1.5.67 1.5 1.5S8.83 9.5 8 9.5z\"],\n \"not-equal-to\": [\"M7.58 5l.44-2.196a1 1 0 011.96.392L9.62 5H13a1 1 0 010 2H9.22l-.4 2H13a1 1 0 010 2H8.42l-.44 2.196a1 1 0 01-1.96-.392L6.38 11H3a1 1 0 010-2h3.78l.4-2H3a1 1 0 110-2h4.58z\"],\n \"notifications\": [\"M8 16c1.1 0 2-.9 2-2H6c0 1.1.9 2 2 2zm6-5c-.55 0-1-.45-1-1V6c0-2.43-1.73-4.45-4.02-4.9 0-.04.02-.06.02-.1 0-.55-.45-1-1-1S7 .45 7 1c0 .04.02.06.02.1A4.992 4.992 0 003 6v4c0 .55-.45 1-1 1s-1 .45-1 1 .45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"notifications-snooze\": [\"M9 14c0 1.1-.9 2-2 2s-2-.9-2-2zM7 0c.404 0 .755.243.912.59L7.9.6c-.7.6-.9 1.36-.9 1.9 0 .8.267 1.433.8 1.9-.533.6-.795 1.222-.784 1.867l.004.358A2.8 2.8 0 009.82 9.4L12 9.399V10c0 .51.388.935.884.993L13 11c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1 1-.45 1-1V6c0-2.43 1.73-4.45 4.02-4.9L6 1c0-.55.45-1 1-1z\", \"M13 6.702a.632.632 0 00-.632-.632h-1.743l2.208-2.734A.75.75 0 0013 2.864v-.3A.565.565 0 0012.435 2H9.561a.561.561 0 100 1.123h1.814L9.221 5.795A1 1 0 009 6.423v.279c0 .349.283.631.632.631h2.736A.632.632 0 0013 6.702z\"],\n \"notifications-updated\": [\"M8 16c1.1 0 2-.9 2-2H6c0 1.1.9 2 2 2zm3.399-13.667l-.413.412A2.99 2.99 0 009 1.99a3 3 0 00-3 2.99c0 .8.32 1.558.876 2.114l2.002 1.992A2.99 2.99 0 0013 9.184V10c0 .55.45 1 1 1s1 .45 1 1-.45 1-1 1H2c-.55 0-1-.45-1-1s.45-1 1-1 1-.45 1-1V6c0-2.43 1.73-4.45 4.02-4.9 0-.04-.02-.06-.02-.1 0-.55.45-1 1-1s1 .45 1 1c0 .04-.02.06-.02.1a4.97 4.97 0 012.419 1.233zM10.29 7.67l-2-1.99a.99.99 0 01-.29-.7 1 1 0 011-.99c.27 0 .52.11.7.29l1.29 1.29 3.28-3.28c.18-.18.42-.29.7-.29.55 0 1 .44 1 .99 0 .28-.11.52-.3.7l-3.98 3.98a.99.99 0 01-1.4 0z\"],\n \"numbered-list\": [\"M2.76 7h1.26V0h-.94c-.04.21-.12.39-.25.54-.13.15-.29.27-.48.36-.18.09-.39.16-.62.2-.23.04-.46.06-.71.06v.9h1.74V7zm-.59 7.17c.18-.12.37-.25.58-.37a10.763 10.763 0 001.24-.83c.2-.16.37-.33.52-.51.15-.19.28-.39.37-.61.09-.22.14-.47.14-.74 0-.22-.04-.45-.12-.7-.08-.26-.21-.49-.4-.69-.18-.21-.43-.39-.72-.52-.3-.14-.68-.21-1.12-.21-.41 0-.77.07-1.08.2-.32.14-.58.32-.8.56-.22.23-.38.51-.49.84-.11.32-.16.67-.16 1.05h1.19c.01-.24.03-.47.08-.67.05-.21.11-.39.21-.54.09-.15.22-.27.38-.36.16-.09.35-.13.59-.13.26 0 .47.04.63.12.16.08.29.18.38.3.09.12.15.25.18.39s.05.27.05.4c-.01.27-.08.5-.22.71-.14.21-.32.4-.53.57-.22.18-.45.34-.71.49-.26.15-.51.31-.74.47-.5.31-.89.68-1.17 1.11-.3.41-.44.91-.45 1.48h5v-1H1.43c.05-.15.14-.29.27-.43.14-.13.29-.26.47-.38zM15.01 1.99h-7c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-1c0-.55-.44-1-1-1zm0 9h-7c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-1c0-.55-.44-1-1-1z\"],\n \"numerical\": [\"M2.79 4.61c-.13.17-.29.3-.48.41-.18.11-.39.18-.62.23-.23.04-.46.07-.71.07v1.03h1.74V12h1.26V4h-.94c-.04.23-.12.44-.25.61zm4.37 5.31c.18-.14.37-.28.58-.42l.63-.45c.21-.16.41-.33.61-.51s.37-.38.52-.59c.15-.21.28-.45.37-.7.09-.25.13-.54.13-.85 0-.25-.04-.52-.12-.8-.07-.29-.2-.55-.39-.79a2.18 2.18 0 00-.73-.6c-.29-.15-.66-.23-1.11-.23-.41 0-.77.08-1.08.23-.31.16-.58.37-.79.64-.22.27-.38.59-.49.96-.11.37-.16.77-.16 1.2h1.19c.01-.27.03-.53.08-.77.04-.24.11-.45.21-.62.09-.18.22-.32.38-.42.16-.1.35-.15.59-.15.26 0 .47.05.63.14.15.09.28.21.37.35.09.14.15.29.18.45.03.16.05.31.05.45-.01.31-.08.58-.22.82-.14.23-.32.45-.53.65-.22.21-.46.39-.71.57-.26.18-.51.36-.75.54-.5.36-.89.78-1.17 1.27-.28.49-.43 1.06-.44 1.71h5v-1.15H6.43c.05-.17.14-.33.27-.49.13-.15.29-.29.46-.44zm8.5-1.56c-.23-.35-.54-.57-.95-.65v-.02c.34-.13.6-.34.76-.63.16-.29.24-.63.24-1.02 0-.34-.06-.64-.19-.9s-.3-.47-.51-.64c-.21-.17-.45-.3-.72-.38-.27-.09-.54-.13-.82-.13-.36 0-.68.07-.96.2-.28.13-.53.32-.72.55-.2.23-.36.51-.47.83-.11.32-.18.66-.19 1.04h1.15c-.01-.2.01-.39.06-.58.05-.19.12-.36.22-.51.1-.15.22-.27.37-.36.15-.09.32-.13.53-.13.32 0 .59.1.79.3.21.2.31.46.31.79 0 .23-.05.43-.14.59-.09.16-.21.29-.35.38-.15.09-.32.16-.51.19-.19.04-.38.05-.57.04v.93c.23-.01.45 0 .67.02.22.02.42.08.59.17.18.09.32.23.43.4.11.18.16.41.16.71 0 .44-.13.78-.39 1.02s-.58.36-.97.36c-.45 0-.79-.16-1.02-.47-.23-.31-.33-.7-.32-1.17H11c.01.4.06.77.17 1.1.11.33.26.61.47.85.21.23.46.42.77.54.31.13.67.19 1.08.19.34 0 .66-.05.96-.16.3-.11.57-.27.8-.47.23-.2.41-.45.55-.74.13-.27.2-.6.2-.97 0-.5-.11-.92-.34-1.27z\"],\n \"office\": [\"M15 5h-3V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h3v-4h4v4h7c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM5 10H2V7h3v3zm0-5H2V2h3v3zm5 5H7V7h3v3zm0-5H7V2h3v3zm4 9h-2v-2h2v2zm0-4h-2V7h2v3z\"],\n \"offline\": [\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zM6 14l1-5H4l6-7-1 5h3l-6 7z\"],\n \"oil-field\": [\"M15 14h-1.35l-3.34-7.51 2.46-.95 1.45 3.21c.09.2.36.3.6.23.1-.03.18-.08.24-.15.05-.08 1.23-1.56.87-4.2-.11-.79-.52-4.62-3.26-4.62-.93 0-1.68.62-1.67 1.37 0 .14.03.28.09.42l.87 1.92L.64 8.07v.01A.98.98 0 000 9c0 .55.45 1 1 1 .13 0 .25-.03.36-.07v.01l1.04-.4L3.67 14H2c-.55 0-1 .45-1 1s.45 1 1 1h13c.55 0 1-.45 1-1s-.45-1-1-1zM4.27 8.81L7.14 7.7 5.2 12.08l-.93-3.27zM6.54 14L9 8.46 11.46 14H6.54z\"],\n \"one-column\": [\"M11.99-.01h-3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-14c0-.55-.45-1-1-1zm-6 5c-.28 0-.53.11-.71.29l-2 2a1.014 1.014 0 000 1.42l2 2a1.003 1.003 0 001.71-.71v-4c0-.55-.45-1-1-1z\"],\n \"one-to-many\": [\"M14 3a1 1 0 11-2 0 1 1 0 012 0zm-3.726 1.254a3 3 0 10-.17-2.039 5.467 5.467 0 00-.51.158c-1.076.394-2.237 1.242-2.575 2.93-.161.809-.664 1.211-1.293 1.443a3 3 0 100 2.508c.629.232 1.132.634 1.293 1.442.338 1.69 1.499 2.537 2.575 2.93.17.063.342.115.51.159a3.001 3.001 0 10.17-2.04c-.629-.231-1.132-.633-1.293-1.441C8.765 9.228 8.216 8.494 7.568 8c.648-.493 1.197-1.228 1.413-2.304.161-.808.664-1.21 1.293-1.442zM13 14a1 1 0 110-2 1 1 0 010 2zM4 8a1 1 0 10-2 0 1 1 0 002 0z\"],\n \"one-to-one\": [\"M2 8a1 1 0 112 0 1 1 0 01-2 0zm3.83-1a3.001 3.001 0 100 2h4.34a3.001 3.001 0 100-2H5.83zM13 7a1 1 0 100 2 1 1 0 000-2z\"],\n \"outdated\": [\"M8 0c4.42 0 8 3.58 8 8 0 4.06-3.02 7.4-6.94 7.92-.02 0-.04.01-.06.01-.33.04-.66.07-1 .07-4.42 0-8-3.58-8-8 0-.55.45-1 1-1s1 .45 1 1c0 3.31 2.69 6 6 6 .71 0 1.37-.15 2-.38v.01c2.33-.82 4-3.02 4-5.63 0-3.31-2.69-6-6-6-1.78 0-3.36.78-4.46 2H5c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1s1 .45 1 1v1.74A7.95 7.95 0 018 0zm1 12H7v-2h2v2zm0-3H7V4h2v5z\"],\n \"page-layout\": [\"M15 .95H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-12c0-.55-.45-1-1-1zm-9 12H2v-6h4v6zm8 0H7v-6h7v6zm0-7H2v-3h12v3z\"],\n \"panel-stats\": [\"M10 4h3v1h-3zM10 6h3v1h-3zM10 8h3v1h-3zM10 10h3v1h-3z\", \"M15 1H1c-.6 0-1 .4-1 1v11c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1zM8 12H2V3h6v9zm6 0H9V3h5v9z\"],\n \"panel-table\": [\"M15 1H1c-.6 0-1 .4-1 1v11c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1zM8 9H6V7h2v2zm0-3H6V4h2v2zm-6 6V3h3v9H2zm4 0v-2h2v2H6zm8 0H9v-2h5v2zm0-3H9V7h5v2zm0-3H9V4h5v2z\"],\n \"paperclip\": [\"M14.68 2.31A4.54 4.54 0 0011.46.99c-1.15 0-2.31.44-3.19 1.32L.95 9.63c-.63.63-.95 1.46-.95 2.28a3.21 3.21 0 003.23 3.22c.83 0 1.66-.31 2.3-.95l7.31-7.32c.76-.77.76-1.98.01-2.73s-1.99-.76-2.75 0l-6.07 6.08c-.24.25-.24.65.01.9s.65.25.91.01l6.07-6.08c.25-.25.67-.25.91-.01.25.25.25.67 0 .92l-7.31 7.32c-.75.75-2.04.74-2.76.01-.75-.75-.73-2.02.01-2.76L9.2 3.21c1.24-1.24 3.35-1.26 4.58-.03 1.24 1.24 1.24 3.36 0 4.6l-7.12 7.13c-.24.25-.24.64.01.88.24.24.63.24.88.01v.01l7.13-7.13A4.41 4.41 0 0016 5.51c0-1.16-.44-2.32-1.32-3.2z\"],\n \"paragraph\": [\"M13 1H6C3.8 1 2 2.8 2 5s1.8 4 4 4v5c0 .6.4 1 1 1s1-.5 1-1V3h2v11c0 .6.4 1 1 1s1-.5 1-1V3h1c.5 0 1-.4 1-1s-.4-1-1-1z\"],\n \"path\": [\"M14.5 0h-13C.67 0 0 .67 0 1.5S.67 3 1.5 3H7v3H3.5C2.67 6 2 6.67 2 7.5S2.67 9 3.5 9H7v3H5.5c-.83 0-1.5.67-1.5 1.5S4.67 15 5.5 15h5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5H9V9h3.5c.83 0 1.5-.67 1.5-1.5S13.33 6 12.5 6H9V3h5.5c.83 0 1.5-.67 1.5-1.5S15.33 0 14.5 0z\"],\n \"path-search\": [\"M15 14.62l-4-2.4V9.77c-.32.09-.66.15-1 .18v2.27l-4 2.4V8.71c-.38-.31-.72-.66-1-1.06v6.97l-4-2.4V8c.55 0 1-.45 1-1s-.45-1-1-1V1.38l3.15 1.89c.08-.34.18-.66.32-.97L.76.07v.01A.496.496 0 00.5 0C.22 0 0 .22 0 .5v12c0 .18.1.33.25.42v.01l5 3v-.01c.07.05.16.08.25.08s.18-.03.25-.08v.01l4.74-2.85 4.74 2.85v-.01c.09.05.18.08.27.08.28 0 .5-.22.5-.5v-3.78c-.3.17-.63.28-1 .28v2.62zM2 5c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1-1 .45-1 1zm6-1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm7.75-.92l-1.19-.72c.18.43.29.9.36 1.38l.08.04v3.39l1 1V3.5c0-.18-.1-.33-.25-.42zM10 2c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm3.3 4.89c.44-.7.7-1.51.7-2.39C14 2.01 11.99 0 9.5 0S5 2.01 5 4.5 7.01 9 9.5 9c.88 0 1.69-.26 2.39-.7l2.41 2.41c.17.18.42.29.7.29a1.003 1.003 0 00.71-1.71l-2.41-2.4zM9.5 8C7.57 8 6 6.43 6 4.5S7.57 1 9.5 1 13 2.57 13 4.5 11.43 8 9.5 8z\"],\n \"pause\": [\"M6 3H4c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm6 0h-2c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"people\": [\"M13.69 13.98c-.05-.24-.14-.5-.25-.76-.36-.86-1.12-1.33-2.69-2-.14-.06-.59-.25-.6-.25-.21-.09-.36-.15-.5-.22.02-.1.02-.2.03-.31 0-.04.01-.08.01-.13-.07-.06-.13-.12-.19-.19.22-.32.4-.67.54-1.05.02-.06.02-.06.03-.1.29-.23.48-.57.59-.96.16-.33.25-.73.21-1.16-.03-.4-.16-.76-.37-1.03-.02-.53-.07-1.13-.15-1.54-.01-.06-.02-.12-.03-.19.23-.06.48-.09.72-.09.49 0 1.05.16 1.44.46.38.29.67.7.8 1.17.03.1.05.21.07.31.07.37.11.94.11 1.33v.05c.14.06.27.21.29.51.02.25-.07.45-.13.54-.05.21-.16.44-.38.48-.02.1-.05.2-.09.3 0 .01-.01.03-.01.03-.17.44-.43.83-.75 1.11v.14c.03.35-.09.59.83 1 .93.41 2.32.84 2.6 1.5.29.66.17 1.04.17 1.04h-2.3zm-1.17-.38c.37.86.22 1.36.22 1.36H.06s-.14-.5.22-1.36 2.13-1.43 3.31-1.96c1.17-.54 1.05-.86 1.09-1.3 0-.05.01-.11.01-.17-.41-.35-.75-.86-.97-1.45v-.01s-.01-.01-.01-.02c-.04-.12-.09-.26-.12-.39-.28-.05-.44-.36-.5-.64-.06-.12-.19-.39-.16-.71.04-.41.21-.6.39-.68v-.06c0-.51.05-1.26.14-1.74.02-.13.05-.27.09-.4.17-.6.54-1.13 1.02-1.51.5-.39 1.21-.6 1.84-.6s1.34.21 1.84.6c.48.38.85.91 1.02 1.52.04.13.07.27.09.4.09.48.14 1.22.14 1.73v.07c.18.08.34.27.37.67.03.32-.09.59-.16.71-.06.28-.21.58-.48.63-.03.13-.07.26-.12.39 0 .01-.01.04-.01.04-.22.58-.55 1.08-.95 1.45v.18c.04.45-.12.77 1.06 1.3 1.18.53 2.95 1.09 3.31 1.95z\"],\n \"percentage\": [\"M6 6V4c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1c1.1 0 2-.9 2-2zM3.5 6c-.28 0-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5s.5.22.5.5v1c0 .28-.22.5-.5.5zM13 8h-1c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1c1.1 0 2-.9 2-2v-2c0-1.1-.9-2-2-2zm0 3.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5s.5.22.5.5v1zM12 3a1.003 1.003 0 00-1.87-.5l-5.99 9.98c-.09.15-.14.33-.14.52a1.003 1.003 0 001.87.5l5.99-9.98c.09-.15.14-.33.14-.52z\"],\n \"person\": [\"M15.68 14.32c-.46-1.05-2.68-1.75-4.16-2.4-1.48-.65-1.28-1.05-1.33-1.59-.01-.07-.01-.15-.01-.23.51-.45.92-1.07 1.19-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.34-.07.54-.44.61-.78.08-.14.23-.48.2-.87-.05-.5-.25-.73-.47-.82v-.09c0-.63-.06-1.55-.17-2.15A3.671 3.671 0 0010.32.72C9.68.25 8.79-.01 8-.01c-.79 0-1.68.25-2.31.73-.61.47-1.06 1.13-1.28 1.86-.05.17-.09.33-.11.5-.12.6-.17 1.51-.17 2.15v.08c-.24.09-.45.32-.5.83-.03.38.13.72.2.86.08.35.28.72.63.78.04.17.09.33.15.49 0 .01.01.02.01.03l.01.01c.27.72.7 1.35 1.22 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.37 1.59-1.48.65-3.7 1.35-4.16 2.4-.46 1.05-.27 1.67-.27 1.67h15.92c-.01.01.18-.61-.28-1.66z\"],\n \"phone\": [\"M15.9 12.41c-.06-.06-3.37-2-3.48-2.05a.794.794 0 00-.32-.08c-.15 0-.34.11-.57.32-.23.22-.94 1.19-1.15 1.4-.21.22-.38.32-.52.32-.07 0-.15-.02-.25-.06-.1-.04-1.16-.58-3.36-2.52-2.2-1.93-2.49-3.2-2.5-3.55 0-.14.11-.31.32-.52.22-.21.45-.41.7-.6.25-.19.49-.4.7-.62.22-.23.32-.42.32-.57 0-.11-.03-.21-.08-.32C5.66 3.46 3.66.15 3.59.08 3.44-.07 2.85 0 2.55.16.16 1.46-.03 3.2 0 3.89c.04.71.49 4.46 4.16 7.95C8.72 16.17 11.89 16 12.1 16c.69 0 2.82-.38 3.72-2.55.13-.32.25-.87.08-1.04z\"],\n \"pie-chart\": [\"M7 1.08c-3.37.5-5.97 3.4-5.97 6.92 0 3.87 3.13 7 6.98 7 3.52 0 6.42-2.61 6.91-6H7V1.08z\", \"M8 0v8h8c0-4.42-3.58-8-8-8z\"],\n \"pin\": [\"M9.41.92c-.51.51-.41 1.5.15 2.56L4.34 7.54C2.8 6.48 1.45 6.05.92 6.58l3.54 3.54-3.54 4.95 4.95-3.54 3.54 3.54c.53-.53.1-1.88-.96-3.42l4.06-5.22c1.06.56 2.04.66 2.55.15L9.41.92z\"],\n \"pivot\": [\"M4.57 7.02L.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4.27-4.27c-.58-.35-1.07-.84-1.41-1.42zM15 8c-.55 0-1 .45-1 1v.59l-2.57-2.57c-.34.58-.83 1.07-1.41 1.41L12.59 11H12c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-4-3c0-1.66-1.34-3-3-3S5 3.34 5 5s1.34 3 3 3 3-1.34 3-3zM8 6c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"pivot-table\": [\"M2 4H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm0-4H1C.45 0 0 .45 0 1v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm11.71 4.29C13.53 4.11 13.28 4 13 4s-.53.11-.71.29l-2 2a1.003 1.003 0 001.42 1.42l.29-.3V9c0 1.66-1.34 3-3 3H7.41l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H9c2.76 0 5-2.24 5-5V7.41l.29.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-2-2zM15 0H5c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"play\": [\"M12 8c0-.35-.19-.64-.46-.82l.01-.02-6-4-.01.02A.969.969 0 005 3c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1 .21 0 .39-.08.54-.18l.01.02 6-4-.01-.02c.27-.18.46-.47.46-.82z\"],\n \"plus\": [\"M13 7H9V3c0-.55-.45-1-1-1s-1 .45-1 1v4H3c-.55 0-1 .45-1 1s.45 1 1 1h4v4c0 .55.45 1 1 1s1-.45 1-1V9h4c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"polygon-filter\": [\"M14 5c-.24 0-.47.05-.68.13L9.97 2.34c.01-.11.03-.22.03-.34 0-1.1-.9-2-2-2S6 .9 6 2c0 .04.01.08.01.12L2.88 4.21C2.61 4.08 2.32 4 2 4 .9 4 0 4.9 0 6c0 .74.4 1.38 1 1.72v4.55c-.6.35-1 .99-1 1.73 0 1.1.9 2 2 2 .74 0 1.38-.4 1.72-1h4.55c.35.6.98 1 1.72 1 1.1 0 2-.9 2-2 0-.37-.11-.7-.28-1L14 9c1.11-.01 2-.9 2-2s-.9-2-2-2zm-4.01 7c-.73 0-1.37.41-1.71 1H3.73c-.18-.3-.43-.55-.73-.72V7.72c.6-.34 1-.98 1-1.72 0-.04-.01-.08-.01-.12l3.13-2.09c.27.13.56.21.88.21.24 0 .47-.05.68-.13l3.35 2.79c-.01.11-.03.22-.03.34 0 .37.11.7.28 1l-2.29 4z\"],\n \"power\": [\"M8 8c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1S7 .45 7 1v6c0 .55.45 1 1 1zm3-5.32v2.34c1.21.91 2 2.35 2 3.98 0 2.76-2.24 5-5 5s-5-2.24-5-5c0-1.63.79-3.06 2-3.98V2.68C2.64 3.81 1 6.21 1 9c0 3.87 3.13 7 7 7s7-3.13 7-7c0-2.79-1.64-5.19-4-6.32z\"],\n \"predictive-analysis\": [\"M16 6.41c0-1.01-.49-1.94-1.29-2.49-.43-1.92-2.07-3.28-4-3.28-.46 0-.92.08-1.35.24C8.83.31 8.11 0 7.34 0c-.9 0-1.74.44-2.28 1.16-.12-.01-.24-.02-.36-.02-1.31 0-2.42.89-2.77 2.17C.78 3.72 0 4.84 0 6.13c0 .38.07.76.21 1.12C.07 7.6 0 7.98 0 8.36c0 1.11.58 2.11 1.51 2.63.54.56 1.27.87 2.03.87.49 0 .95-.12 1.37-.36a2.85 2.85 0 002.18 1.04c.52 0 1.03-.14 1.47-.42.49.39 1.07.65 1.69.73 1.04 1.15 1.84 2.63 1.84 2.64 0 0 .28.49.26.49.77 0 1.41-.16 1.32-1.04 0 .02-.73-2.31-.73-2.31.41-.21.75-.55.97-.98.9-.52 1.47-1.53 1.47-2.61 0-.24-.03-.48-.08-.71.45-.52.7-1.21.7-1.92zm-1.23 1.02l-.15-.16-.61-.67c-.27-.29-.54-.94-.58-1.39l-.1-1.01c-.05-.59-.94-.58-.91.11 0 .02.1 1.01.1 1.01.03.29.12.62.24.93-.06-.01-.12-.02-.18-.02 0 0-2.06-.1-2.05-.11-.58-.02-.71.97-.04 1l2.05.11c.42.02 1.04.3 1.29.58l.49.54.02.05c.08.21.12.44.12.66 0 .74-.41 1.41-1.07 1.75l-.16.08-.07.18c-.15.38-.48.66-.88.74l-.54.11.7 2.2c-.38-.61-.95-1.43-1.62-2.14l-.12-.13-.17-.01c-.41-.03-.8-.17-1.14-.38l1.36-1.18c.35-.31.83-.44.99-.39 0 0 .63.17.62.18.63.16.83-.74.23-.97l-.62-.18c-.55-.16-1.33.18-1.79.58l-1.53 1.33-.31.26c-.35.29-.75.44-1.2.44-.64 0-1.23-.33-1.58-.86V9.15c0-.4.17-.79.27-.85 0 0 .52-.34.51-.35.71-.53.18-1.23-.49-.89 0-.01-.52.35-.52.35-.26.15-.45.44-.58.77-.11-.11-.22-.2-.34-.28 0 0-1.53-1.01-1.53-1.02-.65-.45-1.2.51-.49.89 0-.01 1.51 1.02 1.51 1.02.37.24.62.78.62 1.09v.67c-.34.19-.63.29-.99.29-.54 0-1.05-.23-1.41-.63l-.05-.06-.07-.04c-.65-.34-1.05-1-1.05-1.73 0-.3.07-.6.2-.87l.12-.25L1.15 7c-.13-.27-.2-.56-.2-.87 0-.9.61-1.68 1.48-1.89l.31-.08.05-.34a1.926 1.926 0 012.38-1.58l.32.08.18-.31c.35-.6.99-.97 1.67-.97.44 0 .86.15 1.2.42l-.36.36v-.01l-.25.26c-.33.27-.74.42-.89.4 0 0-.67-.1-.67-.11-.67-.13-.87.86-.14 1.02.01 0 .67.11.67.11.02 0 .05 0 .07.01-.11.37-.15.77-.1 1.12 0 0 .17.99.15.99.11.52 1.06.36.93-.18 0-.01-.15-.99-.15-.99-.05-.37.12-.94.36-1.19l.39-.4c.05-.05.1-.09.15-.14l.74-.76c.4-.18.83-.27 1.27-.27 1.55 0 2.86 1.12 3.11 2.67l.04.25.21.12c.61.35.98 1 .98 1.7 0 .36-.1.7-.28 1.01z\"],\n \"prescription\": [\"M10.91 8.34c.14-.21.36-.34.63-.34h1.29c.22 0 .41.07.52.26.09.16.08.33-.04.53l-2.49 2.87 2.77 3.54c.12.17.14.37.02.55-.11.17-.3.25-.5.25h-1.44a.69.69 0 01-.61-.35L9.4 13.51l-1.69 2.15c-.13.21-.36.34-.63.34H5.8c-.22 0-.41-.07-.52-.26-.09-.16-.08-.33.04-.53l2.71-3.48L4.3 6.99H3.03v3.47c0 .33-.26.56-.62.56h-.8c-.35-.01-.61-.23-.61-.56V.56c0-.33.26-.56.62-.56h3.11c.62 0 1.19.08 1.7.24.51.16.96.39 1.34.69a3.194 3.194 0 011.21 2.53c0 .81-.25 1.5-.74 2.08-.37.44-.84.77-1.42 1.01L7.88 7.9c.04.04.07.08.08.1l1.49 1.9 1.46-1.56zM5.18 5c.62 0 1.08-.13 1.39-.37.29-.23.44-.71.44-1.16s-.15-.87-.44-1.1C6.26 2.12 5.8 2 5.18 2H2.99v3h2.19z\"],\n \"presentation\": [\"M15 1H9c0-.55-.45-1-1-1S7 .45 7 1H1c-.55 0-1 .45-1 1s.45 1 1 1v8c0 .55.45 1 1 1h3.59L3.3 14.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L7 13.41V15c0 .55.45 1 1 1s1-.45 1-1v-1.59l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L10.41 12H14c.55 0 1-.45 1-1V3c.55 0 1-.45 1-1s-.45-1-1-1zm-2 9H3V3h10v7z\"],\n \"print\": [\"M12 2.02c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v1h8v-1zm3 2H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h1v-3h12v3h1c.55 0 1-.45 1-1v-6c0-.56-.45-1-1-1zm-1 3h-2v-1h2v1zm-3 6H5v-3H3v4c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-4h-2v3z\"],\n \"projects\": [\"M14 3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v1h12V3zm-2-3H4c-.55 0-1 .45-1 1h10c0-.55-.45-1-1-1zm3 5H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-3 6c0 .55-.45 1-1 1H5c-.55 0-1-.45-1-1V9h1v2h6V9h1v2z\"],\n \"properties\": [\"M2 6C.9 6 0 6.9 0 8s.9 2 2 2 2-.9 2-2-.9-2-2-2zm4-3h9c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1s.45 1 1 1zm-4 9c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm13-5H6c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zm0 6H6c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"property\": [\"M3 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-.5-6.5a2.5 2.5 0 000 5 2.5 2.5 0 000-5zM7 3h8c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1zm8 10H7c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zM3 0C1.9 0 1 .9 1 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 6H7c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1z\"],\n \"publish-function\": [\"M12.16 3.76c.15-.11.3-.16.47-.16.06 0 .17.02.34.06.16.04.31.06.43.06a.58.58 0 00.6-.6c0-.19-.06-.33-.17-.44-.11-.11-.28-.16-.49-.16-.19 0-.37.04-.54.13-.17.09-.39.27-.65.55-.2.21-.48.58-.87 1.11a5.22 5.22 0 00-.78-1.79l-2.05.32-.04.21c.15-.03.28-.04.39-.04.2 0 .37.08.5.25.21.26.5 1.03.88 2.33-.29.36-.49.6-.6.71-.18.19-.33.31-.45.36-.09.04-.19.07-.3.07-.09 0-.23-.04-.42-.13a.904.904 0 00-.36-.09c-.2 0-.36.06-.49.18a.59.59 0 00-.19.46c0 .18.06.32.18.43.12.11.28.16.48.16.2 0 .38-.04.55-.12.17-.08.39-.24.65-.49s.62-.65 1.07-1.19c.18.52.33.89.46 1.13.13.24.28.4.44.51.17.1.37.16.62.16.24 0 .49-.08.74-.25.33-.21.66-.58 1.01-1.09l-.21-.11c-.23.31-.41.5-.52.57a.44.44 0 01-.26.07c-.12 0-.24-.07-.36-.21-.2-.24-.46-.91-.8-2 .29-.49.54-.81.74-.96zM6.37 5.83l.68-2.53h.83l.2-.64h-.84c.24-.91.56-1.59.96-2.01.24-.27.48-.4.71-.4.05 0 .08.01.11.04s.04.06.04.1c0 .04-.03.11-.1.21-.06.1-.1.2-.1.29 0 .13.05.24.15.33.1.09.23.14.39.14.17 0 .31-.06.42-.17.12-.12.18-.27.18-.46 0-.21-.08-.39-.25-.52C9.57.07 9.3 0 8.93 0c-.59 0-1.12.16-1.59.48-.48.32-.93.85-1.36 1.59-.15.26-.29.42-.42.49s-.35.11-.64.1l-.19.65h.81L4.35 7.68c-.2.72-.33 1.16-.4 1.33-.1.24-.26.45-.46.62a.48.48 0 01-.31.1c-.03 0-.06-.01-.08-.03l-.03-.03c0-.02.03-.06.09-.11.06-.06.09-.15.09-.26 0-.13-.05-.23-.14-.32-.1-.09-.23-.13-.41-.13-.21 0-.38.05-.51.16A.52.52 0 002 9.4c0 .16.08.3.23.42.16.12.4.18.74.18.53 0 .99-.13 1.4-.39.41-.26.76-.65 1.07-1.19.3-.53.61-1.39.93-2.59zm2.34 3.46A.997.997 0 008 9c-.28 0-.53.11-.71.29l-2 2a1.003 1.003 0 001.42 1.42l.29-.3V15c0 .55.45 1 1 1s1-.45 1-1v-2.59l.29.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-2-2z\"],\n \"pulse\": [\"M15 8h-1.46l-1.7-2.55-.02.01A.984.984 0 0011 5c-.43 0-.79.27-.93.65h-.01l-1.69 4.51-1.38-8.32h-.02A.989.989 0 006 1c-.41 0-.77.25-.92.61L2.34 8H1c-.55 0-1 .45-1 1s.45 1 1 1h2c.41 0 .77-.25.92-.61l1.65-3.86 1.44 8.63h.02c.08.47.47.84.97.84.43 0 .79-.27.93-.65h.01l2.31-6.17.92 1.38.02-.01c.17.26.46.45.81.45h2c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"rain\": [\"M3.5 8a2.5 2.5 0 11.608-4.926 4.002 4.002 0 017.381-1.03A3 3 0 1112 8H3.501zM3 10a1 1 0 012 0v4a1 1 0 11-2 0v-4zm7-1a1 1 0 00-1 1v5a1 1 0 102 0v-5a1 1 0 00-1-1zm2 1a1 1 0 112 0v2a1 1 0 11-2 0v-2zM7 9a1 1 0 00-1 1v2a1 1 0 102 0v-2a1 1 0 00-1-1z\"],\n \"random\": [\"M11.48 4h1.11l-.29.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H11c-.32 0-.59.16-.77.38l-.01-.01L8.28 4.8l1.28 1.6L11.48 4zm2.23 6.29a1.003 1.003 0 00-1.42 1.42l.3.29h-1.11l-7.7-9.62h-.01A.996.996 0 003 2H1c-.55 0-1 .45-1 1s.45 1 1 1h1.52l7.7 9.62.01-.01c.18.23.45.39.77.39h1.59l-.29.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2zM2.52 12H1c-.55 0-1 .45-1 1s.45 1 1 1h2c.32 0 .59-.16.77-.38l.01.01 1.94-2.42L4.44 9.6 2.52 12z\"],\n \"record\": [\"M8 3a5 5 0 100 10A5 5 0 108 3z\"],\n \"rectangle\": [\"M1 3h14c.55 0 1 .45 1 1v8c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1zm1 2v6h12V5H2z\"],\n \"redo\": [\"M12 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm3.71-6.71l-3-3a1.003 1.003 0 00-1.42 1.42L12.59 4H5C2.24 4 0 6.24 0 9s2.24 5 5 5h4v-2H5c-1.66 0-3-1.34-3-3s1.34-3 3-3h7.59L11.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"refresh\": [\"M14.99 6.99c-.55 0-1 .45-1 1 0 3.31-2.69 6-6 6-1.77 0-3.36-.78-4.46-2h1.46c.55 0 1-.45 1-1s-.45-1-1-1h-4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1s1-.45 1-1v-1.74a7.95 7.95 0 006 2.74c4.42 0 8-3.58 8-8 0-.55-.45-1-1-1zm0-7c-.55 0-1 .45-1 1v1.74a7.95 7.95 0 00-6-2.74c-4.42 0-8 3.58-8 8 0 .55.45 1 1 1s1-.45 1-1c0-3.31 2.69-6 6-6 1.77 0 3.36.78 4.46 2h-1.46c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1z\"],\n \"regression-chart\": [\"M13 6.5c0 .83.67 1.5 1.5 1.5S16 7.33 16 6.5 15.33 5 14.5 5 13 5.67 13 6.5zM8.5 5c.83 0 1.5-.67 1.5-1.5S9.33 2 8.5 2 7 2.67 7 3.5 7.67 5 8.5 5zM9 9.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5S11.33 8 10.5 8 9 8.67 9 9.5zM4.5 8C5.33 8 6 7.33 6 6.5S5.33 5 4.5 5 3 5.67 3 6.5 3.67 8 4.5 8zM15 12H3.26l12.03-8.59-.58-.81L2 11.67V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"remove\": [\"M10.99 6.99h-6c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1zm-3-7c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.68 6-6 6z\"],\n \"remove-column\": [\"M14 0H4c-.55 0-1 .45-1 1v3h2V2h3v12H5v-2H3v3c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14h-3V2h3v12zm-8.71-3.29a1.003 1.003 0 001.42-1.42L4.41 8 5.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L3 6.59l-1.29-1.3A1.003 1.003 0 00.29 6.71L1.59 8 .29 9.29a1.003 1.003 0 001.42 1.42L3 9.41l1.29 1.3z\"],\n \"remove-column-left\": [\"M4 9h4c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm11-9H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-5 14H2V2h8v12zm4 0h-3V2h3v12z\"],\n \"remove-column-right\": [\"M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM5 14H2V2h3v12zm9 0H6V2h8v12zM8 9h4c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"remove-row-bottom\": [\"M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2V6h12v8zm0-9H2V2h12v3zm-8 6h4c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"remove-row-top\": [\"M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2v-3h12v3zm0-4H2V2h12v8zM6 7h4c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"repeat\": [\"M10 5c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1.74A7.95 7.95 0 008 0C3.58 0 0 3.58 0 8c0 4.06 3.02 7.4 6.94 7.92.02 0 .04.01.06.01.33.04.66.07 1 .07 4.42 0 8-3.58 8-8 0-.55-.45-1-1-1s-1 .45-1 1c0 3.31-2.69 6-6 6-.71 0-1.37-.15-2-.38v.01C3.67 12.81 2 10.61 2 8c0-3.31 2.69-6 6-6 1.77 0 3.36.78 4.46 2H11c-.55 0-1 .45-1 1z\"],\n \"reset\": [\"M6 5c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1s1 .45 1 1v1.74A7.95 7.95 0 018 0c4.42 0 8 3.58 8 8 0 4.06-3.02 7.4-6.94 7.92-.02 0-.04.01-.06.01-.33.04-.66.07-1 .07-4.42 0-8-3.58-8-8 0-.55.45-1 1-1s1 .45 1 1c0 3.31 2.69 6 6 6 .71 0 1.37-.15 2-.38v.01c2.33-.82 4-3.02 4-5.63 0-3.31-2.69-6-6-6-1.77 0-3.36.78-4.46 2H5c.55 0 1 .45 1 1z\"],\n \"resolve\": [\"M6.6 3.3C6.1 3.1 5.6 3 5 3 2.2 3 0 5.2 0 8s2.2 5 5 5c.6 0 1.1-.1 1.6-.3C5.3 11.6 4.5 9.9 4.5 8s.8-3.6 2.1-4.7zM8 4c-1.2.9-2 2.4-2 4s.8 3.1 2 4c1.2-.9 2-2.3 2-4s-.8-3.1-2-4zm3-1c-.6 0-1.1.1-1.6.3 1.3 1.2 2.1 2.9 2.1 4.7s-.8 3.6-2.1 4.7c.5.2 1 .3 1.6.3 2.8 0 5-2.2 5-5s-2.2-5-5-5z\"],\n \"rig\": [\"M5.71 3c0 1.1.96 2 2.14 2C9.04 5 10 3.96 10 3c0-1.96-1.47-3-2.14-3H5c0 1.96 2.68 1.4.71 3zm2.5 3l.01.01s0-.01-.01-.01zm6.5 8.29L10 9.59V7c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v2.58l-4.71 4.7c-.18.19-.29.44-.29.72a1.003 1.003 0 001.71.71L6 12.42V15c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2.58l3.29 3.29a1.003 1.003 0 001.42-1.42z\"],\n \"right-join\": [\"M6.6 3.3C5.3 4.4 4.5 6.1 4.5 8s.8 3.6 2.1 4.7c-.5.2-1 .3-1.6.3-2.8 0-5-2.2-5-5s2.2-5 5-5c.6 0 1.1.1 1.6.3zm-1.96 8.68C3.92 10.83 3.5 9.46 3.5 8s.42-2.83 1.14-3.98C2.6 4.2 1 5.91 1 8s1.6 3.8 3.64 3.98zM8 4c-1.2.9-2 2.4-2 4s.8 3.1 2 4c1.2-.9 2-2.3 2-4s-.8-3.1-2-4zm3-1c2.8 0 5 2.2 5 5s-2.2 5-5 5c-.6 0-1.1-.1-1.6-.3 1.3-1.1 2.1-2.9 2.1-4.7s-.8-3.5-2.1-4.7c.5-.2 1-.3 1.6-.3z\"],\n \"ring\": [\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 12c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z\"],\n \"rocket\": [\"M6 12C4.397 7.46 4.415 4.465 8 0c3.585 4.485 3.602 7.48 2 12H6zm3-7a1 1 0 11-2 0 1 1 0 012 0zm-7 8.022l3-1-.054-.158C4.636 10.954 4.076 9.317 4 8L3 9l-1 4.022zm9-1l3 1L13 9l-1-1c-.076 1.317-.635 2.954-.946 3.864l-.054.158zM7 13h2c0 1.5-.5 2.5-1 3-.5-.5-1-1.5-1-3z\"],\n \"rocket-slant\": [\"M3.992 10c2-5 5-9 11-9 0 6-4 9-9 11l-2-2zm7.714-4.285a1 1 0 11-1.414-1.414 1 1 0 011.414 1.414zm-6.555-.218L2.992 6l-3 2L3.24 9.195c.542-1.301 1.166-2.556 1.911-3.698zM7.992 16l-1.236-3.232c1.3-.539 2.552-1.158 3.694-1.898L9.992 13l-2 3zm-4.931-4.94L5 13c-.992.991-2.186 1.154-3.001 1-.154-.815.07-1.948 1.06-2.94z\"],\n \"rotate-document\": [\"M12 2h-1.59l.29-.29c.19-.18.3-.43.3-.71A1.003 1.003 0 009.29.29l-2 2C7.11 2.47 7 2.72 7 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H12c.55 0 1 .45 1 1v3c0 .55.45 1 1 1s1-.45 1-1V5c0-1.66-1.34-3-3-3zM5.71 5.29A.997.997 0 005 5H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V9c0-.28-.11-.53-.29-.71l-3-3zM7 14H2V7h2v2c0 .55.45 1 1 1h2v4z\"],\n \"rotate-page\": [\"M8 6H2c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zm-1 8H3V8h4v6zm5-12h-1.59l.29-.29c.19-.18.3-.43.3-.71A1.003 1.003 0 009.29.29l-2 2C7.11 2.47 7 2.72 7 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H12c.55 0 1 .45 1 1v3c0 .55.45 1 1 1s1-.45 1-1V5c0-1.66-1.34-3-3-3z\"],\n \"route\": [\"M11.669 5.066l.099.189c.113.213.236.434.367.661.226.39.468.78.709 1.151l-.198-.004-.48-.004c-1.745.003-2.369.233-2.369.688 0 .053.226.19 1.038.436l.84.24C13.9 9.064 15 9.83 15 11.63c0 2.123-1.607 3.122-4.027 3.366-.651.065-1.266.075-2.043.05l-.958-.035H5.196l.268-.406c.336-.517.672-1.052.998-1.593h1.636l.572.023c.857.036 1.475.034 2.103-.03 1.526-.153 2.227-.59 2.227-1.375 0-.531-.402-.84-1.66-1.22l-.691-.198c-1.04-.293-1.764-.562-2.222-.946C8.8 8.366 9 7.612 9 6.997a5.03 5.03 0 00-.184-1.334c.645-.395 1.598-.562 2.853-.597zM4 3a4.007 4.007 0 014 3.997C8 9.21 4 15 4 15l-.416-.62C2.56 12.827 0 8.767 0 6.997A4.002 4.002 0 014 3zm0 2a2 2 0 10.001 4.001A2 2 0 004 5zm10-4c1.103 0 1.996.896 2 1.999C16 4.105 14 7 14 7l-.293-.44C13.15 5.707 12 3.838 12 2.999 12 1.896 12.897 1 14 1z\"],\n \"satellite\": [\"M3 9c0-.6.4-1 1-1s1 .4 1 1c0 1.1.9 2 2 2 .6 0 1 .4 1 1s-.4 1-1 1c-2.2 0-4-1.8-4-4zM0 9c0-.6.4-1 1-1s1 .4 1 1c0 2.8 2.2 5 5 5 .6 0 1 .4 1 1s-.4 1-1 1c-3.9 0-7-3.1-7-7zm7 1c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1zm1.3-2.8c-.4-.4-.4-1 0-1.4l4.5-4.5c.4-.4 1-.4 1.4 0l.5.5c.4.4.4 1 0 1.4l-4.5 4.5c-.4.4-1 .4-1.4 0l-.5-.5zM5.2.3c.4-.4 1-.4 1.4 0l2.1 2.1c.4.4.4 1 0 1.4l-.9.9c-.4.4-1 .4-1.4 0L4.3 2.6c-.4-.4-.4-1 0-1.4l.9-.9zm7 7c.4-.4 1-.4 1.4 0l2.1 2.1c.4.4.4 1 0 1.4l-.9.9c-.4.4-1 .4-1.4 0l-2.1-2.1c-.4-.4-.4-1 0-1.4l.9-.9z\"],\n \"saved\": [\"M6.71 9.29a1.003 1.003 0 00-1.42 1.42l2 2a.997.997 0 001.6-.27h.01l2-4h-.01c.06-.13.11-.28.11-.44 0-.55-.45-1-1-1-.39 0-.72.23-.89.56H9.1l-1.38 2.76-1.01-1.03zM9 0H3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V5L9 0zm3 14H4V2h4v4h4v8z\"],\n \"scatter-plot\": [\"M15 12H2V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm-.5-7c.83 0 1.5-.67 1.5-1.5S15.33 2 14.5 2 13 2.67 13 3.5 13.67 5 14.5 5zm-3 4c.83 0 1.5-.67 1.5-1.5S12.33 6 11.5 6 10 6.67 10 7.5 10.67 9 11.5 9zm-4-2C8.33 7 9 6.33 9 5.5S8.33 4 7.5 4 6 4.67 6 5.5 6.67 7 7.5 7zm-3 4c.83 0 1.5-.67 1.5-1.5S5.33 8 4.5 8 3 8.67 3 9.5 3.67 11 4.5 11z\"],\n \"search\": [\"M15.55 13.43l-2.67-2.68a6.94 6.94 0 001.11-3.76c0-3.87-3.13-7-7-7s-7 3.13-7 7 3.13 7 7 7c1.39 0 2.68-.42 3.76-1.11l2.68 2.67a1.498 1.498 0 102.12-2.12zm-8.56-1.44c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\"],\n \"search-around\": [\"M13.5 11c-.51 0-.98.15-1.38.42l-2.4-2.41c.17-.3.28-.64.28-1.01s-.11-.71-.28-1.01l2.41-2.41c.39.27.86.42 1.37.42a2.5 2.5 0 000-5A2.5 2.5 0 0011 2.5c0 .51.15.98.42 1.38l-2.41 2.4C8.71 6.11 8.37 6 8 6s-.71.11-1.01.28l-2.41-2.4c.27-.4.42-.87.42-1.38a2.5 2.5 0 00-5 0A2.5 2.5 0 002.5 5c.51 0 .98-.15 1.38-.42l2.41 2.41C6.11 7.29 6 7.63 6 8s.11.71.28 1.01l-2.41 2.41c-.39-.27-.86-.42-1.37-.42a2.5 2.5 0 000 5A2.5 2.5 0 005 13.5c0-.51-.15-.98-.42-1.38l2.41-2.41c.3.18.64.29 1.01.29s.71-.11 1.01-.28l2.41 2.41c-.27.39-.42.86-.42 1.37a2.5 2.5 0 005 0 2.5 2.5 0 00-2.5-2.5zm0-10c.83 0 1.5.67 1.5 1.5S14.33 4 13.5 4 12 3.33 12 2.5 12.67 1 13.5 1zm-11 3C1.67 4 1 3.33 1 2.5S1.67 1 2.5 1 4 1.67 4 2.5 3.33 4 2.5 4zm0 11c-.83 0-1.5-.67-1.5-1.5S1.67 12 2.5 12s1.5.67 1.5 1.5S3.33 15 2.5 15zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"],\n \"search-template\": [\"M15.55 13.43l-2.67-2.67c.7-1.09 1.11-2.38 1.11-3.77 0-3.87-3.13-7-7-7s-7 3.13-7 7 3.13 7 7 7c1.39 0 2.68-.41 3.77-1.11l2.67 2.67a1.498 1.498 0 102.12-2.12zm-8.56-1.44c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm2.5-6h-5c-.28 0-.5.22-.5.5s.22.5.5.5h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5zm0-2h-5c-.28 0-.5.22-.5.5s.22.5.5.5h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5zm0 4h-5c-.28 0-.5.22-.5.5s.22.5.5.5h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5z\"],\n \"search-text\": [\"M9 4H5c-.55 0-1 .45-1 1s.45 1 1 1h1v3c0 .55.45 1 1 1s1-.45 1-1V6h1c.55 0 1-.45 1-1s-.45-1-1-1zm6.56 9.44l-2.67-2.67C13.59 9.68 14 8.39 14 7c0-3.87-3.13-7-7-7S0 3.13 0 7s3.13 7 7 7c1.39 0 2.68-.41 3.77-1.11l2.67 2.67a1.498 1.498 0 102.12-2.12zM7 12c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\"],\n \"segmented-control\": [\"M15 4H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 6H8V6h6v4z\"],\n \"select\": [\"M16 15c0-.28-.12-.52-.31-.69l.02-.02-3.12-3.12 3.41-.84-8.05-2.86c.03-.09.05-.17.05-.27V2c0-.55-.45-1-1-1H3c0-.55-.45-1-1-1S1 .45 1 1c-.55 0-1 .45-1 1s.45 1 1 1v4c0 .55.45 1 1 1h5.2c.1 0 .18-.02.27-.05L10.33 16l.85-3.41 3.12 3.12.02-.02c.16.19.4.31.68.31.04 0 .07-.02.1-.02s.06.02.1.02c.44 0 .8-.36.8-.8 0-.04-.02-.07-.02-.1s.02-.06.02-.1zM6 6H3V3h3v3z\"],\n \"selection\": [\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm0-9C6.34 5 5 6.34 5 8s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"],\n \"send-message\": [\"M15.399 9.01L1.527 15.875c-.535.267-1.175.081-1.421-.427A.953.953 0 010 15V10l8-2-8-2V1c0-.528.407-1 1.004-1 .169 0 .416.04.567.116L15.403 7.07a1.084 1.084 0 01-.005 1.939z\"],\n \"send-to\": [\"M15 7.5c-.8 0-1.5-.4-2-1l-1.2 1.2c-.4.5-1.1.7-1.8.7-1.4.1-2.5-1-2.5-2.4 0-.7.3-1.3.7-1.8L9.5 3c-.6-.5-1-1.2-1-2 0-.3.1-.7.2-1H8C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8v-.7c-.3.1-.6.2-1 .2zM15 0h-4c-.6 0-1 .5-1 1s.4 1 1 1h1.6L9.3 5.3c-.2.2-.3.4-.3.7 0 .5.4 1 1 1 .3 0 .5-.1.7-.3L14 3.4V5c0 .6.4 1 1 1 .5 0 1-.4 1-1V1c0-.5-.4-1-1-1z\"],\n \"send-to-graph\": [\"M6 9H2c-.55 0-1 .45-1 1s.45 1 1 1h1.59L.3 14.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L5 12.41V14c0 .55.45 1 1 1s1-.45 1-1v-4c0-.55-.45-1-1-1zm8 .5c-.56 0-1.06.23-1.42.59l-2.13-1.24L8.99 8l3.59-2.09A2.002 2.002 0 0016 4.5c0-1.1-.9-2-2-2s-2 .9-2 2c0 .19.03.37.08.54L8.5 7.13v-3.2c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S6 .9 6 2c0 .93.64 1.71 1.5 1.93v3.2l-.88-.52-2.7-1.57c.05-.17.08-.35.08-.54 0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.56 0 1.06-.23 1.42-.59l2.13 1.24 3.84 2.24 2.7 1.57c-.06.17-.09.35-.09.54 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2z\"],\n \"send-to-map\": [\"M6 9H2c-.55 0-1 .45-1 1s.45 1 1 1h1.59L.3 14.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L5 12.41V14c0 .55.45 1 1 1s1-.45 1-1v-4c0-.55-.45-1-1-1zm9.55-5.83l-4.49-3A.975.975 0 009.99.15L5.53 2.82 1.56.17A1.003 1.003 0 000 1v6h2V2.87l2.94 1.96.06.03V7h1V4.86s.01 0 .01-.01L10 2.47v8.67s-.01 0-.01.01l-.99.58v2.33l1.47-.88 3.97 2.65A1.003 1.003 0 0016 15V4c0-.35-.18-.65-.45-.83zM14 13.13l-2.94-1.96c-.02-.01-.04-.02-.05-.03v-8.6l3 2v8.59z\"],\n \"series-add\": [\"M10.68 7.9c.44.54 1.07.92 1.79 1.05l-2.76 2.76c-.18.18-.43.29-.71.29s-.53-.11-.71-.3L5 8.41l-3 3V13h13c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1s1 .45 1 1v4.59l2.29-2.3C4.47 6.11 4.72 6 5 6s.53.11.71.29L9 9.59l1.68-1.69zM15 3c.55 0 1 .45 1 1s-.45 1-1 1h-1v1c0 .55-.45 1-1 1s-1-.45-1-1V5h-1c-.55 0-1-.45-1-1s.45-1 1-1h1V2c0-.55.45-1 1-1s1 .45 1 1v1h1z\"],\n \"series-configuration\": [\"M9.94 9.64c.65.23 1.34.36 2.06.36.14 0 .29-.01.43-.01L9.7 12.71c-.18.18-.43.29-.71.29-.28 0-.53-.11-.71-.3L5 9.41l-3 3V14h12.99c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V5c0-.55.45-1 1-1s1 .45 1 1v4.59l2.29-2.3C4.47 7.11 4.72 7 5 7c.28 0 .53.11.71.29L9 10.59l.94-.95zm4.73-6.44h.92c.22 0 .4.18.4.4v.8c0 .22-.18.4-.4.4h-.93c-.06.2-.14.38-.24.55l.66.65c.15.15.15.4 0 .55l-.54.55c-.15.15-.4.15-.55 0l-.65-.65c-.17.1-.36.18-.55.24v.91c0 .22-.18.4-.4.4h-.8c-.22 0-.4-.18-.4-.4v-.93c-.18-.06-.36-.13-.52-.22l-.68.68c-.15.16-.41.16-.57 0l-.56-.56a.417.417 0 010-.57l.68-.68c-.08-.16-.16-.33-.22-.52h-.93c-.22 0-.4-.18-.4-.4v-.8c0-.22.18-.4.4-.4h.93c.06-.2.14-.38.24-.55l-.65-.64a.392.392 0 010-.55l.54-.55a.38.38 0 01.54 0l.65.65c.18-.1.36-.18.55-.24V.4c0-.22.18-.4.4-.4h.8c.22 0 .4.18.4.4v.93c.18.06.35.14.52.22l.68-.68c.15-.16.41-.16.57 0l.57.57c.15.16.15.41 0 .57l-.68.68c.09.16.16.33.22.51zm-4.18.8c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5c-.82 0-1.5.67-1.5 1.5z\"],\n \"series-derived\": [\"M10.66 7.92c.44.54 1.07.91 1.8 1.03L9.71 11.7c-.18.19-.43.3-.71.3s-.53-.11-.71-.3L5 8.41l-3 3V13h13c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1s1 .45 1 1v4.59l2.29-2.3C4.47 6.11 4.72 6 5 6s.53.11.71.29L9 9.59l1.66-1.67zM12.3 5.3l.3-.3H8c-.6 0-1-.4-1-1s.4-1 1-1h4.6l-.3-.3c-.2-.2-.3-.4-.3-.7 0-.6.5-1 1-1 .3 0 .5.1.7.3l2 2c.2.2.3.4.3.7s-.1.5-.3.7l-2 2c-.2.2-.4.3-.7.3-.6 0-1-.4-1-1 0-.3.1-.5.3-.7z\"],\n \"series-filtered\": [\"M9.29 9.3c.3.62.8 1.12 1.42 1.41l-1 1c-.18.18-.43.29-.71.29s-.53-.11-.71-.3L5 8.41l-3 3V13h13c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1s1 .45 1 1v4.59l2.29-2.3C4.47 6.11 4.72 6 5 6s.53.11.71.29L9 9.59l.29-.29zM15.48 1c.31 0 .52.26.52.57 0 .16-.06.3-.17.41l-2.86 2.73v2.63c0 .16-.06.3-.17.41l-.82 1.1c-.1.1-.25.17-.41.17-.31 0-.57-.26-.57-.57V4.71L8.17 1.98A.566.566 0 018 1.57c0-.31.26-.57.57-.57h6.91z\"],\n \"series-search\": [\"M9.6 8.94a4.937 4.937 0 001.82.01c.1-.01.22-.04.39-.08l.23-.07c.04-.01.08-.02.11-.04l.22.22-2.7 2.72c-.18.19-.43.3-.71.3s-.53-.11-.71-.3L4.98 8.41l-2.99 3V13h12.94c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V3.99c0-.55.45-1 1-1s1 .45 1 1v4.59l2.28-2.3c.17-.18.42-.29.7-.29s.53.11.7.29l3.28 3.3.64-.64zm6.22-.41c.1.12.17.27.18.44 0 .34-.27.61-.61.61a.57.57 0 01-.43-.18l-2.24-2.25c-.13.08-.26.16-.4.23-.02.01-.05.02-.07.03-.14.06-.27.12-.42.17h-.01c-.14.05-.29.08-.44.11-.04.01-.08.02-.11.02-.15.02-.3.04-.46.04-1.85 0-3.35-1.51-3.35-3.37S8.96 1.01 10.81 1c1.85 0 3.35 1.51 3.35 3.37 0 .16-.02.31-.04.47-.01.04-.01.07-.02.11-.02.15-.05.29-.1.44v.01c-.05.15-.11.28-.17.42-.01.02-.02.05-.03.07-.07.14-.14.27-.23.4l2.25 2.24zm-5.01-1.94c1.22 0 2.21-.99 2.21-2.22 0-1.23-.99-2.22-2.21-2.22S8.6 3.14 8.6 4.37c0 1.22.99 2.22 2.21 2.22z\"],\n \"settings\": [\"M3 1c0-.55-.45-1-1-1S1 .45 1 1v3h2V1zm0 4H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm12-4c0-.55-.45-1-1-1s-1 .45-1 1v2h2V1zM9 1c0-.55-.45-1-1-1S7 .45 7 1v6h2V1zM1 15c0 .55.45 1 1 1s1-.45 1-1v-5H1v5zM15 4h-2c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-2 11c0 .55.45 1 1 1s1-.45 1-1V9h-2v6zM9 8H7c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-2 7c0 .55.45 1 1 1s1-.45 1-1v-2H7v2z\"],\n \"shapes\": [\"M5.92 8.139c.44-.282 1.006-.121 1.264.358l2.689 4.988c.083.155.127.33.127.51C10 14.55 9.587 15 9.077 15H3.924a.864.864 0 01-.438-.12c-.449-.263-.617-.873-.376-1.362l2.465-4.989c.08-.162.2-.297.346-.39zM12 4a3 3 0 110 6 3 3 0 010-6zM6 1a1 1 0 011 1v4a1 1 0 01-1 1H2a1 1 0 01-1-1V2a1 1 0 011-1h4z\"],\n \"share\": [\"M10.99 13.99h-9v-9h4.76l2-2H.99c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h11c.55 0 1-.45 1-1V7.24l-2 2v4.75zm4-14h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L7.29 7.28a1 1 0 00-.3.71 1.003 1.003 0 001.71.71l5.29-5.29V6c0 .55.45 1 1 1s1-.45 1-1V1c0-.56-.45-1.01-1-1.01z\"],\n \"shared-filter\": [\"M13.843 15.163c.232.53.138.837.138.837H6.017s-.088-.308.138-.837c.226-.53 1.338-.88 2.079-1.206.735-.332.66-.53.685-.8 0-.03.006-.068.006-.105a2.171 2.171 0 01-.61-.892v-.006s-.006-.006-.006-.012c-.025-.074-.056-.16-.075-.24-.176-.031-.276-.222-.314-.394a.8.8 0 01-.1-.437c.025-.253.131-.37.244-.419v-.037c0-.313.032-.775.088-1.07A1.835 1.835 0 018.85 8.37c.315-.24.76-.37 1.156-.37.396 0 .842.13 1.156.37.301.233.534.56.64.935.026.08.045.166.057.246.057.295.088.75.088 1.064v.043c.113.05.214.167.232.413a.75.75 0 01-.1.437c-.038.172-.132.357-.301.387a1.77 1.77 0 01-.076.24.136.136 0 01-.006.025 2.346 2.346 0 01-.597.892v.111c.025.277-.075.474.666.8.741.326 1.853.67 2.079 1.2z\", \"M14.852 15h1.131s.083-.27-.12-.732c-.16-.373-.82-.641-1.411-.88a15.328 15.328 0 01-.409-.17c-.565-.25-.57-.412-.577-.61-.001-.03-.002-.06-.005-.09v-.097c.22-.2.401-.469.522-.781 0 0 .005-.016.005-.022.028-.07.05-.14.066-.21.149-.026.231-.188.264-.339a.655.655 0 00.088-.382c-.016-.215-.104-.318-.203-.36v-.039c0-.274-.028-.673-.077-.931a1.598 1.598 0 00-.61-1.034 1.736 1.736 0 00-1.285-.3c.236.285.42.622.529.996.038.124.065.248.083.36.048.257.079.578.093.867a1.736 1.736 0 01.08 1.624 1.65 1.65 0 01-.217.453 1.42 1.42 0 01-.176.209c-.08.204-.178.4-.292.585l.202.083c.285.117.64.261.9.387.226.11.475.245.698.414.213.161.476.408.63.764.034.08.065.159.091.235zM12.14 14.12l.09.037zM11 1c.55 0 1 .45 1 1 0 .28-.11.53-.29.7L8 6.41v1.374a2.813 2.813 0 00-.833 1.589 6.925 6.925 0 00-.092.86 1.64 1.64 0 00-.25.739l-.001.004c-.02.217.006.413.046.573L5.71 12.71A1.003 1.003 0 014 12V6.41L.29 2.71A1.003 1.003 0 011 1h10z\"],\n \"shield\": [\"M8 16c4.667-3.048 7-7.238 7-12.571-1.556 0-3.889-1.143-7-3.429-3.111 2.286-5.444 3.429-7 3.429C1 8.762 3.333 12.952 8 16zM8 2.121c2.005 1.388 3.715 2.304 5.186 2.735-.342 3.702-2.05 6.683-5.186 9.038V2.121z\"],\n \"ship\": [\"M5.44.804L5.2 2H3a1 1 0 00-1 1v3.714l-1.08.309a.988.988 0 00-.69 1.192c.366 1.432.897 3.324 1.309 4.26a.644.644 0 00.005.01c-.175.01-.356.015-.544.015a.5.5 0 000 1c2.067 0 3.414-.543 4.161-.917.55.373 1.505.917 2.839.917 1.32 0 2.27-.533 2.822-.905l.004.002c.196.105.48.24.856.374.75.268 1.857.529 3.318.529a.5.5 0 000-1c-.295 0-.572-.012-.834-.032a.995.995 0 00.308-.458l1.208-3.74a1 1 0 00-.677-1.269L14 6.714V3a1 1 0 00-1-1h-2.2L10.56.804A1 1 0 009.58 0H6.42a1 1 0 00-.98.804zM4 6.143l3-.857V4H4v2.143zm5-.857l3 .857V4H9v1.286zm-4.036 8.273a.5.5 0 01.527.034c.455.325 1.277.907 2.509.907s2.054-.582 2.51-.907a.5.5 0 01.579-.001l.006.004.036.023c.034.022.09.055.168.097.154.082.394.197.72.313.649.232 1.642.471 2.981.471a.5.5 0 010 1c-1.46 0-2.568-.261-3.318-.53a6.316 6.316 0 01-.856-.373l-.004-.002c-.552.372-1.502.905-2.822.905-1.334 0-2.289-.544-2.839-.917-.747.374-2.094.917-4.161.917a.5.5 0 010-1c2.129 0 3.384-.63 3.964-.94z\"],\n \"shop\": [\"M3 2h10c.55 0 1-.45 1-1s-.45-1-1-1H3c-.55 0-1 .45-1 1s.45 1 1 1zm9 11H4v-3H2v5c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-5h-2v3zm4-6l-1.01-3.17C14.9 3.36 14.49 3 14 3H2c-.49 0-.9.36-.98.83L.01 7H0c0 1.1.9 2 2 2s2-.9 2-2c0 1.1.9 2 2 2s2-.9 2-2c0 1.1.9 2 2 2s2-.9 2-2c0 1.1.9 2 2 2s2-.9 2-2z\"],\n \"shopping-cart\": [\"M14 10H7.72l-.33-1H13c.39 0 .72-.23.89-.56h.01l2-4h-.01c.06-.13.11-.28.11-.44 0-.55-.45-1-1-1H5.39l-.44-1.32h-.01C4.8 1.29 4.44 1 4 1H1c-.55 0-1 .45-1 1s.45 1 1 1h2.28l2.33 7H4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2h6c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2zM6.05 5h7.33l-1 2H6.72l-.67-2z\"],\n \"signal-search\": [\"M5.474 7.971A5.31 5.31 0 006.66 8.9l.007.019.018.056c.015.038.038.06.045.098l1.5 5.999a.75.75 0 01-1.455.36l-.42-1.68h-.704l-.42 1.68a.746.746 0 01-.907.547.746.746 0 01-.547-.907l1.5-6c.007-.037.03-.06.044-.097.015-.037.015-.075.038-.112a.722.722 0 01-.105-.36c0-.207.084-.394.22-.53zM2.795 5.277a.763.763 0 00-.015-1.065.756.756 0 00-1.065.015c-2.286 2.34-2.286 6.21 0 8.549a.747.747 0 101.072-1.042c-1.709-1.763-1.709-4.702.008-6.457zM7.808 9.388a5.318 5.318 0 001.58.211 2.236 2.236 0 01-.656.98.756.756 0 01-1.057-.098.756.756 0 01.097-1.057l.036-.036zM11.544 9.105l.378.378a6.02 6.02 0 01-1.638 3.285c-.285.3-.757.3-1.057.015a.74.74 0 01-.015-1.057 4.52 4.52 0 001.185-2.24c.4-.083.785-.212 1.147-.381z\", \"M4.054 9.424c-.427-.352-.352-1.582-.03-1.822a.752.752 0 00.15-1.05.752.752 0 00-1.05-.15c-1.079.802-1.221 3.18-.03 4.177a.75.75 0 10.96-1.155zM9.318 0a4.318 4.318 0 014.317 4.318c0 .206-.02.402-.049.598-.01.05-.01.088-.02.138-.039.196-.078.382-.137.569v.01c-.059.186-.137.363-.216.54l-.039.087a5.285 5.285 0 01-.294.51l2.884 2.886a.878.878 0 01.236.559.787.787 0 01-.785.785.785.785 0 01-.56-.226L11.772 7.89a5.285 5.285 0 01-.51.295l-.089.039c-.176.079-.353.157-.54.216h-.01a3.701 3.701 0 01-.568.137c-.05.01-.099.02-.138.02-.196.03-.392.049-.598.049A4.318 4.318 0 015 4.327 4.332 4.332 0 019.318 0zm-.02 1.1A3.195 3.195 0 006.1 4.298a3.195 3.195 0 003.198 3.198 3.195 3.195 0 003.198-3.198A3.195 3.195 0 009.298 1.1z\"],\n \"sim-card\": [\"M13.71 4.29l-4-4A.997.997 0 009 0H3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V5c0-.28-.11-.53-.29-.71zM7 6h2v2H7V6zM4 6h2v2H4V6zm2 8H4v-2h2v2zm3 0H7v-2h2v2zm3 0h-2v-2h2v2zm0-3H4V9h8v2zm0-3h-2V6h2v2z\"],\n \"slash\": [\"M10 2a.99.99 0 00-.96.73l-2.99 9.96A1.003 1.003 0 007 14c.46 0 .85-.31.96-.73l2.99-9.96A1.003 1.003 0 0010 2z\"],\n \"small-cross\": [\"M9.41 8l2.29-2.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L8 6.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42L6.59 8 4.3 10.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L8 9.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L9.41 8z\"],\n \"small-minus\": [\"M11 7H5c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"small-plus\": [\"M11 7H9V5c0-.55-.45-1-1-1s-1 .45-1 1v2H5c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V9h2c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"small-square\": [\"M5 5v6h6V5H5zM4 3a1 1 0 00-1 1v8a1 1 0 001 1h8a1 1 0 001-1V4a1 1 0 00-1-1H4z\"],\n \"small-tick\": [\"M12 5c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z\"],\n \"snowflake\": [\"M13.364 9l.879.879a1 1 0 11-1.415 1.414l-2.12-2.121A1.003 1.003 0 0110.568 9H9v1.604c.042.03.083.065.121.103l2.122 2.121a1 1 0 01-1.415 1.415L9 13.414V15a1 1 0 01-2 0v-1.636l-.879.879a1 1 0 11-1.414-1.415l2.121-2.12c.054-.054.111-.1.172-.139V9H5.38c-.038.06-.084.118-.137.172l-2.122 2.12A1 1 0 111.707 9.88L2.586 9H1a1 1 0 110-2h1.536l-.829-.828a1 1 0 011.414-1.415L5.243 6.88c.038.038.072.079.103.121H7V5.38a1.003 1.003 0 01-.172-.137L4.708 3.12A1 1 0 016.12 1.707L7 2.586V1a1 1 0 112 0v1.536l.828-.829a1 1 0 011.415 1.414L9.12 5.243A1.007 1.007 0 019 5.346V7h1.604c.03-.042.065-.083.103-.121l2.121-2.122a1 1 0 011.415 1.415L13.414 7H15a1 1 0 010 2h-1.636z\"],\n \"social-media\": [\"M9.5 4c.4 0 .8-.1 1.1-.3C12 4.5 12.9 6 13 7.6c0 .5.5.9 1 .9.6 0 1-.4 1-1v-.2c-.2-2.4-1.5-4.4-3.5-5.5-.1-1-.9-1.8-2-1.8s-2 .9-2 2 .9 2 2 2zM4 8.5c0-.7-.4-1.3-.9-1.7.3-1.4 1.2-2.6 2.5-3.3.3-.1.6-.4.6-.9s-.4-1-1-1c-.2 0-.3 0-.5.1-1.9 1-3.2 2.8-3.6 5C.4 7.1 0 7.8 0 8.5c0 1.1.9 2 2 2s2-.9 2-2zm8.8 1.2c-1.1 0-2 .9-2 2v.3c-.8.6-1.8.9-2.8.9-1.2 0-2.3-.4-3.2-1.1-.2-.2-.4-.3-.7-.3-.6 0-1 .4-1 1 0 .3.1.6.3.8C4.6 14.4 6.2 15 8 15c1.5 0 3-.5 4.1-1.3.2.1.5.1.7.1 1.1 0 2-.9 2-2s-.9-2.1-2-2.1z\"],\n \"sort\": [\"M5 12c-.28 0-.53.11-.71.29l-.29.3V9c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29A.965.965 0 001 12a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 005 12zm3-9h7c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm7 2H8c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1zm0 8H8c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H8c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"sort-alphabetical\": [\"M6 12c-.28 0-.53.11-.71.29l-.29.3V9c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29A.965.965 0 002 12a1.003 1.003 0 00-.71 1.71l2 2c.19.18.44.29.71.29.28 0 .53-.11.71-.29l2-2c.18-.18.29-.43.29-.71a.99.99 0 00-1-1zm7.93-.95v-1.04H9.25v1.11h2.94L9 14.96V16h5.02v-1.11h-3.27l3.18-3.84zm-1.42-4.84l.62 1.78H15L11.94.01H10.1L7 7.99h1.81l.64-1.78h3.06zm-1.52-4.24h.02l1.03 2.93H9.92l1.07-2.93z\"],\n \"sort-alphabetical-desc\": [\"M5.99 11.99c-.28 0-.53.11-.71.29l-.29.29V8.99c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29a1.003 1.003 0 00-1.42 1.42l2 2c.18.18.43.29.71.29.28 0 .53-.11.71-.29l2-2c.18-.18.29-.43.29-.71 0-.56-.45-1.01-1-1.01zM12.7 10h-1.38L9 15.99h1.36l.48-1.33h2.3l.46 1.33H15L12.7 10zm-1.51 3.67l.8-2.2h.02l.77 2.2h-1.59zm3.8-7.17h-4.57l4.45-5.12V0H8.34v1.48h4.1L7.99 6.59v1.39h7V6.5z\"],\n \"sort-asc\": [\"M8 7h3c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm0-4h1c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm0 8h5c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm-3 1c-.28 0-.53.11-.71.29l-.29.3V9c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29A.965.965 0 001 12a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 005 12zm10 1H8c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"sort-desc\": [\"M5 12c-.28 0-.53.11-.71.29l-.29.3V9c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29A.965.965 0 001 12a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 005 12zm4 1H8c-.55 0-1 .45-1 1s.45 1 1 1h1c.55 0 1-.45 1-1s-.45-1-1-1zm4-8H8c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm-2 4H8c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1zm4-8H8c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"sort-numerical\": [\"M6 11.99c-.28 0-.53.11-.71.29l-.29.3V8.99c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29c-.18-.18-.43-.3-.71-.3a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29.28 0 .53-.11.71-.29l2-2A1.003 1.003 0 006 11.99zm7.91-.08c-.06-.36-.17-.68-.33-.96-.16-.28-.37-.51-.64-.69-.27-.17-.61-.26-1.03-.26-.28 0-.54.06-.78.17-.23.11-.43.26-.6.45-.17.19-.3.41-.39.67a2.492 2.492 0 00-.04 1.52 1.623 1.623 0 00.89 1.03c.22.11.45.16.68.16.26 0 .5-.05.7-.15s.38-.26.53-.5l.02.02c-.01.16-.03.34-.07.54-.03.2-.09.4-.17.57-.08.18-.18.33-.31.45s-.29.19-.5.19a.63.63 0 01-.48-.21c-.13-.14-.21-.31-.25-.5H10.1c.03.25.1.48.19.68.1.2.22.37.38.5.16.14.33.24.54.31s.42.1.65.1c.39 0 .72-.09.99-.27.27-.18.49-.41.66-.7.17-.29.29-.61.37-.97.08-.36.12-.72.12-1.07 0-.36-.03-.72-.09-1.08zm-1.14.54c-.04.13-.09.24-.16.34a.78.78 0 01-.27.24c-.11.06-.24.09-.39.09a.75.75 0 01-.37-.09.777.777 0 01-.26-.25c-.07-.1-.12-.22-.15-.35-.03-.13-.05-.26-.05-.4 0-.13.02-.26.05-.39.04-.13.09-.24.16-.34.07-.1.16-.18.26-.24s.22-.09.35-.09c.14 0 .26.03.37.09.11.06.2.14.28.24a1.32 1.32 0 01.23.74c0 .15-.02.28-.05.41zm-1.56-4.47H13V0h-1.42c-.05.3-.16.56-.31.76-.16.21-.35.37-.58.5-.23.13-.49.21-.78.26-.3.05-.6.07-.91.06V2.8h2.21v5.18z\"],\n \"sort-numerical-desc\": [\"M6 11.99c-.28 0-.53.11-.71.29l-.29.3V8.99c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29a.982.982 0 00-.71-.3 1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 006 11.99zm7.86-9.45c-.09-.48-.26-.9-.5-1.28S12.8.58 12.4.35C12 .12 11.49 0 10.86 0c-.43 0-.82.07-1.17.22s-.65.35-.9.6-.44.55-.58.89c-.14.34-.2.71-.2 1.11 0 .31.05.61.15.91.1.3.26.57.48.8.23.24.52.43.85.58.33.14.68.21 1.03.21.4 0 .75-.07 1.05-.2.3-.13.57-.35.79-.66l.02.02c-.02.21-.05.45-.1.73-.05.27-.13.53-.25.76-.12.24-.27.44-.47.6-.19.16-.44.25-.75.25a.98.98 0 01-.72-.29c-.19-.18-.31-.4-.37-.66H8.15c.05.34.14.64.29.9.15.26.34.49.57.67.23.18.5.32.8.41.31.1.63.15.98.15.58 0 1.08-.12 1.48-.36.4-.24.73-.55.99-.93.26-.39.44-.82.56-1.29.12-.48.18-.96.18-1.44s-.05-.96-.14-1.44zm-1.71.72c-.05.17-.14.32-.24.46-.11.13-.24.24-.41.31-.16.08-.36.12-.58.12-.21 0-.39-.04-.55-.13-.16-.08-.29-.19-.39-.33-.12-.14-.19-.29-.24-.46-.05-.17-.08-.35-.08-.54 0-.18.03-.35.08-.52.06-.16.14-.31.25-.44.11-.13.24-.24.4-.32.16-.08.33-.12.52-.12.21 0 .4.04.56.12.16.08.3.19.41.32.11.14.2.29.26.46.06.17.09.35.09.52 0 .2-.03.38-.08.55zm-.46 7.31c-.12.15-.26.28-.44.37-.17.09-.37.16-.58.2-.22.04-.44.05-.67.05v.92h1.65v3.88h1.33V10h-1.06c-.03.23-.11.42-.23.57z\"],\n \"split-columns\": [\"M12 10a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H9V2h3v1.71c.31-.13.64-.21 1-.21s.69.08 1 .21V1c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v2.71c.31-.13.64-.21 1-.21s.69.08 1 .21V2h3v5H3.41l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L3.41 9H7v5H4v-1.71c-.31.13-.64.21-1 .21s-.69-.08-1-.21V15c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-2.71c-.31.13-.64.21-1 .21s-.69-.08-1-.21V14H9V9h3.59l-.29.29c-.19.18-.3.43-.3.71z\"],\n \"square\": [\"M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2V2h12v12z\"],\n \"stacked-chart\": [\"M10 2c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1v3h3V2zm3 10h1c.55 0 1-.45 1-1V8h-3v3c0 .55.45 1 1 1zm2-7c0-.55-.45-1-1-1h-1c-.55 0-1 .45-1 1v2h3V5zm-5 1H7v3h3V6zM5 7c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v1h3V7zm3 5h1c.55 0 1-.45 1-1v-1H7v1c0 .55.45 1 1 1zm7 1H2c-.55 0-1 .45-1 1s.45 1 1 1h13c.55 0 1-.45 1-1s-.45-1-1-1zM3 12h1c.55 0 1-.45 1-1V9H2v2c0 .55.45 1 1 1z\"],\n \"stadium-geometry\": [\"M12 6H4a2 2 0 100 4h8a2 2 0 100-4zM4 4a4 4 0 100 8h8a4 4 0 000-8H4z\"],\n \"star\": [\"M8 0l2.5 5.3 5.5.8-4 4.1.9 5.8L8 13.3 3.1 16l.9-5.8-4-4.1 5.5-.8z\"],\n \"star-empty\": [\"M16 6.11l-5.53-.84L8 0 5.53 5.27 0 6.11l4 4.1L3.06 16 8 13.27 12.94 16 12 10.21l4-4.1zM4.91 13.2l.59-3.62L3 7.02l3.45-.53L8 3.2l1.55 3.29 3.45.53-2.5 2.56.59 3.62L8 11.49 4.91 13.2z\"],\n \"step-backward\": [\"M12 3c-.24 0-.44.09-.62.23l-.01-.01L7 6.72V4c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V9.28l4.38 3.5.01-.01c.17.14.37.23.61.23.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"step-chart\": [\"M15 12H2v-2h3c.55 0 1-.45 1-1V7h2v1c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V5h1c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1v3h-2V6c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v2H2V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"step-forward\": [\"M12 3h-1c-.55 0-1 .45-1 1v2.72l-4.38-3.5v.01A.987.987 0 005 3c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1 .24 0 .44-.09.62-.23l.01.01L10 9.28V12c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"stop\": [\"M12 3H4c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"stopwatch\": [\"M9 2v1.083A6.002 6.002 0 018 15 6 6 0 017 3.083V2H6a1 1 0 110-2h4a1 1 0 010 2H9zM8 5a4 4 0 104 4H8V5z\"],\n \"strikethrough\": [\"M14 7H8.65c-.38-.09-.73-.18-1.04-.26-.31-.08-.49-.13-.54-.14-.43-.11-.79-.29-1.05-.52-.27-.23-.4-.55-.4-.95 0-.29.07-.53.21-.72s.32-.34.54-.46c.22-.11.46-.19.72-.24.26-.05.52-.07.77-.07.74 0 1.36.15 1.84.46.32.2.55.5.68.9h2.22c-.06-.33-.17-.64-.32-.92-.25-.45-.59-.84-1.02-1.15-.43-.31-.93-.54-1.49-.7S8.59 2 7.95 2c-.55 0-1.1.07-1.63.2-.54.13-1.02.34-1.45.62-.42.28-.76.63-1.02 1.05-.26.42-.39.92-.39 1.5 0 .3.04.59.13.88.08.26.21.51.39.75H2c-.55 0-1 .45-1 1s.45 1 1 1h7.13c.25.07.49.14.71.22.25.09.48.23.7.44.21.21.32.53.32.97 0 .21-.05.43-.14.63-.09.21-.24.39-.45.55-.21.16-.48.29-.81.39-.33.1-.73.15-1.2.15-.44 0-.84-.05-1.21-.14-.37-.09-.7-.24-.99-.43-.29-.2-.51-.45-.67-.76-.01 0-.01-.01-.02-.02H3.14a3.68 3.68 0 001.39 2.03c.46.34 1 .58 1.62.74.61.15 1.27.23 1.97.23.61 0 1.2-.07 1.79-.2.58-.13 1.11-.34 1.56-.63.46-.29.83-.66 1.11-1.11.28-.45.42-1 .42-1.64 0-.3-.05-.6-.15-.9-.05-.19-.13-.36-.22-.52H14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"style\": [\"M14 14H2V2h8.76l2-2H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V6.24l-2 2V14zm1.4-14L9.7 5.7l2.1 2.1L16 3.6V0h-.6zM4 11.92c2.33.15 4.42.15 6.15-1.5.82-.83.82-2.25 0-3.08-.45-.38-.98-.6-1.5-.6-.53 0-1.05.22-1.43.6-.82.91-1.27 3.38-3.22 4.58z\"],\n \"swap-horizontal\": [\"M0 7.02L.05 7H0v.02zm2-2.03h9.57l-1.29 1.29A1.003 1.003 0 0011.7 7.7l2.99-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2.99-3a1.07 1.07 0 00-.71-.28 1.003 1.003 0 00-.71 1.71L11.57 3H2c-.55 0-1 .45-1 1a1 1 0 001 .99zM15.96 9H16v-.02l-.04.02zM14 11.01H4.43l1.29-1.29A1.003 1.003 0 004.3 8.3l-2.99 3a.99.99 0 00-.29.7c0 .28.11.53.29.71l2.99 3a1.003 1.003 0 001.42-1.42L4.43 13H14c.55 0 1-.45 1-1s-.45-.99-1-.99z\"],\n \"swap-vertical\": [\"M9 0h-.02L9 .04V0zM7 16h.02L7 15.95V16zM4.7 1.31c-.18-.18-.43-.29-.7-.29s-.53.11-.71.29l-3 2.99a1.003 1.003 0 001.42 1.42L3 4.43V14c0 .55.45 1 1 1s1-.45 1-1V4.43l1.29 1.29c.18.18.43.29.7.29A1.003 1.003 0 007.7 4.3l-3-2.99zM15 9.99c-.28 0-.53.11-.71.29L13 11.57V2c0-.55-.45-1-1-1s-1 .45-1 1v9.57l-1.29-1.29a.99.99 0 00-.7-.29 1.003 1.003 0 00-.71 1.71l3 2.99c.18.18.43.29.71.29.28 0 .53-.11.71-.29l3-2.99c.18-.18.29-.43.29-.71-.01-.55-.46-1-1.01-1z\"],\n \"switch\": [\"M9.293 2.293l1.414 1.414-4.999 5a3 3 0 11-1.415-1.415l5-5zM13 7a3 3 0 110 6 3 3 0 010-6zM3 9a1 1 0 100 2 1 1 0 000-2zm10 0a1 1 0 100 2 1 1 0 000-2z\"],\n \"symbol-circle\": [\"M8 3.01a5 5 0 100 10 5 5 0 100-10z\"],\n \"symbol-cross\": [\"M12 6.01h-2v-2c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v2H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2h2c.55 0 1-.45 1-1v-2c0-.56-.45-1-1-1z\"],\n \"symbol-diamond\": [\"M12 8.01c0-.19-.07-.36-.16-.51l.01-.01-3-5-.01.01c-.17-.29-.48-.49-.84-.49s-.67.2-.84.49l-.02-.01-3 5 .02.01c-.09.15-.16.32-.16.51s.07.36.16.51h-.02l3 5 .01-.01c.18.29.49.5.85.5s.67-.2.84-.49l.01.01 3-5-.01-.01c.09-.16.16-.32.16-.51z\"],\n \"symbol-rectangle\": [\"M13 4H3c-.5 0-1 .5-1 1v6c0 .5.5 1 1 1h10c.5 0 1-.5 1-1V5c0-.5-.5-1-1-1z\"],\n \"symbol-square\": [\"M12 3.01H4c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-8c0-.56-.45-1-1-1z\"],\n \"symbol-triangle-down\": [\"M13 4.01c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 .16.05.31.11.44H3.1l4 8h.01c.16.33.49.56.89.56s.72-.23.89-.56h.01l4-8h-.01c.06-.14.11-.28.11-.44z\"],\n \"symbol-triangle-up\": [\"M12.89 11.56l-3.99-8h-.01c-.17-.32-.5-.55-.89-.55s-.72.23-.89.55H7.1l-4 8h.01c-.06.14-.11.29-.11.45 0 .55.45 1 1 1h8c.55 0 1-.45 1-1 0-.16-.05-.31-.11-.45z\"],\n \"syringe\": [\"M11.146.146a.5.5 0 000 .708l.647.646L10.5 2.793 8.854 1.146a.5.5 0 10-.708.708l.647.646-1.146 1.146-5.5 5.5a.5.5 0 000 .708l.646.646-1.647 1.646a.5.5 0 000 .708l.647.646-1.647 1.646a.5.5 0 00.708.708L2.5 14.207l.646.647a.5.5 0 00.708 0L5.5 13.207l.646.647a.5.5 0 00.708 0l5.5-5.5L13.5 7.207l.646.647a.5.5 0 00.708-.708L13.207 5.5 14.5 4.207l.646.647a.5.5 0 00.708-.708l-4-4a.5.5 0 00-.708 0zM11.293 8l-.793.793-1.646-1.647a.5.5 0 10-.708.708L9.793 9.5 8.5 10.793 6.854 9.146a.5.5 0 10-.708.708L7.793 11.5 6.5 12.793 3.207 9.5 8 4.707 11.293 8zM8.707 4L12 7.293l.793-.793L9.5 3.207 8.707 4zm-6.5 8.5L3.5 13.793 4.793 12.5 3.5 11.207 2.207 12.5zm11.586-9L12.5 2.207 11.207 3.5 12.5 4.793 13.793 3.5z\"],\n \"tag\": [\"M1 3a2 2 0 012-2h4.584a2 2 0 011.414.586l5.413 5.412a2 2 0 010 2.829L9.827 14.41a2 2 0 01-2.829 0L1.586 8.998A2 2 0 011 7.584V3zm3.487-.007a1.494 1.494 0 100 2.988 1.494 1.494 0 000-2.988z\"],\n \"take-action\": [\"M9 11a1.003 1.003 0 001.71.71l4-4a1.003 1.003 0 00-1.42-1.42l-4 4c-.18.18-.29.43-.29.71zM4 6c.28 0 .53-.11.71-.29l4-4A1.003 1.003 0 007.29.29l-4 4A1.003 1.003 0 004 6zm4 4l5-5-.79-.79.5-.5a1.003 1.003 0 00-1.42-1.42l-.5.5L10 2 5 7l.79.79-5.5 5.5a1.003 1.003 0 001.42 1.42l5.5-5.5L8 10zm7 4H7c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"tank\": [\"M3.7 3.4a1 1 0 01.8-.4h5.086a1 1 0 01.707.293L11 4h3a1 1 0 110 2h-3v1h2.5a2.5 2.5 0 010 5h-11a2.5 2.5 0 010-5H3V4.667a1 1 0 01.2-.6l.5-.667zM2.5 9h11a.5.5 0 010 1h-11a.5.5 0 110-1z\"],\n \"target\": [\"M7 4a1 1 0 012 0v2a1 1 0 01-2 0V4zM10 7a1 1 0 000 2h2a1 1 0 000-2h-2zM3 8a1 1 0 011-1h2a1 1 0 010 2H4a1 1 0 01-1-1zM8 9a1 1 0 00-1 1v2a1 1 0 002 0v-2a1 1 0 00-1-1z\", \"M8 16A8 8 0 108 0a8 8 0 000 16zm0-2A6 6 0 108 2a6 6 0 000 12z\"],\n \"taxi\": [\"M15.12 6.63h-.38L15 7c-.01.3-.01.64 0 .98V8c0 .07-.03.13-.04.19h.02L14 13.1v.9c0 .55-.45 1-1 1s-1-.45-1-1v-1H4v1c0 .55-.45 1-1 1s-1-.45-1-1v-.9l-.98-4.9h.02C1.03 8.13 1 8.07 1 8H.99c0-.33 0-.67.01-1l.26-.37H.88C.4 6.63 0 6.21 0 5.69s.4-.94.88-.94h1.05l.77-2.11c.19-.53.76-1.08 1.26-1.24 0 0 .68-.2 2.05-.32C6.01 1.05 6 1.03 6 1c0-.55.45-1 1-1h2c.55 0 1 .45 1 1 0 .03-.01.05-.02.08 1.37.12 2.05.32 2.05.32.51.15 1.08.71 1.27 1.24l.76 2.12h1.05c.49 0 .89.42.89.93 0 .52-.4.94-.88.94zM11 10h2V8h-2v2zm-8 0h2V8H3v2zm10-5l-.73-1.63C12.21 3.19 12.18 3 12 3H4c-.18 0-.21.19-.27.37L3 5c-.06.18-.18 1 0 1h10c.18 0 .06-.82 0-1z\"],\n \"temperature\": [\"M8.5 0A1.5 1.5 0 007 1.5v7.837a3.5 3.5 0 103 0V1.5A1.5 1.5 0 008.5 0zM2 5.5a.5.5 0 01.5-.5h3a.5.5 0 010 1h-3a.5.5 0 01-.5-.5zM2.5 1a.5.5 0 000 1h3a.5.5 0 000-1h-3zM4 3.5a.5.5 0 01.5-.5h1a.5.5 0 010 1h-1a.5.5 0 01-.5-.5zM4.5 7a.5.5 0 000 1h1a.5.5 0 000-1h-1z\"],\n \"text-highlight\": [\"M9 10H2V6h7V4H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h8v-2zm4 3h-1V3h1c.55 0 1-.45 1-1s-.45-1-1-1h-1c-.37 0-.7.11-1 .28-.3-.17-.63-.28-1-.28H9c-.55 0-1 .45-1 1s.45 1 1 1h1v10H9c-.55 0-1 .45-1 1s.45 1 1 1h1c.37 0 .7-.11 1-.28.3.17.63.28 1 .28h1c.55 0 1-.45 1-1s-.45-1-1-1zm2-9h-2v2h1v4h-1v2h2c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1z\"],\n \"th\": [\"M15 1H1c-.6 0-1 .5-1 1v12c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1zM6 13H2v-2h4v2zm0-3H2V8h4v2zm0-3H2V5h4v2zm8 6H7v-2h7v2zm0-3H7V8h7v2zm0-3H7V5h7v2z\"],\n \"th-derived\": [\"M5.6 10l-.3.3c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3l2-2c.2-.2.3-.4.3-.7s-.1-.5-.3-.7l-2-2C6.5 6.1 6.3 6 6 6c-.5 0-1 .4-1 1 0 .3.1.5.3.7l.3.3H1c-.6 0-1 .4-1 1s.4 1 1 1h4.6zM15 1H2c-.5 0-1 .5-1 1v5h2V5h11v2H8.8l.6.6c.1.1.2.3.3.4H14v2H9.7c-.1.1-.2.3-.3.4l-.6.6H14v2H3v-2H1v3c0 .5.5 1 1 1h13c.6 0 1-.5 1-1V2c0-.5-.4-1-1-1z\"],\n \"th-disconnect\": [\"M12 1h3c.6 0 1 .5 1 1v12c0 .6-.4 1-1 1h-4.97l.286-2H14v-2h-3.398l.143-1H14V8h-2.97l.143-1H14V5h-2.541l.51-3.576C11.99 1.282 12 1.14 12 1zM5.97 1l-.572 4H2v2h3.112L4.97 8H2v2h2.684l-.143 1H2v2h2.255l-.225 1.576c-.02.142-.03.284-.03.424H1c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1h4.97zM8.01.859a1 1 0 111.98.282l-2 14a1 1 0 11-1.98-.282l2-14z\"],\n \"th-filtered\": [\"M10 10h3l1.78-2.226a1 1 0 00.22-.625V4.3l1-.9V14c0 .6-.4 1-1 1H1c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1h4.333L9 4.3V5H7v2h2v1H7v2h3zm-4 3v-2H2v2h4zm0-3V8H2v2h4zm0-3V5H2v2h4zm8 6v-2H7v2h7z\", \"M15.48 0c.31 0 .52.26.52.57 0 .16-.06.3-.17.41l-2.86 2.73v2.63c0 .16-.06.3-.17.41l-.82 1.1c-.1.1-.25.17-.41.17-.31 0-.57-.26-.57-.57V3.71L8.17.98A.566.566 0 018 .57c0-.31.26-.57.57-.57h6.91z\"],\n \"th-list\": [\"M15 1H1c-.6 0-1 .5-1 1v12c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1zm-1 12H2v-2h12v2zm0-3H2V8h12v2zm0-3H2V5h12v2z\"],\n \"third-party\": [\"M4.448 9h.573c.025-.044.051-.088.079-.13A9.43 9.43 0 015.183 8h-.995A10.424 10.424 0 014 6c0-.717.068-1.391.188-2h3.624c.065.33.114.678.146 1.042A3.42 3.42 0 018.46 5c.168 0 .336.013.502.037A11.089 11.089 0 008.829 4h1.755c.148.338.26.696.33 1.068l.176-.028a2.74 2.74 0 01.5 0c.113 0 .225.006.336.018A6.001 6.001 0 000 6a6 6 0 005.672 5.991 4 4 0 01-.202-.441 1.842 1.842 0 01-.24-.26 1.82 1.82 0 01-.26-.55 2 2 0 01-.185-.92l-.012-.025A6.036 6.036 0 014.448 9zM3.171 8H1.416A4.983 4.983 0 011 6c0-.711.148-1.388.416-2h1.755C3.06 4.626 3 5.299 3 6c0 .701.06 1.374.17 2zM2 9H3.4c.18.618.412 1.167.685 1.62A5.015 5.015 0 012 9zm2.448-6h3.104a6.036 6.036 0 00-.325-.795C6.737 1.225 6.246 1 6 1c-.246 0-.737.225-1.227 1.205-.119.238-.228.504-.325.795zm4.15 0H10a5.016 5.016 0 00-2.086-1.62c.273.453.506 1.002.685 1.62zM4.087 1.38A6.834 6.834 0 003.401 3H2a5.015 5.015 0 012.086-1.62zM13.476 16s.118-.385-.172-1.046c-.228-.533-1.172-.915-2.015-1.257a22.113 22.113 0 01-.584-.243c-.808-.356-.816-.588-.825-.872-.002-.041-.003-.084-.007-.128v-.139c.314-.284.573-.669.745-1.115 0 0 .008-.023.008-.03.04-.1.071-.2.095-.3.212-.04.33-.27.377-.485.054-.093.149-.3.125-.547-.024-.307-.15-.453-.29-.515v-.054c0-.392-.04-.961-.11-1.33a2.16 2.16 0 00-.071-.308 2.283 2.283 0 00-.8-1.17C9.558 6.162 9.001 6 8.506 6c-.495 0-1.052.162-1.445.462A2.294 2.294 0 006.19 7.93c-.07.369-.11.946-.11 1.338v.046c-.14.062-.274.208-.306.523a1 1 0 00.126.547c.047.215.173.453.393.492.02.083.05.172.078.253l.016.047c0 .008.008.015.008.015v.008c.172.454.44.846.761 1.115a.804.804 0 01-.004.072c-.002.02-.004.04-.004.06l-.007.105c-.016.287-.028.523-.848.894-.176.078-.37.156-.568.237-.847.345-1.802.735-2.031 1.27C3.41 15.616 3.52 16 3.52 16h9.955zm2.503-1.25h-1.413a4.05 4.05 0 00-.116-.294c-.192-.445-.52-.753-.787-.955-.278-.21-.59-.38-.873-.517a21.373 21.373 0 00-1.122-.483l-.02-.008-.235-.097c.144-.23.266-.476.366-.731.089-.087.162-.177.22-.26.132-.192.217-.391.271-.568.117-.251.24-.64.199-1.105a2.025 2.025 0 00-.299-.925 8.626 8.626 0 00-.116-1.083 3.426 3.426 0 00-.104-.45 3.476 3.476 0 00-.661-1.246A2.18 2.18 0 0111.63 6c.432 0 .92.141 1.264.404.33.256.584.612.7 1.023.028.087.049.182.062.27.062.322.097.82.097 1.163v.048c.123.053.233.181.254.45a.82.82 0 01-.11.478c-.041.189-.144.391-.33.425a1.92 1.92 0 01-.082.262c0 .007-.007.027-.007.027-.151.39-.378.727-.653.976v.121c.004.038.005.075.006.111v.002c.008.247.015.451.722.762.158.07.332.14.51.213.739.299 1.565.634 1.764 1.1.254.579.151.915.151.915z\"],\n \"thumbs-down\": [\"M2 2H0v7h2c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm13.99 4.38c.08-.58-.44-1.02-1.15-1.05-.25-.01-.52-.03-.81-.05.02 0 .05-.01.07-.01.7-.1 1.34-.49 1.41-1.07.06-.58-.46-.97-1.17-1.04-.25-.02-.52-.04-.79-.06.47-.15.84-.42.87-.93.04-.58-.79-1.03-1.5-1.09-.27-.02-.51-.04-.73-.05h-.09c-.23-.02-.43-.02-.62-.03C8.35.95 5.66 1.47 4 2.51v6c2.14 1.29 4.76 3.59 4.21 5.51-.18.59.31 1.05.98.98.81-.09 1.37-.91 1.4-1.78.04-1-.15-2.01-.5-2.91-.04-.25.01-.5.37-.53.49-.03 1.11-.06 1.59-.08.26 0 .51-.01.75-.02h.01c.41-.02.8-.05 1.13-.09.7-.09 1.35-.47 1.43-1.05.08-.58-.44-.97-1.15-1.05-.05-.01-.11-.01-.16-.02.17-.01.33-.03.49-.05.72-.08 1.37-.46 1.44-1.04z\"],\n \"thumbs-up\": [\"M15.99 9.62c-.08-.58-.73-.96-1.43-1.05-.15-.02-.32-.04-.49-.05.06-.01.11-.01.16-.02.71-.08 1.23-.47 1.15-1.05-.08-.58-.73-.96-1.43-1.05-.34-.04-.72-.07-1.13-.09h-.01c-.24-.01-.49-.02-.75-.02-.48-.02-1.11-.04-1.59-.08-.36-.03-.41-.28-.37-.53.35-.9.54-1.91.5-2.91-.04-.85-.6-1.68-1.41-1.77-.67-.07-1.16.39-.99.98C8.76 3.91 6.13 6.2 4 7.49v6c1.66 1.03 4.35 1.56 7.48 1.5.19 0 .39-.01.62-.02h.09c.22-.01.46-.03.73-.05.71-.06 1.54-.51 1.5-1.09-.03-.51-.4-.79-.87-.93.27-.02.54-.04.79-.06.71-.06 1.24-.45 1.17-1.04-.06-.58-.7-.97-1.41-1.07-.02 0-.05-.01-.07-.01.29-.02.57-.03.81-.05.71-.03 1.23-.47 1.15-1.05zM2 7H0v7h2c.55 0 1-.45 1-1V8c0-.56-.45-1-1-1z\"],\n \"tick\": [\"M14 3c-.28 0-.53.11-.71.29L6 10.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4c.18.18.43.29.71.29s.53-.11.71-.29l8-8A1.003 1.003 0 0014 3z\"],\n \"tick-circle\": [\"M8 16c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm4-11c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z\"],\n \"time\": [\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm1-6.41V4c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L9 7.59z\"],\n \"timeline-area-chart\": [\"M15 2.59L9.91 7.68 6.6 5.2l-.01.01C6.42 5.09 6.23 5 6 5c-.24 0-.44.09-.62.23v-.01L3 7.12V11h12V2.59zM15 12H2V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"timeline-bar-chart\": [\"M8 12h1c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1zm5 0h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1h-1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1zm2 1H2c-.55 0-1 .45-1 1s.45 1 1 1h13c.55 0 1-.45 1-1s-.45-1-1-1zM3 12h1c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1z\"],\n \"timeline-events\": [\"M8 11H7v1h1v-1zm-4 0H3v1h1v-1zm7-8c.6 0 1-.5 1-1V1c0-.5-.4-1-1-1s-1 .5-1 1v1c0 .5.5 1 1 1zM4 3c.5 0 1-.5 1-1V1c0-.5-.5-1-1-1S3 .5 3 1v1c0 .5.5 1 1 1zm10-2h-1v1c0 1.1-.9 2-2 2s-2-.9-2-2V1H6v1c0 1.1-.9 2-2 2s-2-.9-2-2V1H1c-.5 0-1 .5-1 1v12c0 .5.5 1 1 1h13c.6 0 1-.5 1-1V2c0-.5-.4-1-1-1zM5 13H2v-3h3v3zm0-4H2V6h3v3zm4 4H6v-3h3v3zm0-4H6V6h3v3zm4 4h-3v-3h3v3zm0-4h-3V6h3v3zm-1-2h-1v1h1V7z\"],\n \"timeline-line-chart\": [\"M15 12H2V9.41l3-3L8.29 9.7c.18.19.43.3.71.3s.53-.11.71-.29l6-6a1.003 1.003 0 00-1.42-1.42L9 7.59l-3.29-3.3C5.53 4.11 5.28 4 5 4s-.53.11-.71.29L2 6.59V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"tint\": [\"M7.88 1s-4.9 6.28-4.9 8.9c.01 2.82 2.34 5.1 4.99 5.1 2.65-.01 5.03-2.3 5.03-5.13C12.99 7.17 7.88 1 7.88 1z\"],\n \"torch\": [\"M5 15c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H5v1zm7-15H4c-.55 0-1 .45-1 1v1h10V1c0-.55-.45-1-1-1zM5 7v6h6V7l2-4H3l2 4zm2 0c0-.55.45-1 1-1s1 .45 1 1v2c0 .55-.45 1-1 1s-1-.45-1-1V7z\"],\n \"tractor\": [\"M3.5 9a3.5 3.5 0 110 7 3.5 3.5 0 010-7zm9.5 1a3 3 0 110 6 3 3 0 010-6zm-9.5 1a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm9.5 1a1 1 0 100 2 1 1 0 000-2zM5 0c1.46 0 2.527.668 3 2l.815 3.255a78.9 78.9 0 012.186.195L11 2h2l.001 3.688c.698.095 1.37.198 2.013.312.623.11.986.479.986 1v3.354a4.001 4.001 0 00-6.873 1.645H7.999l-.026-.002A4.5 4.5 0 00.659 9.01l-.654.001v-.829C.003 7.386.002 6.423 0 6.022 0 5.5.376 4.99 1 4.99V1a1 1 0 011-1h3zm1 2H3v2.99c1.29.024 2.554.069 3.781.135L6 2z\"],\n \"train\": [\"M13 14h-1l1 2H3l1-2H3c-1.1 0-2-.9-2-2V2C1 .9 4.13 0 8 0s7 .9 7 2v10c0 1.1-.9 2-2 2zm-2-2h2v-2h-2v2zM9 7h4V3H9v4zm-6 5h2v-2H3v2zm0-5h4V3H3v4z\"],\n \"translate\": [\"M15.89 14.56l-3.99-8h-.01c-.17-.33-.5-.56-.89-.56s-.72.23-.89.56h-.01L9 8.76 7.17 7.38l.23-.18C8.37 6.47 9 5.31 9 4V3h1c.55 0 1-.45 1-1s-.45-1-1-1H7c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1H1c-.55 0-1 .45-1 1s.45 1 1 1h6v1c0 .66-.32 1.25-.82 1.61l-.68.51-.68-.5C4.32 5.25 4 4.66 4 4H2c0 1.31.63 2.47 1.6 3.2l.23.17L1.4 9.2l.01.01C1.17 9.4 1 9.67 1 10c0 .55.45 1 1 1 .23 0 .42-.09.59-.21l.01.01 2.9-2.17 2.6 1.95-1.99 3.98h.01c-.07.13-.12.28-.12.44 0 .55.45 1 1 1 .39 0 .72-.23.89-.56h.01L8.62 14h4.76l.72 1.45h.01c.17.32.5.55.89.55.55 0 1-.45 1-1 0-.16-.05-.31-.11-.44zM9.62 12L11 9.24 12.38 12H9.62z\"],\n \"trash\": [\"M14.49 3.99h-13c-.28 0-.5.22-.5.5s.22.5.5.5h.5v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-10h.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5zm-8.5 9c0 .55-.45 1-1 1s-1-.45-1-1v-6c0-.55.45-1 1-1s1 .45 1 1v6zm3 0c0 .55-.45 1-1 1s-1-.45-1-1v-6c0-.55.45-1 1-1s1 .45 1 1v6zm3 0c0 .55-.45 1-1 1s-1-.45-1-1v-6c0-.55.45-1 1-1s1 .45 1 1v6zm2-12h-4c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1h-4c-.55 0-1 .45-1 1v1h14v-1c0-.55-.45-1-1-1z\"],\n \"tree\": [\"M9 11.857V16H7v-4.143L1 13l3.885-4.44L3 9l3.07-4.297L5 5l3-5 3 5-1.07-.297L13 9l-1.885-.44L15 13l-6-1.143z\"],\n \"trending-down\": [\"M15 7c-.55 0-1 .45-1 1v.59l-4.29-4.3A.997.997 0 009 4c-.16 0-.31.05-.44.11V4.1L5 5.88 1.45 4.11v.01C1.31 4.05 1.16 4 1 4c-.55 0-1 .45-1 1 0 .39.23.72.56.89v.01l4 2v-.01c.13.06.28.11.44.11s.31-.05.44-.11v.01L8.8 6.22 12.59 10H12c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1z\"],\n \"trending-up\": [\"M15 4h-3c-.55 0-1 .45-1 1s.45 1 1 1h.59L8.8 9.78 5.45 8.11v.01C5.31 8.05 5.16 8 5 8s-.31.05-.44.11V8.1l-4 2v.01c-.33.17-.56.5-.56.89 0 .55.45 1 1 1 .16 0 .31-.05.44-.11v.01L5 10.12l3.55 1.78v-.01c.14.06.29.11.45.11.28 0 .53-.11.71-.29L14 7.41V8c0 .55.45 1 1 1s1-.45 1-1V5c0-.55-.45-1-1-1z\"],\n \"truck\": [\"M12.5 0a.5.5 0 01.5.5V9a1 1 0 011 1v2h.5a.5.5 0 01.5.5v1a.5.5 0 01-.5.5H13v1a1 1 0 01-2 0v-1H5v1a1 1 0 01-2 0v-1H1.5a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5H2v-2a1 1 0 011-1V.5a.5.5 0 011 0V3a2 2 0 012-2h4a2 2 0 012 2V.5a.5.5 0 01.5-.5zM9 8H7a1 1 0 00-1 1v2a1 1 0 001 1h2a1 1 0 001-1V9a1 1 0 00-1-1zm3.5 3h-1a.5.5 0 100 1h1a.5.5 0 100-1zm-8 0h-1a.5.5 0 100 1h1a.5.5 0 100-1zM9 9a.5.5 0 01.5.5v1l-.008.09A.5.5 0 019 11H7l-.09-.008a.5.5 0 01-.41-.492v-1l.008-.09A.5.5 0 017 9zm2-5H5v2h6V4z\"],\n \"two-columns\": [\"M3.99-.01h-3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-14c0-.55-.45-1-1-1zm11.71 7.3l-2-2a1.003 1.003 0 00-1.71.71v4a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71s-.11-.53-.29-.71zM9.99-.01h-3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-14c0-.55-.45-1-1-1z\"],\n \"unarchive\": [\"M13.382 0a1 1 0 01.894.553L16 4v11a1 1 0 01-1 1H1a1 1 0 01-1-1V4L1.724.553A1 1 0 012.618 0h10.764zM8 6c-.28 0-.53.11-.71.29l-2 2-.084.096A1.003 1.003 0 006.71 9.71l.29-.3V12l.007.116c.058.496.482.884.993.884.55 0 1-.45 1-1V9.41l.29.29.081.076A.97.97 0 0010 10a1.003 1.003 0 00.71-1.71l-2-2-.096-.084A1.002 1.002 0 008 6zm5-4H3L2 4h12l-1-2z\"],\n \"underline\": [\"M8 14c2.8 0 5-2.2 5-5V3c0-.6-.4-1-1-1s-1 .4-1 1v6c0 1.7-1.3 3-3 3s-3-1.3-3-3V3c0-.6-.4-1-1-1s-1 .4-1 1v6c0 2.8 2.2 5 5 5zM13.5 15h-11c-.3 0-.5.2-.5.5s.2.5.5.5h11c.3 0 .5-.2.5-.5s-.2-.5-.5-.5z\"],\n \"undo\": [\"M4 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm7-7H3.41L4.7 2.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C.11 4.47 0 4.72 0 5c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L3.41 6H11c1.66 0 3 1.34 3 3s-1.34 3-3 3H7v2h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\"],\n \"ungroup-objects\": [\"M3.5 5C1.57 5 0 6.57 0 8.5S1.57 12 3.5 12 7 10.43 7 8.5 5.43 5 3.5 5zm9 0C10.57 5 9 6.57 9 8.5s1.57 3.5 3.5 3.5S16 10.43 16 8.5 14.43 5 12.5 5z\"],\n \"unknown-vehicle\": [\"M10.507 9.75v-3.5c0-.089.023-.171.051-.25h-7.55c-.176 0-.061-.824 0-1l.729-1.63c.06-.177.095-.37.27-.37h4.5V1.01c-.166-.003-.32-.01-.5-.01-2.72 0-4.036.402-4.036.402-.508.155-1.079.711-1.268 1.237L1.94 4.756H.887c-.483 0-.88.423-.88.939s.397.939.88.939h.376L1.008 7c-.034.685 0 1.436 0 2v5c0 .657.384 1 1 1s1-.343 1-1v-1h10v1c0 .657.383 1 1 1s1-.343 1-1v-3.5h-3.75a.75.75 0 01-.75-.75zm-5.5.25h-2V8h2v2zm11-4.305zM15.34.826a2.807 2.807 0 00-.932-.598c-.386-.16-.868-.241-1.445-.241-.447 0-.851.076-1.213.228-.362.153-.67.364-.926.636s-.456.592-.598.963a3.535 3.535 0 00-.218 1.144V3h1.789c.003-.208.023-.405.069-.588.049-.193.124-.362.225-.506.102-.144.232-.259.39-.345.159-.087.348-.13.567-.13.325 0 .58.09.762.272.183.18.275.46.275.839.008.222-.031.407-.116.555a1.654 1.654 0 01-.335.408 7.4 7.4 0 01-.452.37c-.162.123-.316.27-.463.438a2.556 2.556 0 00-.384.611c-.11.239-.177.535-.2.889V6h1.645v-.1c.032-.248.111-.453.237-.618.126-.164.27-.31.433-.438.163-.128.335-.255.518-.383a2.413 2.413 0 00.878-1.117c.102-.255.152-.58.152-.975A2.241 2.241 0 0015.34.826zM12.007 7v2h2V7h-2z\"],\n \"unlock\": [\"M11.99-.01c-2.21 0-4 1.79-4 4v3h-7c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-7c0-.55-.45-1-1-1h-3v-3c0-1.1.9-2 2-2s2 .9 2 2v1c0 .55.45 1 1 1s1-.45 1-1v-1c0-2.21-1.79-4-4-4z\"],\n \"unpin\": [\"M9.39 1c-.5.5-.4 1.48.15 2.53L4.38 7.54C2.85 6.5 1.52 6.07 1 6.59l3.5 3.5c-.02.02-1.4 2.8-1.4 2.8l2.8-1.4 3.5 3.5c.53-.53.1-1.86-.95-3.38l4.02-5.16c1.04.55 2.01.65 2.51.14L9.39 1z\"],\n \"unresolve\": [\"M11 3c-.55 0-1.07.09-1.57.26a6.46 6.46 0 010 9.48c.5.17 1.02.26 1.57.26 2.76 0 5-2.24 5-5s-2.24-5-5-5zM9.78 9.38l.09-.27c.08-.36.13-.73.13-1.11s-.05-.75-.13-1.11l-.09-.27a5.32 5.32 0 00-.29-.79l-.12-.21c-.14-.27-.31-.52-.51-.76a.7.7 0 00-.08-.1c-.24-.27-.49-.52-.78-.74-.43-.32-.92-.58-1.45-.75l.01-.01c-.1-.03-.2-.05-.3-.08-.12-.03-.23-.07-.36-.09A5.28 5.28 0 005 3C2.24 3 0 5.24 0 8s2.24 5 5 5c.31 0 .61-.04.9-.09.12-.02.24-.06.36-.09.1-.03.21-.04.3-.08l-.01-.01c.88-.29 1.64-.8 2.22-1.49.03-.03.06-.07.09-.1.19-.24.36-.49.51-.76.04-.07.08-.14.11-.21.13-.25.23-.52.3-.79z\"],\n \"updated\": [\"M8 0a7.95 7.95 0 00-6 2.74V1c0-.55-.45-1-1-1S0 .45 0 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.54C4.64 2.78 6.22 2 8 2c3.31 0 6 2.69 6 6 0 2.61-1.67 4.81-4 5.63-.63.22-1.29.37-2 .37-3.31 0-6-2.69-6-6 0-.55-.45-1-1-1s-1 .45-1 1c0 4.42 3.58 8 8 8 .34 0 .67-.03 1-.07.02 0 .04-.01.06-.01C12.98 15.4 16 12.06 16 8c0-4.42-3.58-8-8-8zm3 5c-.28 0-.53.11-.71.29L7 8.58 5.71 7.29a1.003 1.003 0 00-1.42 1.42l2 2c.18.18.43.29.71.29.28 0 .53-.11.71-.29l4-4A1.003 1.003 0 0011 5z\"],\n \"upload\": [\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm3 8c-.28 0-.53-.11-.71-.29L9 6.41V12c0 .55-.45 1-1 1s-1-.45-1-1V6.41l-1.29 1.3a1.003 1.003 0 01-1.42-1.42l3-3C7.47 3.11 7.72 3 8 3s.53.11.71.29l3 3A1.003 1.003 0 0111 8z\"],\n \"user\": [\"M7.99-.01A7.998 7.998 0 00.03 8.77c.01.09.03.18.04.28.02.15.04.31.07.47.02.11.05.22.08.34.03.13.06.26.1.38.04.12.08.25.12.37.04.11.08.21.12.32a6.583 6.583 0 00.3.65c.07.14.14.27.22.4.04.07.08.13.12.2l.27.42.1.13a7.973 7.973 0 003.83 2.82c.03.01.05.02.07.03.37.12.75.22 1.14.29l.2.03c.39.06.79.1 1.2.1s.81-.04 1.2-.1l.2-.03c.39-.07.77-.16 1.14-.29.03-.01.05-.02.07-.03a8.037 8.037 0 003.83-2.82c.03-.04.06-.08.09-.13.1-.14.19-.28.28-.42.04-.07.08-.13.12-.2.08-.13.15-.27.22-.41.04-.08.08-.17.12-.26.06-.13.11-.26.17-.39.04-.1.08-.21.12-.32.04-.12.08-.24.12-.37.04-.13.07-.25.1-.38.03-.11.06-.22.08-.34.03-.16.05-.31.07-.47.01-.09.03-.18.04-.28.02-.26.04-.51.04-.78-.03-4.41-3.61-7.99-8.03-7.99zm0 14.4c-1.98 0-3.75-.9-4.92-2.31.67-.36 1.49-.66 2.14-.95 1.16-.52 1.04-.84 1.08-1.27.01-.06.01-.11.01-.17-.41-.36-.74-.86-.96-1.44v-.01c0-.01-.01-.02-.01-.02-.05-.13-.09-.26-.12-.39-.28-.05-.44-.35-.5-.63-.06-.11-.18-.38-.15-.69.04-.41.2-.59.38-.67v-.06c0-.51.05-1.24.14-1.72.02-.13.05-.26.09-.39.17-.59.53-1.12 1.01-1.49.49-.38 1.19-.59 1.82-.59.62 0 1.32.2 1.82.59.48.37.84.9 1.01 1.49.04.13.07.26.09.4.09.48.14 1.21.14 1.72v.07c.18.08.33.26.37.66.03.31-.1.58-.16.69-.06.27-.21.57-.48.62-.03.13-.07.26-.12.38 0 .01-.01.04-.01.04-.21.57-.54 1.06-.94 1.42 0 .06.01.13.01.19.04.43-.12.75 1.05 1.27.65.29 1.47.6 2.14.95a6.415 6.415 0 01-4.93 2.31z\"],\n \"variable\": [\"M3.94 3.15c.47-.66 1.05-1.24 1.76-1.73l.13-.4c-1.11.45-2.05 1.01-2.84 1.7-1.02.88-1.8 1.9-2.32 3.05C.22 6.76 0 7.75 0 8.75c0 1.75.66 3.5 1.99 5.25l.13-.42c-.39-.94-.59-1.82-.59-2.63 0-1.28.22-2.64.67-4.1.45-1.45 1.03-2.69 1.74-3.7zm7.51 6.41l-.27-.15c-.3.41-.52.66-.66.77-.09.06-.21.1-.33.1-.15 0-.3-.1-.45-.28-.25-.33-.59-1.22-1.01-2.69.38-.65.69-1.08.95-1.28.19-.15.39-.22.59-.22.08 0 .22.03.43.08.2.06.39.08.54.08.22 0 .4-.07.54-.22.15-.15.22-.34.22-.57 0-.25-.07-.45-.22-.59-.15-.15-.35-.22-.63-.22-.24 0-.47.06-.69.17-.21.11-.49.36-.82.74-.25.28-.61.78-1.1 1.48a6.72 6.72 0 00-.97-2.38l-2.59.44-.05.27c.19-.04.36-.06.49-.06.26 0 .47.11.64.33.26.34.63 1.38 1.11 3.12-.37.49-.63.81-.77.96-.23.24-.41.4-.56.47-.11.06-.24.09-.39.09-.11 0-.29-.06-.53-.18-.17-.07-.32-.11-.45-.11-.25 0-.46.08-.62.24-.16.16-.24.37-.24.61 0 .23.08.42.23.57.15.15.35.22.61.22.25 0 .48-.05.7-.15.22-.1.49-.32.82-.65.33-.33.78-.86 1.36-1.59.22.69.42 1.19.58 1.51.16.31.35.54.56.68.21.14.47.21.79.21.31 0 .62-.11.93-.33.4-.29.82-.77 1.26-1.47zm2.56-8.54l-.12.42c.39.95.59 1.82.59 2.64 0 1.09-.17 2.26-.5 3.51-.26.96-.6 1.87-1.02 2.71-.42.85-.82 1.51-1.21 1.98-.39.48-.87.92-1.44 1.32l-.14.4c1.11-.45 2.05-1.02 2.84-1.7 1.03-.89 1.81-1.91 2.33-3.05.44-.99.66-1.99.66-3 0-1.73-.66-3.48-1.99-5.23z\"],\n \"vertical-bar-chart-asc\": [\"M6 7c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1s1-.45 1-1V8c0-.55-.45-1-1-1zM2 9c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1zm8-5c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1s1-.45 1-1V5c0-.55-.45-1-1-1zm4-4c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"vertical-bar-chart-desc\": [\"M6 4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1s1-.45 1-1V5c0-.55-.45-1-1-1zM2 0c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm8 7c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1s1-.45 1-1V8c0-.55-.45-1-1-1zm4 2c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1z\"],\n \"vertical-distribution\": [\"M1 2h14c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1s.45 1 1 1zm14 11H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM3 5c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1H3z\"],\n \"video\": [\"M15 2H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zM5 11V5l6 3-6 3z\"],\n \"virus\": [\"M11.918 11.107l.737.737.052-.051A1 1 0 0114.2 13.12l-.078.087-1.414 1.414a1 1 0 01-1.492-1.327l.029-.033-.863-.863c-.426.231-.89.402-1.38.502L9 14l.117.007A1 1 0 019 16H7l-.117-.007A1 1 0 017 14v-1.1a4.967 4.967 0 01-1.447-.539l-.846.846.078.087a1 1 0 01-1.492 1.327l-1.414-1.414-.078-.087a1 1 0 011.492-1.327l.744-.744A4.986 4.986 0 013.23 9.5H2a1 1 0 01-1.993.117L0 9.5v-2a1 1 0 011.993-.117L2 7.5h1.025a4.973 4.973 0 01.905-2.405l-.512-.513-.125.125A1 1 0 011.8 3.38l.078-.087 1.414-1.414a1 1 0 011.529 1.277l.573.575a4.969 4.969 0 011.604-.63V2l-.116-.007a1 1 0 010-1.986L7 0h2a1 1 0 01.117 1.993L9 2l.001 1.1c.639.13 1.233.381 1.757.73l.535-.537-.078-.087a1 1 0 011.492-1.327l1.414 1.414.078.087a1 1 0 01-1.492 1.327l-.535.536a4.97 4.97 0 01.803 2.257H14l.007-.117A1 1 0 0116 7.5v2l-.007.117A1 1 0 0114 9.5h-1.229a4.987 4.987 0 01-.853 1.607zM10 9a1 1 0 100 2 1 1 0 000-2zM6.5 5a1.5 1.5 0 100 3 1.5 1.5 0 000-3z\"],\n \"volume-down\": [\"M9 2c-.28 0-.53.11-.71.29L5.59 5H3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h2.59l2.71 2.71c.17.18.42.29.7.29.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm3.57 1.44l-1.59 1.22C11.62 5.61 12 6.76 12 8s-.38 2.39-1.02 3.34l1.59 1.22C13.47 11.27 14 9.7 14 8c0-1.7-.53-3.27-1.43-4.56z\"],\n \"volume-off\": [\"M11 2c-.28 0-.53.11-.71.29L7.59 5H5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h2.59l2.71 2.71c.17.18.42.29.7.29.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z\"],\n \"volume-up\": [\"M7 1.86c-.28 0-.53.11-.71.29l-2.7 2.71H1c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h2.59l2.71 2.71a1.003 1.003 0 001.71-.71v-10c-.01-.55-.46-1-1.01-1zm6.74-.99l-1.58 1.22A9.985 9.985 0 0114 7.86c0 2.16-.69 4.15-1.85 5.78l1.58 1.22c1.42-1.97 2.26-4.38 2.26-7 .01-2.61-.84-5.02-2.25-6.99zM8.98 4.52C9.62 5.48 10 6.63 10 7.86s-.38 2.39-1.02 3.34l1.59 1.22c.9-1.29 1.43-2.86 1.43-4.56 0-1.7-.53-3.27-1.43-4.56L8.98 4.52z\"],\n \"walk\": [\"M13 8h-2c-.16 0-.31-.05-.44-.11v.01l-1.02-.51-.37 1.86 1.38.92-.01.02c.27.17.46.46.46.81v4c0 .55-.45 1-1 1s-1-.45-1-1v-3.46l-1.27-.85-1.8 4.67h-.01A.98.98 0 015 16c-.55 0-1-.45-1-1 0-.13.03-.25.07-.36h-.01L7.39 6H5.62l-.73 1.45h-.01C4.72 7.77 4.39 8 4 8c-.55 0-1-.45-1-1 0-.16.05-.31.11-.44H3.1l1-2h.01c.17-.33.5-.56.89-.56h3.16l.29-.75C8.17 2.9 8 2.47 8 2c0-1.1.9-2 2-2s2 .9 2 2c0 1-.73 1.82-1.69 1.97l-.5 1.32 1.43.71H13c.55 0 1 .45 1 1s-.45 1-1 1z\"],\n \"warning-sign\": [\"M15.84 13.5l.01-.01-7-12-.01.01c-.17-.3-.48-.5-.85-.5s-.67.2-.85.5l-.01-.01-7 12 .01.01c-.09.15-.15.31-.15.5 0 .55.45 1 1 1h14c.55 0 1-.45 1-1 0-.19-.06-.35-.15-.5zm-6.85-.51h-2v-2h2v2zm0-3h-2v-5h2v5z\"],\n \"waterfall-chart\": [\"M8 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-4 4h1c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1zm7-6c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1s-1 .45-1 1v1c0 .55.45 1 1 1zm4-3h-1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm0 10H2V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"waves\": [\"M3 1a1 1 0 01.894.553c.102.202.393.607.779.957.419.381.72.49.827.49.108 0 .408-.109.827-.49.386-.35.677-.755.779-.957a1 1 0 011.788 0c.102.202.393.607.779.957.419.381.72.49.827.49.108 0 .408-.109.827-.49.386-.35.677-.755.779-.957a1 1 0 011.788 0c.173.344.38.75.637 1.072.277.347.437.375.469.375a1 1 0 110 2c-.968 0-1.642-.64-2.03-1.125a4.755 4.755 0 01-.076-.097 6.093 6.093 0 01-.221.212C12.175 4.442 11.393 5 10.5 5c-.892 0-1.675-.558-2.173-1.01A6.243 6.243 0 018 3.67c-.105.11-.214.217-.327.32C7.175 4.442 6.393 5 5.5 5c-.892 0-1.675-.558-2.173-1.01a6.119 6.119 0 01-.221-.212l-.075.097C2.64 4.36 1.968 5 1 5a1 1 0 010-2c.032 0 .191-.028.47-.375.256-.321.463-.728.636-1.072A1 1 0 013 1zm0 5a1 1 0 01.894.553c.102.202.393.607.779.957.419.381.72.49.827.49.108 0 .408-.109.827-.49.386-.35.677-.755.779-.957a1 1 0 011.788 0c.102.202.393.607.779.957.419.381.72.49.827.49.108 0 .408-.109.827-.49.386-.35.677-.755.779-.957a1 1 0 011.788 0c.173.344.38.75.637 1.072.277.347.437.375.469.375a1 1 0 110 2c-.968 0-1.642-.639-2.03-1.125a4.726 4.726 0 01-.076-.097 6.093 6.093 0 01-.221.212c-.498.452-1.28 1.01-2.173 1.01-.892 0-1.675-.558-2.173-1.01A6.243 6.243 0 018 8.67c-.105.11-.214.217-.327.32C7.175 9.442 6.393 10 5.5 10c-.892 0-1.675-.558-2.173-1.01a6.119 6.119 0 01-.221-.212l-.075.097C2.64 9.36 1.968 10 1 10a1 1 0 010-2c.032 0 .191-.028.47-.375.256-.321.463-.728.636-1.072A1 1 0 013 6zm.894 5.553a1 1 0 00-1.788 0c-.173.344-.38.75-.637 1.072-.278.347-.437.375-.469.375a1 1 0 100 2c.968 0 1.642-.639 2.03-1.125a4.9 4.9 0 00.076-.097c.072.073.146.143.221.212.498.452 1.28 1.01 2.173 1.01.892 0 1.675-.558 2.173-1.01.113-.103.222-.21.327-.32.105.11.214.217.327.32.498.452 1.28 1.01 2.173 1.01.892 0 1.675-.558 2.173-1.01.075-.069.149-.14.221-.212a4.9 4.9 0 00.075.097C13.36 14.36 14.032 15 15 15a1 1 0 100-2c-.032 0-.191-.028-.47-.375-.256-.321-.463-.728-.636-1.072a1 1 0 00-1.788 0c-.102.202-.393.607-.779.957-.419.381-.72.49-.827.49-.108 0-.408-.109-.827-.49-.386-.35-.677-.755-.779-.957a1 1 0 00-1.788 0c-.102.202-.393.607-.779.957-.419.381-.72.49-.827.49-.108 0-.408-.109-.827-.49-.386-.35-.677-.755-.779-.957z\"],\n \"widget\": [\"M13 11h2V5h-2v6zM3 5H1v6h2V5zm11-1c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM2 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM5 3h6V1H5v2zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm3 15h6v-2H5v2z\"],\n \"widget-button\": [\"M1 3h14c.55 0 1 .45 1 1v8c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1zm1 2v6h12V5H2zm3 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"widget-footer\": [\"M14 0H2c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H3v-3h10v3zm0-4H3V2h10v8z\"],\n \"widget-header\": [\"M14 0H2c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H3V6h10v8zm0-9H3V2h10v3z\"],\n \"wind\": [\"M10 4a2 2 0 112 2H4a1 1 0 000 2h8a4 4 0 10-4-4 1 1 0 002 0zM1 9a1 1 0 100 2h7.5a1.5 1.5 0 010 3c-.749 0-1.386-.538-1.52-1.199a1 1 0 10-1.96.398C5.35 14.82 6.83 16 8.5 16a3.5 3.5 0 100-7H1z\"],\n \"wrench\": [\"M15.83 3.7l-3.06 3.05-2.84-.7-.7-2.83L12.29.17a5.004 5.004 0 00-4.83 1.29 4.967 4.967 0 00-1.12 5.36L.58 12.58c-.36.36-.58.86-.58 1.41 0 1.1.9 2 2 2 .55 0 1.05-.22 1.41-.59l5.77-5.77c1.79.69 3.91.33 5.35-1.12 1.32-1.3 1.74-3.15 1.3-4.81z\"],\n \"zoom-in\": [\"M7.99 5.99v-2c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1h-2zm7.56 7.44l-2.67-2.68a6.94 6.94 0 001.11-3.76c0-3.87-3.13-7-7-7s-7 3.13-7 7 3.13 7 7 7c1.39 0 2.68-.42 3.76-1.11l2.68 2.67a1.498 1.498 0 102.12-2.12zm-8.56-1.44c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\"],\n \"zoom-out\": [\"M3.99 5.99c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1h-6zm11.56 7.44l-2.67-2.68a6.94 6.94 0 001.11-3.76c0-3.87-3.13-7-7-7s-7 3.13-7 7 3.13 7 7 7c1.39 0 2.68-.42 3.76-1.11l2.68 2.67a1.498 1.498 0 102.12-2.12zm-8.56-1.44c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\"],\n \"zoom-to-fit\": [\"M11 10a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42L12.59 8 11.3 9.29c-.19.18-.3.43-.3.71zM1 5c.55 0 1-.45 1-1V2h2c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v3c0 .55.45 1 1 1zm4 1a1.003 1.003 0 00-1.71-.71l-2 2C1.11 7.47 1 7.72 1 8c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L3.41 8 4.7 6.71c.19-.18.3-.43.3-.71zm1-1c.28 0 .53-.11.71-.29L8 3.41 9.29 4.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-2-2C8.53 1.11 8.28 1 8 1s-.53.11-.71.29l-2 2A1.003 1.003 0 006 5zm9 6c-.55 0-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm0-11h-3c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zM4 14H2v-2c0-.55-.45-1-1-1s-1 .45-1 1v3c0 .55.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1zm6-3c-.28 0-.53.11-.71.29L8 12.59 6.71 11.3A.965.965 0 006 11a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 0010 11z\"]\n};\nexport var IconSvgPaths20 = {\n \"add\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm5-9h-4V5c0-.55-.45-1-1-1s-1 .45-1 1v4H5c-.55 0-1 .45-1 1s.45 1 1 1h4v4c0 .55.45 1 1 1s1-.45 1-1v-4h4c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"add-clip\": [\"M15 0a1 1 0 011 1v3h3a1 1 0 110 2h-3v3a1 1 0 11-2 0V6h-3a1 1 0 110-2h3V1a1 1 0 011-1zM1 4a1 1 0 00-1 1v4a1 1 0 002 0V6h3a1 1 0 000-2H1zM0 19a1 1 0 001 1h4a1 1 0 100-2H2v-3a1 1 0 10-2 0v4zm15 1h-4a1 1 0 110-2h3v-3a1 1 0 112 0v4a1 1 0 01-1 1zm-7-5a3 3 0 100-6 3 3 0 000 6z\"],\n \"add-column-left\": [\"M4 11h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1H8V7c0-.55-.45-1-1-1s-1 .45-1 1v2H4c-.55 0-1 .45-1 1s.45 1 1 1zM19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-7 18H2V2h10v16zm6 0h-5V2h5v16z\"],\n \"add-column-right\": [\"M10 11h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1h-2V7c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1zm9-11H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM7 18H2V2h5v16zm11 0H8V2h10v16z\"],\n \"add-location\": [\"M10 0a1 1 0 010 2 8 8 0 108 8 1 1 0 012 0c0 5.523-4.477 10-10 10S0 15.523 0 10 4.477 0 10 0zm0 6a4 4 0 110 8 4 4 0 010-8zm6-6c.6 0 1 .4 1 1v2h2c.6 0 1 .4 1 1s-.4 1-1 1h-2v2c0 .6-.4 1-1 1s-1-.4-1-1V5h-2c-.6 0-1-.4-1-1 0-.5.4-1 1-1h2V1c0-.6.4-1 1-1z\"],\n \"add-row-bottom\": [\"M19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2V8h16v10zm0-11H2V2h16v5zM7 14h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1h-2v-2c0-.55-.45-1-1-1s-1 .45-1 1v2H7c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"add-row-top\": [\"M7 8h2v2c0 .55.45 1 1 1s1-.45 1-1V8h2c.55 0 1-.45 1-1s-.45-1-1-1h-2V4c0-.55-.45-1-1-1s-1 .45-1 1v2H7c-.55 0-1 .45-1 1s.45 1 1 1zm12-8H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2v-5h16v5zm0-6H2V2h16v10z\"],\n \"add-to-artifact\": [\"M13 12H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zm0 4H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zM1 6h9c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm12 2H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zm6-4h-2V2c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V6h2c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"add-to-folder\": [\"M.01 10V6H20v10c0 .55-.45 1-1 1H9.995v-3.99C9.965 11.332 8.635 10 6.987 10H.01zM19 3c.55 0 1 .45.99 1v1H0V2c0-.55.45-1 1-1h5.997c.28 0 .53.11.71.29L9.414 3H19zM6.987 12c.55 0 .999.45 1.009 1.01v5c0 .55-.45 1-1 1s-.999-.45-.999-1v-2.59l-4.288 4.29a1.003 1.003 0 01-1.42-1.42L4.579 14H1.989c-.55 0-1-.45-1-1s.45-1 1-1h4.998z\"],\n \"airplane\": [\"M20 2c0-1.1-.9-2-2-2-.55 0-1.05.22-1.41.59l-4.84 4.84L2 1 1 3l7.53 5.64L4.17 13H1l-1 1 4 2 2 4 1-1v-3.17l4.36-4.36L17 19l2-1-4.43-9.74 4.84-4.84c.37-.37.59-.87.59-1.42z\"],\n \"align-center\": [\"M5 5c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1H5zM1 3h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm12 12c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1h6zm4 2H3c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm2-8H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"align-justify\": [\"M1 3h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm18 14H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0-12H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0 4H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0 4H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"align-left\": [\"M1 7h10c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm0-4h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 14H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm4-8H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM1 15h6c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"align-right\": [\"M19 17H5c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM1 3h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm18 10h-6c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H9c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"alignment-bottom\": [\"M12 16h4c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1zm7 2H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM4 16h4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1z\"],\n \"alignment-horizontal-center\": [\"M19 9h-2V7c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v2H9V3c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v6H1c-.55 0-1 .45-1 1s.45 1 1 1h2v6c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-6h2v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"alignment-left\": [\"M1 0C.45 0 0 .45 0 1v18c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm11 11H5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm7-8H5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"alignment-right\": [\"M19 0c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm-4 11H8c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm0-8H1c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"alignment-top\": [\"M8 4H4c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm11-4H1C.45 0 0 .45 0 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm-3 4h-4c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1z\"],\n \"alignment-vertical-center\": [\"M17 3h-6V1c0-.55-.45-1-1-1S9 .45 9 1v2H3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h6v2H7c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1h-2V9h6c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"annotation\": [\"M9.41 13.41l7.65-7.65-2.83-2.83-7.65 7.65 2.83 2.83zm10-10c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2-.55 0-1.05.22-1.41.59l-1.65 1.65 2.83 2.83 1.64-1.66zM18 18H2V2h8.93l2-2H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V7.07l-2 2V18zM4 16l4.41-1.59-2.81-2.79L4 16z\"],\n \"antenna\": [\"M2.01 10.758a8.025 8.025 0 001.01 3.204l.02.035c.034.058.061.117.084.178.163.44.054.951-.33 1.239-.435.328-1.059.242-1.342-.224a9.797 9.797 0 01-.221-.383 10 10 0 1117.48.106c-.269.474-.89.58-1.335.267-.392-.275-.518-.783-.37-1.228a1.19 1.19 0 01.078-.18l.019-.036A8.026 8.026 0 102.01 10.758zm4.272.772a1.464 1.464 0 01.091.32c.07.425-.052.87-.402 1.128-.44.325-1.068.235-1.316-.252a6 6 0 1110.734-.09c-.24.492-.867.593-1.312.275-.354-.253-.483-.695-.42-1.122a1.462 1.462 0 01.085-.321 4.021 4.021 0 00-5.87-4.878 4.02 4.02 0 00-1.59 4.94zm4.712 2.583A.999.999 0 0011 14v-4a1 1 0 10-2 0v4c0 .038.002.076.006.113l-3.753 4.223a1 1 0 001.494 1.328L10 16.005l3.252 3.66a1 1 0 101.495-1.33l-3.753-4.222z\"],\n \"app-header\": [\"M19 0a1 1 0 011 1v18a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1h18zM8 6a1 1 0 00-1.993-.117L6 6v8a1 1 0 001.993.117L8 14v-3h4v3a1 1 0 001.993.117L14 14V6a1 1 0 00-1.993-.117L12 6v3H8V6z\"],\n \"application\": [\"M3.5 9h9c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-9c-.28 0-.5.22-.5.5s.22.5.5.5zm0 2h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-5c-.28 0-.5.22-.5.5s.22.5.5.5zM19 1H1c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm-1 16H2V6h16v11zM3.5 13h7c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-7c-.28 0-.5.22-.5.5s.22.5.5.5z\"],\n \"applications\": [\"M15 5H1c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-1 13H2V8h12v10zM3.5 10h7c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-7c-.28 0-.5.22-.5.5s.22.5.5.5zm0 2h3c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-3c-.28 0-.5.22-.5.5s.22.5.5.5zm0 2h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-5c-.28 0-.5.22-.5.5s.22.5.5.5zM19 0H5c-.55 0-1 .45-1 1v3h2V3h12v10h-1v2h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"archive\": [\"M16.434 0a1 1 0 01.857.486L20 5v14a1 1 0 01-1 1H1a1 1 0 01-1-1V5L2.709.486A1 1 0 013.566 0h12.868zM10 8c-.55 0-1 .45-1 1v4.58l-1.29-1.29-.081-.073A.996.996 0 007 11.99a1.003 1.003 0 00-.71 1.71l3 3 .096.084c.168.13.38.206.614.206.28 0 .53-.11.71-.29l3-3 .084-.096a1.003 1.003 0 00-1.504-1.324L11 13.58V9l-.007-.116A1.004 1.004 0 0010 8zm6-6H4L2 5.002h16L16 2z\"],\n \"area-of-interest\": [\"M5 4.664C5 2.09 7.241 0 10 0s4.99 2.091 5 4.664C15 7.245 10 14 10 14S5 7.245 5 4.664zM8 5a2 2 0 104.001-.001A2 2 0 008 5zM.504 12.132l4.302-2.458c.322.576.662 1.145.995 1.681l.025.04-3.294 1.881L6.468 18h7.064l3.936-4.724-3.293-1.882.024-.039c.333-.536.673-1.105.995-1.681l4.302 2.458a1 1 0 01.272 1.508l-5 6A1 1 0 0114 20H6a1 1 0 01-.768-.36l-5-6a1 1 0 01.272-1.508z\"],\n \"array\": [\"M19 0a1 1 0 01.993.883L20 1v18a1 1 0 01-.883.993L19 20h-4a1 1 0 01-.117-1.993L15 18h3V2h-3a1 1 0 01-.993-.883L14 1a1 1 0 01.883-.993L15 0h4zM5 0a1 1 0 01.117 1.993L5 2H2v16h3a1 1 0 01.993.883L6 19a1 1 0 01-.883.993L5 20H1a1 1 0 01-.993-.883L0 19V1A1 1 0 01.883.007L1 0h4zm5 9a1 1 0 110 2 1 1 0 010-2zM6 9a1 1 0 110 2 1 1 0 010-2zm8 0a1 1 0 110 2 1 1 0 010-2z\"],\n \"array-boolean\": [\"M19 0a1 1 0 01.993.883L20 1v18a1 1 0 01-.883.993L19 20h-4a1 1 0 01-.117-1.993L15 18h3V2h-3a1 1 0 01-.993-.883L14 1a1 1 0 01.883-.993L15 0h4zM5 0a1 1 0 01.117 1.993L5 2H2v16h3a1 1 0 01.993.883L6 19a1 1 0 01-.883.993L5 20H1a1 1 0 01-.993-.883L0 19V1A1 1 0 01.883.007L1 0h4zm10 7a1 1 0 01.993.883L16 8v4a1 1 0 01-.883.993L15 13H5a1 1 0 01-.993-.883L4 12V8a1 1 0 01.883-.993L5 7h10zm0 1h-5v4h5V8z\"],\n \"array-date\": [\"M19 0a1 1 0 01.993.883L20 1v18a1 1 0 01-.883.993L19 20h-4a1 1 0 01-.117-1.993L15 18h3V2h-3a1 1 0 01-.993-.883L14 1a1 1 0 01.883-.993L15 0h4zM5 0a1 1 0 01.117 1.993L5 2H2v16h3a1 1 0 01.993.883L6 19a1 1 0 01-.883.993L5 20H1a1 1 0 01-.993-.883L0 19V1A1 1 0 01.883.007L1 0h4zm2.5 5a.5.5 0 01.5.5V6h4v-.5a.5.5 0 01.5-.5h1a.5.5 0 01.5.5V6h1a1 1 0 01.993.883L16 7v7a1 1 0 01-.883.993L15 15H5a1 1 0 01-.993-.883L4 14V7a1 1 0 01.883-.993L5 6h1v-.5a.5.5 0 01.5-.5h1zM15 9H5v5h10V9z\"],\n \"array-numeric\": [\"M19 0a1 1 0 01.993.883L20 1v18a1 1 0 01-.883.993L19 20h-4a1 1 0 01-.117-1.993L15 18h3V2h-3a1 1 0 01-.993-.883L14 1a1 1 0 01.883-.993L15 0h4zM5 0a1 1 0 01.117 1.993L5 2H2v16h3a1 1 0 01.993.883L6 19a1 1 0 01-.883.993L5 20H1a1 1 0 01-.993-.883L0 19V1A1 1 0 01.883.007L1 0h4zm8.995 6.09c.32 0 .603.047.85.14a1.679 1.679 0 011.015.985c.09.23.135.482.135.755 0 .287-.063.552-.19.795a1.642 1.642 0 01-.57.615v.02l.101.05c.068.039.138.09.209.155.107.097.203.215.29.355a2.09 2.09 0 01.3 1.09c0 .313-.053.597-.16.85a1.898 1.898 0 01-1.12 1.065 2.42 2.42 0 01-.85.145c-.533 0-.99-.127-1.37-.38a1.702 1.702 0 01-.73-1.08c-.013-.067.013-.11.08-.13l.87-.2.041-.003c.038.004.064.028.079.073.073.2.193.37.36.51.167.14.39.21.67.21.32 0 .567-.095.74-.285.173-.19.26-.432.26-.725 0-.347-.1-.618-.3-.815-.2-.197-.47-.295-.81-.295h-.29l-.044-.006c-.037-.013-.056-.044-.056-.094V9.1l.006-.044c.013-.037.044-.056.094-.056h.27l.145-.008a.925.925 0 00.575-.262c.18-.18.27-.42.27-.72 0-.273-.08-.495-.24-.665-.16-.17-.383-.255-.67-.255-.253 0-.453.063-.6.19-.147.127-.25.297-.31.51-.02.06-.06.083-.12.07l-.85-.2-.042-.015c-.035-.02-.048-.055-.038-.105a1.684 1.684 0 01.645-1.035c.17-.13.37-.232.6-.305.23-.073.482-.11.755-.11zm-7.99.11l.044.006c.037.013.056.044.056.094v6.6l-.006.044c-.013.037-.044.056-.094.056h-.92l-.044-.006c-.037-.013-.056-.044-.056-.094V7.54h-.02l-1.04.73-.04.02c-.047.016-.07-.01-.07-.08V7.19l.008-.051a.196.196 0 01.062-.089l1.09-.79.051-.033a.295.295 0 01.129-.027h.85zm3.34-.11c.32 0 .603.05.85.15.247.1.455.235.625.405.17.17.3.37.39.6.09.23.135.478.135.745 0 .307-.057.588-.17.845a3.16 3.16 0 01-.47.745l-1.98 2.4V12h2.52l.044.006c.037.013.056.044.056.094v.8l-.006.044c-.013.037-.044.056-.094.056h-3.82l-.044-.006c-.037-.013-.056-.044-.056-.094v-.75l.006-.05a.165.165 0 01.044-.08l2.4-2.99.124-.167c.077-.11.143-.222.196-.333.08-.167.12-.347.12-.54a.92.92 0 00-.235-.64c-.157-.173-.378-.26-.665-.26-.273 0-.487.077-.64.23-.153.153-.247.36-.28.62-.013.067-.05.093-.11.08l-.88-.18-.043-.015c-.035-.02-.047-.055-.037-.105a1.78 1.78 0 01.56-1.115c.167-.157.372-.282.615-.375a2.35 2.35 0 01.845-.14z\"],\n \"array-string\": [\"M19 0a1 1 0 01.993.883L20 1v18a1 1 0 01-.883.993L19 20h-4a1 1 0 01-.117-1.993L15 18h3V2h-3a1 1 0 01-.993-.883L14 1a1 1 0 01.883-.993L15 0h4zM5 0a1 1 0 01.117 1.993L5 2H2v16h3a1 1 0 01.993.883L6 19a1 1 0 01-.883.993L5 20H1a1 1 0 01-.993-.883L0 19V1A1 1 0 01.883.007L1 0h4zm2.012 6c.643 0 1.203.266 1.68.797.477.53.715 1.246.715 2.145a4.472 4.472 0 01-.965 2.814c-.644.83-1.66 1.5-3.047 2.011v-.581l.26-.104a3.87 3.87 0 001.624-1.285c.457-.632.686-1.29.686-1.971 0-.148-.023-.256-.07-.326-.023-.047-.054-.07-.093-.07-.038 0-.1.031-.186.093-.248.179-.558.268-.93.268-.45 0-.843-.18-1.18-.541A1.817 1.817 0 015 7.965c0-.527.194-.986.581-1.378A1.934 1.934 0 017.011 6zm5.593 0c.643 0 1.203.266 1.68.797.477.53.715 1.246.715 2.145a4.472 4.472 0 01-.965 2.814c-.644.83-1.659 1.5-3.047 2.011v-.581l.26-.104a3.87 3.87 0 001.624-1.285c.457-.632.686-1.29.686-1.971 0-.148-.023-.256-.07-.326-.023-.047-.054-.07-.093-.07-.038 0-.1.031-.186.093-.248.179-.558.268-.93.268-.45 0-.843-.18-1.18-.541a1.817 1.817 0 01-.506-1.285c0-.527.194-.986.581-1.378A1.934 1.934 0 0112.604 6z\"],\n \"array-timestamp\": [\"M19 0a1 1 0 01.993.883L20 1v18a1 1 0 01-.883.993L19 20h-4a1 1 0 01-.117-1.993L15 18h3V2h-3a1 1 0 01-.993-.883L14 1a1 1 0 01.883-.993L15 0h4zM5 0a1 1 0 01.117 1.993L5 2H2v16h3a1 1 0 01.993.883L6 19a1 1 0 01-.883.993L5 20H1a1 1 0 01-.993-.883L0 19V1A1 1 0 01.883.007L1 0h4zm5 4a6 6 0 110 12 6 6 0 010-12zm0 1a5 5 0 100 10 5 5 0 000-10zm2.854 2.146a.5.5 0 01.057.638l-.057.07-2.5 2.5a.5.5 0 01-.638.057l-.07-.057-1.5-1.5a.5.5 0 01.638-.765l.07.057L10 9.293l2.146-2.147a.5.5 0 01.708 0z\"],\n \"arrow-bottom-left\": [\"M18 3a1.003 1.003 0 00-1.71-.71L4 14.59V7c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1H5.41l12.3-12.29c.18-.18.29-.43.29-.71z\"],\n \"arrow-bottom-right\": [\"M17 6c-.55 0-1 .45-1 1v7.59L3.71 2.29a1.003 1.003 0 00-1.42 1.42L14.59 16H7c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1z\"],\n \"arrow-down\": [\"M16 11c-.3 0-.5.1-.7.3L11 15.6V2c0-.5-.4-1-1-1s-1 .5-1 1v13.6l-4.3-4.3c-.2-.2-.4-.3-.7-.3-.5 0-1 .4-1 1 0 .3.1.5.3.7l6 6c.2.2.4.3.7.3s.5-.1.7-.3l6-6c.2-.2.3-.4.3-.7 0-.6-.5-1-1-1z\"],\n \"arrow-left\": [\"M18 9H4.41L8.7 4.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-6 6c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l6 6a1.003 1.003 0 001.42-1.42L4.41 11H18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"arrow-right\": [\"M18.71 9.29l-6-6a1.003 1.003 0 00-1.42 1.42L15.59 9H2c-.55 0-1 .45-1 1s.45 1 1 1h13.59l-4.29 4.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l6-6c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"arrow-top-left\": [\"M17.71 16.29L5.41 4H13c.55 0 1-.45 1-1s-.45-1-1-1H3c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1s1-.45 1-1V5.41L16.29 17.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z\"],\n \"arrow-top-right\": [\"M17 2H7c-.55 0-1 .45-1 1s.45 1 1 1h7.59L2.29 16.29a1.003 1.003 0 001.42 1.42L16 5.41V13c0 .55.45 1 1 1s1-.45 1-1V3c0-.55-.45-1-1-1z\"],\n \"arrow-up\": [\"M16.7 7.3l-6-6c-.2-.2-.4-.3-.7-.3s-.5.1-.7.3l-6 6c-.2.2-.3.4-.3.7 0 .6.5 1 1 1 .3 0 .5-.1.7-.3L9 4.4V18c0 .5.4 1 1 1s1-.5 1-1V4.4l4.3 4.3c.2.2.4.3.7.3.5 0 1-.4 1-1 0-.3-.1-.5-.3-.7z\"],\n \"arrows-horizontal\": [\"M19.7 9.3l-5-5c-.2-.2-.4-.3-.7-.3-.6 0-1 .4-1 1 0 .3.1.5.3.7L16.6 9H3.4l3.3-3.3c.2-.2.3-.4.3-.7 0-.6-.4-1-1-1-.3 0-.5.1-.7.3l-5 5c-.2.2-.3.4-.3.7s.1.5.3.7l5 5c.2.2.4.3.7.3.6 0 1-.4 1-1 0-.3-.1-.5-.3-.7L3.4 11h13.2l-3.3 3.3c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3l5-5c.2-.2.3-.4.3-.7s-.1-.5-.3-.7z\"],\n \"arrows-vertical\": [\"M15 13c-.3 0-.5.1-.7.3L11 16.6V3.4l3.3 3.3c.2.2.4.3.7.3.6 0 1-.4 1-1 0-.3-.1-.5-.3-.7l-5-5c-.2-.2-.4-.3-.7-.3s-.5.1-.7.3l-5 5c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3L9 3.4v13.2l-3.3-3.3c-.2-.2-.4-.3-.7-.3-.6 0-1 .4-1 1 0 .3.1.5.3.7l5 5c.2.2.4.3.7.3s.5-.1.7-.3l5-5c.2-.2.3-.4.3-.7 0-.5-.4-1-1-1z\"],\n \"asterisk\": [\"M18.52 14.17l.01-.02L11.89 10l6.64-4.15-.01-.02A.97.97 0 0019 5c0-.55-.45-1-1-1-.2 0-.37.07-.52.17l-.01-.02L11 8.2V1c0-.55-.45-1-1-1S9 .45 9 1v7.2L2.53 4.15l-.01.02A.922.922 0 002 4c-.55 0-1 .45-1 1 0 .36.2.66.48.83l-.01.02L8.11 10l-6.64 4.15.01.02A.97.97 0 001 15c0 .55.45 1 1 1 .2 0 .37-.07.52-.17l.01.02L9 11.8V19c0 .55.45 1 1 1s1-.45 1-1v-7.2l6.47 4.04.01-.02c.15.11.32.18.52.18.55 0 1-.45 1-1 0-.36-.2-.66-.48-.83z\"],\n \"automatic-updates\": [\"M10 18c-4.42 0-8-3.58-8-8 0-2.52 1.18-4.76 3-6.22V5c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1h2.06C1.61 3.82 0 6.71 0 10c0 5.52 4.48 10 10 10 .55 0 1-.45 1-1s-.45-1-1-1zm0-16c1.64 0 3.15.49 4.42 1.34l1.43-1.43A9.869 9.869 0 0010 0c-.55 0-1 .45-1 1s.45 1 1 1zm10 8c0-1.13-.2-2.21-.54-3.22L17.84 8.4A7.962 7.962 0 0115 16.22V15c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1h-2.06c2.45-1.82 4.06-4.71 4.06-8zm0-7a1.003 1.003 0 00-1.71-.71L12 8.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l7-7c.18-.18.29-.43.29-.71z\"],\n \"backlink\": [\"M18.387 19.79l-.094-.083L14 15.415V18a1 1 0 01-2 0l.003-5.075.017-.126.03-.111.044-.111.052-.098.067-.096.08-.09a1.01 1.01 0 01.112-.097l.11-.071.114-.054.105-.035.15-.03L13 12h5a1 1 0 110 2h-2.585l4.292 4.293a1 1 0 01-1.32 1.497zM7.036 9.136l-4.45 4.45-.117.127a2 2 0 002.818 2.818l.127-.117 4.45-4.449a4 4 0 01-.885 3.704l-.15.16-2 2A4 4 0 011.02 12.33l.15-.16 2-2a3.998 3.998 0 013.865-1.035zm6.671-3.843a1 1 0 01.083 1.32l-.083.094-7 7a1 1 0 01-1.497-1.32l.083-.094 7-7a1 1 0 011.414 0zm4.121-4.121a4 4 0 01.151 5.497l-.15.16-2 2a3.998 3.998 0 01-3.864 1.036l4.45-4.45.116-.128a2 2 0 00-2.818-2.818l-.127.117-4.45 4.45a4 4 0 01.885-3.705l.15-.16 2-2a4 4 0 015.657 0z\"],\n \"badge\": [\"M16.94 5.73c-.19-1.41.62-2.52 1.38-3.59L17.03.65C14.89 1.76 11.88 1.48 10 0 8.12 1.48 5.11 1.76 2.97.65L1.68 2.14c.76 1.07 1.57 2.18 1.38 3.59C2.68 8.59 0 10.94 1.4 14.08c.56 1.43 1.81 2.37 3.4 2.75 1.95.46 4.4.91 5.2 3.17.8-2.26 3.25-2.71 5.2-3.17 1.6-.38 2.84-1.32 3.4-2.75 1.4-3.14-1.28-5.49-1.66-8.35z\"],\n \"ban-circle\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm5 11H5c-.55 0-1-.45-1-1s.45-1 1-1h10c.55 0 1 .45 1 1s-.45 1-1 1z\"],\n \"bank-account\": [\"M19.2 8.02l-.78-.18C18.03 6.4 17.2 5.08 16.08 4l.5-2.28c.11-.42-.22-.78-.61-.72-1.06.12-2 .54-2.67 1.26-1.06-.42-2.34-.66-3.56-.66-3.12 0-5.79 1.5-7.4 3.72-.23-.05-.45-.11-.67-.11C.72 5.21 0 5.98 0 7c0 .72.39 1.32.95 1.62-.06.42-.12.9-.12 1.38 0 2.16.89 4.08 2.28 5.58l-.33 2.04c-.11.72.45 1.38 1.12 1.38h.72c.56 0 1-.42 1.11-1.02l.06-.48c1.17.54 2.5.9 3.95.9 1.39 0 2.78-.3 3.95-.9l.06.48c.11.6.56 1.02 1.11 1.02h.72c.67 0 1.22-.66 1.11-1.38l-.33-1.98c.78-.78 1.34-1.74 1.73-2.76l1-.24c.5-.12.89-.6.89-1.2V9.22c.11-.6-.28-1.08-.78-1.2zM15 10c-.6 0-1-.7-1-1.5S14.4 7 15 7s1 .7 1 1.5-.4 1.5-1 1.5zM7.55 5.83a.99.99 0 01-1.38-.28.99.99 0 01.28-1.38c2.34-1.56 4.77-1.56 7.11 0 .46.31.58.93.28 1.39-.31.46-.93.58-1.39.28-1.67-1.12-3.23-1.12-4.9-.01z\"],\n \"barcode\": [\"M6 16.98h2v-14H6v14zm3 0h1v-14H9v14zm-6 0h2v-14H3v14zm-3 0h2v-14H0v14zm16 0h2v-14h-2v14zm-4 0h1v-14h-1v14zm7-14v14h1v-14h-1zm-5 14h1v-14h-1v14z\"],\n \"blank\": [],\n \"blocked-person\": [\"M11.55 15.92c-1.48-.65-1.28-1.05-1.33-1.59-.01-.07-.01-.15-.01-.23.51-.45.92-1.07 1.19-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.34-.07.54-.44.61-.78.06-.11.14-.35.17-.62C10.33 9.42 8.92 7.38 8.92 5c0-.3.05-.58.09-.87-.33-.08-.67-.13-.99-.13-.79 0-1.68.25-2.31.73-.61.47-1.07 1.13-1.29 1.86-.05.16-.09.33-.11.5-.12.6-.17 1.51-.17 2.14v.08c-.24.09-.45.32-.49.83-.04.39.12.73.2.87.08.35.28.72.63.78.04.17.09.33.15.48 0 .01.01.02.01.03l.01.01c.27.72.7 1.35 1.22 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.38 1.59C3 16.56.77 17.26.32 18.31-.15 19.38.04 20 .04 20h15.95s.18-.62-.27-1.67c-.46-1.06-2.69-1.75-4.17-2.41zM14.97 0c-2.78 0-5.03 2.24-5.03 5s2.25 5 5.03 5S20 7.76 20 5s-2.25-5-5.03-5zm-3.03 5c0-1.66 1.35-3 3.02-3 .47 0 .9.11 1.29.3l-4.01 3.99c-.18-.4-.3-.83-.3-1.29zm3.03 3c-.47 0-.9-.11-1.29-.3l4.01-3.99c.19.39.3.82.3 1.29 0 1.66-1.36 3-3.02 3z\"],\n \"bold\": [\"M14.3 9c.4-.8.7-1.6.7-2.5C15 4 13 2 10.5 2H5c-.6 0-1 .4-1 1v13c0 .6.4 1 1 1h6.5c2.5 0 4.5-2 4.5-4.5 0-1.4-.7-2.7-1.7-3.5zM7 5h3.5c.8 0 1.5.7 1.5 1.5S11.3 8 10.5 8H7V5zm4.5 9H7v-3h4.5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5z\"],\n \"book\": [\"M3 1v18c0 .55.45 1 1 1h2V0H4c-.55 0-1 .45-1 1zm14-1h-2v8l-2-2-2 2V0H7v20h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"bookmark\": [\"M6 0c-.55 0-1 .45-1 1v18c0 .55.32.68.71.29L9.3 15.7a.996.996 0 011.41 0l3.59 3.59c.38.39.7.26.7-.29v-8-4.5V1c0-.55-.45-1-1-1H6z\"],\n \"box\": [\"M19.89 6.56l-2.99-6h-.01C16.72.23 16.39 0 16 0H4c-.39 0-.72.23-.89.56H3.1l-3 6h.01C.05 6.69 0 6.84 0 7v12c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V7c0-.16-.05-.31-.11-.44zM11 2h4.38l2 4H11V2zM4.62 2H9v4H2.62l2-4zM18 18H2V8h16v10zM8 12h4c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"briefcase\": [\"M19 5h-4V2c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v3H1c-.55 0-1 .45-1 1v5h4v-1h2v1h8v-1h2v1h4V6c0-.55-.45-1-1-1zm-6 0H7V3h6v2zm3 8h-2v-1H6v1H4v-1H0v6c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-6h-4v1z\"],\n \"bring-data\": [\"M18 18a1 1 0 010 2H2a1 1 0 010-2h16zM9.995 3.005c.55 0 1 .45 1 .999v9.584l1.29-1.288a1.002 1.002 0 011.42 1.419l-3 2.996a1.015 1.015 0 01-1.42 0l-3-2.997a1.002 1.002 0 011.42-1.419l1.29 1.29V4.013c0-.55.45-1.009 1-1.009zM16 0a1 1 0 110 2 1 1 0 010-2zm-3 0a1 1 0 110 2 1 1 0 010-2zm-3 0a1 1 0 110 2 1 1 0 010-2zM7 0a1 1 0 110 2 1 1 0 010-2zM4 0a1 1 0 110 2 1 1 0 010-2z\"],\n \"buggy\": [\"M15.836 1.014a1 1 0 011.058.539l2.482 4.962.02-.004a.5.5 0 01.604.49v4.5a.5.5 0 01-.5.5h-3.93a1.5 1.5 0 00-1.248.667l-1.406 2.11A.5.5 0 0112.5 15H8a.5.5 0 01-.354-.146l-2.414-2.415A1.5 1.5 0 004.172 12H.5a.5.5 0 01-.5-.5v-3A.5.5 0 01.5 8h.823L3.072 3.63a1 1 0 01.764-.615l12-2zm.289 3.472l1.231 2.462-2.758.591 1.527-3.053zM14.5 3.264l-1.56 3.12-.252-.638-.825-2.043 2.637-.44zm-9.78 1.63l5.122-.854.988 2.445.899 2.27L10.232 11H7.707L4.854 8.147A.5.5 0 004.5 8H3.477l1.242-3.106zM3 19a3 3 0 100-6 3 3 0 000 6zm14 0a3 3 0 100-6 3 3 0 000 6z\"],\n \"build\": [\"M19.43 16.67L9.31 7.81l1.47-1.56c.41-.44-.15-.8.15-1.6 1.08-2.76 4.19-2.99 4.19-2.99s.45-.47.87-.92C11.98-1 9.26.7 8.04 1.8L3.83 6.25l-.86.92c-.48.51-.48 1.33 0 1.84l-.87.92c-.48-.51-1.26-.51-1.74 0s-.48 1.33 0 1.84l1.74 1.84c.48.51 1.26.51 1.74 0s.48-1.33 0-1.84l.87-.92c.48.51 1.26.51 1.74 0l1.41-1.49 8.81 10.07c.76.76 2 .76 2.76 0 .76-.76.76-2 0-2.76z\"],\n \"calculator\": [\"M16 0H4c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM7 18H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5V8h2v2zm4 8H9v-2h2v2zm0-4H9v-2h2v2zm0-4H9V8h2v2zm4 8h-2v-6h2v6zm0-8h-2V8h2v2zm0-4H5V2h10v4z\"],\n \"calendar\": [\"M15 5c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1s-1 .5-1 1v2c0 .6.4 1 1 1zM5 5c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1s-1 .5-1 1v2c0 .6.4 1 1 1zm13-2h-1v1c0 1.1-.9 2-2 2s-2-.9-2-2V3H7v1c0 1.1-.9 2-2 2s-2-.9-2-2V3H2c-.5 0-1 .5-1 1v14c0 .5.5 1 1 1h16c.5 0 1-.5 1-1V4c0-.5-.5-1-1-1zM7 17H3v-4h4v4zm0-5H3V8h4v4zm5 5H8v-4h4v4zm0-5H8V8h4v4zm5 5h-4v-4h4v4zm0-5h-4V8h4v4z\"],\n \"camera\": [\"M10 8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm9-4h-3.59L13.7 2.29A.956.956 0 0013 2H7c-.28 0-.53.11-.71.29L4.59 4H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h4.11c1.26 1.24 2.99 2 4.89 2s3.63-.76 4.89-2H19c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM4 8H2V6h2v2zm6 8c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\"],\n \"caret-down\": [\"M16 7c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1 0 .24.1.46.24.63l-.01.01 5 6 .01-.01c.19.22.45.37.76.37s.57-.15.76-.37l.01.01 5-6-.01-.01c.14-.17.24-.39.24-.63z\"],\n \"caret-left\": [\"M13 4c-.24 0-.46.1-.63.24l-.01-.01-6 5 .01.01c-.22.19-.37.45-.37.76s.15.57.37.76l-.01.01 6 5 .01-.01c.17.14.39.24.63.24.55 0 1-.45 1-1V5c0-.55-.45-1-1-1z\"],\n \"caret-right\": [\"M14 10c0-.31-.15-.57-.37-.76l.01-.01-6-5-.01.01C7.46 4.1 7.24 4 7 4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1 .24 0 .46-.1.63-.24l.01.01 6-5-.01-.01c.22-.19.37-.45.37-.76z\"],\n \"caret-up\": [\"M15.76 12.37l.01-.01-5-6-.01.01C10.57 6.15 10.31 6 10 6s-.57.15-.76.37l-.01-.01-5 6 .01.01c-.14.17-.24.39-.24.63 0 .55.45 1 1 1h10c.55 0 1-.45 1-1 0-.24-.1-.46-.24-.63z\"],\n \"cargo-ship\": [\"M12.5 1.25h4a1 1 0 011 1V5h-5V1.25zM2.75 5a.25.25 0 00-.25.25v6H.883a.5.5 0 00-.429.757l1.672 2.787c.17.284.384.533.63.741-.458.057-.959.09-1.506.09a.625.625 0 100 1.25c2.583 0 4.268-.68 5.202-1.146.687.466 1.88 1.146 3.548 1.146 1.65 0 2.837-.666 3.528-1.132l.005.003c.244.131.6.3 1.07.468.938.335 2.321.661 4.147.661a.625.625 0 100-1.25c-.319 0-.622-.01-.91-.03.398-.318.717-.738.914-1.23l.972-2.43a.5.5 0 00-.464-.685H5v-6A.25.25 0 004.75 5h-2zm3.455 11.95a.625.625 0 01.658.041c.569.407 1.597 1.134 3.137 1.134s2.568-.727 3.137-1.134a.625.625 0 01.724-.001l.007.005.045.029c.044.027.114.069.21.12.194.104.493.247.9.392.812.29 2.053.589 3.727.589a.625.625 0 110 1.25c-1.826 0-3.21-.326-4.148-.661a7.894 7.894 0 01-1.069-.468l-.005-.003c-.691.466-1.878 1.132-3.528 1.132-1.667 0-2.861-.68-3.548-1.146-.934.467-2.619 1.146-5.202 1.146a.625.625 0 110-1.25c2.66 0 4.23-.787 4.955-1.176zM17.5 6.25h-5V10h4a1 1 0 001-1V6.25zm-11.25-4a1 1 0 011-1h4V5h-5V2.25zm5 4h-5V9a1 1 0 001 1h4V6.25z\"],\n \"cell-tower\": [\"M11.5 8.32c.31-.35.51-.81.51-1.32 0-1.1-.9-2-2-2s-2 .9-2 2c0 .51.2.97.51 1.32L5.06 18.69c-.17.52.11 1.09.63 1.26s1.09-.11 1.26-.63L8.39 15h3.23l1.44 4.32c.17.52.74.81 1.26.63s.81-.74.63-1.26L11.5 8.32zM10.95 13H9.06l.95-2.84.94 2.84zM5.31 10.73a.996.996 0 101.37-1.45c-1.4-1.33-1.28-3.35-.01-4.54.4-.38.43-1.01.05-1.41-.36-.41-1-.43-1.4-.06-2.09 1.95-2.28 5.3-.01 7.46z\", \"M4.6 12.2C3 11.1 2 9 2 7c0-2.1.9-3.9 2.6-5.2.5-.3.5-1 .2-1.4-.3-.5-1-.5-1.4-.2C1.2 1.9-.1 4.2 0 7c.1 2.7 1.4 5.3 3.4 6.8.2.1.4.2.6.2.3 0 .6-.1.8-.4.4-.5.3-1.1-.2-1.4zM13.27 10.69c.38.4 1.01.42 1.41.04 2.27-2.16 2.08-5.51-.01-7.46a.996.996 0 10-1.36 1.46c1.28 1.19 1.39 3.21-.01 4.54-.39.39-.41 1.02-.03 1.42z\", \"M16.6.2c-.4-.3-1.1-.3-1.4.2-.3.4-.3 1.1.2 1.4C17.1 3.1 18 4.9 18 7c0 2-1 4.1-2.6 5.2-.5.3-.6.9-.2 1.4.2.3.5.4.8.4.2 0 .4-.1.6-.2C18.7 12.3 20 9.7 20 7c.09-2.8-1.2-5.1-3.4-6.8z\"],\n \"changes\": [\"M18 16H2c-1.1 0-2 .9-2 2s.9 2 2 2h16c1.1 0 2-.9 2-2s-.9-2-2-2zM3 5c.28 0 .53-.11.71-.29L5 3.41V13c0 .55.45 1 1 1s1-.45 1-1V3.41L8.29 4.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3C6.53.11 6.28 0 6 0s-.53.11-.71.29l-3 3A1.003 1.003 0 003 5zm7.29 5.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3a1.003 1.003 0 00-1.42-1.42L15 10.59V1c0-.55-.45-1-1-1s-1 .45-1 1v9.59L11.71 9.3A.965.965 0 0011 9a1.003 1.003 0 00-.71 1.71z\"],\n \"chart\": [\"M7 11v8c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-8l-2 2-4-2zm-7 8c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-8l-6 3v5zM17 7l-3 3v9c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V8.74c-.26.15-.58.26-1 .26-1.92 0-2-2-2-2zm2-6h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59L10.8 8.78 7.45 7.11v.01C7.31 7.05 7.16 7 7 7s-.31.05-.44.11V7.1l-6 3v.01c-.33.17-.56.5-.56.89 0 .55.45 1 1 1 .16 0 .31-.05.44-.11v.01L7 9.12l3.55 1.78v-.01c.14.06.29.11.45.11.28 0 .53-.11.71-.29L18 4.41V6c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z\"],\n \"chat\": [\"M19 0H7c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h5.59l3.71 3.71c.17.18.42.29.7.29.55 0 1-.45 1-1v-3h1c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM7 13c-1.1 0-2-.9-2-2V4H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h1v3a1.003 1.003 0 001.71.71L7.41 16H13c.55 0 1-.45 1-1v-.17L12.17 13H7z\"],\n \"chevron-backward\": [\"M8.41 10l5.29-5.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L7 8.59V4c0-.55-.45-1-1-1s-1 .45-1 1v12c0 .55.45 1 1 1s1-.45 1-1v-4.59l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L8.41 10z\"],\n \"chevron-down\": [\"M16 6c-.28 0-.53.11-.71.29L10 11.59l-5.29-5.3a1.003 1.003 0 00-1.42 1.42l6 6c.18.18.43.29.71.29s.53-.11.71-.29l6-6A1.003 1.003 0 0016 6z\"],\n \"chevron-forward\": [\"M13 3c-.55 0-1 .45-1 1v4.59l-5.29-5.3a1.003 1.003 0 00-1.42 1.42l5.3 5.29-5.29 5.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l5.29-5.3V16c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"chevron-left\": [\"M8.41 10l5.29-5.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-6 6c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l6 6a1.003 1.003 0 001.42-1.42L8.41 10z\"],\n \"chevron-right\": [\"M13.71 9.29l-6-6a1.003 1.003 0 00-1.42 1.42l5.3 5.29-5.29 5.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l6-6c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"chevron-up\": [\"M16.71 12.29l-6-6C10.53 6.11 10.28 6 10 6s-.53.11-.71.29l-6 6a1.003 1.003 0 001.42 1.42L10 8.41l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z\"],\n \"circle\": [\"M10 0C4.5 0 0 4.5 0 10s4.5 10 10 10 10-4.5 10-10S15.5 0 10 0zm0 18c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z\"],\n \"circle-arrow-down\": [\"M14 10c-.28 0-.53.11-.71.29L11 12.59V5c0-.55-.45-1-1-1s-1 .45-1 1v7.59L6.71 10.3A.965.965 0 006 10a1.003 1.003 0 00-.71 1.71l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0014 10zM10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"],\n \"circle-arrow-left\": [\"M15 9H7.41L9.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L7.41 11H15c.55 0 1-.45 1-1s-.45-1-1-1zm-5-9C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"],\n \"circle-arrow-right\": [\"M15.71 9.29l-4-4a1.003 1.003 0 00-1.42 1.42L12.59 9H5c-.55 0-1 .45-1 1s.45 1 1 1h7.59l-2.29 2.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"],\n \"circle-arrow-up\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.71-13.71C10.53 4.11 10.28 4 10 4s-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L9 7.41V15c0 .55.45 1 1 1s1-.45 1-1V7.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4z\"],\n \"citation\": [\"M4 1C1.79 1 0 2.79 0 5s1.79 4 4 4c.1 0 .2-.01.3-.02C3.82 11.32 2.53 13 1 13c-.55 0-1 .45-1 1s.45 1 1 1c3.87 0 7-4.48 7-10 0-2.21-1.79-4-4-4zM16 1c-2.21 0-4 1.79-4 4s1.79 4 4 4c.1 0 .2-.01.3-.02C15.82 11.32 14.53 13 13 13c-.55 0-1 .45-1 1s.45 1 1 1c3.87 0 7-4.48 7-10 0-2.21-1.79-4-4-4z\"],\n \"clean\": [\"M7 0L5 5 0 6.998 5 9l2 5 2-5 5-1.995L9 5zM15 10l-1.5 3.496-3.5 1.499 3.5 1.498L15 20l1.5-3.507L20 15l-3.5-1.504z\"],\n \"clip\": [\"M0 1a1 1 0 011-1h5a1 1 0 010 2H2v4a1 1 0 01-2 0V1zm1 19a1 1 0 01-1-1v-5a1 1 0 112 0v4h4a1 1 0 110 2H1zm18 0a1 1 0 001-1v-5a1 1 0 10-2 0v4h-4a1 1 0 100 2h5zm0-20a1 1 0 011 1v5a1 1 0 11-2 0V2h-4a1 1 0 110-2h5zm-9 14a4 4 0 100-8 4 4 0 000 8z\"],\n \"clipboard\": [\"M13 2c0-.55-.45-1-1-1h-.78a1.98 1.98 0 00-3.44 0H7c-.55 0-1 .45-1 1v2h7V2z\", \"M16 2h-2v3H5V2H3c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z\"],\n \"cloud\": [\"M15 7c-.12 0-.24.03-.36.04C13.83 4.69 11.62 3 9 3 5.69 3 3 5.69 3 9c0 .05.01.09.01.14A3.98 3.98 0 000 13c0 2.21 1.79 4 4 4h11c2.76 0 5-2.24 5-5s-2.24-5-5-5z\"],\n \"cloud-download\": [\"M15 4c-.12 0-.24.03-.36.04C13.83 1.69 11.62 0 9 0 5.69 0 3 2.69 3 6c0 .05.01.09.01.14A3.98 3.98 0 000 10c0 2.21 1.79 4 4 4h.78c.55-.61 1.34-1 2.22-1v-2c0-1.66 1.34-3 3-3s3 1.34 3 3v2c.88 0 1.66.38 2.2.98C17.87 13.87 20 11.69 20 9c0-2.76-2.24-5-5-5zm-2 11c-.28 0-.53.11-.71.29L11 16.59V11c0-.55-.45-1-1-1s-1 .45-1 1v5.59L7.71 15.3A.965.965 0 007 15a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0013 15z\"],\n \"cloud-upload\": [\"M10.71 10.29c-.18-.18-.43-.29-.71-.29s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L9 13.41V19c0 .55.45 1 1 1s1-.45 1-1v-5.59l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3zM15 4c-.12 0-.24.03-.36.04C13.83 1.69 11.62 0 9 0 5.69 0 3 2.69 3 6c0 .05.01.09.01.14A3.98 3.98 0 000 10c0 2.21 1.79 4 4 4 0-.83.34-1.58.88-2.12l3-3a2.993 2.993 0 014.24 0l3 3-.01.01c.52.52.85 1.23.87 2.02C18.28 13.44 20 11.42 20 9c0-2.76-2.24-5-5-5z\"],\n \"code\": [\"M6 6a1.003 1.003 0 00-1.71-.71l-4 4C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L2.41 10 5.7 6.71c.19-.18.3-.43.3-.71zm6-4c-.46 0-.83.31-.95.73l-4 14c-.02.09-.05.17-.05.27 0 .55.45 1 1 1 .46 0 .83-.31.95-.73l4-14c.02-.09.05-.17.05-.27 0-.55-.45-1-1-1zm7.71 7.29l-4-4a1.003 1.003 0 00-1.42 1.42l3.3 3.29-3.29 3.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"code-block\": [\"M19 5h-2V3c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v2H9V3c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v2H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM8.71 15.29a1.003 1.003 0 01-1.42 1.42l-4-4C3.11 12.53 3 12.28 3 12s.11-.53.29-.71l4-4a1.003 1.003 0 011.42 1.42L5.41 12l3.3 3.29zm8-2.58l-4 4a1.003 1.003 0 01-1.42-1.42l3.3-3.29-3.29-3.29A.965.965 0 0111 8a1.003 1.003 0 011.71-.71l4 4c.18.18.29.43.29.71s-.11.53-.29.71z\"],\n \"cog\": [\"M19 8h-2.31c-.14-.46-.33-.89-.56-1.3l1.7-1.7a.996.996 0 000-1.41l-1.41-1.41a.996.996 0 00-1.41 0l-1.7 1.7c-.41-.22-.84-.41-1.3-.55V1c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v2.33c-.48.14-.94.34-1.37.58L5 2.28a.972.972 0 00-1.36 0L2.28 3.64c-.37.38-.37.99 0 1.36L3.9 6.62c-.24.44-.44.89-.59 1.38H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2.31c.14.46.33.89.56 1.3L2.17 15a.996.996 0 000 1.41l1.41 1.41c.39.39 1.02.39 1.41 0l1.7-1.7c.41.22.84.41 1.3.55V19c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2.33c.48-.14.94-.35 1.37-.59L15 17.72c.37.37.98.37 1.36 0l1.36-1.36c.37-.37.37-.98 0-1.36l-1.62-1.62c.24-.43.45-.89.6-1.38H19c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-9 6c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z\"],\n \"collapse-all\": [\"M9.29 8.71c.18.18.43.29.71.29s.53-.11.71-.29l6-6a1.003 1.003 0 00-1.42-1.42L10 6.59l-5.29-5.3a1.003 1.003 0 00-1.42 1.42l6 6zm1.42 2.58c-.18-.18-.43-.29-.71-.29s-.53.11-.71.29l-6 6a1.003 1.003 0 001.42 1.42l5.29-5.3 5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-6-6z\"],\n \"column-layout\": [\"M19 1H1c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM5 17H2V3h3v14zm4 0H6V3h3v14zm9 0h-8V3h8v14z\"],\n \"comment\": [\"M19 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3v4a1.003 1.003 0 001.71.71l4.7-4.71H19c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM4 10c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm6 0c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm6 0c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"],\n \"comparison\": [\"M6 8H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm13-6h-5c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm0 3h-5V3h5v2zM6 14H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zM6 2H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm4-2c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm9 14h-5c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm0 3h-5v-2h5v2zm0-9h-5c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm0 3h-5V9h5v2z\"],\n \"compass\": [\"M15 10c0 .14-.03.28-.09.4l-3.99 8.98-.01.02a.991.991 0 01-1.82 0l-.01-.02-3.99-8.98c-.06-.12-.09-.26-.09-.4s.03-.28.09-.4L9.08.62 9.09.6a.991.991 0 011.82 0l.01.02 3.99 8.98c.06.12.09.26.09.4zm-5-6.54L7.09 10h5.81L10 3.46z\"],\n \"compressed\": [\"M19.89 6.56l-2.99-6h-.01C16.72.23 16.39 0 16 0H4c-.39 0-.72.23-.89.56H3.1l-3 6h.01C.05 6.69 0 6.84 0 7v12c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V7c0-.16-.05-.31-.11-.44zM11 2h4.38l2 4H11V2zM4.62 2H9v4H2.62l2-4zM18 18H2V8h7v4.59L6.71 10.3A.965.965 0 006 10a1.003 1.003 0 00-.71 1.71l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4a1.003 1.003 0 00-1.42-1.42L11 12.59V8h7v10z\"],\n \"confirm\": [\"M9.71 5.29a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l7-7a1.003 1.003 0 00-1.42-1.42L12 7.59l-2.29-2.3zm7.93 2.32c.23.75.36 1.56.36 2.39 0 4.42-3.58 8-8 8s-8-3.58-8-8a7.998 7.998 0 0111.8-7.04l1.46-1.46C13.73.56 11.93 0 10 0 4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10c0-1.4-.29-2.73-.81-3.95l-1.55 1.56z\"],\n \"console\": [\"M19 19H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h18c.55 0 1 .45 1 1v16c0 .55-.45 1-1 1zM18 6H2v11h16V6zM4 8c.28 0 .53.11.71.29l2 2c.18.18.29.43.29.71s-.11.53-.29.71l-2 2a1.003 1.003 0 01-1.42-1.42L4.59 11l-1.3-1.29A1.003 1.003 0 014 8zm5 4h3c.55 0 1 .45 1 1s-.45 1-1 1H9c-.55 0-1-.45-1-1s.45-1 1-1z\"],\n \"contrast\": [\"M19 8h-1.26c-.19-.73-.48-1.42-.85-2.06l.94-.94a.996.996 0 000-1.41l-1.41-1.41a.996.996 0 00-1.41 0l-.94.94c-.65-.38-1.34-.67-2.07-.86V1c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v1.26c-.76.2-1.47.5-2.13.89L5 2.28a.972.972 0 00-1.36 0L2.28 3.64c-.37.38-.37.98 0 1.36l.87.87c-.39.66-.69 1.37-.89 2.13H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h1.26c.19.73.48 1.42.85 2.06l-.94.94a.996.996 0 000 1.41l1.41 1.41c.39.39 1.02.39 1.41 0l.94-.94c.64.38 1.33.66 2.06.85V19c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1.26c.76-.2 1.47-.5 2.13-.89l.88.87c.37.37.98.37 1.36 0l1.36-1.36c.37-.38.37-.98 0-1.36l-.87-.87c.4-.65.7-1.37.89-2.13H19c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-9 7c-2.76 0-5-2.24-5-5s2.24-5 5-5v10z\"],\n \"control\": [\"M17 10h-7v7h7v-7zm0-7h-7v6h7V3zM9 3H3v14h6V3zm10-3H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2V2h16v16z\"],\n \"credit-card\": [\"M19 3H1c-.55 0-1 .45-1 1v2h20V4c0-.55-.45-1-1-1zM0 16c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V8H0v8zm6.5-2h7c.28 0 .5.22.5.5s-.22.5-.5.5h-7c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm-4 0h2c.28 0 .5.22.5.5s-.22.5-.5.5h-2c-.28 0-.5-.22-.5-.5s.22-.5.5-.5z\"],\n \"cross\": [\"M11.41 10l4.29-4.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L10 8.59l-4.29-4.3a1.003 1.003 0 00-1.42 1.42L8.59 10 4.3 14.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4.29-4.3 4.29 4.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L11.41 10z\"],\n \"crown\": [\"M2 8l4 2 4-5 4 5 4-2-1 7H3L2 8zm8-6a1 1 0 110 2 1 1 0 010-2zM1 5a1 1 0 110 2 1 1 0 010-2zm18 0a1 1 0 110 2 1 1 0 010-2zM3 16h14v2H3v-2z\"],\n \"cube\": [\"M1.953 4.481l7.41-4.02c.394-.215.88-.215 1.275 0l7.409 4.02L10 9.22 1.953 4.48zm-.817.68L9.5 10.085v9.281a1.316 1.316 0 01-.138-.064l-7.714-4.186A1.211 1.211 0 011 14.057v-8.35c0-.193.048-.38.136-.547zm17.728 0c.088.166.136.353.136.546v8.35c0 .438-.247.842-.648 1.06l-7.714 4.186c-.045.024-.091.046-.138.064v-9.281l8.364-4.926z\"],\n \"cube-add\": [\"M17 3h2a1 1 0 010 2h-2v2a1 1 0 01-2 0V5h-2a1 1 0 010-2h2V1a1 1 0 012 0v2zm-3.969 4.435L10 9.22 1.953 4.48l7.41-4.02c.394-.215.88-.215 1.275 0l1.33.721A3.001 3.001 0 0013 7c0 .148.01.293.031.435zm.319.972A3 3 0 0019 7v7.057c0 .438-.247.842-.648 1.06l-7.714 4.186c-.045.024-.091.046-.138.064v-9.281l2.85-1.679zM1.136 5.16L9.5 10.086v9.281a1.316 1.316 0 01-.138-.064l-7.714-4.186A1.211 1.211 0 011 14.057v-8.35c0-.193.048-.38.136-.547z\"],\n \"cube-remove\": [\"M11.968 1.182A3.001 3.001 0 0013 7h.77L10 9.22 1.953 4.48l7.41-4.02c.394-.215.88-.215 1.275 0l1.33.721zM19 7v7.057c0 .438-.247.842-.648 1.06l-7.714 4.186c-.045.024-.091.046-.138.064v-9.281L15.74 7H19zM1.136 5.16L9.5 10.086v9.281a1.316 1.316 0 01-.138-.064l-7.714-4.186A1.211 1.211 0 011 14.057v-8.35c0-.193.048-.38.136-.547zM13 3h6a1 1 0 010 2h-6a1 1 0 010-2z\"],\n \"curved-range-chart\": [\"M19 16H3.02l2.14-1.74c2.25 1.7 7.33.46 11.83-2.99l-1.29-1.5c-3.56 2.74-7.31 4.03-8.93 3.19l10.55-8.57-.63-.78-10.59 8.6c-.64-1.64 1.46-4.91 5.09-7.7L9.9 3.01c-4.6 3.54-6.91 8.12-5.41 10.51L2 15.54V3c0-.55-.45-1-1-1s-1 .45-1 1v14a.998.998 0 001 1h18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"cut\": [\"M16 2s.72-1.28 0-2l-5.29 6.25 1.28 1.54L16 2zm.08 10c-.55 0-1.07.12-1.54.32L4.31 0c-.7.72 0 2 0 2l4.45 6.56-3.19 3.77C5.09 12.12 4.56 12 4 12c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.65-.17-1.26-.45-1.8l2.54-3.67 2.49 3.67c-.27.54-.44 1.15-.44 1.8 0 2.21 1.76 4 3.92 4 2.17 0 3.92-1.79 3.92-4 .02-2.21-1.74-4-3.9-4zM4 18c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm12.08 0c-1.08 0-1.96-.9-1.96-2s.88-2 1.96-2 1.96.9 1.96 2-.88 2-1.96 2z\"],\n \"cycle\": [\"M16 10a4 4 0 110 8 4 4 0 010-8zM4 10a4 4 0 110 8 4 4 0 010-8zm7.299-5.543l.087.089 1.93 2.232 2.048.708a1 1 0 01.65 1.16l-.031.112a1 1 0 01-1.16.65l-.112-.031-2.302-.796a1 1 0 01-.337-.197l-.092-.094-1.387-1.603-1.891 1.982 2.046 2.274a1 1 0 01.25.547l.007.122v4.24a1 1 0 01-1.993.117l-.007-.117-.001-3.857-2.408-2.676a1 1 0 01-.063-1.26l.082-.099 3.29-3.45a1 1 0 011.394-.053zM16 12a2 2 0 100 4 2 2 0 000-4zM4 12a2 2 0 100 4 2 2 0 000-4zm9.5-10a1.5 1.5 0 110 3 1.5 1.5 0 010-3z\"],\n \"dashboard\": [\"M6 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM4 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm6-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-5C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm6-9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-8 5c0 1.1.9 2 2 2s2-.9 2-2c0-.33-2-8-2-8s-2 7.67-2 8zm6-9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z\"],\n \"data-connection\": [\"M2 11.9c.935.674 2.339 1.217 4.023 1.536A6.996 6.996 0 009.393 20c-3.988-.019-7.231-1.083-7.387-2.4L2 17.5v-5.6zM13 8c3.315 0 6 2.685 6 6s-2.685 6-6 6-6-2.685-6-6 2.685-6 6-6zm1 1l-4 6h2.5l-.5 4 4-6h-2.5l.5-4zm3-4.6v3.855a7.003 7.003 0 00-10.779 3.992c-2.408-.391-4.097-1.202-4.214-2.142L2 10V4.4c1.525 1.1 4.3 1.85 7.5 1.85S15.475 5.5 17 4.4zM9.5 0C13.637 0 17 1.125 17 2.5S13.637 5 9.5 5C5.35 5 2 3.875 2 2.5S5.35 0 9.5 0z\"],\n \"data-lineage\": [\"M1.053 0C.47 0 0 .471 0 1.053V4.21c0 .58.471 1.052 1.053 1.052h3.275a6.332 6.332 0 003.728 4.738 6.33 6.33 0 00-3.728 4.737l-3.275-.001C.47 14.737 0 15.208 0 15.789v3.158C0 19.53.471 20 1.053 20h7.435c.581 0 1.053-.471 1.053-1.053V15.79c0-.58-.472-1.052-1.053-1.052H5.406a5.293 5.293 0 015.195-4.21v2.105c0 .58.471 1.052 1.052 1.052h7.294c.582 0 1.053-.471 1.053-1.052V7.368c0-.58-.471-1.052-1.053-1.052h-7.294c-.581 0-1.052.471-1.052 1.052v2.106a5.293 5.293 0 01-5.194-4.21h3.081c.581 0 1.053-.472 1.053-1.053V1.053C9.54.47 9.069 0 8.488 0H1.053z\"],\n \"database\": [\"M2.01 5.1v5.4c0 1.38 3.58 2.5 8 2.5s8-1.12 8-2.5V5.1c-1.49 1.13-4.51 1.9-8 1.9-3.48 0-6.5-.77-8-1.9zm8 .9c4.42 0 8-1.12 8-2.5s-3.58-2.5-8-2.5-8 1.12-8 2.5S5.6 6 10.01 6zm-8 6.1v5.4c0 1.38 3.58 2.5 8 2.5s8-1.12 8-2.5v-5.4c-1.49 1.13-4.51 1.9-8 1.9-3.48 0-6.5-.77-8-1.9z\"],\n \"delete\": [\"M15 6a1.003 1.003 0 00-1.71-.71L10 8.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42L8.59 10 5.3 13.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3.29-3.3 3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L11.41 10l3.29-3.29c.19-.18.3-.43.3-.71zm-5-6C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"],\n \"delta\": [\"M10 0L0 20h20L10 0zM9 6l6 12H3L9 6z\"],\n \"derive-column\": [\"M7.1 8.2h-.99c.28-1.11.66-1.92 1.12-2.43.28-.32.56-.48.83-.48.05 0 .1.02.13.05.03.03.05.07.05.12 0 .04-.04.13-.11.25a.64.64 0 00-.12.35c0 .15.06.28.18.39.12.11.27.16.45.16.2 0 .36-.07.49-.2s.2-.31.2-.54c0-.26-.1-.47-.3-.63-.19-.16-.51-.24-.95-.24-.68 0-1.3.19-1.85.58-.56.38-1.09 1.02-1.59 1.91-.17.3-.34.5-.49.59-.15.08-.4.13-.74.12l-.23.77h.95l-1.39 5.24c-.23.86-.39 1.39-.47 1.59-.12.29-.3.54-.54.75-.1.08-.21.12-.35.12-.04 0-.07-.01-.1-.03l-.03-.04c0-.02.03-.07.1-.13.07-.07.1-.17.1-.31 0-.15-.05-.28-.16-.38-.11-.1-.27-.15-.47-.15-.25 0-.44.07-.59.2-.15.12-.23.28-.23.46 0 .19.09.36.27.5.19.14.47.21.86.21.61 0 1.16-.15 1.63-.46.48-.31.89-.78 1.25-1.43.35-.64.72-1.68 1.09-3.11l.8-3.03h.96l.24-.77zM19 0h-9c-.55 0-1 .45-1 1v3h2V2h7v16h-7v-2H9v3c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-8.79 13.49c.15.28.32.49.52.61.19.12.44.19.73.19.28 0 .57-.1.86-.3.38-.25.77-.69 1.17-1.31l-.25-.14c-.27.37-.48.6-.61.69-.09.06-.19.09-.31.09-.14 0-.28-.09-.42-.26-.23-.29-.54-1.09-.93-2.4.35-.59.64-.97.87-1.15.17-.13.35-.2.55-.2.07 0 .2.03.39.08s.36.08.5.08c.2 0 .37-.07.5-.2.15-.14.22-.31.22-.52 0-.22-.07-.4-.2-.53s-.33-.2-.58-.2c-.22 0-.43.05-.63.15-.2.1-.45.32-.75.67-.23.25-.56.7-1.01 1.33a6.52 6.52 0 00-.91-2.15l-2.39.39-.05.25c.18-.03.33-.05.45-.05.24 0 .43.1.59.3.25.31.59 1.24 1.02 2.8-.34.44-.58.73-.7.87-.21.22-.38.36-.52.43-.1.05-.22.08-.35.08-.1 0-.26-.05-.49-.16a1.01 1.01 0 00-.42-.11c-.23 0-.42.07-.57.22-.15.14-.23.33-.23.55 0 .21.07.38.21.51.14.13.33.2.56.2.23 0 .44-.05.64-.14.2-.09.45-.29.75-.59s.72-.78 1.25-1.43c.21.61.39 1.06.54 1.35z\"],\n \"desktop\": [\"M19 0H1C.45 0 0 .45 0 1v13c0 .55.45 1 1 1h5.67l-.5 3H5c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1h-1.17l-.5-3H19c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 13H2V2h16v11z\"],\n \"diagnosis\": [\"M4 2a1 1 0 01.117 1.993L4 4v5a2 2 0 001.85 1.995L6 11a2 2 0 001.995-1.85L8 9V4a1 1 0 01-.117-1.993L8 2h1a1 1 0 01.993.883L10 3v6a4.002 4.002 0 01-3 3.874V13a3 3 0 003 3 4 4 0 003.995-3.8L14 12V8.792a2.5 2.5 0 112 0V12a6 6 0 01-6 6 5 5 0 01-4.995-4.783L5 13v-.126A4.002 4.002 0 012.005 9.2L2 9V3a1 1 0 01.883-.993L3 2h1z\"],\n \"diagram-tree\": [\"M19 10v5h-2v-4h-6v4H9v-4H3v4H1v-5a1 1 0 011-1h7V5h2v4h7a1 1 0 011 1zM1 16h2a1 1 0 011 1v2a1 1 0 01-1 1H1a1 1 0 01-1-1v-2a1 1 0 011-1zm16 0h2a1 1 0 011 1v2a1 1 0 01-1 1h-2a1 1 0 01-1-1v-2a1 1 0 011-1zm-8 0h2a1 1 0 011 1v2a1 1 0 01-1 1H9a1 1 0 01-1-1v-2a1 1 0 011-1zM9 0h2a1 1 0 011 1v2a1 1 0 01-1 1H9a1 1 0 01-1-1V1a1 1 0 011-1z\"],\n \"direction-left\": [\"M20 3.02l-20 7 20 7-5-7z\"],\n \"direction-right\": [\"M20 10.02l-20-7 5 7-5 7z\"],\n \"disable\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zM2 10c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L3.69 14.9A7.902 7.902 0 012 10zm8 8c-1.85 0-3.55-.63-4.9-1.69L16.31 5.1A7.902 7.902 0 0118 10c0 4.42-3.58 8-8 8z\"],\n \"document\": [\"M11.98 0h-8c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V6l-6-6zm4 18h-11V2h6v5h5v11z\"],\n \"document-open\": [\"M8 15c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1h2.59L1.3 16.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L8 12.41V15zm5-15H5c-.55 0-1 .45-1 1v6h2V2h6v5h5v11H6v-.76L4.04 19.2c.1.45.48.8.96.8h13c.55 0 1-.45 1-1V6l-6-6z\"],\n \"document-share\": [\"M14.09 10.09c-.31.31-.67.57-1.09.72V18H2V2h6v5h1.18c.15-.42.39-.8.7-1.11v-.01l2.45-2.45c-.42-.29-.78-.65-1.01-1.11L9 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V9.24l-.88.88-.03-.03zM19 0h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L11.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 3.41V6c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"dollar\": [\"M15.57 11.19c-.27-.51-.63-.93-1.07-1.26-.44-.33-.95-.6-1.51-.79-.56-.2-1.14-.36-1.72-.5-.6-.14-1.19-.26-1.75-.38-.57-.13-1.07-.27-1.51-.44-.44-.17-.8-.38-1.07-.63s-.41-.59-.41-1c0-.33.09-.6.28-.81.19-.21.42-.36.69-.47.27-.11.57-.18.88-.22.31-.04.58-.06.8-.06.71 0 1.35.14 1.9.41.55.27.91.81 1.06 1.62h3.36c-.09-.84-.32-1.56-.69-2.16-.37-.6-.83-1.08-1.38-1.45-.56-.37-1.18-.64-1.86-.81-.19-.05-.38-.07-.57-.1V1c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v1.1c-.22.03-.43.05-.66.1-.73.13-1.39.37-1.98.71-.6.34-1.09.8-1.47 1.35-.39.56-.58 1.25-.58 2.08 0 .76.13 1.41.4 1.93.26.52.62.95 1.06 1.28.44.33.94.6 1.5.79.55.2 1.13.36 1.74.5.58.14 1.16.26 1.72.38s1.07.26 1.51.43c.44.17.8.39 1.09.66.28.27.43.63.45 1.06.02.43-.08.78-.3 1.04-.22.26-.49.47-.83.6-.34.14-.7.23-1.09.28-.39.05-.73.07-1.03.07-.87 0-1.61-.2-2.23-.59-.62-.39-.98-1.08-1.07-2.06H3c.02.9.19 1.68.52 2.34.33.66.78 1.21 1.35 1.65.57.44 1.25.77 2.03.98.35.1.71.16 1.08.21V19c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1.13c.25-.04.5-.07.76-.13.77-.18 1.47-.46 2.1-.85.63-.39 1.14-.9 1.54-1.53.4-.63.59-1.39.59-2.29.01-.75-.13-1.37-.4-1.88z\"],\n \"dot\": [\"M10 6a4 4 0 100 8 4 4 0 100-8z\"],\n \"double-caret-horizontal\": [\"M8 4c-.24 0-.46.1-.63.24l-.01-.01-6 5 .01.01c-.22.19-.37.45-.37.76s.15.57.37.76l-.01.01 6 5 .01-.01c.17.14.39.24.63.24.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm11 6c0-.31-.15-.57-.37-.76l.01-.01-6-5-.01.01C12.46 4.1 12.24 4 12 4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1 .24 0 .46-.1.63-.24l.01.01 6-5-.01-.01c.22-.19.37-.45.37-.76z\"],\n \"double-caret-vertical\": [\"M5 9h10c.55 0 1-.45 1-1 0-.24-.1-.46-.24-.63l.01-.01-5-6-.01.01C10.57 1.15 10.31 1 10 1s-.57.15-.76.37l-.01-.01-5 6 .01.01C4.1 7.54 4 7.76 4 8c0 .55.45 1 1 1zm10 2H5c-.55 0-1 .45-1 1 0 .24.1.46.24.63l-.01.01 5 6 .01-.01c.19.22.45.37.76.37s.57-.15.76-.37l.01.01 5-6-.01-.01c.14-.17.24-.39.24-.63 0-.55-.45-1-1-1z\"],\n \"double-chevron-down\": [\"M9.29 10.71c.18.18.43.29.71.29s.53-.11.71-.29l6-6a1.003 1.003 0 00-1.42-1.42L10 8.59l-5.29-5.3a1.003 1.003 0 00-1.42 1.42l6 6zM16 9c-.28 0-.53.11-.71.29L10 14.59l-5.29-5.3a1.003 1.003 0 00-1.42 1.42l6 6c.18.18.43.29.71.29s.53-.11.71-.29l6-6A1.003 1.003 0 0016 9z\"],\n \"double-chevron-left\": [\"M5.41 10l5.29-5.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-6 6c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l6 6a1.003 1.003 0 001.42-1.42L5.41 10zm6 0l5.29-5.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-6 6c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l6 6a1.003 1.003 0 001.42-1.42L11.41 10z\"],\n \"double-chevron-right\": [\"M11 10c0-.28-.11-.53-.29-.71l-6-6a1.003 1.003 0 00-1.42 1.42L8.59 10 3.3 15.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l6-6c.18-.18.29-.43.29-.71zm5.71-.71l-6-6a1.003 1.003 0 00-1.42 1.42l5.3 5.29-5.29 5.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l6-6c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"double-chevron-up\": [\"M4 11c.28 0 .53-.11.71-.29L10 5.41l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-6-6A.997.997 0 0010 3c-.28 0-.53.11-.71.29l-6 6A1.003 1.003 0 004 11zm6.71-1.71A.997.997 0 0010 9c-.28 0-.53.11-.71.29l-6 6a1.003 1.003 0 001.42 1.42l5.29-5.3 5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-6-6z\"],\n \"doughnut-chart\": [\"M16 10c0 3.31-2.69 6-6 6s-6-2.69-6-6 2.69-6 6-6V0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10h-4zm-.09-1h4.04C19.48 4.28 15.72.52 11 .05V4.1A5.98 5.98 0 0115.91 9z\"],\n \"download\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm4.71 11.71l-4 4c-.18.18-.43.29-.71.29s-.53-.11-.71-.29l-4-4a1.003 1.003 0 011.42-1.42L9 12.59V5c0-.55.45-1 1-1s1 .45 1 1v7.59l2.29-2.29c.18-.19.43-.3.71-.3a1.003 1.003 0 01.71 1.71z\"],\n \"drag-handle-horizontal\": [\"M7.5 11c-.83 0-1.5.67-1.5 1.5S6.67 14 7.5 14 9 13.33 9 12.5 8.33 11 7.5 11zm-5-5C1.67 6 1 6.67 1 7.5S1.67 9 2.5 9 4 8.33 4 7.5 3.33 6 2.5 6zm0 5c-.83 0-1.5.67-1.5 1.5S1.67 14 2.5 14 4 13.33 4 12.5 3.33 11 2.5 11zm15-2c.83 0 1.5-.67 1.5-1.5S18.33 6 17.5 6 16 6.67 16 7.5 16.67 9 17.5 9zm-5 2c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm5 0c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm-10-5C6.67 6 6 6.67 6 7.5S6.67 9 7.5 9 9 8.33 9 7.5 8.33 6 7.5 6zm5 0c-.83 0-1.5.67-1.5 1.5S11.67 9 12.5 9 14 8.33 14 7.5 13.33 6 12.5 6z\"],\n \"drag-handle-vertical\": [\"M7.5 6C6.67 6 6 6.67 6 7.5S6.67 9 7.5 9 9 8.33 9 7.5 8.33 6 7.5 6zm0 5c-.83 0-1.5.67-1.5 1.5S6.67 14 7.5 14 9 13.33 9 12.5 8.33 11 7.5 11zm0 5c-.83 0-1.5.67-1.5 1.5S6.67 19 7.5 19 9 18.33 9 17.5 8.33 16 7.5 16zm5-12c.83 0 1.5-.67 1.5-1.5S13.33 1 12.5 1 11 1.67 11 2.5 11.67 4 12.5 4zm-5-3C6.67 1 6 1.67 6 2.5S6.67 4 7.5 4 9 3.33 9 2.5 8.33 1 7.5 1zm5 10c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0 5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-10c-.83 0-1.5.67-1.5 1.5S11.67 9 12.5 9 14 8.33 14 7.5 13.33 6 12.5 6z\"],\n \"draw\": [\"M17.7 12.7c0-.1 0-.2-.1-.3l-2-7c-.1-.3-.3-.6-.6-.7L1.8 0l-.6.5L7.7 7c.3-.2.6-.3 1-.3 1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2c0-.4.1-.7.3-1L.5 1.2l-.5.6L4.7 15c.1.3.4.5.7.6l7 2c.1 0 .2.1.3.1.3 0 .5-.1.7-.3l4-4c.2-.2.3-.5.3-.7zm1 1c-.3 0-.5.1-.7.3l-4 4c-.2.2-.3.4-.3.7 0 .5.4 1 1 1 .3 0 .5-.1.7-.3l4-4c.2-.2.3-.4.3-.7 0-.6-.5-1-1-1z\"],\n \"drawer-left\": [\"M9 0a1 1 0 011 1v18a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1h8zM8 2H2v16h6V2zm2 7h6.59L14.3 6.71A.965.965 0 0114 6a1.003 1.003 0 011.71-.71l4 4c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-4 4a1.003 1.003 0 01-1.42-1.42l2.3-2.29H10V9z\"],\n \"drawer-left-filled\": [\"M1 0h8a1 1 0 011 1v18a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1zm9 9h6.59L14.3 6.71A.965.965 0 0114 6a1.003 1.003 0 011.71-.71l4 4c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-4 4a1.003 1.003 0 01-1.42-1.42l2.3-2.29H10V9z\"],\n \"drawer-right\": [\"M19 0a1 1 0 011 1v18a1 1 0 01-1 1h-8a1 1 0 01-1-1V1a1 1 0 011-1h8zm-1 2h-6v16h6V2zm-8 7H3.41L5.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L3.41 11H10V9z\"],\n \"drawer-right-filled\": [\"M11 0h8a1 1 0 011 1v18a1 1 0 01-1 1h-8a1 1 0 01-1-1V1a1 1 0 011-1zm-1 9H3.41L5.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L3.41 11H10V9z\"],\n \"drive-time\": [\"M20.01 7.7c0-.63-.5-1.14-1.1-1.14h-1.32l-.95-2.57c-.24-.64-.95-1.31-1.59-1.5 0 0-1.65-.49-5.05-.49s-5.04.49-5.04.49c-.63.19-1.35.86-1.59 1.5l-.95 2.57H1.1C.5 6.56 0 7.07 0 7.7c0 .63.5 1.14 1.1 1.14h.47l-.34.91c-.24.64-.43 1.72-.43 2.4v5.39c0 .8.63 1.45 1.4 1.45.77 0 1.4-.65 1.4-1.45v-.83h12.8v.83c0 .8.63 1.45 1.4 1.45s1.4-.65 1.4-1.45v-5.39c0-.68-.19-1.77-.43-2.4l-.34-.91h.47c.61 0 1.11-.51 1.11-1.14zm-16.47.34l1.12-3.16c.08-.22.32-.39.54-.39h9.6c.22 0 .46.17.54.39l1.12 3.16c.08.21-.04.39-.26.39H3.8c-.22-.01-.34-.18-.26-.39zm.96 4.94c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.68 1.5 1.5c0 .83-.67 1.5-1.5 1.5zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"],\n \"duplicate\": [\"M15 4H1c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 14H2V6h12v12zm5-18H5c-.55 0-1 .45-1 1v2h2V2h12v12h-1v2h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"edit\": [\"M4.59 12.59l2.83 2.83 7.65-7.65-2.83-2.83-7.65 7.65zM2 18l4.41-1.59-2.81-2.79L2 18zM16 2c-.55 0-1.05.22-1.41.59l-1.65 1.65 2.83 2.83 1.65-1.65A2.006 2.006 0 0016 2z\"],\n \"eject\": [\"M4 12h12c.55 0 1-.45 1-1 0-.25-.1-.47-.25-.64l.01-.01-6-7-.01.01C10.57 3.14 10.3 3 10 3s-.57.14-.75.36l-.01-.01-6 7 .01.01c-.15.17-.25.39-.25.64 0 .55.45 1 1 1zm12 1H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1z\"],\n \"emoji\": [\"M10 0c5.523 0 10 4.477 10 10s-4.477 10-10 10S0 15.523 0 10 4.477 0 10 0zm0 2a8 8 0 100 16 8 8 0 000-16zm-4 8l.015.215C6.219 12.42 7.925 14 10 14a4 4 0 003.995-3.8L14 10h2l-.013.238C15.754 13.552 13.163 16 10 16a6 6 0 01-5.996-5.775L4 10h2zm1.5-4a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm5 0a1.5 1.5 0 110 3 1.5 1.5 0 010-3z\"],\n \"endorsed\": [\"M19.83 9.38L18.81 7.6V5.62c0-.45-.23-.85-.61-1.08l-1.71-1-1.02-1.76a1.25 1.25 0 00-1.08-.61h-2.03l-1.74-1c-.38-.23-.87-.23-1.25 0l-1.74 1H5.65c-.44 0-.85.23-1.08.61L3.58 3.5l-1.8 1.04c-.38.24-.62.64-.62 1.08v2.06L.17 9.4c-.11.19-.17.4-.17.61s.06.42.17.61l.99 1.72v2.06c0 .45.23.85.61 1.08l1.78 1.02.99 1.72c.23.38.63.61 1.08.61h1.99l1.74 1c.19.11.41.17.62.17.21 0 .42-.06.61-.17l1.74-1h2.03c.44 0 .85-.23 1.08-.61l1.02-1.76 1.71-1c.38-.23.61-.64.61-1.08v-1.97l1.02-1.78c.27-.38.27-.85.04-1.25zm-5.08-.71l-5.01 5.01c-.18.18-.43.29-.71.29-.28 0-.53-.11-.71-.29l-3.01-3.01a1.003 1.003 0 011.42-1.42l2.3 2.3 4.31-4.3a1.003 1.003 0 011.71.71c0 .28-.12.53-.3.71z\"],\n \"envelope\": [\"M0 4.01v11.91l6.27-6.27L0 4.01zm18.91-1.03H1.09L10 10.97l8.91-7.99zm-5.18 6.66L20 15.92V4.01l-6.27 5.63zm-3.23 2.9c-.13.12-.31.19-.5.19s-.37-.07-.5-.19l-2.11-1.89-6.33 6.33h17.88l-6.33-6.33-2.11 1.89z\"],\n \"equals\": [\"M4 7h12a1 1 0 010 2H4a1 1 0 110-2zm0 4h12a1 1 0 010 2H4a1 1 0 010-2z\"],\n \"eraser\": [\"M18.71 8.43c.39-.4.39-1.05 0-1.45l-5.53-5.72a.967.967 0 00-1.4 0L1.29 12.1c-.39.4-.39 1.05 0 1.45l4.25 4.39 2.13 2.05h9.27c.02 0 .03.01.05.01.55 0 1-.45 1-1s-.45-1-1-1H9.46l.05-.05h.01l.81-.84 8.38-8.68zM7.52 17.94l-4.95-5.12 4.46-4.61 4.95 5.12-4.46 4.61z\"],\n \"error\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm1 16H9v-2h2v2zm0-3H9V4h2v9z\"],\n \"euro\": [\"M8.89 4.47c.56-.31 1.23-.47 2.03-.47.44 0 .85.07 1.25.22.4.14.76.35 1.07.6.17.14.33.3.47.47l2.32-2.32c-.16-.15-.3-.32-.47-.46-.62-.49-1.33-.87-2.12-1.13-.8-.25-1.64-.38-2.52-.38-1.24 0-2.35.22-3.33.66-.99.44-1.82 1.05-2.49 1.82-.68.78-1.2 1.68-1.56 2.72-.09.26-.13.54-.2.8H2c-.55 0-1 .45-1 1s.45 1 1 1h1.04c-.01.2-.04.38-.04.58 0 .15.03.28.03.42H2c-.55 0-1 .45-1 1s.45 1 1 1h1.31c.07.3.13.6.23.89.36 1.02.88 1.92 1.56 2.67.68.76 1.51 1.35 2.49 1.79.98.43 2.09.65 3.33.65.99 0 1.9-.15 2.73-.46.83-.3 1.55-.74 2.17-1.32.03-.03.05-.06.08-.09l-2.41-2.15c-.01.01-.02.02-.02.03-.61.67-1.46 1-2.54 1-.8 0-1.47-.16-2.03-.47-.56-.31-1.01-.72-1.35-1.24-.28-.38-.47-.83-.63-1.3H12c.55 0 1-.45 1-1s-.45-1-1-1H6.56c0-.14-.02-.28-.02-.42 0-.2.02-.39.03-.58H13c.55 0 1-.45 1-1s-.45-1-1-1H6.94c.15-.46.34-.9.59-1.28.35-.52.8-.94 1.36-1.25zM18 11.38v0z\"],\n \"exchange\": [\"M2.5 8a2.5 2.5 0 000 5 2.5 2.5 0 000-5zm10.35 3.15a.495.495 0 10-.7.7L13.3 13H5.5c-.28 0-.5.22-.5.5s.22.5.5.5h7.79l-1.15 1.15c-.08.09-.14.21-.14.35a.495.495 0 00.85.35l2-2c.09-.09.15-.21.15-.35s-.06-.26-.15-.35l-2-2zM17.5 8a2.5 2.5 0 000 5 2.5 2.5 0 000-5zM7.15 9.85a.495.495 0 10.7-.7L6.71 8h7.79c.28 0 .5-.22.5-.5s-.22-.5-.5-.5H6.71l1.15-1.15c.08-.09.14-.21.14-.35a.495.495 0 00-.85-.35l-2 2c-.09.09-.15.21-.15.35s.06.26.15.35l2 2z\"],\n \"exclude-row\": [\"M1 3h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zM0 13a1.003 1.003 0 001.71.71L4 11.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L5.41 10 7.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L4 8.59l-2.29-2.3A1.003 1.003 0 00.29 7.71L2.59 10 .3 12.29c-.19.18-.3.43-.3.71zm18-5h-7c-1.1 0-2 .9-2 2s.9 2 2 2h7c1.1 0 2-.9 2-2s-.9-2-2-2zm1 9H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"expand-all\": [\"M4 9c.28 0 .53-.11.71-.29L10 3.41l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-6-6C10.53 1.11 10.28 1 10 1s-.53.11-.71.29l-6 6A1.003 1.003 0 004 9zm12 2c-.28 0-.53.11-.71.29L10 16.59 4.71 11.3A.965.965 0 004 11a1.003 1.003 0 00-.71 1.71l6 6c.18.18.43.29.71.29s.53-.11.71-.29l6-6A1.003 1.003 0 0016 11z\"],\n \"export\": [\"M5 7c.28 0 .53-.11.71-.29L9 3.41V15c0 .55.45 1 1 1s1-.45 1-1V3.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-5-5C10.53.11 10.28 0 10 0s-.53.11-.71.29l-5 5A1.003 1.003 0 005 7zm14 7c-.55 0-1 .45-1 1v3H2v-3c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1z\"],\n \"eye-off\": [\"M20 9.96v-.03-.01-.02-.02a.794.794 0 00-.21-.43c-.55-.69-1.19-1.3-1.85-1.87l-3.93 2.62a3.966 3.966 0 01-3.96 3.77c-.47 0-.91-.1-1.33-.24l-2.24 1.49c.52.21 1.05.39 1.6.51 1.21.27 2.43.28 3.64.05 1.11-.21 2.17-.64 3.17-1.18 1.56-.84 2.99-2 4.23-3.3.23-.24.46-.49.67-.75a.87.87 0 00.21-.43v-.02-.02-.01-.03V10v-.04zm-.46-5.14c.27-.18.46-.47.46-.82 0-.55-.45-1-1-1-.21 0-.39.08-.54.18l-.01-.02L15 5.46c-.95-.53-1.95-.96-3.01-1.2a9.158 9.158 0 00-3.65-.04c-1.11.21-2.17.64-3.17 1.18-1.56.84-2.99 2-4.23 3.3-.23.24-.46.48-.67.75-.27.34-.27.76 0 1.1.64.79 1.39 1.5 2.16 2.15.26.21.52.41.79.61L.44 15.16l.01.02A1 1 0 000 16c0 .55.45 1 1 1 .21 0 .39-.08.54-.18l.01.02 18-12-.01-.02zm-8.67 3.4c-.25-.12-.53-.2-.83-.2-1.1 0-1.99.89-1.99 1.99 0 .03.02.06.02.09l-1.78 1.19c-.14-.4-.22-.83-.22-1.28 0-2.19 1.78-3.97 3.98-3.97 1.01 0 1.91.38 2.61 1l-1.79 1.18z\"],\n \"eye-on\": [\"M13.3 8.71c.18.18.43.29.71.29s.53-.11.71-.29l4.99-5a1.003 1.003 0 00-1.42-1.42L14 6.58l-2.29-2.29a.956.956 0 00-.7-.29 1.003 1.003 0 00-.71 1.71l3 3zM20 9.96v-.03-.01-.02-.02a.823.823 0 00-.21-.44c-.44-.55-.94-1.05-1.46-1.52l-2.2 2.2c-.55.54-1.3.88-2.12.88-.05 0-.09-.01-.14-.01a3.978 3.978 0 01-3.86 3.02 4.007 4.007 0 01-1.66-7.65A2.97 2.97 0 018.02 5c0-.28.05-.54.12-.8-1.05.22-2.07.64-3.02 1.15-1.57.85-3 2.02-4.24 3.33-.23.25-.46.5-.67.76-.28.35-.28.77 0 1.12.64.8 1.4 1.52 2.17 2.17 1.66 1.41 3.56 2.58 5.66 3.06 1.21.27 2.43.29 3.65.05 1.11-.21 2.18-.65 3.18-1.19 1.57-.85 3-2.02 4.24-3.33.23-.24.46-.49.67-.76.11-.12.18-.27.21-.44v-.02-.02-.01-.03V10c.01-.01.01-.03.01-.04zm-9.99 2.05c1.03 0 1.87-.79 1.98-1.8l-.09-.09-.01.01-2.1-2.11c-1 .11-1.77.95-1.77 1.98-.01 1.11.89 2.01 1.99 2.01z\"],\n \"eye-open\": [\"M10.01 7.984A2.008 2.008 0 008.012 9.99c0 1.103.9 2.006 1.998 2.006a2.008 2.008 0 001.998-2.006c0-1.103-.9-2.006-1.998-2.006zM20 9.96v-.03-.01-.02-.02a.827.827 0 00-.21-.442c-.64-.802-1.398-1.514-2.168-2.166-1.658-1.404-3.566-2.587-5.664-3.058a8.982 8.982 0 00-3.656-.05c-1.11.2-2.178.641-3.177 1.183-1.569.852-2.997 2.016-4.246 3.33-.23.25-.46.49-.67.761-.279.351-.279.773 0 1.124.64.802 1.4 1.514 2.169 2.166 1.658 1.404 3.566 2.577 5.664 3.058 1.209.271 2.438.281 3.656.05 1.11-.21 2.178-.651 3.177-1.193 1.569-.852 2.997-2.016 4.246-3.33.23-.24.46-.49.67-.751.11-.12.179-.271.209-.442v-.02-.02-.01-.03V10v-.04zM10.01 14A4.003 4.003 0 016.014 9.99a4.003 4.003 0 013.996-4.011 4.003 4.003 0 013.996 4.011 4.003 4.003 0 01-3.996 4.011z\"],\n \"fast-backward\": [\"M18 3c-.23 0-.42.09-.59.21l-.01-.01L11 8V4c0-.55-.45-1-1-1-.23 0-.42.09-.59.21L9.4 3.2l-8 6 .01.01C1.17 9.4 1 9.67 1 10s.17.6.41.79l-.01.01 8 6 .01-.01c.17.12.36.21.59.21.55 0 1-.45 1-1v-4l6.4 4.8.01-.01c.17.12.36.21.59.21.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"fast-forward\": [\"M19 10c0-.33-.17-.6-.41-.79l.01-.01-8-6-.01.01C10.42 3.09 10.23 3 10 3c-.55 0-1 .45-1 1v4L2.6 3.2l-.01.01C2.42 3.09 2.23 3 2 3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1 .23 0 .42-.09.59-.21l.01.01L9 12v4c0 .55.45 1 1 1 .23 0 .42-.09.59-.21l.01.01 8-6-.01-.01c.24-.19.41-.46.41-.79z\"],\n \"feed\": [\"M2.5 15a2.5 2.5 0 000 5 2.5 2.5 0 000-5zm.5-5c-.55 0-1 .45-1 1s.45 1 1 1c2.76 0 5 2.24 5 5 0 .55.45 1 1 1s1-.45 1-1c0-3.87-3.13-7-7-7zM3 0c-.55 0-1 .45-1 1s.45 1 1 1c8.28 0 15 6.72 15 15 0 .55.45 1 1 1s1-.45 1-1C20 7.61 12.39 0 3 0zm0 5c-.55 0-1 .45-1 1s.45 1 1 1c5.52 0 10 4.48 10 10 0 .55.45 1 1 1s1-.45 1-1C15 10.37 9.63 5 3 5z\"],\n \"feed-subscribed\": [\"M2.5 15a2.5 2.5 0 000 5 2.5 2.5 0 000-5zM3 2c1.76 0 3.44.31 5.01.87.03-.71.31-1.35.75-1.85C6.96.37 5.03 0 3 0c-.55 0-1 .45-1 1s.45 1 1 1zm10.32 4.67a.99.99 0 001.4 0l4.98-4.98c.19-.17.3-.42.3-.7 0-.55-.45-1-1-1a.99.99 0 00-.7.29l-4.27 4.27-2.28-2.28a.99.99 0 00-.7-.29c-.55 0-.99.45-.99 1 0 .28.11.52.29.7l2.97 2.99zM3 10c-.55 0-1 .45-1 1s.45 1 1 1c2.76 0 5 2.24 5 5 0 .55.45 1 1 1s1-.45 1-1c0-3.87-3.13-7-7-7zm13.94-2.69l-.82.82-.02-.02c-.2.2-.42.37-.67.51A14.8 14.8 0 0118 17c0 .55.45 1 1 1s1-.45 1-1c0-3.61-1.14-6.94-3.06-9.69zM3 5c-.55 0-1 .45-1 1s.45 1 1 1c5.52 0 10 4.48 10 10 0 .55.45 1 1 1s1-.45 1-1C15 10.37 9.63 5 3 5z\"],\n \"film\": [\"M19 2h-5v3H6V2H1c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h5v-3h8v3h5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zM4 17H2v-2h2v2zm0-3H2v-2h2v2zm0-3H2V9h2v2zm0-3H2V6h2v2zm0-3H2V3h2v2zm10 8H6V7h8v6zm4 4h-2v-2h2v2zm0-3h-2v-2h2v2zm0-3h-2V9h2v2zm0-3h-2V6h2v2zm0-3h-2V3h2v2z\"],\n \"filter\": [\"M18 1H2a1.003 1.003 0 00-.71 1.71L7 8.41V18a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71V8.41l5.71-5.71c.18-.17.29-.42.29-.7 0-.55-.45-1-1-1z\"],\n \"filter-keep\": [\"M15 2c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L5 7.41V16a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71V7.41l4.71-4.71c.18-.17.29-.42.29-.7zm4 11c-.28 0-.53.11-.71.29L15 16.59l-1.29-1.29A.965.965 0 0013 15a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0019 13z\"],\n \"filter-list\": [\"M15 2c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L5 7.41V16a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71V7.41l4.71-4.71c.18-.17.29-.42.29-.7zm-4 8c0 .55.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1h-7c-.55 0-1 .45-1 1zm8 7h-7c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1zm0-4h-7c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"filter-open\": [\"M15 2c0 .28-.11.53-.29.7L10 7.41V13c0 .28-.11.53-.29.71l-3 3A1.003 1.003 0 015 16V7.41L.29 2.71A1.003 1.003 0 011 1h13c.55 0 1 .45 1 1zm4.707 11.293a1 1 0 010 1.414l-4 4c-.63.63-1.707.184-1.707-.707v-8c0-.89 1.077-1.337 1.707-.707l4 4z\"],\n \"filter-remove\": [\"M15 2c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L5 7.41V16a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71V7.41l4.71-4.71c.18-.17.29-.42.29-.7zm2.91 13.5l1.79-1.79c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-1.79 1.79-1.79-1.79a1.003 1.003 0 00-1.42 1.42l1.79 1.79-1.79 1.79a1.003 1.003 0 001.42 1.42l1.79-1.79 1.79 1.79a1.003 1.003 0 001.42-1.42l-1.8-1.79z\"],\n \"flag\": [\"M3 3c-.55 0-1 .45-1 1v15c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1zm0-3c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm2 4.08v8.28c3.01-2.41 8.67 2.64 13 0V4.08C13.61 7.14 8.01 1 5 4.08z\"],\n \"flame\": [\"M11.622 0c0 1.71.49 3.077 1.472 4.103C16.364 6.496 18 9.23 18 12.308c0 3.418-1.962 5.983-5.887 7.692 2.887-3 2.453-4.23-.49-8C8.5 13.5 9 14.5 9.5 16.5c-1.048 0-2 0-2.5-.5 0 .684 1.197 2.5 1.952 4-3.924-1.026-8.123-7.18-6.651-7.692.981-.342 2.126-.171 3.434.513C4.1 6.667 6.062 2.393 11.622 0z\"],\n \"flash\": [\"M4.96 6.37a1.003 1.003 0 001.42-1.42l-2-2a1.07 1.07 0 00-.71-.28 1.003 1.003 0 00-.71 1.71l2 1.99zm9.37.3c.28 0 .53-.11.71-.29l2-2a1.003 1.003 0 00-1.42-1.42l-2 2a1.003 1.003 0 00.71 1.71zM10 5c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1S9 .45 9 1v3c0 .55.45 1 1 1zm-5 5c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1zm14-1h-3c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1zm-9-3c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm5.04 1.63a1.003 1.003 0 00-1.42 1.42l2 2a1.003 1.003 0 001.42-1.42l-2-2zM10 15c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1s1-.45 1-1v-3c0-.55-.45-1-1-1zm-4.33-1.67c-.28 0-.53.11-.71.29l-2 2a1.003 1.003 0 001.42 1.42l2-2a1.003 1.003 0 00-.71-1.71z\"],\n \"floppy-disk\": [\"M14 1h-3v5h3V1zm5.71 2.29l-3-3A.997.997 0 0016 0h-1v7H5V0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V4c0-.28-.11-.53-.29-.71zM17 19H3v-8c0-.55.45-1 1-1h12c.55 0 1 .45 1 1v8z\"],\n \"flow-branch\": [\"M14.425 7.953a3.98 3.98 0 01.562 2.045 3.98 3.98 0 01-.583 2.08L18 15.671V12.98c0-.248.097-.496.29-.689.379-.379 1.047-.38 1.426 0a.94.94 0 01.283.696l-.001 5.049a.957.957 0 01-.276.69.955.955 0 01-.69.273h-5.059a.971.971 0 01-.689-.289 1.026 1.026 0 010-1.417.972.972 0 01.69-.29h2.702l-3.634-3.573a3.998 3.998 0 01-5.924-2.431H1a1 1 0 010-2h6.12a3.998 3.998 0 015.96-2.409L16.665 3l-2.694-.001a.972.972 0 01-.689-.29 1.035 1.035 0 010-1.425.94.94 0 01.696-.283l5.05.001c.248 0 .497.083.69.276a.954.954 0 01.272.69l.001 5.052a.971.971 0 01-.29.689 1.028 1.028 0 01-1.419 0 .972.972 0 01-.29-.69V4.323l-3.567 3.63z\"],\n \"flow-end\": [\"M12 9.919a3.998 3.998 0 014-3.92c2.21 0 4 1.79 4 3.997a3.998 3.998 0 01-4 3.996 3.998 3.998 0 01-4-3.916.967.967 0 01-.28.612L7.685 14.71a.958.958 0 01-.686.285c-.536 0-.994-.461-.994-.997 0-.273.107-.528.283-.704l2.379-2.302H.98c-.537 0-.976-.46-.976-.996s.44-.992.976-.992h7.676L6.287 6.687a.957.957 0 01-.283-.686c0-.536.458-.996.994-.996.274 0 .51.1.686.285l4.027 4.024c.159.158.27.365.29.605z\"],\n \"flow-linear\": [\"M5.125 10.997H.976C.439 10.997 0 10.537 0 10c0-.536.44-.993.976-.993h4.148a4.002 4.002 0 017.752 0h3.776L14.293 6.69a.962.962 0 01-.285-.687c0-.537.46-1.001.996-1.001a.96.96 0 01.698.3l4.005 4.015c.176.176.293.41.293.683a.972.972 0 01-.283.693L15.702 14.7a.997.997 0 01-.698.297c-.537 0-.996-.453-.996-.99 0-.273.107-.517.283-.692l2.371-2.318h-3.787a4.002 4.002 0 01-7.75 0z\"],\n \"flow-review\": [\"M6.13 9.004A4.005 4.005 0 0110.012 6c1.87 0 3.44 1.278 3.881 3.005h2.768l-2.354-2.317a.97.97 0 01-.283-.691c0-.536.462-.995 1-.995.273 0 .517.107.693.283l4 4.041a.97.97 0 01.284.692.956.956 0 01-.293.682l-3.991 3.997a.944.944 0 01-.694.292c-.537 0-1-.46-1-.997a.97.97 0 01.284-.692l2.345-2.29h-2.765a4.005 4.005 0 01-3.875 2.981 4.005 4.005 0 01-3.874-2.981H3.349l2.376 2.308a.97.97 0 01.283.691 1 1 0 01-.994.983.989.989 0 01-.713-.291L.293 10.699A.956.956 0 010 10.017a.97.97 0 01.283-.692l4.03-4.037a.996.996 0 01.701-.283c.537 0 .994.464.994 1a.97.97 0 01-.283.691L3.34 9.004h2.79z\"],\n \"flow-review-branch\": [\"M13.04 13.424c-.6.36-1.302.568-2.052.568a4 4 0 01-3.868-2.999H3.342l2.372 2.31c.176.176.283.42.283.694 0 .537-.452.998-.988.998a.935.935 0 01-.691-.289L.292 10.683A.96.96 0 010 9.999c0-.274.107-.518.283-.694l4.035-4.04a.973.973 0 01.691-.288c.536 0 .988.47.988 1.007a.975.975 0 01-.283.694L3.332 8.984h3.786a4 4 0 013.87-3.006c.771 0 1.492.22 2.102.599l3.565-3.57-2.538-.003a.974.974 0 01-.69-.29c-.38-.38-.38-1.052-.002-1.431A.94.94 0 0114.122 1l4.896.005a.96.96 0 01.69.277c.193.193.27.442.27.69l.005 4.9a.971.971 0 01-.289.69 1.023 1.023 0 01-1.416 0 .975.975 0 01-.29-.691l-.003-2.54-3.554 3.62c.351.596.553 1.291.553 2.034 0 .763-.213 1.477-.583 2.084l3.595 3.595.003-2.54c0-.249.097-.497.29-.69.38-.38 1.05-.381 1.429-.002a.94.94 0 01.282.697l-.005 4.9a.927.927 0 01-.277.675.974.974 0 01-.69.291L13.974 19a.97.97 0 01-.69-.29 1.03 1.03 0 01.002-1.42.974.974 0 01.69-.29l2.696-.003-3.632-3.573z\"],\n \"flows\": [\"M17.5 7.93a2.5 2.5 0 00-2.45 2h-2.3l-4.01-4-.75.75 3.26 3.25h-6.3a2.5 2.5 0 100 1h6.3l-3.26 3.25.75.75 4.01-4h2.3a2.5 2.5 0 102.45-3z\"],\n \"folder-close\": [\"M0 17c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V7H0v10zM19 4H9.41l-1.7-1.71A.997.997 0 007 2H1c-.55 0-1 .45-1 1v3h20V5c0-.55-.45-1-1-1z\"],\n \"folder-new\": [\"M12.994 7c0 1.655 1.344 3 2.998 3a3.002 3.002 0 002.999-3H20v10c0 .55-.45 1-1 1H1.01c-.55 0-1-.45-1-1V7h12.984zM10.76 6H0V3c0-.55.45-1 1-1h3.998c.28 0 .53.11.71.29L7.415 4h2.579c0 .768.29 1.469.765 2zm8.23-3c.55 0 1 .45 1 1s-.45 1-1 1h-1.998v2c0 .55-.45 1-1 1s-1-.45-1-1V5h-1.998c-.55 0-1-.45-1-1s.45-1 1-1h1.999V1c0-.55.45-1 .999-1 .55 0 1 .45 1 1v2h1.999z\"],\n \"folder-open\": [\"M20 9c0-.55-.45-1-1-1H5c-.43 0-.79.27-.93.65h-.01l-3 8h.01c-.04.11-.07.23-.07.35 0 .55.45 1 1 1h14c.43 0 .79-.27.93-.65h.01l3-8h-.01c.04-.11.07-.23.07-.35zM3.07 7.63C3.22 7.26 3.58 7 4 7h14V5c0-.55-.45-1-1-1H8.41l-1.7-1.71A.997.997 0 006 2H1c-.55 0-1 .45-1 1v12.31l3.07-7.68z\"],\n \"folder-shared\": [\"M11 4H9.41l-1.7-1.71A.997.997 0 007 2H1c-.55 0-1 .45-1 1v3h11.78C11.3 5.47 11 4.77 11 4zm8-1h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L12.3 9.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 6.41V9c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1zm-2.46 7.7l-1.42 1.42a2.996 2.996 0 11-4.24-4.24l.88-.88H0v10c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-5.18c-.31.11-.65.18-1 .18-1.02 0-1.92-.52-2.46-1.3z\"],\n \"folder-shared-open\": [\"M3.07 7.63C3.22 7.26 3.58 7 4 7h7.76l.54-.54A2.97 2.97 0 0111 4H8.41l-1.7-1.71A.997.997 0 006 2H1c-.55 0-1 .45-1 1v12.31l3.07-7.68zm13.47 3.07l-1.42 1.42A2.996 2.996 0 0110 10c0-.77.3-1.47.78-2H5c-.43 0-.79.27-.93.65h-.01l-3 8h.01c-.04.11-.07.23-.07.35 0 .55.45 1 1 1h14c.43 0 .79-.27.93-.65h.01l2.01-5.36c-1-.01-1.88-.52-2.41-1.29zM19 3h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L12.3 9.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 6.41V9c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"follower\": [\"M11.54 15.92c-1.48-.65-1.28-1.05-1.33-1.59-.01-.07-.01-.15-.01-.23.51-.45.92-1.07 1.19-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.34-.07.54-.44.61-.78.08-.14.23-.48.2-.87-.05-.5-.25-.73-.47-.82v-.09c0-.63-.06-1.55-.17-2.15-.02-.17-.06-.33-.11-.5a3.69 3.69 0 00-1.29-1.86C9.69 4.25 8.8 4 8.01 4c-.8 0-1.69.25-2.32.73-.61.47-1.06 1.13-1.28 1.86-.05.17-.09.33-.11.5-.12.6-.18 1.51-.18 2.14v.08c-.23.09-.44.32-.49.83-.04.39.12.73.2.87.08.35.28.72.63.78.04.17.09.33.15.48 0 .01.01.02.01.03l.01.01c.27.72.7 1.35 1.22 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.38 1.59-1.48.65-3.71 1.35-4.16 2.4C-.16 19.38.02 20 .02 20h15.95s.18-.62-.27-1.67c-.46-1.06-2.68-1.75-4.16-2.41zm8.15-12.63l-3-3a.956.956 0 00-.7-.29 1.003 1.003 0 00-.71 1.71L16.58 3H13c-.55 0-1 .45-1 1s.45 1 1 1h3.58l-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.3-.71z\"],\n \"following\": [\"M11.55 15.92c-1.48-.65-1.28-1.05-1.33-1.59-.01-.07-.01-.15-.01-.23.51-.45.92-1.07 1.19-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.34-.07.54-.44.61-.78.08-.14.23-.48.2-.87-.05-.5-.25-.73-.47-.82v-.09c0-.63-.06-1.55-.17-2.15-.02-.17-.06-.33-.11-.5a3.69 3.69 0 00-1.29-1.86C9.7 4.25 8.81 4 8.02 4c-.79 0-1.68.25-2.31.73-.61.47-1.07 1.13-1.29 1.86-.05.16-.09.33-.11.5-.12.6-.18 1.51-.18 2.14v.08c-.23.09-.44.32-.48.83-.04.39.12.73.2.87.08.35.28.72.63.78.04.17.09.33.15.48 0 .01.01.02.01.03l.01.01c.27.72.7 1.35 1.22 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.38 1.59C3 16.56.77 17.26.32 18.31-.15 19.38.04 20 .04 20h15.95s.18-.62-.27-1.67c-.46-1.06-2.69-1.75-4.17-2.41zM19 3h-3.58l1.29-1.29A1.003 1.003 0 0015.29.29l-3 3c-.17.18-.28.43-.28.71 0 .28.11.53.29.71l3 3c.18.18.43.29.7.29a1.003 1.003 0 00.71-1.71L15.42 5H19c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"font\": [\"M17.93 18.64l-7-18C10.78.27 10.42 0 10 0s-.78.27-.93.64l-7 18c-.04.11-.07.23-.07.36 0 .55.45 1 1 1 .42 0 .78-.27.93-.64L6.41 13h7.19l2.47 6.36c.15.37.51.64.93.64.55 0 1-.45 1-1 0-.13-.03-.25-.07-.36zM7.18 11L10 3.76 12.82 11H7.18z\"],\n \"fork\": [\"M16.71 11.29a1.003 1.003 0 00-1.42 1.42l1.3 1.29h-2.17l-8-8h10.17L15.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3a1.003 1.003 0 00-1.42 1.42L16.59 4H1c-.55 0-1 .45-1 1s.45 1 1 1h2.59l9.71 9.71c.17.18.42.29.7.29h2.59l-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3z\"],\n \"form\": [\"M2 13v4h4v-4H2zm-1-2h6c.55 0 1 .45 1 1v6c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1v-6c0-.55.45-1 1-1zm11-7h7c.55 0 1 .45 1 1s-.45 1-1 1h-7c-.55 0-1-.45-1-1s.45-1 1-1zM8 1a1.003 1.003 0 01.71 1.71l-5 6C3.53 8.89 3.28 9 3 9s-.53-.11-.71-.29l-2-2a1.003 1.003 0 011.42-1.42L3 6.59l4.29-5.3C7.47 1.11 7.72 1 8 1zm4 13h7c.55 0 1 .45 1 1s-.45 1-1 1h-7c-.55 0-1-.45-1-1s.45-1 1-1z\"],\n \"full-circle\": [\"M9.96 0a10 10 0 100 20 10 10 0 100-20z\"],\n \"full-stacked-chart\": [\"M15 16h2c.55 0 1-.45 1-1v-5h-4v5c0 .55.45 1 1 1zM12 2c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v4h4V2zm6 4h-4v3h4V6zm0-4c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v3h4V2zm-6 5H8v5h4V7zm-9 9h2c.55 0 1-.45 1-1v-3H2v3c0 .55.45 1 1 1zm6 0h2c.55 0 1-.45 1-1v-2H8v2c0 .55.45 1 1 1zm10 1H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM6 2c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v3h4V2zm0 4H2v5h4V6z\"],\n \"fullscreen\": [\"M3.41 2H6c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v5c0 .55.45 1 1 1s1-.45 1-1V3.41L7.29 8.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L3.41 2zM8 11c-.28 0-.53.11-.71.29L2 16.59V14c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1H3.41l5.29-5.29c.19-.18.3-.43.3-.71 0-.55-.45-1-1-1zM19 0h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L11.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 3.41V6c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm0 13c-.55 0-1 .45-1 1v2.59l-5.29-5.29A.965.965 0 0012 11a1.003 1.003 0 00-.71 1.71l5.3 5.29H14c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1z\"],\n \"function\": [\"M10.14 5.82H8.73c.4-1.66.94-2.87 1.6-3.64.4-.48.8-.72 1.18-.72.08 0 .14.02.19.07.05.05.07.1.07.18 0 .07-.05.19-.16.37s-.16.36-.16.52c0 .23.08.43.25.59a.9.9 0 00.64.25c.28 0 .51-.1.7-.3.19-.2.28-.47.28-.81 0-.39-.14-.7-.42-.94-.28-.24-.74-.36-1.36-.36-.97 0-1.86.29-2.65.87-.79.56-1.54 1.52-2.26 2.85-.24.46-.48.75-.7.88-.22.13-.57.19-1.06.19l-.32 1.15H5.9l-1.99 7.85c-.33 1.29-.56 2.09-.67 2.39-.17.44-.43.81-.77 1.12a.74.74 0 01-.5.19c-.05 0-.1-.02-.14-.05l-.04-.07c0-.03.05-.1.15-.2.1-.1.15-.26.15-.47 0-.23-.08-.42-.23-.57-.16-.15-.38-.23-.67-.23-.35 0-.63.1-.85.29-.21.2-.32.43-.32.7 0 .29.13.54.39.75.25.22.65.33 1.2.33.88 0 1.66-.23 2.33-.69.68-.46 1.27-1.17 1.78-2.14.51-.96 1.03-2.52 1.56-4.66l1.14-4.54H9.8l.34-1.15zm6.8 1.95c.25-.2.51-.29.78-.29.1 0 .29.04.56.11.27.08.51.11.72.11.29 0 .52-.1.72-.3.18-.19.28-.45.28-.77 0-.33-.1-.6-.29-.8-.19-.2-.47-.29-.82-.29-.32 0-.62.08-.9.23-.28.15-.64.49-1.08 1-.33.38-.81 1.05-1.44 2a9.712 9.712 0 00-1.31-3.22l-3.4.59-.07.37c.25-.05.47-.08.64-.08.34 0 .62.15.84.44.35.46.84 1.85 1.46 4.19-.49.66-.82 1.09-1 1.3-.3.33-.55.54-.74.64-.15.08-.32.12-.51.12-.14 0-.38-.08-.7-.24-.22-.1-.42-.16-.59-.16-.33 0-.6.11-.82.32-.21.22-.32.49-.32.83 0 .31.1.57.3.77.2.2.47.29.8.29.32 0 .63-.07.92-.21.29-.14.64-.43 1.08-.88.43-.45 1.03-1.16 1.79-2.14.29.93.55 1.61.76 2.03.21.42.46.73.74.91.28.19.62.28 1.04.28.4 0 .81-.15 1.23-.44.55-.38 1.1-1.04 1.68-1.97l-.35-.21c-.39.55-.68.89-.87 1.03-.12.09-.27.13-.44.13-.2 0-.4-.13-.59-.38-.33-.43-.77-1.63-1.33-3.6.47-.86.89-1.44 1.23-1.71z\"],\n \"gantt-chart\": [\"M4 7h5c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm3 2v1c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1zm12 3h-6c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm0 4H2V3c0-.55-.45-1-1-1s-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"geofence\": [\"M8 11l.075.003.126.017.111.03.111.044.098.052.096.067.09.08c.036.035.068.073.097.112l.071.11.054.114.035.105.03.148L9 12V18a1 1 0 01-1.993.117L7 18v-3.586l-5.293 5.293a1 1 0 01-1.497-1.32l.083-.094L5.584 13h-3.58a1 1 0 01-.117-1.993L2.004 11H8zm3.018-11a1.003 1.003 0 01.39.087l.12.063.031.02.1.078 8.027 7.026.062.064.068.086.044.068.064.128.04.117.024.113.011.108v.1l-.007.073-.019.103-.037.121-.039.09-.05.087-4.996 7.994c-.06.097-.137.183-.226.254l-.093.067-.095.053-.087.037-.125.037a1.018 1.018 0 01-.218.026H11v-5a3 3 0 00-2.824-2.995L8 9H3V6a1 1 0 01.321-.734l.098-.08 7-5a1.01 1.01 0 01.45-.178L11.018 0z\"],\n \"geolocation\": [\"M0 8.33l9.17 2.5 2.5 9.17L20 0z\"],\n \"geosearch\": [\"M8 18.88c-3.79 0-6.88-3.09-6.88-6.88 0-.61.08-1.22.23-1.79.03.01.06-.01.1-.01h.09v.55c0 .23.21.42.44.42.04 0 .09-.01.12-.02l.9.88c.09.09.23.09.32 0s.09-.23 0-.32l-.86-.9c0-.02.05-.04.05-.07v-.13c0-.18.1-.25.29-.41h.53c.1 0 .19-.01.27-.05.01-.01.02 0 .03-.01.02-.01.03-.02.05-.04.01-.01.02-.01.02-.02l.02-.02 1.13-1.13c-.16-.32-.3-.65-.42-.99h-.64v-.53c0-.01.06.06.06-.1h.38c-.04-.16-.08-.32-.1-.48h-.71c.2-.16.42-.31.64-.45C4.02 6.09 4 5.8 4 5.5c0-.14.01-.28.02-.43C1.62 6.46 0 9.04 0 12c0 4.41 3.59 8 8 8 3.87 0 7.09-2.77 7.82-6.44l-.97-1.1c-.26 3.57-3.23 6.42-6.85 6.42zm-2.12-3.67v-.35h.15c.29 0 .49-.23.49-.53v-.68c0-.01.01-.01 0-.02L4.71 11.8h-.77c-.29 0-.47.24-.47.53v2c0 .29.18.53.47.53h.33v2.02c0 .28.28.51.56.51s.56-.23.56-.51v-1.22h-.01c.29 0 .5-.16.5-.45zm13.83-2.92l-3.68-3.68c.14-.21.27-.42.38-.65.02-.04.04-.07.05-.11.11-.22.2-.45.28-.69v-.01c.07-.24.13-.48.17-.73l.03-.17c.04-.24.06-.49.06-.75C17 2.46 14.54 0 11.5 0S6 2.46 6 5.5 8.46 11 11.5 11c.26 0 .51-.02.76-.06l.17-.03c.25-.04.49-.1.73-.17h.01c.24-.08.47-.17.69-.28.04-.02.07-.04.11-.05.23-.11.44-.24.65-.38l3.68 3.68c.17.18.42.29.7.29a1.003 1.003 0 00.71-1.71zM11.5 9.5c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm1.93 5.33v-.65c0-.11-.13-.21-.24-.21-.11 0-.24.09-.24.21v.65c0 .11.13.21.24.21.11 0 .24-.1.24-.21zm-2.41.67h.83c.29 0 .46-.21.46-.5v-1.86l.23-.22c-.34.05-.69.08-1.04.08-.36 0-.7-.03-1.05-.08.03.05.06.1.08.16V15c.01.29.2.5.49.5z\"],\n \"git-branch\": [\"M15 2c-1.66 0-3 1.34-3 3 0 1.3.84 2.4 2 2.82V9c0 1.1-.9 2-2 2H8c-.73 0-1.41.21-2 .55V5.82C7.16 5.4 8 4.3 8 3c0-1.66-1.34-3-3-3S2 1.34 2 3c0 1.3.84 2.4 2 2.82v8.37C2.84 14.6 2 15.7 2 17c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.25-.77-2.3-1.85-2.75C6.45 13.52 7.16 13 8 13h4c2.21 0 4-1.79 4-4V7.82C17.16 7.4 18 6.3 18 5c0-1.66-1.34-3-3-3zM5 2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 16c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM15 6c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"git-commit\": [\"M19 9h-4.1a5 5 0 00-9.8 0H1c-.55 0-1 .45-1 1s.45 1 1 1h4.1a5 5 0 009.8 0H19c.55 0 1-.45 1-1s-.45-1-1-1zm-9 4c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\"],\n \"git-merge\": [\"M15 8c-1.3 0-2.4.84-2.82 2H11c-2.49 0-4.54-1.83-4.92-4.21A2.995 2.995 0 005 0C3.34 0 2 1.34 2 3c0 1.3.84 2.4 2 2.81v8.37C2.84 14.6 2 15.7 2 17c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.3-.84-2.4-2-2.82V9.86C7.27 11.17 9.03 12 11 12h1.18A2.996 2.996 0 0018 11c0-1.66-1.34-3-3-3zM5 18c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM5 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm10 8c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"git-new-branch\": [\"M17 3h-1V2c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V5h1c.55 0 1-.45 1-1s-.45-1-1-1zm-3 4.86V9c0 1.1-.9 2-2 2H8c-.73 0-1.41.21-2 .55V5.82C7.16 5.4 8 4.3 8 3c0-1.66-1.34-3-3-3S2 1.34 2 3c0 1.3.84 2.4 2 2.82v8.37C2.84 14.6 2 15.7 2 17c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.25-.77-2.3-1.85-2.75C6.45 13.52 7.16 13 8 13h4c2.21 0 4-1.79 4-4V7.86c-.32.08-.65.14-1 .14s-.68-.06-1-.14zM5 2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 16c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"git-pull\": [\"M17 14.18V7c0-2.21-1.79-4-4-4h-2.59l1.29-1.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C7.11 3.47 7 3.72 7 4c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L10.41 5H13c1.1 0 2 .9 2 2v7.18A2.996 2.996 0 0016 20c1.66 0 3-1.34 3-3 0-1.3-.84-2.4-2-2.82zM16 18c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM4 1C2.34 1 1 2.34 1 4c0 1.3.84 2.4 2 2.82v7.37C1.84 14.6 1 15.7 1 17c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.3-.84-2.4-2-2.82V6.82C6.16 6.4 7 5.3 7 4c0-1.66-1.34-3-3-3zm0 17c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM4 5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"git-push\": [\"M15 11c0-.28-.11-.53-.29-.71l-3-3C11.53 7.11 11.28 7 11 7s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42l1.29-1.3V19c0 .55.45 1 1 1s1-.45 1-1v-8.59l1.29 1.29c.18.19.43.3.71.3.55 0 1-.45 1-1zm4-11H1C.45 0 0 .45 0 1v16c0 .55.45 1 1 1h7v-2H2v-2h6v-1H4V2h14v11h-4v1h4v2h-4v2h5c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM5 8h2V6H5v2zm2-5H5v2h2V3z\"],\n \"git-repo\": [\"M7 3H5v2h2V3zm0 6H5v2h2V9zm0-3H5v2h2V6zm12-6H1C.45 0 0 .45 0 1v16c0 .55.45 1 1 1h4v2l2-1 2 1v-2h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 16H9v-1H5v1H2v-2h16v2zm0-3H4V2h14v11z\"],\n \"glass\": [\"M17 6V0H3v6c0 3.53 2.61 6.43 6 6.92V18H6c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1h-3v-5.08c3.39-.49 6-3.39 6-6.92z\"],\n \"globe\": [\"M7.53 4.37c.1-.1.1-.26 0-.35l-.68-.68c-.1-.1-.25-.1-.35 0-.1.1-.1.26 0 .35l.68.68c.1.1.25.1.35 0zm3.17.06h.3c.09 0 .16-.01.16-.1 0-.09-.07-.1-.16-.1h-.3c-.09 0-.16.01-.16.1s.07.1.16.1zm.98 1.15c.09 0 .19-.08.19-.17v-.42c0-.09-.1-.17-.19-.17s-.19.08-.19.17v.42c0 .09.1.17.19.17zm-6.5 4.19c-.35 0-.56.28-.56.63v2.37c0 .35.21.62.56.62h.39v2.4c0 .34.33.61.67.61s.67-.27.67-.61v-1.44h-.02c.35 0 .6-.19.6-.54v-.41h.18c.35 0 .58-.28.58-.62v-.81c0-.01.01-.01 0-.02L6.1 9.77h-.92zM10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8 0-.74.11-1.46.3-2.14h.03v.65c0 .28.25.5.53.5.05 0 .1-.01.15-.02l1.05 1.05c.1.11.28.11.38 0 .1-.1.11-.27 0-.38L3.42 8.59c0-.03.05-.05.05-.08v-.16c0-.22.12-.3.34-.49h.63c.12 0 .23-.01.32-.07.01-.01.02 0 .03-.01.02-.02.04-.03.06-.04.01-.01.02-.01.03-.02l.02-.02 2.15-2.15c.24-.24.24-.63 0-.86-.23-.24-.62-.19-.86.04l-.41.46H5v-.64c0-.01.07.07.07-.12h.87c.17 0 .3-.12.3-.29 0-.17-.13-.29-.3-.29H4.88C6.27 2.7 8.05 2 10 2s3.73.7 5.12 1.86h-1.58l-.01-.04c-.06 0-.12 0-.17.04l-.71.7c-.09.09-.09.23 0 .31.09.09.23.09.32 0l.56-.6.01-.03h.34c0 .19-.1.13-.1.16v.1c0 .29-.2.5-.49.5h-.51c-.25 0-.52.28-.52.54v.23h-.12c-.16 0-.27.08-.27.24v.33h-.32c-.23 0-.41.15-.41.38 0 .22.18.35.41.35.1 0 .19.04.26-.16l.06.01.66-.59h.23l.53.5c.04.04.11.03.16-.01.04-.04.04-.16 0-.2L13 6.15h.32l.12.16c.25.25.65.23.89-.02l.12-.14H15c.02 0 .11.07.11.07v.33s-.06-.01-.07-.01h-.49c-.16 0-.28.13-.28.29 0 .16.13.29.28.29h.49c.01 0 .07-.01.07-.01v.2c-.19.28-.33.57-.62.57h-1.28s0-.01-.01-.01l-.58-.58a.622.622 0 00-.89 0l-.58.58s0 .01-.01.01h-.34c-.35 0-.67.28-.67.63v1.25c0 .35.32.61.67.61h1.22c.46.19.78.48.97.94v2.28c0 .35.23.6.58.6h.98c.35 0 .54-.25.54-.6v-2.2l1.21-1.17.04-.02.02-.01h.04c.1-.11.2-.26.2-.42V8.49c0-.25-.22-.44-.42-.63h.58c.02.38.29.57.63.57h.43c.13.51.18 1.03.18 1.57 0 4.42-3.58 8-8 8zm6.16-5.65c-.14 0-.29.11-.29.25v.77c0 .14.15.25.29.25.14 0 .29-.11.29-.25v-.77c0-.14-.15-.25-.29-.25zM10.5 3.48c0-.34-.28-.57-.62-.57h-.74c-.34 0-.57.25-.57.59 0 .05-.13.06.06.1v.64c0 .2.09.36.29.36.2 0 .29-.16.29-.36v-.19h.68c.33 0 .61-.23.61-.57z\"],\n \"globe-network\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm7.39 7h-3.63c-.31-1.99-.92-3.66-1.72-4.73 2.45.65 4.41 2.42 5.35 4.73zM13 10c0 .69-.04 1.36-.11 2H7.11a18.419 18.419 0 010-4h5.77c.08.64.12 1.31.12 2zm-3-8c1.07 0 2.25 2.05 2.75 5h-5.5c.5-2.95 1.68-5 2.75-5zm-2.04.27C7.16 3.34 6.55 5.01 6.24 7H2.61c.94-2.31 2.9-4.08 5.35-4.73zM2 10c0-.69.11-1.36.28-2h3.83a18.419 18.419 0 000 4H2.28c-.17-.64-.28-1.31-.28-2zm.61 3h3.63c.31 1.99.92 3.66 1.72 4.73A7.996 7.996 0 012.61 13zM10 18c-1.07 0-2.25-2.05-2.75-5h5.5c-.5 2.95-1.68 5-2.75 5zm2.04-.27c.79-1.07 1.4-2.74 1.72-4.73h3.63a7.996 7.996 0 01-5.35 4.73zM13.89 12a18.419 18.419 0 000-4h3.83c.17.64.28 1.31.28 2s-.11 1.36-.28 2h-3.83z\"],\n \"graph\": [\"M17.5 4A2.5 2.5 0 0015 6.5c0 .06.01.12.02.18l-1.9.84C12.38 6.6 11.27 6 10 6c-.83 0-1.59.25-2.23.68L4.91 4.14c.05-.21.09-.42.09-.64a2.5 2.5 0 00-5 0A2.5 2.5 0 002.5 6c.42 0 .81-.11 1.16-.3l2.79 2.48C6.17 8.73 6 9.34 6 10c0 1.41.73 2.64 1.83 3.35l-.56 1.67A2.498 2.498 0 005 17.5a2.5 2.5 0 005 0c0-.74-.32-1.39-.83-1.85l.56-1.68c.09.01.18.03.27.03 2.21 0 4-1.79 4-4 0-.22-.03-.44-.07-.65l2.02-.9c.43.34.96.55 1.55.55a2.5 2.5 0 000-5z\"],\n \"graph-remove\": [\"M17.41 4l2.29-2.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L16 2.59 13.71.3A.965.965 0 0013 0a1.003 1.003 0 00-.71 1.71L14.59 4 12.3 6.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L16 5.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L17.41 4zM19 10c-.83 0-1.55-.36-2.09-.91l-.03.03-.88-.88-.88.88a2.996 2.996 0 11-4.24-4.24l.88-.88-.88-.88.03-.03C10.36 2.55 10 1.83 10 1c0-.35.07-.68.18-.99-.06 0-.12-.01-.18-.01C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10c0-.06-.01-.12-.01-.18-.31.11-.64.18-.99.18z\"],\n \"greater-than\": [\"M12.838 10l-9.154 3.051a1 1 0 00.632 1.898l12-4c.912-.304.912-1.594 0-1.898l-12-4a1 1 0 00-.632 1.898L12.838 10z\"],\n \"greater-than-or-equal-to\": [\"M3.684 11.051a1 1 0 00.632 1.898l12-4c.912-.304.912-1.594 0-1.898l-12-4a1 1 0 00-.632 1.898L12.838 8l-9.154 3.051zM4 15h12a1 1 0 110 2H4a1 1 0 010-2z\"],\n \"grid\": [\"M19 11c.55 0 1-.45 1-1s-.45-1-1-1h-2V5h2c.55 0 1-.45 1-1s-.45-1-1-1h-2V1c0-.55-.45-1-1-1s-1 .45-1 1v2h-4V1c0-.55-.45-1-1-1S9 .45 9 1v2H5V1c0-.55-.45-1-1-1S3 .45 3 1v2H1c-.55 0-1 .45-1 1s.45 1 1 1h2v4H1c-.55 0-1 .45-1 1s.45 1 1 1h2v4H1c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h4v2c0 .55.45 1 1 1s1-.45 1-1v-2h4v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1h-2v-4h2zM9 15H5v-4h4v4zm0-6H5V5h4v4zm6 6h-4v-4h4v4zm0-6h-4V5h4v4z\"],\n \"grid-view\": [\"M0 19c0 .55.45 1 1 1h8v-9H0v8zM0 1v8h9V0H1C.45 0 0 .45 0 1zm19-1h-8v9h9V1c0-.55-.45-1-1-1zm-8 20h8c.55 0 1-.45 1-1v-8h-9v9z\"],\n \"group-objects\": [\"M6 7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm8-3H6c-3.31 0-6 2.69-6 6s2.69 6 6 6h8c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 11H6c-2.76 0-5-2.24-5-5s2.24-5 5-5h8c2.76 0 5 2.24 5 5s-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"],\n \"grouped-bar-chart\": [\"M12 16h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1h-1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1zm7 1H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm-3-1h1c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1h-1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1zm-9 0h1c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1zm-4 0h1c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1z\"],\n \"hand\": [\"M17 5c-.42 0-.79.27-.93.64L14.38 10h-.77l1.34-6.67c.03-.1.05-.21.05-.33a.998.998 0 00-1.98-.19h-.01L11.57 10H11V1c0-.55-.45-1-1-1S9 .45 9 1v9h-.2L6.97 2.76a.997.997 0 00-1.73-.41l-.03.03c-.01.02-.02.03-.03.04-.01.02-.01.03-.02.04v.01c-.01.01-.02.02-.02.03v.01c-.02.01-.02.02-.03.03 0 0 0 .01-.01.01 0 .01 0 .02-.01.03 0 0 0 .01-.01.01 0 .01-.01.02-.01.03 0 0 0 .01-.01.01 0 .01-.01.02-.01.03 0 .01 0 .01-.01.02 0 .01-.01.02-.01.03 0 .01 0 .01-.01.02 0 .01-.01.02-.01.03v.02c0 .01 0 .02-.01.03V3c0 .05 0 .09.01.14l1.45 10.25L6 12.7v.01L3.84 9.45h-.01A.98.98 0 003 9c-.55 0-1 .45-1 1 0 .2.06.39.17.55L6 18.44C7.06 19.4 8.46 20 10 20c3.31 0 6-2.69 6-6v-1.84l.01-.03v-.06l1.94-5.75A1.003 1.003 0 0017 5z\"],\n \"hand-down\": [\"M17.68 9.84C15.91 9 14.27 6.49 13.45 4.9 12.41 2.43 12.21 0 7.87 0 5.49 0 3.95.76 3.05 2.65 2.31 4.2 2 5.48 2 9.79v.99c0 .82.69 1.48 1.54 1.48.38 0 .73-.14 1-.36.19.6.78 1.05 1.47 1.05.47 0 .89-.2 1.17-.52.26.47.77.79 1.36.79.65 0 1.2-.39 1.43-.93l.03.77v5.44c0 .48.23.91.59 1.18.21.19.5.32.85.32h.06c.83 0 1.5-.67 1.5-1.5v-8.24l.01-.67c.85.98 1.92 1.76 3.24 1.89 1.79.19 2.09-1.33 1.43-1.64z\"],\n \"hand-left\": [\"M15.1 6.54c-1.58-.81-4.09-2.46-4.94-4.23-.31-.65-1.82-.35-1.64 1.43.13 1.33.91 2.4 1.89 3.24L9.74 7H1.5C.67 7 0 7.67 0 8.5v.06c0 .36.13.64.32.85.27.36.7.59 1.18.59h5.44l.78.01c-.54.23-.93.78-.93 1.43 0 .59.32 1.1.79 1.36-.32.28-.52.7-.52 1.17 0 .69.44 1.28 1.05 1.47-.22.27-.36.62-.36 1 0 .85.66 1.54 1.48 1.54h.99c4.31 0 5.59-.31 7.14-1.05 1.89-.9 2.65-2.44 2.65-4.82-.01-4.32-2.44-4.52-4.91-5.57z\"],\n \"hand-right\": [\"M20 8.5c0-.83-.67-1.5-1.5-1.5h-8.24l-.67-.01c.98-.85 1.76-1.92 1.89-3.24.18-1.79-1.33-2.08-1.65-1.43-.84 1.76-3.35 3.41-4.93 4.23C2.43 7.59 0 7.79 0 12.13c0 2.38.76 3.92 2.65 4.82C4.2 17.69 5.48 18 9.79 18h.99c.82 0 1.48-.69 1.48-1.54 0-.38-.14-.73-.36-1 .6-.19 1.05-.78 1.05-1.47 0-.47-.2-.89-.52-1.17.47-.26.79-.77.79-1.36 0-.65-.39-1.2-.93-1.43l.77-.03h5.44c.48 0 .91-.23 1.18-.59.19-.21.32-.49.32-.85v-.03-.03z\"],\n \"hand-up\": [\"M16.46 7.74c-.38 0-.73.14-1 .36-.19-.6-.78-1.05-1.47-1.05-.47 0-.89.2-1.17.52-.26-.47-.77-.79-1.36-.79-.65 0-1.2.39-1.43.93L10 6.94V1.5c0-.48-.23-.91-.59-1.18C9.2.13 8.92 0 8.56 0H8.5C7.67 0 7 .67 7 1.5v8.24l-.01.67c-.84-.98-1.92-1.76-3.24-1.89-1.79-.18-2.08 1.33-1.43 1.65 1.77.84 3.41 3.35 4.23 4.94 1.05 2.47 1.25 4.9 5.58 4.9 2.38 0 3.92-.76 4.82-2.65.74-1.56 1.05-2.84 1.05-7.15v-.99c0-.81-.69-1.48-1.54-1.48z\"],\n \"hat\": [\"M18.5 13c1.118 0 1.466.534 1.498 1.366L20 14.5v.5c0 1.945-5.69 3-10 3S0 16.945 0 15v-.5c0-.908.323-1.5 1.5-1.5.895 0 3.5 1.2 8.5 1.2l.411-.003C15.143 14.134 17.631 13 18.5 13zm-5-10c1.725 0 2.954 2.729 3.688 8.186-1.455.263-3.805.72-6.392.801l-.434.01L10 12c-2.896 0-5.585-.524-7.189-.814C3.546 5.73 4.775 3 6.5 3 8.6 3 8.329 5.5 10 5.5S11.5 3 13.5 3z\"],\n \"header\": [\"M16 1c-.55 0-1 .45-1 1v7H5V2c0-.55-.45-1-1-1s-1 .45-1 1v16c0 .55.45 1 1 1s1-.45 1-1v-7h10v7c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z\"],\n \"header-one\": [\"M10 0c.55 0 1 .45 1 1v14c0 .55-.45 1-1 1s-1-.45-1-1V9H2v6c0 .55-.45 1-1 1s-1-.45-1-1V1c0-.55.45-1 1-1s1 .45 1 1v6h7V1c0-.55.45-1 1-1zm7.4 10.77c.17-.2.29-.46.34-.77H19v10h-1.5v-7.11H15v-1.24c.32 0 .63-.03.93-.08.31-.06.58-.16.83-.29.26-.12.47-.3.64-.51z\"],\n \"header-three\": [\"M10.989 1c0-.55-.45-1-.999-1-.55 0-.999.45-.999 1v6H1.998V1c0-.55-.45-1-.999-1C.449 0 0 .45 0 1v14c0 .55.45 1 .999 1 .55 0 .999-.45.999-1V9h6.993v6c0 .55.45 1 .999 1 .55 0 .999-.45.999-1V1zm7.461 13.645c.49.11.87.38 1.14.82.27.44.41.97.41 1.61a3 3 0 01-.24 1.23c-.16.36-.38.67-.66.92-.27.25-.59.44-.96.58-.37.14-.75.21-1.16.21-.5 0-.93-.08-1.3-.24a2.55 2.55 0 01-.93-.68c-.25-.29-.44-.65-.57-1.06-.13-.42-.2-.88-.21-1.38h1.39c-.02.58.11 1.07.38 1.46.28.39.68.58 1.23.58.47 0 .86-.15 1.17-.45.31-.3.47-.72.47-1.27 0-.37-.07-.67-.2-.89-.13-.22-.3-.39-.51-.5-.21-.11-.45-.18-.71-.21-.26-.03-.53-.04-.81-.03v-1.17c.22.01.45 0 .68-.05.23-.05.43-.13.61-.24.18-.11.32-.27.43-.47.11-.2.16-.45.16-.74 0-.41-.12-.74-.37-.99s-.57-.37-.96-.37c-.24 0-.45.06-.63.17-.18.11-.33.26-.45.45s-.2.4-.26.63c-.05.23-.08.47-.07.72h-1.39c.01-.47.09-.9.23-1.3s.33-.75.57-1.04c.24-.3.53-.53.87-.69.34-.17.73-.25 1.16-.25.33 0 .66.05.98.16.32.11.61.27.87.48.26.21.47.47.62.8.15.32.23.7.23 1.12 0 .48-.09.91-.29 1.27-.2.36-.5.63-.92.79v.02z\"],\n \"header-two\": [\"M16.6 17.41c-.22.17-.4.36-.56.55-.16.19-.27.4-.33.61h4.28V20H14c.01-.81.18-1.52.53-2.13.35-.6.81-1.13 1.41-1.58.28-.23.58-.46.89-.68.31-.22.59-.46.85-.71.26-.26.48-.53.63-.83.16-.3.25-.64.26-1.02 0-.18-.02-.37-.06-.57-.04-.2-.11-.39-.22-.56s-.26-.31-.45-.43-.44-.18-.75-.18c-.28 0-.52.06-.71.19s-.34.3-.45.52c-.11.22-.2.48-.25.78-.05.3-.08.62-.09.97h-1.43c0-.54.07-1.04.2-1.5.13-.47.32-.87.58-1.2.26-.34.58-.6.95-.78.37-.19.81-.29 1.3-.29.54 0 .99.09 1.35.29.36.19.65.44.87.74.22.29.38.62.47.97.09.35.14.68.14 1 0 .4-.05.75-.16 1.07-.11.32-.26.61-.44.88-.19.27-.4.52-.63.74-.24.22-.48.43-.73.63s-.5.38-.75.56c-.26.17-.5.35-.71.53zM10 0c.55 0 1 .45 1 1v14c0 .55-.45 1-1 1s-1-.45-1-1V9H2v6c0 .55-.45 1-1 1s-1-.45-1-1V1c0-.55.45-1 1-1s1 .45 1 1v6h7V1c0-.55.45-1 1-1z\"],\n \"headset\": [\"M18.97 9H19A9 9 0 001 9h.03C.41 9.73 0 10.8 0 12c0 1.74.84 3.2 2 3.76V16c0 1.66 1.34 3 3 3h3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1H5c-.55 0-1-.45-1-1 .55 0 1-.45 1-1V9c0-.55-.45-1-1-1h-.92C3.57 4.61 6.47 2 10 2s6.43 2.61 6.92 6H16c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h1c1.66 0 3-1.79 3-4 0-1.2-.41-2.27-1.03-3z\"],\n \"heart\": [\"M20 6.25C20 3.35 17.65 1 14.75 1c-1.02 0-1.95.31-2.75.82v-.04c-.09.06-.17.12-.26.19-.04.03-.09.06-.14.1-.68.51-1.24 1.18-1.6 1.96-.4-.86-1.04-1.57-1.8-2.1-.04-.02-.07-.05-.1-.08a7 7 0 00-.6-.33c-.13-.04-.23-.1-.35-.15-.05-.02-.1-.05-.15-.07v.02C6.45 1.13 5.87 1 5.25 1A5.25 5.25 0 000 6.25c0 .09.01.17.01.25H0c0 .06.01.12.02.18s.01.12.02.18C.13 7.89.44 9 1.07 10.17 2.23 12.33 4.1 14.11 7 16.53v.01c.9.75 1.89 1.55 3 2.46.71-.58 1.38-1.12 2-1.63 3.48-2.86 5.64-4.78 6.93-7.18.63-1.17.94-2.27 1.03-3.3.01-.07.01-.14.02-.21 0-.06.01-.11.02-.17h-.01c0-.09.01-.17.01-.26z\"],\n \"heart-broken\": [\"M8.11 7.45C8.05 7.31 8 7.16 8 7c0-.07.03-.13.04-.19h-.02l.86-4.32A5.159 5.159 0 005.25 1 5.25 5.25 0 000 6.25c0 .09.01.17.01.25H0c0 .06.01.12.02.18s.01.12.02.18C.13 7.89.44 9 1.07 10.17c1.38 2.58 3.76 4.6 7.71 7.83l-.76-3.8h.02c-.01-.07-.04-.13-.04-.2 0-.21.08-.39.18-.54l-.02-.01 1.68-2.52-1.73-3.48zM20 6.25C20 3.35 17.65 1 14.75 1c-1.54 0-2.92.67-3.88 1.73l-.83 4.13 1.85 3.69h-.01c.07.14.12.29.12.45 0 .21-.08.39-.18.54l.02.01-1.77 2.66.81 4.07c4.16-3.39 6.63-5.45 8.05-8.1.63-1.17.94-2.27 1.03-3.3.01-.07.01-.14.02-.21 0-.06.01-.11.02-.17h-.01c0-.08.01-.16.01-.25z\"],\n \"heat-grid\": [\"M14 12h6V8h-6v4zM0 12h6V8H0v4zm1-3h4v2H1V9zm-1 7c0 .55.45 1 1 1h5v-4H0v3zM19 3h-5v4h6V4c0-.55-.45-1-1-1zm0 3h-4V4h4v2zM0 4v3h6V3H1c-.55 0-1 .45-1 1zm7 3h6V3H7v4zm7 10h5c.55 0 1-.45 1-1v-3h-6v4zm-7 0h6v-4H7v4zm1-3h4v2H8v-2zm-1-2h6V8H7v4z\"],\n \"heatmap\": [\"M6 0a6 6 0 100 12A6 6 0 106 0z\", \"M10.5 8a4.5 4.5 0 100 9 4.5 4.5 0 100-9z\", \"M16.5 7a3.5 3.5 0 100 7 3.5 3.5 0 100-7zM18 16a2 2 0 100 4 2 2 0 100-4zM2.5 14a2.5 2.5 0 100 5 2.5 2.5 0 100-5zM16.5 0a2.5 2.5 0 100 5 2.5 2.5 0 100-5z\"],\n \"helicopter\": [\"M10 3v2H1V3.5a.5.5 0 00-1 0v5a.5.5 0 001 0V7l5 2c0 1.54.824 3.575 3 4.835V16H5.5a.5.5 0 100 1H16.5a.5.5 0 00.224-.053l2-1a.5.5 0 10-.448-.894L16.382 16H15v-1.1A5.002 5.002 0 0014 5h-1V3h6.5a.5.5 0 000-1h-16a.5.5 0 000 1H10zm4 13v-1c-1.608 0-2.928-.258-4-.683V16h4zm0-6V6a4 4 0 014 4h-4z\"],\n \"help\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zM7.41 4.62c.65-.54 1.51-.82 2.56-.82.54 0 1.03.08 1.48.25.44.17.83.39 1.14.68.32.29.56.63.74 1.02.17.39.26.82.26 1.27s-.08.87-.24 1.23c-.16.37-.4.73-.71 1.11l-1.21 1.58c-.14.17-.28.33-.32.48-.05.15-.11.35-.11.6v.97H9v-2s.06-.58.24-.81l1.21-1.64c.25-.3.41-.56.51-.77s.14-.44.14-.67c0-.35-.11-.63-.32-.85s-.5-.33-.88-.33c-.37 0-.67.11-.89.33-.22.23-.37.54-.46.94-.03.12-.11.17-.23.16l-1.95-.29c-.12-.01-.16-.08-.14-.22.13-.93.52-1.67 1.18-2.22zM9 14h2.02L11 16H9v-2z\"],\n \"helper-management\": [\"M17 10h-3v3h3v-3zm0 4h-3v3h3v-3zm0-8h-3v3h3V6zm2-6H1C.4 0 0 .4 0 1v18c0 .5.4 1 1 1h18c.5 0 1-.5 1-1V1c0-.6-.5-1-1-1zm-1 18H2V2h16v16zm-9-4H6v3h3v-3zm4 0h-3v3h3v-3z\"],\n \"high-priority\": [\"M12 16v4H8v-4h4zm1-16l-1 14H8L7 0h6z\"],\n \"highlight\": [\"M11.22 14.09l3.03-3.03.71.71L20 6.73l-5.71-5.71-5.04 5.04.71.71-3.02 3.04 4.28 4.28zm6.8 3.91h-16c-.55 0-1 .45-1 1s.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1zm-15-1h4.04c.28 0 .53-.11.71-.3l2.02-2.02-3.44-3.45-4.04 4.04c-.18.18-.3.44-.3.71.01.57.46 1.02 1.01 1.02z\"],\n \"history\": [\"M10 0C6.71 0 3.82 1.6 2 4.05V2c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.76C5.23 3.17 7.47 2 10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8c0-.55-.45-1-1-1s-1 .45-1 1c0 5.52 4.48 10 10 10s10-4.48 10-10S15.52 0 10 0zm0 3c-.55 0-1 .45-1 1v6c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L11 9.59V4c0-.55-.45-1-1-1z\"],\n \"home\": [\"M2 12v7c0 .55.45 1 1 1h5v-7h4v7h5c.55 0 1-.45 1-1v-7l-8-8-8 8zm17.71-2.71L17 6.59V3c0-.55-.45-1-1-1s-1 .45-1 1v1.59L10.71.3C10.53.11 10.28 0 10 0s-.53.11-.71.29l-9 9a1.003 1.003 0 001.42 1.42L10 2.41l8.29 8.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z\"],\n \"horizontal-bar-chart\": [\"M1 1c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1zm3 5h11c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1zm8 8H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm7-6H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h15c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1z\"],\n \"horizontal-bar-chart-asc\": [\"M1 9h11c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm0-5h9c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm18 12H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zM1 14h14c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1z\"],\n \"horizontal-bar-chart-desc\": [\"M10 16H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm2-5H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h11c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm3-5H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zm4-5H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1z\"],\n \"horizontal-distribution\": [\"M12 2H8c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zM1 0C.45 0 0 .45 0 1v18c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm18 0c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"hurricane\": [\"M0 14c1.648.775 3 1 4 1-1-1-2-3.112-2-5a5.098 5.098 0 000-.045C2 5.17 6.201 1 11.172 1c3.206 0 6.9.667 8.828 5-1.648-.775-3-1-4-1 1 1 2 3.112 2 5v.045C18 14.83 13.799 19 8.828 19c-3.206 0-6.9-.667-8.828-5zm10-7a3 3 0 100 6 3 3 0 000-6z\"],\n \"id-number\": [\"M2 5v10h16V5H2zm0-2h16c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2H2c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z\", \"M8.88 12.38c-.17-.39-1.01-.66-1.56-.9-.56-.24-.48-.39-.5-.6v-.09c.19-.17.35-.4.45-.67 0 0 0-.02.01-.02l.06-.18c.13-.03.2-.17.23-.29.03-.05.09-.18.08-.33-.04-.18-.11-.27-.2-.3v-.03c0-.24-.02-.58-.06-.81-.01-.06-.02-.12-.04-.19-.08-.27-.25-.52-.48-.7C6.63 7.09 6.3 7 6 7s-.63.09-.87.27c-.23.17-.4.42-.48.7-.02.06-.03.13-.04.19-.04.22-.06.57-.06.81V9c-.09.03-.17.12-.19.31-.01.14.05.27.08.32.03.14.1.27.23.3.02.06.03.12.06.18v.01c.11.27.27.51.47.68v.08c-.02.2.04.35-.51.6-.56.24-1.39.51-1.56.9-.19.39-.12.62-.12.62h5.98c-.01 0 .06-.23-.11-.62zM12 7h4c.55 0 1 .45 1 1s-.45 1-1 1h-4c-.55 0-1-.45-1-1s.45-1 1-1zM12 11h4c.55 0 1 .45 1 1s-.45 1-1 1h-4c-.55 0-1-.45-1-1s.45-1 1-1z\"],\n \"image-rotate-left\": [\"M10.5 13c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM14 7H1c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 10l-5-3-1 2-2-4-3 4.5V9h11v8zm3-15h-1.59l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H16c1.1 0 2 .9 2 2v3c0 .55.45 1 1 1s1-.45 1-1V6c0-2.21-1.79-4-4-4z\"],\n \"image-rotate-right\": [\"M5.29 4.29a1.003 1.003 0 001.42 1.42l2-2C8.89 3.53 9 3.28 9 3c0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H4C1.79 2 0 3.79 0 6v3c0 .55.45 1 1 1s1-.45 1-1V6c0-1.1.9-2 2-2h1.59l-.3.29zM15.5 13c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM19 7H6c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 10l-5-3-1 2-2-4-3 4.5V9h11v8z\"],\n \"import\": [\"M9.29 15.71c.18.18.43.29.71.29s.53-.11.71-.29l5-5a1.003 1.003 0 00-1.42-1.42L11 12.59V1c0-.55-.45-1-1-1S9 .45 9 1v11.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l5 5zM19 14c-.55 0-1 .45-1 1v3H2v-3c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1z\"],\n \"inbox\": [\"M16.92 3.56l-.01-.02c-.16-.35-.5-.6-.91-.6H4c-.41 0-.76.25-.91.6l-.01.02L0 10.49v6.46c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-6.46l-3.08-6.93zM15 10.95c-.55 0-1 .45-1 1v1H6v-1c0-.55-.45-1-1-1H1.98l2.67-6h10.7l2.67 6H15z\"],\n \"inbox-filtered\": [\"M10.262 3l1.958 1.958v.05H4.65l-2.67 5.997H5c.55 0 1 .45 1 .999v1h8v-1c0-.55.45-1 1-1h3.02l-.635-1.426.625-.63c.354-.353.598-.8.707-1.289L20 10.545v6.456c0 .55-.45.999-1 .999H1c-.55 0-1-.45-1-1v-6.455L3.08 3.62l.01-.02c.15-.35.5-.6.91-.6h6.262zm9.088-3a.642.642 0 01.46 1.1l-3.03 3.03v2.95c0 .18-.07.34-.19.46l-1.28 1.29c-.11.1-.27.17-.45.17-.35 0-.64-.29-.64-.64V4.13L11.19 1.1a.642.642 0 01.45-1.1h7.71z\"],\n \"inbox-geo\": [\"M7.427 3a7.467 7.467 0 00-.411 2.009H4.65l-2.67 5.996H5c.55 0 1 .45 1 .999v1h8V13c.165.01.332 0 .5 0a7.48 7.48 0 005.5-2.4V17c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1v-6.455L3.08 3.62l.01-.02c.15-.35.5-.6.91-.6h3.427zm5.715-.596a.133.133 0 01-.193 0l-.374-.374a.133.133 0 010-.193.133.133 0 01.193 0l.373.374a.133.133 0 010 .193zm1.743.033c-.05 0-.088-.006-.088-.055 0-.05.038-.056.088-.056h.165c.05 0 .088.006.088.055 0 .05-.038.056-.088.056h-.165zm.539.632c-.05 0-.104-.044-.104-.094v-.23c0-.05.054-.094.104-.094.05 0 .104.044.104.094v.23c0 .05-.055.094-.104.094zm-3.575 2.304h.506l1.182 1.2c.006.005 0 .005 0 .01v.446c0 .187-.126.341-.319.341h-.098v.226c0 .192-.138.296-.33.296h.01v.792c0 .188-.181.336-.368.336s-.369-.149-.369-.335v-1.32h-.214c-.193 0-.308-.149-.308-.341V5.72c0-.192.115-.346.308-.346zM14.5 0C17.536 0 20 2.464 20 5.5S17.536 11 14.5 11A5.502 5.502 0 019 5.5C9 2.464 11.464 0 14.5 0zm0 9.9c2.431 0 4.4-1.969 4.4-4.4 0-.297-.027-.583-.099-.864h-.236c-.188 0-.336-.104-.347-.313h-.319c.11.104.231.209.231.346v.705c0 .088-.055.17-.11.23h-.022l-.011.006-.022.011-.666.643v1.21c0 .193-.104.33-.296.33h-.54c-.192 0-.319-.137-.319-.33V6.221a.915.915 0 00-.533-.518h-.671c-.192 0-.368-.143-.368-.335V4.68c0-.192.176-.346.368-.346l.193-.005.319-.32a.342.342 0 01.489 0l.319.32c.005 0 .005.005.005.005h.704c.16 0 .237-.16.341-.313v-.11l-.038.005h-.27a.159.159 0 01-.153-.16c0-.087.066-.159.154-.159h.269l.039.006V3.42s-.05-.038-.061-.038h-.302l-.067.076a.342.342 0 01-.489.011l-.066-.088h-.176l.248.259c.021.022.021.088 0 .11-.028.022-.067.028-.088.006l-.292-.276h-.127l-.363.325-.033-.006c-.038.11-.087.089-.143.089-.126 0-.225-.072-.225-.193 0-.127.099-.209.225-.209h.176v-.182c0-.088.061-.131.149-.131h.066v-.127c0-.143.149-.297.286-.297h.28c.16 0 .27-.115.27-.275V2.42c0-.016.055.017.055-.088h-.187l-.005.017-.308.33a.123.123 0 01-.177 0c-.049-.044-.049-.121 0-.171l.391-.385c.027-.022.06-.022.094-.022l.005.022h.869A4.376 4.376 0 0014.5 1.1a4.402 4.402 0 00-2.816 1.018h.583c.094 0 .165.066.165.159s-.072.16-.165.16h-.478c0 .104-.039.06-.039.066v.351h.429l.226-.252c.132-.127.346-.155.473-.022a.332.332 0 010 .473l-1.183 1.182-.011.011c-.005.005-.011.005-.016.011a.115.115 0 00-.034.022c-.005.006-.01 0-.016.006a.309.309 0 01-.176.038h-.347c-.12.104-.187.148-.187.27v.088c0 .016-.027.027-.027.043l.561.589c.06.06.055.154 0 .209a.143.143 0 01-.209 0l-.578-.578a.425.425 0 01-.082.011c-.154 0-.292-.12-.292-.274v-.358h-.016c-.104.374-.165.77-.165 1.177 0 2.431 1.969 4.4 4.4 4.4zm3.388-3.107c.077 0 .16.06.16.137v.424c0 .077-.083.137-.16.137s-.16-.06-.16-.137V6.93c0-.077.083-.137.16-.137zm-3.113-4.879c0 .187-.154.314-.335.314h-.374v.104c0 .11-.05.198-.16.198s-.16-.088-.16-.198V1.98c-.104-.022-.033-.028-.033-.055 0-.187.127-.325.314-.325h.407c.187 0 .341.127.341.314z\"],\n \"inbox-search\": [\"M7.136 3a6.327 6.327 0 00-.098 2.009H4.65l-2.67 5.996H5c.55 0 1 .45 1 .999v1h8v-1c0-.55.45-1 1-1h1.076l1.14 1.14a2.767 2.767 0 001.974.806c.282 0 .554-.042.81-.12V17c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1v-6.455L3.08 3.62l.01-.02c.15-.35.5-.6.91-.6h3.136zm3.244 1.33c0 1.62 1.31 2.93 2.93 2.93s2.93-1.31 2.93-2.93-1.31-2.93-2.93-2.93-2.93 1.31-2.93 2.93zm6.47 2.43l2.89 2.85c.13.15.22.35.23.56 0 .43-.35.78-.78.78-.23 0-.42-.08-.56-.22l-2.87-2.87c-.17.1-.33.2-.51.29-.03.01-.06.03-.09.04-.18.07-.35.15-.55.21-.19.06-.37.11-.57.14-.05.01-.1.02-.14.02-.2.03-.39.05-.6.05A4.3 4.3 0 019 4.31C9 1.93 10.93.01 13.3 0c2.37 0 4.3 1.93 4.3 4.3 0 .21-.02.4-.05.6-.01.05-.01.09-.02.14-.04.2-.08.38-.14.58-.05.19-.13.36-.21.54-.01.03-.03.06-.04.09-.08.18-.18.34-.29.51z\"],\n \"inbox-update\": [\"M10.083 3a6.04 6.04 0 00.001 2.009H4.65l-2.67 5.996H5c.55 0 1 .45 1 .999v1h8v-1c0-.55.45-1 1-1h3.02l-.53-1.19a5.97 5.97 0 001.824-.811L20 10.545v6.456c0 .55-.45.999-1 .999H1c-.55 0-1-.45-1-1v-6.455L3.08 3.62l.01-.02c.15-.35.5-.6.91-.6h6.083zM16 8a4 4 0 110-8 4 4 0 010 8z\"],\n \"info-sign\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zM9 4h2v2H9V4zm4 12H7v-1h2V8H8V7h3v8h2v1z\"],\n \"inheritance\": [\"M6 10c0 2.21 1.79 4 4 4h6.59l-2.29-2.29A.965.965 0 0114 11a1.003 1.003 0 011.71-.71l4 4c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-4 4a1.003 1.003 0 01-1.42-1.42l2.3-2.29H10c-3.31 0-6-2.69-6-6H1a1 1 0 01-1-1V1a1 1 0 011-1h8a1 1 0 011 1v8a1 1 0 01-1 1H6zM2 2v6h6V2H2z\"],\n \"inherited-group\": [\"M1 9c.55 0 1 .45 1 1v4c0 1.1.9 2 2 2h2.59l-.3-.29a1.003 1.003 0 011.42-1.42l2 2c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-2 2A1.003 1.003 0 016 19c0-.28.11-.53.3-.71l.29-.29H4c-2.21 0-4-1.79-4-4v-4c0-.55.45-1 1-1zm6.996-9c.79 0 1.68.25 2.309.73a3.63 3.63 0 011.4 2.36c.11.6.17 1.52.17 2.15v.09c.22.09.42.32.47.82.03.39-.12.73-.2.87-.07.34-.27.71-.61.78-.04.16-.09.33-.15.48-.01.01-.02.05-.02.05-.27.71-.68 1.33-1.19 1.78 0 .08 0 .16.01.23.05.55-.15.95 1.33 1.6 1.469.66 3.698 1.35 4.178 2.39.45 1.05.27 1.67.27 1.67h-5.227a1.982 1.982 0 00-.319-.417l-2-2A2.003 2.003 0 005 15H4c-.548 0-1-.452-1-1v-1.462c.511-.213 1.023-.413 1.468-.608 1.479-.65 1.329-1.05 1.379-1.59l.01-.21c-.52-.45-.95-1.08-1.22-1.8l-.01-.01-.01-.03c-.07-.15-.12-.32-.16-.49-.34-.06-.54-.43-.62-.78-.08-.14-.24-.48-.2-.87.05-.51.26-.74.49-.83v-.08c0-.64.05-1.55.17-2.15a3.648 3.648 0 011.4-2.36C6.317.25 7.207 0 7.996 0zm5.997 3c.59 0 1.26.19 1.73.55.46.35.8.85.97 1.4.04.13.07.25.08.38.08.45.13 1.14.13 1.61v.07c.16.07.31.24.35.62.02.29-.09.55-.15.65-.05.26-.2.53-.46.59-.03.12-.07.25-.11.36-.01.01-.01.04-.01.04-.2.53-.51 1-.89 1.34 0 .06 0 .12.01.17.04.41-.11.71 1 1.19 1.099.5 2.768 1.01 3.128 1.79.34.79.2 1.25.2 1.25h-3.039V15c-.06-.33-.17-.69-.33-1.06-.45-.97-1.37-1.52-3.238-2.3-.17-.07-.76-.31-.77-.32-.1-.04-.2-.08-.28-.12.05-.14.04-.29.06-.45l.01-.16c-.25-.21-.47-.48-.65-.79.22-.34.41-.71.56-1.12l.028-.078-.002.013-.006.035.06-.15c.36-.26.6-.67.72-1.13.18-.37.29-.82.25-1.3-.05-.5-.21-.92-.47-1.22-.02-.53-.06-1.11-.12-1.59.38-.17.83-.26 1.24-.26z\"],\n \"inner-join\": [\"M8.7 4.7C7.4 6 6.5 7.9 6.5 10s.8 4 2.2 5.3c-.8.5-1.7.7-2.7.7-3.3 0-6-2.7-6-6s2.7-6 6-6c1 0 1.9.2 2.7.7zm-3.34 9.25c-.55-1.2-.86-2.54-.86-3.95s.31-2.75.86-3.95a4.001 4.001 0 000 7.9zM14 4c3.3 0 6 2.7 6 6s-2.7 6-6 6c-1 0-1.9-.2-2.7-.7 1.3-1.3 2.2-3.2 2.2-5.3s-.8-3.9-2.2-5.3C12.1 4.2 13 4 14 4zm.6 2.05c.55 1.2.86 2.54.86 3.95s-.31 2.75-.86 3.95c1.9-.31 3.36-1.96 3.36-3.95S16.5 6.36 14.6 6.05zM10 5.5C8.8 6.7 8 8.2 8 10s.8 3.3 2 4.4c1.2-1.1 2-2.7 2-4.5s-.8-3.3-2-4.4z\"],\n \"insert\": [\"M19 0H1C.4 0 0 .4 0 1v18c0 .5.4 1 1 1h18c.5 0 1-.5 1-1V1c0-.6-.5-1-1-1zm-1 18H2V2h16v16zM5 11h4v4c0 .6.4 1 1 1s1-.4 1-1v-4h4c.6 0 1-.4 1-1s-.4-1-1-1h-4V5c0-.6-.4-1-1-1s-1 .4-1 1v4H5c-.6 0-1 .4-1 1s.4 1 1 1z\"],\n \"intersection\": [\"M13 4c-1.31 0-2.51.43-3.5 1.14A5.977 5.977 0 006 4c-3.31 0-6 2.69-6 6s2.69 6 6 6c1.31 0 2.51-.43 3.5-1.14.99.71 2.19 1.14 3.5 1.14 3.31 0 6-2.69 6-6s-2.69-6-6-6zm-4.93 9.41c-.61.37-1.31.59-2.07.59-2.21 0-4-1.79-4-4s1.79-4 4-4c.76 0 1.46.22 2.07.59C7.4 7.56 7 8.73 7 10s.4 2.44 1.07 3.41zM13 14c-.76 0-1.46-.22-2.07-.59C11.6 12.44 12 11.27 12 10s-.4-2.44-1.07-3.41C11.54 6.22 12.24 6 13 6c2.21 0 4 1.79 4 4s-1.79 4-4 4z\"],\n \"ip-address\": [\"M6 3.66C6 5.69 10 11 10 11s4-5.31 4-7.34C13.99 1.64 12.21 0 10 0S6 1.64 6 3.66zM8 4c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zM14 13.5V13h-4v1h3v2h-2v1h3v-3.5zM3 12h14c.55 0 1 .45 1 1v6c0 .55-.45 1-1 1H3c-.55 0-1-.45-1-1v-6c0-.55.45-1 1-1zm4 1v6h1v-6H7zm3 1v5h1v-5h-1z\"],\n \"issue\": [\"M10 20C4.477 20 0 15.523 0 10S4.477 0 10 0s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 100-16 8 8 0 000 16zm1-2H9v-2h2v2zm0-3H9V4h2v9z\"],\n \"issue-closed\": [\"M15.364 5.9a.997.997 0 01-.707-.293l-2.121-2.122a1 1 0 111.414-1.414l1.414 1.414L18.192.657a1 1 0 011.414 1.414l-3.535 3.536a.997.997 0 01-.707.292zM11.78.157a3.002 3.002 0 00-1.437 1.85 8 8 0 107.1 5.055l.042-.042 1.472-1.472A9.959 9.959 0 0120 10c0 5.523-4.477 10-10 10S0 15.523 0 10 4.477 0 10 0c.608 0 1.202.054 1.78.158zM11 16H9v-2h2v2zm0-3H9V4h2v9z\"],\n \"issue-new\": [\"M13.167.512a2.98 2.98 0 00-.131.524c-.74.115-1.39.5-1.848 1.052a8 8 0 106.724 6.724 2.997 2.997 0 001.052-1.848 2.98 2.98 0 00.524-.13A9.99 9.99 0 0120 10c0 5.523-4.477 10-10 10S0 15.523 0 10 4.477 0 10 0a9.99 9.99 0 013.167.512zM11 16H9v-2h2v2zm0-3H9V4h2v9zm6-10h1.5a1 1 0 010 2H17v1.5a1 1 0 01-2 0V5h-1.5a1 1 0 010-2H15V1.5a1 1 0 012 0V3z\"],\n \"italic\": [\"M11.7 4H14c.6 0 1-.4 1-1s-.4-1-1-1H7c-.6 0-1 .4-1 1s.4 1 1 1h2.2L7.3 15H5c-.6 0-1 .4-1 1s.4 1 1 1h7c.6 0 1-.4 1-1s-.4-1-1-1H9.8l1.9-11z\"],\n \"join-table\": [\"M19 6h-4V2c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h4v4c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zM6 12H2V9h4v3zm0-4H2V5h4v3zm7 9H7v-3h6v3zm0-4H7V9h6v4zm0-5H7V5h6v3zm5 9h-4v-3h4v3zm0-4h-4v-3h4v3z\"],\n \"key\": [\"M14 0c-3.31 0-6 2.69-6 6 0 1.11.32 2.14.85 3.03L.44 17.44a1.498 1.498 0 102.12 2.12l.79-.79.94.94c.18.18.43.29.71.29s.53-.11.71-.29l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-.94-.94 3.2-3.2A5.9 5.9 0 0014 12c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 9c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\"],\n \"key-backspace\": [\"M19 3H7c-.28 0-.53.11-.71.29l-6 6C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l6 6c.18.18.43.29.71.29h12c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-2.29 9.29a1.003 1.003 0 01-1.42 1.42L13 11.41l-2.29 2.29c-.18.19-.43.3-.71.3a1.003 1.003 0 01-.71-1.71l2.3-2.29-2.3-2.29a1.003 1.003 0 011.42-1.42L13 8.59l2.29-2.29c.18-.19.43-.3.71-.3a1.003 1.003 0 01.71 1.71L14.41 10l2.3 2.29z\"],\n \"key-command\": [\"M15.5 12H14V8h1.5C17.43 8 19 6.43 19 4.5S17.43 1 15.5 1 12 2.57 12 4.5V6H8V4.5C8 2.57 6.43 1 4.5 1S1 2.57 1 4.5 2.57 8 4.5 8H6v4H4.5C2.57 12 1 13.57 1 15.5S2.57 19 4.5 19 8 17.43 8 15.5V14h4v1.5c0 1.93 1.57 3.5 3.5 3.5s3.5-1.57 3.5-3.5-1.57-3.5-3.5-3.5zm0-9c.83 0 1.5.67 1.5 1.5S16.33 6 15.5 6 14 5.33 14 4.5 14.67 3 15.5 3zm-11 14c-.83 0-1.5-.67-1.5-1.5S3.67 14 4.5 14s1.5.67 1.5 1.5S5.33 17 4.5 17zm0-11C3.67 6 3 5.33 3 4.5S3.67 3 4.5 3 6 3.67 6 4.5 5.33 6 4.5 6zm7.5 6H8V8h4v4zm3.5 5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"],\n \"key-control\": [\"M16.71 7.29l-6-6C10.53 1.11 10.28 1 10 1s-.53.11-.71.29l-6 6a1.003 1.003 0 001.42 1.42L10 3.41l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z\"],\n \"key-delete\": [\"M19.71 9.29l-6-6A.997.997 0 0013 3H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.28 0 .53-.11.71-.29l6-6c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zm-9 3a1.003 1.003 0 01-1.42 1.42L7 11.41 4.71 13.7c-.18.19-.43.3-.71.3a1.003 1.003 0 01-.71-1.71L5.59 10l-2.3-2.29a1.003 1.003 0 011.42-1.42L7 8.59 9.29 6.3c.18-.19.43-.3.71-.3a1.003 1.003 0 01.71 1.71L8.41 10l2.3 2.29z\"],\n \"key-enter\": [\"M18 2c-.55 0-1 .45-1 1v5c0 2.21-1.79 4-4 4H4.41L6.7 9.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L4.41 14H13c3.31 0 6-2.69 6-6V3c0-.55-.45-1-1-1z\"],\n \"key-escape\": [\"M2 8c.55 0 1-.45 1-1V4.41l6.29 6.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L4.41 3H7c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1zm9-6.94V3.1c3.39.49 6 3.38 6 6.9 0 3.87-3.13 7-7 7-3.52 0-6.41-2.61-6.9-6H1.06c.5 4.5 4.31 8 8.94 8a9 9 0 009-9c0-4.63-3.5-8.44-8-8.94z\"],\n \"key-option\": [\"M13 4h6c.55 0 1-.45 1-1s-.45-1-1-1h-6c-.55 0-1 .45-1 1s.45 1 1 1zm6 12h-4.42L6.87 2.5l-.02.01A.977.977 0 006 2H1c-.55 0-1 .45-1 1s.45 1 1 1h4.42l7.71 13.5.01-.01c.18.3.49.51.86.51h5c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"key-shift\": [\"M17.74 10.35l-6.99-8.01-.01.01C10.56 2.14 10.3 2 10 2s-.56.14-.74.35l-.01-.01-7 8 .01.01A.95.95 0 002 11c0 .55.45 1 1 1h3v5c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-5h3c.55 0 1-.45 1-1 0-.25-.1-.48-.26-.65z\"],\n \"key-tab\": [\"M19 13H4.41l2.29-2.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L2 12.59V10c0-.55-.45-1-1-1s-1 .45-1 1v8c0 .55.45 1 1 1s1-.45 1-1v-2.59l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L4.41 15H19c.55 0 1-.45 1-1s-.45-1-1-1zm0-12c-.55 0-1 .45-1 1v2.59L14.71 1.3A.965.965 0 0014 1a1.003 1.003 0 00-.71 1.71L15.59 5H1c-.55 0-1 .45-1 1s.45 1 1 1h14.59L13.3 9.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 7.41V10c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z\"],\n \"known-vehicle\": [\"M19 4a.997.997 0 00-.707.293L14 8.586l-2.293-2.293a1 1 0 00-1.414 1.414l3 3a.997.997 0 001.414 0l5-5A1 1 0 0019 4zm-2.048 7.291c.011.072.048.134.048.209a1.5 1.5 0 01-1.5 1.5c-.225 0-.433-.057-.624-.145-.279.085-.57.145-.876.145a2.99 2.99 0 01-2.121-.879l-3-3 .007-.007A3.027 3.027 0 018.184 8H4V7l1-3h10l.19.568 1.307-1.308c-.336-.356-.758-.658-1.165-.772 0 0-1.74-.488-5.332-.488s-5.332.488-5.332.488c-.67.188-1.424.864-1.674 1.502L2.99 4H3L2 7H1a1 1 0 000 2h.333l-.28.84L1 10v7.5a1.5 1.5 0 103 0V17h12v.5a1.5 1.5 0 003 0V10l-.19-.568-1.858 1.86zM4.5 13a1.5 1.5 0 110-3 1.5 1.5 0 010 3z\"],\n \"lab-test\": [\"M13 2a1 1 0 010 2v4l4 8v1a1 1 0 01-1 1H4a1 1 0 01-1-1v-1l4-8V4a1 1 0 110-2h6zm-2 2H9v4l-2 4h6l-2-4V4z\"],\n \"label\": [\"M3 12h14v-1H3v1zm11-9H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V9l-6-6zm4 12H2V5h11v3H3v1h10v1h5v5zm-4-6V5l4 4h-4z\"],\n \"layer\": [\"M19.5 9.1l-9-5c-.2-.1-.3-.1-.5-.1s-.3 0-.5.1l-9 5c-.3.2-.5.5-.5.9s.2.7.5.9l9 5c.2.1.3.1.5.1s.3 0 .5-.1l9-5c.3-.2.5-.5.5-.9s-.2-.7-.5-.9z\"],\n \"layer-outline\": [\"M9.514 4.126l-9 5a1 1 0 000 1.748l9 5a1 1 0 00.972 0l9-5a1 1 0 000-1.748l-9-5a1 1 0 00-.972 0zM10 6.144l6.94 3.855L10 13.855 3.059 9.999 10 6.144z\"],\n \"layers\": [\"M.5 6.9l9 5c.2.1.3.1.5.1s.3 0 .5-.1l9-5c.3-.2.5-.5.5-.9s-.2-.7-.5-.9l-9-5c-.2-.1-.3-.1-.5-.1s-.3 0-.5.1l-9 5c-.3.2-.5.5-.5.9s.2.7.5.9z\", \"M19 9c-.2 0-.3 0-.5.1L10 13.9 1.5 9.1C1.3 9 1.2 9 1 9c-.6 0-1 .4-1 1 0 .4.2.7.5.9l9 5c.2.1.3.1.5.1s.3 0 .5-.1l9-5c.3-.2.5-.5.5-.9 0-.6-.4-1-1-1z\", \"M19 13c-.2 0-.3 0-.5.1L10 17.9l-8.5-4.7c-.2-.2-.3-.2-.5-.2-.6 0-1 .4-1 1 0 .4.2.7.5.9l9 5c.2.1.3.1.5.1s.3 0 .5-.1l9-5c.3-.2.5-.5.5-.9 0-.6-.4-1-1-1z\"],\n \"layout\": [\"M18 6c-1.1 0-2 .9-2 2 0 .37.11.71.28 1.01l-2.27 2.27c-.3-.17-.64-.28-1.01-.28-.93 0-1.71.64-1.93 1.5H8.93c-.22-.86-1-1.5-1.93-1.5-.37 0-.71.11-1.01.28L3.72 9.01C3.89 8.71 4 8.37 4 8c0-.34-.09-.66-.24-.94l3.66-3.38c.31.2.68.32 1.08.32 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .34.09.66.24.94L3.08 6.32C2.77 6.12 2.4 6 2 6 .9 6 0 6.9 0 8s.9 2 2 2c.37 0 .71-.11 1.01-.28l2.27 2.27c-.17.3-.28.64-.28 1.01s.11.71.28 1.01l-2.27 2.27C2.71 16.11 2.37 16 2 16c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2c0-.37-.11-.71-.28-1.01l2.27-2.27c.3.17.64.28 1.01.28.93 0 1.71-.64 1.93-1.5h2.14c.22.86 1 1.5 1.93 1.5 1.1 0 2-.9 2-2 0-.37-.11-.71-.28-1.01l2.27-2.27c.3.17.64.28 1.01.28 1.1 0 2-.9 2-2s-.9-2-2-2z\"],\n \"layout-auto\": [\"M18 13c-.53 0-1.01.21-1.37.55L11.9 10.6c.06-.19.1-.39.1-.6s-.04-.41-.1-.6l4.72-2.95c.37.34.85.55 1.38.55 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .21.04.41.1.6l-4.73 2.96c-.24-.23-.54-.4-.87-.48V3.93c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S8 .9 8 2c0 .93.64 1.71 1.5 1.93v4.14c-.33.09-.63.26-.87.48L3.9 5.6c.06-.19.1-.39.1-.6 0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.53 0 1.01-.21 1.37-.55L8.1 9.4c-.06.19-.1.39-.1.6s.04.41.1.6l-4.72 2.95C3.01 13.21 2.53 13 2 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2c0-.21-.04-.41-.1-.6l4.73-2.96c.24.23.54.4.87.48v4.14C8.64 16.29 8 17.07 8 18c0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93v-4.14c.33-.09.63-.26.87-.48l4.73 2.96c-.06.18-.1.38-.1.59 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2z\"],\n \"layout-balloon\": [\"M18 16c-.14 0-.28.02-.42.05l-1.73-3.45c.69-.45 1.14-1.22 1.14-2.1s-.46-1.65-1.14-2.1l1.73-3.45c.14.03.28.05.42.05 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .6.27 1.13.69 1.5l-1.77 3.54c-.14-.02-.28-.04-.42-.04a2.5 2.5 0 00-2.45 2h-4.1A2.5 2.5 0 005.5 8c-.14 0-.28.02-.42.04L3.31 4.5C3.73 4.13 4 3.6 4 3c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.14 0 .28-.02.42-.05L4.14 8.4C3.46 8.85 3 9.62 3 10.5s.46 1.65 1.14 2.1l-1.73 3.45A1.84 1.84 0 002 16c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2c0-.6-.27-1.13-.69-1.5l1.77-3.54c.14.02.28.04.42.04a2.5 2.5 0 002.45-2h4.1a2.5 2.5 0 002.45 2c.14 0 .28-.02.42-.04l1.77 3.54c-.42.37-.69.9-.69 1.5 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2z\"],\n \"layout-circle\": [\"M18.3 8c-.2-.9-.6-1.7-1.1-2.5.2-.3.3-.7.3-1 0-1.1-.9-2-2-2-.4 0-.7.1-1 .3-.8-.5-1.6-.8-2.5-1.1-.1-1-1-1.7-2-1.7S8.2.8 8 1.7c-.9.3-1.7.6-2.5 1.1-.3-.2-.7-.3-1-.3-1.1 0-2 .9-2 2 0 .4.1.7.3 1-.5.8-.8 1.6-1.1 2.5C.8 8.2 0 9 0 10s.8 1.8 1.7 2c.2.9.6 1.7 1.1 2.5-.2.3-.3.7-.3 1 0 1.1.9 2 2 2 .4 0 .7-.1 1-.3.8.5 1.6.8 2.5 1.1.1 1 1 1.7 2 1.7s1.8-.8 2-1.7c.9-.2 1.7-.6 2.5-1.1.3.2.7.3 1 .3 1.1 0 2-.9 2-2 0-.4-.1-.7-.3-1 .5-.8.8-1.6 1.1-2.5 1-.1 1.7-1 1.7-2s-.8-1.8-1.7-2zm-1.8 5.8c-.3-.2-.6-.3-1-.3-1.1 0-2 .9-2 2 0 .4.1.7.3 1-.6.3-1.2.6-1.9.8-.3-.7-1-1.3-1.9-1.3-.8 0-1.6.5-1.9 1.3-.7-.2-1.3-.4-1.9-.8.2-.3.3-.6.3-1 0-1.1-.9-2-2-2-.4 0-.7.1-1 .3-.3-.6-.6-1.2-.8-1.9.8-.3 1.3-1.1 1.3-1.9s-.5-1.6-1.2-1.8c.2-.7.4-1.3.8-1.9.3.2.6.3 1 .3 1.1 0 2-.9 2-2 0-.4-.1-.7-.3-1 .6-.3 1.2-.6 1.9-.8.2.7 1 1.2 1.8 1.2s1.6-.5 1.9-1.3c.7.2 1.3.4 1.9.8-.2.3-.3.6-.3 1 0 1.1.9 2 2 2 .4 0 .7-.1 1-.3.3.6.6 1.2.8 1.9-.8.3-1.3 1.1-1.3 1.9s.5 1.6 1.2 1.8c-.1.7-.4 1.4-.7 2z\"],\n \"layout-grid\": [\"M2 0a2 2 0 100 4 2 2 0 100-4zM10 0a2 2 0 100 4 2 2 0 100-4zM18 0a2 2 0 100 4 2 2 0 100-4zM18 8a2 2 0 100 4 2 2 0 100-4zM18 16a2 2 0 100 4 2 2 0 100-4zM10 16a2 2 0 100 4 2 2 0 100-4zM2 16a2 2 0 100 4 2 2 0 100-4zM2 8a2 2 0 100 4 2 2 0 100-4zM10 8a2 2 0 100 4 2 2 0 100-4z\"],\n \"layout-group-by\": [\"M2 2a2 2 0 100 4 2 2 0 100-4zM18 0a2 2 0 100 4 2 2 0 100-4zM18 8a2 2 0 100 4 2 2 0 100-4zM18 16a2 2 0 100 4 2 2 0 100-4zM2 14a2 2 0 100 4 2 2 0 100-4zM2 8a2 2 0 100 4 2 2 0 100-4zM13 12a2 2 0 100 4 2 2 0 100-4zM13 4a2 2 0 100 4 2 2 0 100-4z\"],\n \"layout-hierarchy\": [\"M18.5 16.07v-4.14c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2-.93 0-1.71.64-1.93 1.5h-4.14c-.18-.7-.73-1.25-1.43-1.43V3.93c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S8 .9 8 2c0 .93.64 1.71 1.5 1.93v4.14c-.7.18-1.25.73-1.43 1.43H3.93C3.71 8.64 2.93 8 2 8c-1.1 0-2 .9-2 2 0 .93.64 1.71 1.5 1.93v4.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93v-4.14c.7-.18 1.25-.73 1.43-1.43h4.14c.18.7.73 1.25 1.43 1.43v4.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93v-4.14c.7-.18 1.25-.73 1.43-1.43h4.14c.18.7.73 1.25 1.43 1.43v4.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93z\"],\n \"layout-linear\": [\"M16.5 7a2.5 2.5 0 00-2.45 2h-2.1a2.5 2.5 0 00-4.9 0h-2.1a2.5 2.5 0 100 1h2.1a2.5 2.5 0 004.9 0h2.1a2.5 2.5 0 102.45-3z\"],\n \"layout-skew-grid\": [\"M2 0a2 2 0 100 4 2 2 0 100-4zM18 0a2 2 0 100 4 2 2 0 100-4zM18 8a2 2 0 100 4 2 2 0 100-4zM18 16a2 2 0 100 4 2 2 0 100-4zM2 16a2 2 0 100 4 2 2 0 100-4zM2 8a2 2 0 100 4 2 2 0 100-4zM10 12a2 2 0 100 4 2 2 0 100-4zM10 4a2 2 0 100 4 2 2 0 100-4z\"],\n \"layout-sorted-clusters\": [\"M2 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm16 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-8 4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"learning\": [\"M10.551 1.127a1.256 1.256 0 00-1.102 0L.456 5.89c-.608.309-.608.913 0 1.222l8.993 4.762c.334.17.767.17 1.102 0l8.992-4.762c.61-.309.61-.913 0-1.222l-8.992-4.762z\", \"M18 6.5l.016 4.514c.002.548.447.99.994.99a.99.99 0 00.99-.99V6.5h-2zM3.366 10.033l6.401 3.358a.5.5 0 00.465 0l6.406-3.358a.25.25 0 01.366.221v5.109a.25.25 0 01-.139.224l-6.64 3.302a.5.5 0 01-.446 0l-6.64-3.302A.25.25 0 013 15.363v-5.108a.25.25 0 01.366-.222z\"],\n \"left-join\": [\"M8.7 4.7C7.4 6 6.5 7.9 6.5 10s.8 4 2.2 5.3c-.8.5-1.7.7-2.7.7-3.3 0-6-2.7-6-6s2.7-6 6-6c1 0 1.9.2 2.7.7zM14 4c3.3 0 6 2.7 6 6s-2.7 6-6 6c-1 0-1.9-.2-2.7-.7 1.3-1.3 2.2-3.2 2.2-5.3s-.8-3.9-2.2-5.3C12.1 4.2 13 4 14 4zm.6 2.05c.55 1.2.86 2.54.86 3.95s-.31 2.75-.86 3.95c1.9-.31 3.36-1.96 3.36-3.95S16.5 6.36 14.6 6.05zM10 5.5C8.8 6.7 8 8.2 8 10s.8 3.3 2 4.4c1.2-1.1 2-2.7 2-4.5s-.8-3.3-2-4.4z\"],\n \"less-than\": [\"M7.162 10l9.154 3.052a1 1 0 01-.632 1.897l-12-4c-.912-.304-.912-1.594 0-1.897l12-4a1 1 0 01.632 1.897L7.162 10z\"],\n \"less-than-or-equal-to\": [\"M16.316 11.051L7.162 8l9.154-3.051a1 1 0 10-.632-1.898l-12 4c-.912.304-.912 1.594 0 1.898l12 4a1 1 0 10.632-1.898zM16 15H4a1 1 0 100 2h12a1 1 0 100-2z\"],\n \"lifesaver\": [\"M8.143 14.644L7.028 17.43c.919.368 1.922.57 2.972.57s2.053-.202 2.972-.57l-1.115-2.786A4.986 4.986 0 0110 15a4.986 4.986 0 01-1.857-.356zm-2.787-2.787A4.986 4.986 0 015 10c0-.656.126-1.283.356-1.857L2.57 7.028A7.978 7.978 0 002 10c0 1.05.202 2.053.57 2.972l2.786-1.115zm2.787-6.5A4.986 4.986 0 0110 5c.656 0 1.283.126 1.857.356l1.115-2.786A7.978 7.978 0 0010 2c-1.05 0-2.053.202-2.972.57l1.115 2.786zm6.5 2.786c.23.574.357 1.2.357 1.857 0 .656-.126 1.283-.356 1.857l2.786 1.115c.368-.919.57-1.922.57-2.972s-.202-2.053-.57-2.972l-2.786 1.115zM10 13a3 3 0 100-6 3 3 0 000 6zm0 7C4.477 20 0 15.523 0 10S4.477 0 10 0s10 4.477 10 10-4.477 10-10 10z\"],\n \"lightbulb\": [\"M6.33 13.39c0 .34.27.61.6.61h6.13c.33 0 .6-.27.6-.61C14.03 9.78 16 9.4 16 6.09 16 2.72 13.31 0 10 0S4 2.72 4 6.09c0 3.31 1.97 3.69 2.33 7.3zM13 15H7c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1zm-1 3H8c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"lightning\": [\"M9 11H6a1 1 0 01-1-1L5.91.9a1 1 0 01.995-.9h6.256a.839.839 0 01.779 1.15L11.2 8h2.978a.822.822 0 01.748 1.162l-4.764 10.481A.608.608 0 019 19.392V11z\"],\n \"link\": [\"M10.85 11.98l-4.44 4.44-1 1c-.36.36-.86.58-1.41.58-1.1 0-2-.9-2-2 0-.55.22-1.05.59-1.41l5.44-5.44C7.69 9.06 7.36 9 7 9c-1.11 0-2.09.46-2.82 1.18l-.01-.01-3 3 .01.01C.46 13.91 0 14.89 0 16c0 2.21 1.79 4 4 4 1.11 0 2.09-.46 2.82-1.18l.01.01 3-3-.01-.01C10.54 15.09 11 14.11 11 13c0-.36-.06-.69-.15-1.02zM20 4c0-2.21-1.79-4-4-4-1.11 0-2.09.46-2.82 1.18l-.01-.01-3 3 .01.01C9.46 4.91 9 5.89 9 7c0 .36.06.69.15 1.02l4.44-4.44 1-1c.36-.36.86-.58 1.41-.58 1.1 0 2 .9 2 2 0 .55-.22 1.05-.59 1.41l-5.44 5.44c.34.09.67.15 1.03.15 1.11 0 2.09-.46 2.82-1.18l.01.01 3-3-.01-.01C19.54 6.09 20 5.11 20 4zM5 14a1.003 1.003 0 001.71.71l8-8a1.003 1.003 0 00-1.42-1.42l-2 2-2 2-2 2-2 2c-.18.18-.29.43-.29.71z\"],\n \"list\": [\"M1.03 1C.46 1 0 1.46 0 2.03v.95C0 3.54.46 4 1.03 4h17.95C19.54 4 20 3.54 20 2.97v-.94C20 1.46 19.54 1 18.97 1H1.03zM0 17.97C0 18.54.46 19 1.03 19h17.95c.56 0 1.03-.46 1.03-1.03v-.95c0-.56-.46-1.03-1.03-1.03H1.03C.46 16 0 16.46 0 17.03v.94zM0 12.97C0 13.54.46 14 1.03 14h17.95c.56 0 1.03-.46 1.03-1.03v-.95c0-.56-.46-1.03-1.03-1.03H1.03C.46 11 0 11.46 0 12.03v.94zM0 7.97C0 8.54.46 9 1.03 9h17.95C19.54 9 20 8.54 20 7.97v-.94C20 6.46 19.54 6 18.97 6H1.03C.46 6 0 6.46 0 7.03v.94z\"],\n \"list-columns\": [\"M0 2.973v-.936C0 1.468.46 1.01 1.029 1H7.97C8.541 1 9 1.468 9 2.027v.946C9 3.542 8.53 4 7.971 4H1.03C.459 4 0 3.542 0 2.973zm0 5v-.936C0 6.468.46 6.01 1.029 6H7.97C8.541 6 9 6.468 9 7.027v.946C9 8.542 8.53 9 7.971 9H1.03C.459 9 0 8.542 0 7.973zm0 5v-.936C0 11.468.46 11.01 1.029 11H7.97C8.541 11 9 11.468 9 12.027v.946C9 13.542 8.53 14 7.971 14H1.03C.459 14 0 13.542 0 12.973zm0 5v-.936C0 16.468.46 16.01 1.029 16H7.97C8.541 16 9 16.468 9 17.027v.946C9 18.542 8.53 19 7.971 19H1.03C.459 19 0 18.542 0 17.973zm11-15v-.936c0-.569.46-1.027 1.029-1.037h6.942C19.541 1 20 1.468 20 2.027v.946C20 3.542 19.53 4 18.971 4H12.03C11.459 4 11 3.542 11 2.973zm0 5v-.936c0-.569.46-1.027 1.029-1.037h6.942C19.541 6 20 6.468 20 7.027v.946C20 8.542 19.53 9 18.971 9H12.03C11.459 9 11 8.542 11 7.973zm0 5v-.936c0-.569.46-1.027 1.029-1.037h6.942c.57 0 1.029.468 1.029 1.027v.946c0 .569-.47 1.027-1.029 1.027H12.03c-.57 0-1.029-.458-1.029-1.027zm0 5v-.936c0-.569.46-1.027 1.029-1.037h6.942c.57 0 1.029.468 1.029 1.027v.946c0 .569-.47 1.027-1.029 1.027H12.03c-.57 0-1.029-.458-1.029-1.027z\"],\n \"list-detail-view\": [\"M8 6H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zm0 5H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm0 5H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zM8 1H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm11 0h-7c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1z\"],\n \"locate\": [\"M10 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm9 1h-1.07c-.45-3.61-3.32-6.45-6.93-6.91V1c0-.55-.45-1-1-1S9 .45 9 1v1.09C5.39 2.55 2.52 5.39 2.07 9H1c-.55 0-1 .45-1 1s.45 1 1 1h1.07c.45 3.61 3.32 6.45 6.93 6.91V19c0 .55.45 1 1 1s1-.45 1-1v-1.09c3.61-.46 6.48-3.29 6.93-6.91H19c.55 0 1-.45 1-1s-.45-1-1-1zm-4 2h.9a5.98 5.98 0 01-4.9 4.91V15c0-.55-.45-1-1-1s-1 .45-1 1v.91A5.98 5.98 0 014.1 11H5c.55 0 1-.45 1-1s-.45-1-1-1h-.9A5.98 5.98 0 019 4.09V5c0 .55.45 1 1 1s1-.45 1-1v-.91A5.98 5.98 0 0115.9 9H15c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"lock\": [\"M15.93 9H14V4.99c0-2.21-1.79-4-4-4s-4 1.79-4 4V9H3.93c-.55 0-.93.44-.93.99v8c0 .55.38 1.01.93 1.01h12c.55 0 1.07-.46 1.07-1.01v-8c0-.55-.52-.99-1.07-.99zM8 9V4.99c0-1.1.9-2 2-2s2 .9 2 2V9H8z\"],\n \"log-in\": [\"M19 0h-8c-.55 0-1 .45-1 1s.45 1 1 1h7v16h-7c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-4 10c0-.28-.11-.53-.29-.71l-5-5a1.003 1.003 0 00-1.42 1.42L11.59 9H1c-.55 0-1 .45-1 1s.45 1 1 1h10.59L8.3 14.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l5-5c.18-.18.29-.43.29-.71z\"],\n \"log-out\": [\"M19.71 9.29l-5-5a1.003 1.003 0 00-1.42 1.42L16.59 9H6c-.55 0-1 .45-1 1s.45 1 1 1h10.59l-3.29 3.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l5-5c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM9 18H2V2h7c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"manual\": [\"M20 1.1a.976.976 0 00-.83-.88C15.15-.43 12.07.34 10 2.5 7.93.34 4.85-.43.84.22.37.3.03.67 0 1.1v15.01c0 .07 0 .14.01.21.09.52.61.88 1.15.79 3.85-.62 6.4.16 8 2.46.02.02.03.04.05.07.02.02.04.04.06.07l.01.01a1.07 1.07 0 00.28.19c.01 0 .01.01.02.01.03.01.07.03.1.04.01 0 .02.01.04.01.03.01.07.02.1.02.01 0 .02 0 .04.01H10c.04 0 .09 0 .13-.01.01 0 .03 0 .04-.01.03-.01.06-.01.1-.02.01 0 .03-.01.04-.01.03-.01.07-.02.1-.04.01 0 .02-.01.03-.01.07-.03.13-.07.19-.11.01 0 .01-.01.02-.01.02-.02.04-.03.06-.05.01-.01.02-.02.03-.02l.05-.05c.01-.01.02-.02.02-.03.01-.02.02-.03.04-.05 1.61-2.3 4.15-3.09 8-2.46.54.09 1.06-.26 1.15-.79-.01-.05 0-.09 0-.13V1.1zM9 16.63c-1.78-1.31-4.12-1.83-7-1.55V2c3.26-.37 5.51.39 7 2.35v12.28zm9-1.56c-2.88-.28-5.22.24-7 1.55V4.34c1.49-1.96 3.74-2.71 7-2.35v13.08z\"],\n \"manually-entered-data\": [\"M1 12h4.34l2-2H1c-.55 0-1 .45-1 1s.45 1 1 1zm16.77-3.94l1.65-1.65c.36-.36.58-.86.58-1.41 0-1.1-.9-2-2-2-.55 0-1.05.22-1.41.59l-1.65 1.65 2.83 2.82zM1 4h12.34l2-2H1c-.55 0-1 .45-1 1s.45 1 1 1zM0 15c0 .55.45 1 1 1h.34l2-2H1c-.55 0-1 .45-1 1zm1-7h8.34l2-2H1c-.55 0-1 .45-1 1s.45 1 1 1zm18 2h-.34l-2 2H19c.55 0 1-.45 1-1s-.45-1-1-1zm0 4h-4.34l-2 2H19c.55 0 1-.45 1-1s-.45-1-1-1zM4 19l4.41-1.59-2.81-2.79L4 19zM14.23 5.94l-7.65 7.65 2.83 2.83 7.65-7.65-2.83-2.83z\"],\n \"many-to-many\": [\"M17 6a1 1 0 100-2 1 1 0 000 2zm0 2a3 3 0 01-2.73-1.754c-.2.068-.408.154-.617.264-.884.465-1.92 1.418-2.605 3.49.685 2.072 1.721 3.025 2.605 3.49.21.11.416.196.617.264a3 3 0 11-.165 2.034 6.262 6.262 0 01-1.383-.528c-.983-.518-1.948-1.364-2.722-2.705-.774 1.34-1.739 2.187-2.722 2.705-.48.252-.95.419-1.383.528A3.001 3.001 0 010 15a3 3 0 015.73-1.246c.2-.068.408-.154.617-.264.884-.465 1.92-1.418 2.605-3.49-.685-2.072-1.721-3.025-2.605-3.49a4.21 4.21 0 00-.617-.264 3 3 0 11.165-2.034c.433.11.904.276 1.383.528.983.518 1.948 1.364 2.722 2.705.774-1.34 1.739-2.187 2.722-2.705.48-.252.95-.419 1.383-.528A3.001 3.001 0 0120 5a3 3 0 01-3 3zM4 5a1 1 0 10-2 0 1 1 0 002 0zm12 10a1 1 0 102 0 1 1 0 00-2 0zM3 14a1 1 0 110 2 1 1 0 010-2z\"],\n \"many-to-one\": [\"M3 2a1 1 0 100 2 1 1 0 000-2zm0 4c1.296 0 2.4-.821 2.82-1.972.487.039 1.086.13 1.667.347.947.352 1.773 1 2.032 2.318.323 1.644 1.234 2.675 2.264 3.307-1.03.632-1.941 1.663-2.264 3.307-.259 1.318-1.085 1.966-2.032 2.318a6.244 6.244 0 01-1.668.347 3.001 3.001 0 10.019 2.004c.633-.042 1.491-.158 2.347-.476 1.402-.523 2.867-1.625 3.296-3.807.259-1.318 1.085-1.966 2.032-2.318.24-.09.484-.158.722-.21a3 3 0 100-2.33 5.329 5.329 0 01-.722-.21c-.947-.352-1.773-1-2.032-2.318-.428-2.182-1.894-3.284-3.296-3.807-.856-.318-1.714-.434-2.347-.476A3.001 3.001 0 000 3a3 3 0 003 3zm13 4a1 1 0 102 0 1 1 0 00-2 0zM2 17a1 1 0 112 0 1 1 0 01-2 0z\"],\n \"map\": [\"M19.54 4.18l.01-.02-6-4-.01.02C13.39.08 13.21 0 13 0s-.39.08-.54.18l-.01-.02L7 3.8 1.55.17l-.01.01A.969.969 0 001 0C.45 0 0 .45 0 1v14c0 .35.19.64.46.82l-.01.02 6 4 .01-.02c.15.1.33.18.54.18s.39-.08.54-.18l.01.02L13 16.2l5.45 3.63.01-.02c.15.11.33.19.54.19.55 0 1-.45 1-1V5c0-.35-.19-.64-.46-.82zM6 17.13l-4-2.67V2.87l4 2.67v11.59zm6-2.67l-4 2.67V5.54l4-2.67v11.59zm6 2.67l-4-2.67V2.87l4 2.67v11.59z\"],\n \"map-create\": [\"M18 9.22v7.91l-4-2.67V9.22c-.61-.55-1-1.33-1-2.22-.35 0-.69-.07-1-.18v7.65l-4 2.67V5.54l2.02-1.35c0-.06-.02-.13-.02-.19 0-1.66 1.34-3 3-3 0-.34.07-.66.17-.97C13.12.02 13.06 0 13 0c-.21 0-.39.08-.54.18l-.01-.02L7 3.8 1.55.17l-.01.01A.969.969 0 001 0C.45 0 0 .45 0 1v14c0 .35.19.64.46.82l-.01.02 6 4 .01-.02c.15.1.33.18.54.18s.39-.08.54-.18l.01.02L13 16.2l5.45 3.63.01-.02c.15.11.33.19.54.19.55 0 1-.45 1-1V6.82c-.31.11-.65.18-1 .18 0 .89-.39 1.67-1 2.22zM6 17.13l-4-2.67V2.87l4 2.67v11.59zM12 4c0 .55.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V5h2c.55 0 1-.45 1-1s-.45-1-1-1h-2V1c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1z\"],\n \"map-marker\": [\"M9.98 0c-3.87 0-7 2.98-7 6.67 0 3.68 7 13.33 7 13.33s7-9.65 7-13.33c0-3.68-3.14-6.67-7-6.67zm0 10c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\"],\n \"maximize\": [\"M19 0h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L11.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 3.41V6c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zM8 11c-.28 0-.53.11-.71.29L2 16.59V14c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1H3.41l5.29-5.29c.19-.18.3-.43.3-.71 0-.55-.45-1-1-1z\"],\n \"media\": [\"M15 9c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4-7H1c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm-1 13l-6-5-2 2-4-5-4 8V4h16v11z\"],\n \"menu\": [\"M1 6h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm18 3H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0 5H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"menu-closed\": [\"M8 6h11c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zM4 6c-.28 0-.53.11-.71.29l-3 3C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l3 3A1.003 1.003 0 005 13V7c0-.55-.45-1-1-1zm15 8H8c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm0-5H8c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"menu-open\": [\"M12 9H1c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm0 5H1c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm0-10H1c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm7.71 5.29l-3-3A1.003 1.003 0 0015 7v6a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"merge-columns\": [\"M6.71 6.29a1.003 1.003 0 00-1.42 1.42L6.59 9H2V2h5v2.18c.42.15.8.39 1.11.7l.01-.01.88.89V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-4.76l-.88.88-.01-.01c-.31.31-.69.56-1.11.71V18H2v-7h4.59L5.3 12.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3zM19 0h-7c-.55 0-1 .45-1 1v4.76l.88-.88.01.01c.31-.31.69-.55 1.11-.7V2h5v7h-4.59l1.29-1.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L13.41 11H18v7h-5v-2.18c-.42-.15-.8-.39-1.11-.7l-.01.01-.88-.89V19c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"merge-links\": [\"M10 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm8-5c-.93 0-1.71.64-1.93 1.5H14V4c0-2.21-1.79-4-4-4S6 1.79 6 4v5.5H3.93C3.71 8.64 2.93 8 2 8c-1.1 0-2 .9-2 2s.9 2 2 2c.93 0 1.71-.64 1.93-1.5H6V16c0 2.21 1.79 4 4 4s4-1.79 4-4v-5.5h2.07c.22.86 1 1.5 1.93 1.5 1.1 0 2-.9 2-2s-.9-2-2-2zm-5 8c0 1.66-1.34 3-3 3s-3-1.34-3-3V4c0-1.66 1.34-3 3-3s3 1.34 3 3v12zM10 3c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"minimize\": [\"M8 11H3c-.55 0-1 .45-1 1s.45 1 1 1h2.59L.3 18.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L7 14.41V17c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1zM20 1a1.003 1.003 0 00-1.71-.71L13 5.59V3c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1h-2.59l5.29-5.29c.19-.18.3-.43.3-.71z\"],\n \"minus\": [\"M16 9H4c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"mobile-phone\": [\"M15 0H5c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-5 19c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm4-3H6V3h8v13z\"],\n \"mobile-video\": [\"M19 5c-.28 0-.53.11-.71.29L15 8.59V5c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h13c.55 0 1-.45 1-1v-3.59l3.29 3.29c.18.19.43.3.71.3.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z\"],\n \"modal\": [\"M19 1a1 1 0 011 1v16a1 1 0 01-1 1H1a1 1 0 01-1-1V2a1 1 0 011-1h18zm-1 4H2v12h16V5zm-3-3h-2v2h2V2zm3 0h-2v2h2V2z\"],\n \"modal-filled\": [\"M20 5v13a1 1 0 01-1 1H1a1 1 0 01-1-1V5h20zm-3-4h2a1 1 0 011 1v1h-3V1zm-2 2H0V2a1 1 0 011-1h14v2z\"],\n \"moon\": [\"M19 14.15A9.94 9.94 0 019.94 20C4.45 20 0 15.55 0 10.06 0 6.03 2.4 2.56 5.85 1a9.811 9.811 0 00-.88 4.09c0 5.49 4.45 9.94 9.94 9.94 1.46 0 2.84-.31 4.09-.88z\"],\n \"more\": [\"M3.5 8a2.5 2.5 0 100 5 2.5 2.5 0 100-5zM17.5 8a2.5 2.5 0 100 5 2.5 2.5 0 100-5zM10.5 8a2.5 2.5 0 100 5 2.5 2.5 0 100-5z\"],\n \"mountain\": [\"M20 16H4l7-11h1l2 2h1l5 9zm-4-5l-1.5-3h-1l-1-1-1-1L8 11.5l3-1.5 1 1 1-1 3 1zM8.055 8L2.79 16H0l7-8h1.055z\"],\n \"move\": [\"M19.71 9.29l-3-3a1.003 1.003 0 00-1.42 1.42L16.59 9H11V3.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3C10.53.11 10.28 0 10 0s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L9 3.41V9H3.41L4.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L3.41 11H9v5.59L7.71 15.3A.965.965 0 007 15a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3a1.003 1.003 0 00-1.42-1.42L11 16.59V11h5.59l-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"mugshot\": [\"M19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18h-.07c-.05-.2-.12-.42-.22-.67-.46-1.05-2.68-1.75-4.16-2.4-1.48-.65-1.28-1.05-1.33-1.59-.01-.07-.01-.15-.01-.23.51-.45.92-1.07 1.19-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.34-.07.54-.44.61-.78.08-.14.23-.48.2-.87-.05-.5-.25-.73-.47-.82v-.09c0-.63-.06-1.55-.17-2.15-.02-.17-.06-.33-.11-.5a3.67 3.67 0 00-1.29-1.86C11.7 3.25 10.81 3 10.02 3s-1.68.25-2.31.73c-.61.47-1.07 1.13-1.29 1.86-.05.16-.09.33-.11.5-.12.6-.17 1.51-.17 2.14v.08c-.24.09-.44.32-.49.83-.04.39.12.73.2.87.08.35.28.72.63.78.04.17.09.33.15.48 0 .01.01.02.01.03l.01.01c.27.72.7 1.35 1.22 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.38 1.59-1.48.65-3.7 1.35-4.16 2.4-.12.27-.18.49-.23.69H2V2h16v16z\"],\n \"multi-select\": [\"M19 3H7c-.55 0-1 .45-1 1v1h12v6h1c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-6 6H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zm-1 6H2v-4h10v4zm4-9H4c-.55 0-1 .45-1 1v1h12v6h1c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1z\"],\n \"music\": [\"M19 0c-.08 0-.16.03-.24.05V.03l-12 3v.02C6.33 3.16 6 3.53 6 4v11.35c-.59-.22-1.27-.35-2-.35-2.21 0-4 1.12-4 2.5S1.79 20 4 20c1.94 0 3.55-.86 3.92-2H8V7.78l10-2.5v7.07c-.59-.22-1.27-.35-2-.35-2.21 0-4 1.12-4 2.5s1.79 2.5 4 2.5c1.94 0 3.55-.86 3.92-2H20V1c0-.55-.45-1-1-1z\"],\n \"nest\": [\"M2 2c.55 0 1 .45 1 1v5c0 2.21 1.79 4 4 4h8.59L13.3 9.71A.965.965 0 0113 9a1.003 1.003 0 011.71-.71l4 4c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-4 4a1.003 1.003 0 01-1.42-1.42l2.3-2.29H7c-3.31 0-6-2.69-6-6V3c0-.55.45-1 1-1z\"],\n \"new-drawing\": [\"M18.7 13.7c.5 0 1 .4 1 1 0 .257-.073.44-.22.614l-.08.086-4 4c-.2.2-.4.3-.7.3-.6 0-1-.5-1-1 0-.257.073-.44.22-.614L14 18l4-4c.2-.2.4-.3.7-.3zM1.8 0l8.378 2.982A3.003 3.003 0 0013 7a3.003 3.003 0 003.877 2.87l.723 2.53.049.06a.41.41 0 01.051.24c0 .167-.07.403-.208.593l-.092.107-4 4c-.2.2-.4.3-.7.3-.075 0-.15-.056-.225-.084L12.4 17.6l-7-2-.112-.042c-.223-.094-.431-.244-.542-.45L4.7 15 0 1.8l.5-.6L7 7.7c-.2.3-.3.6-.3 1 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2a1.68 1.68 0 00-.871.22L7.7 7 1.2.5l.6-.5zM16 0c.55 0 1 .45 1 1v2h2c.55 0 1 .45 1 1s-.45 1-1 1h-2v2c0 .432-.278.803-.664.941l-.01.004A.989.989 0 0116 8c-.55 0-1-.45-1-1V5h-2c-.55 0-1-.45-1-1l.007-.116C12.065 3.388 12.489 3 13 3h2V1c0-.55.45-1 1-1z\"],\n \"new-grid-item\": [\"M8 0H1C.45 0 0 .45 0 1v7c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm0 11H1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-7c0-.55-.45-1-1-1zm6 7h-1v-1c0-.55-.45-1-1-1s-1 .45-1 1v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1s-.45-1-1-1zm5-7h-2c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1zm0-11h-7c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-5 11h-2c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1s1-.45 1-1v-1h1c.55 0 1-.45 1-1s-.45-1-1-1zm5 5c-.55 0-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h2c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1z\"],\n \"new-layer\": [\"M11.513 2.663A2 2 0 0013 6h1v1a2 2 0 104 0v-.733l1.5.833c.3.2.5.5.5.9s-.2.7-.5.9l-9 5c-.2.1-.3.1-.5.1s-.3 0-.5-.1l-9-5C.2 8.7 0 8.4 0 8s.2-.7.5-.9l9-5c.2-.1.3-.1.5-.1s.3 0 .5.1l1.013.563zM17 3h2a1 1 0 010 2h-2v2a1 1 0 01-2 0V5h-2a1 1 0 010-2h2V1a1 1 0 012 0v2z\"],\n \"new-layers\": [\"M17 3h2a1 1 0 010 2h-2v2a1 1 0 01-2 0V5h-2a1 1 0 010-2h2V1a1 1 0 012 0v2zm-1.252 5.984L10.5 11.9c-.2.1-.3.1-.5.1s-.3 0-.5-.1l-9-5C.2 6.7 0 6.4 0 6s.2-.7.5-.9l9-5c.2-.1.3-.1.5-.1s.3 0 .5.1L13.92 2H13a2 2 0 100 4h1v1a2 2 0 001.748 1.984zm2.07-1.15C17.935 7.58 18 7.298 18 7V6h1c.353 0 .684-.091.972-.251.018.078.028.162.028.251 0 .4-.2.7-.5.9l-1.682.934zM19 9c.6 0 1 .4 1 1 0 .4-.2.7-.5.9l-9 5c-.2.1-.3.1-.5.1s-.3 0-.5-.1l-9-5c-.3-.2-.5-.5-.5-.9 0-.6.4-1 1-1 .2 0 .3 0 .5.1l8.5 4.8 8.5-4.8c.2-.1.3-.1.5-.1zm0 4c.6 0 1 .4 1 1 0 .4-.2.7-.5.9l-9 5c-.2.1-.3.1-.5.1s-.3 0-.5-.1l-9-5c-.3-.2-.5-.5-.5-.9 0-.6.4-1 1-1 .2 0 .3 0 .5.2l8.5 4.7 8.5-4.8c.2-.1.3-.1.5-.1z\"],\n \"new-link\": [\"M14.5 12a2.5 2.5 0 00-2.45 2h-7.1a2.5 2.5 0 100 1h7.1a2.5 2.5 0 102.45-3zM19 5h-2V3c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V7h2c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"new-object\": [\"M12 4c0 .6.4 1 1 1h2v2c0 .6.4 1 1 1 .5 0 1-.4 1-1V5h2c.5 0 1-.4 1-1s-.5-1-1-1h-2V1c0-.6-.5-1-1-1-.6 0-1 .4-1 1v2h-2c-.6 0-1 .5-1 1zm7 3c0 1.7-1.3 3-3 3s-3-1.3-3-3c-1.7 0-3-1.3-3-3s1.3-3 3-3c0-.2 0-.4.1-.5-1-.3-2-.5-3.1-.5C4.5 0 0 4.5 0 10s4.5 10 10 10 10-4.5 10-10c0-1.1-.2-2.1-.5-3H19z\"],\n \"new-person\": [\"M11.41 15.92c-1.46-.65-1.26-1.05-1.31-1.59-.01-.07-.01-.15-.01-.23.5-.45.91-1.07 1.18-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.33-.07.53-.44.6-.78.08-.14.23-.48.2-.87-.05-.5-.24-.73-.47-.82v-.09c0-.63-.06-1.55-.17-2.15-.02-.17-.06-.33-.11-.5-.22-.73-.67-1.4-1.27-1.86C9.58 4.25 8.7 4 7.92 4c-.78 0-1.66.25-2.28.73-.61.47-1.06 1.13-1.27 1.86-.05.16-.08.33-.11.5-.12.6-.18 1.51-.18 2.14v.08c-.23.09-.43.32-.48.83-.04.39.12.73.2.87.08.35.28.72.62.78.04.17.09.33.15.48 0 .01.01.02.01.03l.01.01c.27.72.69 1.35 1.21 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.36 1.59-1.46.65-3.66 1.35-4.11 2.4C-.14 19.38.04 20 .04 20h15.75s.18-.62-.27-1.67c-.45-1.06-2.65-1.75-4.11-2.41zM18.87 3h-2V1c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V5h2c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"new-prescription\": [\"M11.95 10.23c.16-.18.22-.22.46-.22h1.48c.25 0 .47.08.59.33.1.2.09.41-.05.66l-2.71 3.58L14.88 19c.13.21.16.46.03.69-.12.21-.34.31-.57.31H12.7c-.31 0-.56-.17-.7-.44l-1.9-2.67-1.93 2.68c-.15.27-.42.43-.73.43H5.98c-.25 0-.47-.08-.59-.33-.1-.2-.09-.41.05-.66l3.09-4.35L4.26 9H3v4.32c0 .41-.3.69-.7.69H.7c-.41 0-.7-.28-.7-.69V.69C0 .28.3 0 .7 0h4.42c.71 0 1.36.1 1.94.3.59.2 1.11.49 1.54.87.44.38.78.84 1.02 1.39.25.54.37 1.13.37 1.77 0 1.01-.28 1.88-.84 2.6-.43.54-1.35 1.29-2 1.59l3.09 3.94 1.71-2.23zM4.71 6.04c.71 0 1.45-.16 1.81-.46.33-.28.5-.69.5-1.25s-.17-.97-.5-1.25c-.35-.3-1.1-.46-1.81-.46h-1.7v3.42h1.7zM19 3c.55 0 1 .45 1 1s-.45 1-1 1h-2v2c0 .55-.45 1-1 1s-1-.45-1-1V5h-2c-.55 0-1-.45-1-1s.45-1 1-1h2V1c0-.55.45-1 1-1s1 .45 1 1v2h2z\"],\n \"new-text-box\": [\"M19 3h-2V1c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V5h2c.55 0 1-.45 1-1s-.45-1-1-1zM5 7.5v1c0 .28.22.5.5.5s.5-.22.5-.5V8h2v7h-.5c-.28 0-.5.22-.5.5s.22.5.5.5h2c.28 0 .5-.22.5-.5s-.22-.5-.5-.5H9V8h2v.5c0 .28.22.5.5.5s.5-.22.5-.5v-1c0-.28-.22-.5-.5-.5h-6c-.28 0-.5.22-.5.5zM16 9c-.55 0-1 .45-1 1v8H2V5h8c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1v15c0 .55.45 1 1 1h15c.55 0 1-.45 1-1v-9c0-.55-.45-1-1-1z\"],\n \"ninja\": [\"M20 6s-2.98 2.43-6.12 2.19C13.52 5.31 12.05 0 6 0c0 0 2.41 2.99 2.16 6.12C5.27 6.49 0 7.97 0 14c0 0 2.98-2.43 6.11-2.19C6.47 14.69 7.94 20 14 20c0 0-2.42-2.99-2.16-6.13C14.73 13.51 20 12.02 20 6zm-10 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"],\n \"not-equal-to\": [\"M9.487 7l.532-3.196a1 1 0 011.962.392L11.513 7H16a1 1 0 010 2h-4.82l-.333 2H16a1 1 0 010 2h-5.487l-.532 3.196a1 1 0 01-1.962-.392L8.487 13H4a1 1 0 010-2h4.82l.333-2H4a1 1 0 110-2h5.487z\"],\n \"notifications\": [\"M10 20c1.1 0 2-.9 2-2H8c0 1.1.9 2 2 2zm7-5c-.55 0-1-.45-1-1V8c0-2.61-1.67-4.81-4-5.63V2c0-1.1-.9-2-2-2S8 .9 8 2v.37C5.67 3.19 4 5.39 4 8v6c0 .55-.45 1-1 1s-1 .45-1 1 .45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"notifications-snooze\": [\"M10 18c0 1.1-.9 2-2 2s-2-.9-2-2zM8 0c.476 0 .914.168 1.258.448C8.508.878 8.09 1.562 8 2.5c-.133 1.4.4 2.367 1.6 2.9C8.533 6.6 8 7.467 8 8v1.2a2.8 2.8 0 002.8 2.8H14v2c0 .51.388.935.884.993L15 15c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1 1-.45 1-1V8c0-2.61 1.67-4.81 4-5.63V2c0-1.1.9-2 2-2z\", \"M16 9.25v-.395a.75.75 0 00-.75-.75h-2.813L15.834 3.9A.75.75 0 0016 3.43v-.68a.75.75 0 00-.75-.75h-4.5a.75.75 0 00-.75.75v.184c0 .414.336.75.75.75h2.813L10.22 7.831a1 1 0 00-.221.627v.792c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75z\"],\n \"notifications-updated\": [\"M10 20c1.1 0 2-.9 2-2H8c0 1.1.9 2 2 2zm2-17.834A2.994 2.994 0 008 4.99c0 .808.319 1.557.876 2.114l2.97 2.99a2.99 2.99 0 004.154.072V14c0 .55.45 1 1 1s1 .45 1 1-.45 1-1 1H3c-.55 0-1-.45-1-1s.45-1 1-1 1-.45 1-1V8c0-2.61 1.67-4.81 4-5.63V2c0-1.1.9-2 2-2s2 .9 2 2v.166zm1.26 6.514l-2.97-2.99a.973.973 0 01-.29-.7c0-.55.44-1 .99-1 .27 0 .52.11.7.29l2.28 2.28 4.27-4.27a.99.99 0 01.7-.29c.55 0 1 .45 1 1 0 .28-.11.53-.3.7l-4.98 4.98a.99.99 0 01-1.4 0z\"],\n \"numbered-list\": [\"M1.74 9.01h1.27V1h-.95c-.04.24-.12.45-.26.62-.13.17-.29.3-.47.41-.19.11-.4.18-.63.23-.23.04-.46.07-.71.07v1.03h1.75v5.65zm.43 7.93c.18-.14.37-.28.58-.43.21-.14.42-.29.63-.45.21-.16.41-.33.61-.5.2-.18.37-.38.52-.59.15-.21.28-.45.37-.7.09-.25.14-.54.14-.85 0-.25-.04-.52-.12-.8-.08-.28-.21-.54-.39-.78-.19-.24-.43-.44-.73-.59-.3-.17-.68-.25-1.12-.25-.41 0-.77.08-1.08.23-.32.16-.58.37-.8.64-.22.27-.38.59-.49.96-.11.37-.16.77-.16 1.21h1.19c.01-.28.03-.53.08-.77s.12-.45.21-.62c.09-.18.22-.31.38-.42.16-.1.35-.15.59-.15.26 0 .47.05.63.14.16.09.29.21.38.35.09.14.15.29.18.45.03.16.05.31.05.45-.01.31-.08.58-.22.81-.14.24-.32.45-.53.66-.22.2-.45.39-.71.57-.26.18-.51.36-.74.54-.5.36-.89.78-1.17 1.27-.3.47-.45 1.04-.46 1.69H5v-1.14H1.43c.05-.17.14-.33.27-.49.13-.15.29-.3.47-.44zM18 4.02H8c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-1c0-.56-.45-1-1-1zm0 9H8c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-1c0-.56-.45-1-1-1z\"],\n \"numerical\": [\"M2.39 5.75c-.17.21-.38.39-.63.52s-.52.23-.83.29c-.3.05-.61.08-.93.08v1.24h2.49V15h1.49V4.98H2.73c-.05.31-.17.57-.34.77zm17.2 4.71c-.27-.44-.65-.71-1.14-.82v-.02c.42-.16.72-.43.92-.79.2-.36.29-.79.29-1.27 0-.42-.08-.8-.23-1.12-.15-.33-.36-.59-.62-.8-.26-.21-.55-.37-.87-.48-.32-.11-.65-.16-.98-.16-.43 0-.82.08-1.16.25-.34.16-.63.39-.87.69-.24.29-.43.64-.57 1.04-.14.4-.22.83-.23 1.3h1.39c-.01-.25.02-.49.07-.72.06-.23.14-.44.26-.63s.27-.34.45-.45c.18-.11.39-.17.63-.17.39 0 .71.12.96.37s.37.58.37.99c0 .29-.05.54-.16.74-.11.2-.25.36-.43.47-.18.11-.38.19-.61.24-.23.05-.46.06-.68.05v1.17c.28-.01.55 0 .81.03s.5.1.71.21c.21.11.38.28.51.5.13.22.2.52.2.89 0 .55-.16.97-.47 1.27-.31.3-.7.45-1.17.45-.55 0-.95-.19-1.23-.58-.27-.39-.4-.88-.38-1.46h-1.39c.01.5.08.96.21 1.38.13.41.32.77.57 1.06.25.29.56.52.93.68.37.16.8.24 1.3.24.41 0 .79-.07 1.16-.21.37-.14.69-.33.96-.58.28-.25.5-.56.66-.92a3 3 0 00.24-1.23c0-.64-.14-1.17-.41-1.61zM8.58 12.41c.21-.18.45-.36.7-.53.25-.18.5-.36.75-.56.25-.2.49-.41.73-.63.23-.22.44-.47.63-.74.18-.27.33-.56.44-.88.11-.32.16-.67.16-1.07 0-.32-.05-.65-.14-1-.09-.35-.25-.68-.47-.97-.22-.3-.51-.55-.87-.74-.36-.2-.81-.29-1.35-.29-.49 0-.93.1-1.3.29-.37.18-.69.44-.95.78-.26.33-.45.73-.58 1.2-.13.46-.2.96-.2 1.5h1.43c.01-.35.04-.67.09-.97.05-.3.14-.56.25-.78.11-.22.26-.39.45-.52s.43-.19.71-.19c.31 0 .56.06.75.18.19.12.34.26.45.43.11.17.18.36.22.56.04.2.06.39.06.57-.01.38-.1.72-.26 1.02-.15.3-.37.57-.63.83-.26.25-.54.49-.85.71-.31.22-.61.45-.89.68-.6.45-1.06.98-1.41 1.58-.35.61-.52 1.32-.53 2.13h6.01v-1.43H7.69c.06-.21.17-.42.33-.61s.34-.38.56-.55z\"],\n \"office\": [\"M19 6h-5V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h4v-6h4v6h10c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zM6 12H2V8h4v4zm0-6H2V2h4v4zm6 6H8V8h4v4zm0-6H8V2h4v4zm6 11h-4v-3h4v3zm0-5h-4V8h4v4z\"],\n \"offline\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zM7 18l2-7H5l8-9-2 7h4l-8 9z\"],\n \"oil-field\": [\"M19 17.99h-1.36l-4.35-9.57 2.91-.86 1.66 4.1c.11.27.43.4.72.31.12-.04.22-.11.28-.2.06-.11 1.47-2.08 1.05-5.6C19.79 5.12 19.3 0 16.01 0 14.89.01 13.99.83 14 1.84c0 .19.04.38.1.56l1.34 3.31L.72 10.03v.02c-.41.12-.72.49-.72.94 0 .55.45 1 1 1 .1 0 .19-.03.28-.06v.02l2-.59 1.47 6.63H3c-.55 0-1 .45-1 1s.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1zM5.2 10.8l3.95-1.16-2.83 6.22L5.2 10.8zm2.35 7.19l3.95-8.68 3.95 8.68h-7.9z\"],\n \"one-column\": [\"M14.94 0h-4c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-8 6c-.28 0-.53.11-.71.29l-3 3c-.18.18-.29.43-.29.71s.11.53.29.71l3 3A1.003 1.003 0 007.94 13V7c0-.55-.45-1-1-1z\"],\n \"one-to-many\": [\"M18 3a1 1 0 11-2 0 1 1 0 012 0zm-3.82 1.028a6.243 6.243 0 00-1.667.347c-.947.352-1.773 1-2.032 2.318C10.158 8.337 9.247 9.368 8.217 10c1.03.632 1.941 1.663 2.264 3.307.259 1.318 1.085 1.966 2.032 2.318.581.217 1.18.308 1.668.347a3.001 3.001 0 11-.019 2.004c-.633-.042-1.491-.158-2.347-.476-1.402-.523-2.868-1.625-3.296-3.807-.259-1.318-1.085-1.966-2.032-2.318a5.314 5.314 0 00-.722-.21 3 3 0 110-2.33c.238-.052.481-.12.722-.21.947-.352 1.773-1 2.032-2.318.428-2.182 1.894-3.284 3.296-3.807.856-.318 1.714-.434 2.347-.476A3.001 3.001 0 0120 3a3 3 0 01-5.82 1.028zM4 10a1 1 0 100 .002v-.002zM17 18a1 1 0 100-2 1 1 0 000 2z\"],\n \"one-to-one\": [\"M2 10a1 1 0 112 0 1 1 0 01-2 0zm3.83-1a3.001 3.001 0 100 2h8.34a3.001 3.001 0 100-2H5.83zM17 9a1 1 0 100 2 1 1 0 000-2z\"],\n \"outdated\": [\"M10 0c5.52 0 10 4.48 10 10s-4.48 10-10 10S0 15.52 0 10c0-.55.45-1 1-1s1 .45 1 1c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8C7.47 2 5.22 3.17 3.76 5H5c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1s1 .45 1 1v2.05C3.82 1.6 6.71 0 10 0zm1 16H9v-2h2v2zm0-3H9V4h2v9z\"],\n \"page-layout\": [\"M19 1H1c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM7 17H2V8h5v9zm11 0H8V8h10v9zm0-10H2V3h16v4z\"],\n \"panel-stats\": [\"M1 1h18a1 1 0 011 1v15a1 1 0 01-1 1H1a1 1 0 01-1-1V2a1 1 0 011-1zm1 2v13h16V3H2zm9 0h1v13h-1V3zm2 7h3.952v1H13v-1zm0 2h3.952v1H13v-1zm0 2h3.952v1H13v-1zm0-6h3.952v1H13V8zm0-2h3.952v1H13V6zm0-2h3.952v1H13V4z\"],\n \"panel-table\": [\"M19 1H1c-.6 0-1 .4-1 1v15c0 .6.4 1 1 1h18c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1zm-9 11H7V9h3v3zm0-4H7V5h3v3zm-8 8V3h4v13H2zm5 0v-3h3v3H7zm11 0h-7v-3h7v3zm0-4h-7V9h7v3zm0-4h-7V5h7v3z\"],\n \"paperclip\": [\"M18.35 2.67A5.664 5.664 0 0014.33 1c-1.44 0-2.89.56-3.99 1.67l-9.16 9.27C.4 12.73 0 13.78 0 14.83s.39 2.1 1.18 2.9c.78.79 1.82 1.18 2.85 1.18 1.04 0 2.07-.39 2.87-1.2l9.14-9.27c.96-.96.96-2.5.02-3.45-.94-.95-2.49-.96-3.44 0l-7.59 7.69c-.31.32-.3.83.01 1.14.31.31.81.31 1.13.02l7.59-7.69c.31-.31.84-.31 1.13-.02.31.31.31.85 0 1.16l-9.14 9.27c-.93.95-2.54.93-3.45.02-.94-.95-.92-2.55.02-3.49l9.16-9.25c1.55-1.56 4.18-1.59 5.72-.03 1.56 1.57 1.55 4.26 0 5.82l-8.89 9.02c-.3.31-.3.81.01 1.11.3.3.79.31 1.1.01v.01l8.91-9.02A5.645 5.645 0 0020 6.73c0-1.48-.55-2.94-1.65-4.06z\"],\n \"paragraph\": [\"M16.5 1H7C4.2 1 2 3.2 2 6s2.2 5 5 5v6.5c0 .8.7 1.5 1.5 1.5s1.5-.7 1.5-1.5V4h2v13.5c0 .8.7 1.5 1.5 1.5s1.5-.7 1.5-1.5V4h1.5c.8 0 1.5-.7 1.5-1.5S17.3 1 16.5 1z\"],\n \"path\": [\"M18 0H2C.9 0 0 .9 0 2s.9 2 2 2h7v4H4c-1.1 0-2 .9-2 2s.9 2 2 2h5v4H6c-1.1 0-2 .9-2 2s.9 2 2 2h8c1.1 0 2-.9 2-2s-.9-2-2-2h-3v-4h5c1.1 0 2-.9 2-2s-.9-2-2-2h-5V4h7c1.1 0 2-.9 2-2s-.9-2-2-2z\"],\n \"path-search\": [\"M4 7c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm15 11.69l-5-2.5v-3.63c-.32.11-.66.22-1 .29v3.32l-6 2.57v-7.25c-.36-.27-.69-.57-1-.9v8.1l-5-2.5V10c.55 0 1-.45 1-1s-.45-1-1-1V1.31l3.43 1.71c.11-.31.24-.62.39-.92L.72.05A.545.545 0 00.5 0C.22 0 0 .22 0 .5v16c0 .2.12.36.28.44l6 3c.07.04.14.06.22.06.07 0 .14-.01.2-.04l6.79-2.91 5.79 2.9c.07.03.14.05.22.05.28 0 .5-.22.5-.5v-4.21c-.31.13-.64.21-1 .21v3.19zM10 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm3-1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm6.72-.94l-1.43-.72c.2.43.36.89.48 1.36l.23.11V5.5c-.55 0-1 .45-1 1s.45 1 1 1v1.96l1 1V3.5c0-.2-.12-.36-.28-.44zm-3.69 5.56c.14-.21.27-.42.38-.65.02-.04.04-.07.05-.11.11-.22.2-.45.28-.69v-.01c.07-.24.13-.48.17-.73l.03-.17c.04-.25.06-.5.06-.76C17 2.46 14.54 0 11.5 0S6 2.46 6 5.5 8.46 11 11.5 11c.26 0 .51-.02.76-.06l.17-.03c.25-.04.49-.1.73-.17h.01c.24-.08.47-.17.69-.28.04-.02.07-.03.11-.05.23-.11.44-.24.65-.38l.18.18 3.5 3.5c.17.18.42.29.7.29a1.003 1.003 0 00.71-1.71l-3.68-3.67zm-4.53.88c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z\"],\n \"pause\": [\"M7 3H4c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm9 0h-3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"people\": [\"M16.94 17a4.92 4.92 0 00-.33-1.06c-.45-.97-1.37-1.52-3.24-2.3-.17-.07-.76-.31-.77-.32-.1-.04-.2-.08-.28-.12.05-.14.04-.29.06-.45 0-.05.01-.11.01-.16-.25-.21-.47-.48-.65-.79.22-.34.41-.71.56-1.12l.04-.11c-.01.02-.01.02-.02.08l.06-.15c.36-.26.6-.67.72-1.13.18-.37.29-.82.25-1.3-.05-.5-.21-.92-.47-1.22-.02-.53-.06-1.11-.12-1.59.38-.17.83-.26 1.24-.26.59 0 1.26.19 1.73.55.46.35.8.85.97 1.4.04.13.07.25.08.38.08.45.13 1.14.13 1.61v.07c.16.07.31.24.35.62.02.29-.09.55-.15.65-.05.26-.2.53-.46.59-.03.12-.07.25-.11.36-.01.01-.01.04-.01.04-.2.53-.51 1-.89 1.34 0 .06 0 .12.01.17.04.41-.11.71 1 1.19 1.1.5 2.77 1.01 3.13 1.79.34.79.2 1.25.2 1.25h-3.04zm-5.42-3.06c1.47.66 3.7 1.35 4.18 2.39.45 1.05.27 1.67.27 1.67H.04s-.19-.62.27-1.67c.46-1.05 2.68-1.75 4.16-2.4 1.48-.65 1.33-1.05 1.38-1.59 0-.07.01-.14.01-.21-.52-.45-.95-1.08-1.22-1.8l-.01-.01c0-.01-.01-.02-.01-.03-.07-.15-.12-.32-.16-.49-.34-.06-.54-.43-.62-.78-.08-.14-.24-.48-.2-.87.05-.51.26-.74.49-.83v-.08c0-.64.05-1.55.17-2.15a3.648 3.648 0 011.4-2.36C6.32 2.25 7.21 2 8 2s1.68.25 2.31.73a3.63 3.63 0 011.4 2.36c.11.6.17 1.52.17 2.15v.09c.22.09.42.32.47.82.03.39-.12.73-.2.87-.07.34-.27.71-.61.78-.04.16-.09.33-.15.48-.01.01-.02.05-.02.05-.27.71-.68 1.33-1.19 1.78 0 .08 0 .16.01.23.05.55-.15.95 1.33 1.6z\"],\n \"percentage\": [\"M15 10c-1.66 0-3 1.34-3 3v2c0 1.66 1.34 3 3 3s3-1.34 3-3v-2c0-1.66-1.34-3-3-3zm1 5c0 .55-.45 1-1 1s-1-.45-1-1v-2c0-.55.45-1 1-1s1 .45 1 1v2zM8 7V5c0-1.66-1.34-3-3-3S2 3.34 2 5v2c0 1.66 1.34 3 3 3s3-1.34 3-3zM4 7V5c0-.55.45-1 1-1s1 .45 1 1v2c0 .55-.45 1-1 1s-1-.45-1-1zm11-4a1.003 1.003 0 00-1.88-.48L5.14 16.49a1.003 1.003 0 101.74.99l7.99-13.97c.08-.15.13-.32.13-.51z\"],\n \"person\": [\"M19.61 17.91c-.57-1.32-3.35-2.19-5.19-3.01-1.85-.82-1.59-1.31-1.66-1.99-.01-.09-.01-.19-.02-.29.63-.56 1.15-1.33 1.49-2.22 0 0 .02-.05.02-.06.07-.19.13-.39.19-.6.42-.09.67-.55.76-.98.1-.17.29-.6.25-1.08-.06-.62-.31-.91-.59-1.03v-.11c0-.79-.07-1.93-.22-2.68A4.55 4.55 0 0012.9.92C12.11.32 11 0 10.01 0s-2.1.32-2.89.92a4.55 4.55 0 00-1.74 2.94c-.14.75-.22 1.89-.22 2.68v.1c-.29.11-.55.4-.61 1.04-.04.48.15.91.25 1.08.1.44.35.91.79.98.05.21.12.41.19.6 0 .01.01.03.01.04l.01.02c.34.91.87 1.69 1.52 2.25 0 .09-.01.18-.02.26-.07.68.13 1.17-1.72 1.99S.96 16.59.39 17.91C-.18 19.23.05 20 .05 20h19.9s.23-.77-.34-2.09z\"],\n \"phone\": [\"M19.91 15.51c-.08-.08-4.21-2.5-4.35-2.57a.876.876 0 00-.4-.1c-.19 0-.42.13-.71.4-.28.27-1.17 1.49-1.43 1.76s-.48.4-.65.4c-.08 0-.19-.02-.32-.07s-1.45-.73-4.2-3.15-3.11-4-3.13-4.44c0-.17.13-.39.4-.65.28-.25.57-.51.89-.74.32-.24.61-.5.88-.78s.4-.52.4-.71c0-.13-.03-.27-.1-.4C7.12 4.32 4.62.19 4.53.1c-.19-.18-.92-.1-1.29.1C.25 1.82 0 4 .05 4.86c.05.89.61 5.58 5.2 9.93 5.7 5.41 9.66 5.2 9.92 5.2.87 0 3.52-.48 4.65-3.19.16-.38.31-1.07.09-1.29z\"],\n \"pie-chart\": [\"M9 .98c-4.5.5-8 4.31-8 8.94 0 4.97 4.03 9.04 9 9.04 4.63 0 8.44-3.96 8.94-7.96H9V.98z\", \"M10-.08V10h10C20 4 15.52-.08 10-.08z\"],\n \"pin\": [\"M11.77 1.16c-.81.81-.74 2.28.02 3.76L6.1 8.71c-2.17-1.46-4.12-2-4.94-1.18l4.95 4.95-4.95 6.36 6.36-4.95 4.95 4.95c.82-.82.27-2.77-1.19-4.94l3.8-5.69c1.47.76 2.94.84 3.76.02l-7.07-7.07z\"],\n \"pivot\": [\"M5.83 9.75L.29 15.29a1.003 1.003 0 001.42 1.42l5.54-5.54c-.57-.37-1.05-.85-1.42-1.42zM19 11c-.55 0-1 .45-1 1v1.59l-3.83-3.83c-.37.56-.85 1.04-1.41 1.41L16.59 15H15c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm-5-4c0-2.21-1.79-4-4-4S6 4.79 6 7s1.79 4 4 4 4-1.79 4-4zm-4 2c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"],\n \"pivot-table\": [\"M3 5H1c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm0-5H1C.45 0 0 .45 0 1v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm13.71 5.29C16.53 5.11 16.28 5 16 5s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L15 8.41V11c0 2.21-1.79 4-4 4H8.41l1.29-1.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L8.41 17H11c3.31 0 6-2.69 6-6V8.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3zM19 0H6c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"play\": [\"M16 10c0-.36-.2-.67-.49-.84l.01-.01-10-6-.01.01A.991.991 0 005 3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1 .19 0 .36-.07.51-.16l.01.01 10-6-.01-.01c.29-.17.49-.48.49-.84z\"],\n \"plus\": [\"M16 9h-5V4c0-.55-.45-1-1-1s-1 .45-1 1v5H4c-.55 0-1 .45-1 1s.45 1 1 1h5v5c0 .55.45 1 1 1s1-.45 1-1v-5h5c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"polygon-filter\": [\"M18 7c-.27 0-.52.05-.75.15l-6.28-4.88c.01-.09.03-.18.03-.27 0-1.1-.9-2-2-2S7 .9 7 2c0 .06.01.12.02.19l-4.19 3C2.57 5.07 2.29 5 2 5 .9 5 0 5.9 0 7c0 .74.4 1.38 1 1.72v7.55c-.6.35-1 .99-1 1.73 0 1.1.9 2 2 2 .74 0 1.38-.4 1.72-1h7.55c.35.6.98 1 1.72 1 1.1 0 2-.9 2-2 0-.37-.11-.72-.29-1.02L18.03 11A2 2 0 0018 7zm-5.03 9c-.72.01-1.35.41-1.69 1H3.72c-.17-.3-.42-.55-.72-.72V8.72c.6-.34 1-.98 1-1.72 0-.06-.01-.12-.02-.19l4.19-3c.26.12.54.19.83.19.27 0 .52-.05.75-.15l6.28 4.88c-.01.09-.03.18-.03.27 0 .37.11.72.29 1.02L12.97 16z\"],\n \"power\": [\"M10 10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1S9 .45 9 1v8c0 .55.45 1 1 1zm3-7.45v2.16c2.36 1.12 4 3.5 4 6.29 0 3.87-3.13 7-7 7s-7-3.13-7-7c0-2.79 1.64-5.17 4-6.29V2.55C3.51 3.79 1 7.09 1 11a9 9 0 0018 0c0-3.91-2.51-7.21-6-8.45z\"],\n \"predictive-analysis\": [\"M20 8.01c0-1.26-.61-2.43-1.61-3.12C17.86 2.5 15.8.79 13.4.79c-.58 0-1.14.1-1.69.29A3.533 3.533 0 009.17 0C8.05 0 7 .55 6.32 1.45c-.15-.02-.3-.03-.45-.03-1.63 0-3.03 1.12-3.46 2.71C.97 4.65 0 6.05 0 7.66c0 .48.09.95.26 1.4-.17.44-.26.91-.26 1.39 0 1.38.72 2.64 1.89 3.29.67.7 1.59 1.09 2.54 1.09.61 0 1.19-.15 1.71-.45.68.82 1.68 1.3 2.73 1.3.66 0 1.28-.18 1.83-.52.61.49 1.34.81 2.11.91 1.3 1.43 2.3 3.28 2.31 3.3 0 0 .35.61.33.61.96-.01 1.77-.2 1.64-1.3.01.02-.92-2.89-.92-2.89.52-.26.94-.69 1.21-1.23 1.12-.66 1.84-1.91 1.84-3.26 0-.3-.03-.6-.1-.89.57-.64.88-1.51.88-2.4zm-1.54 1.28l-.18-.2-.77-.84c-.33-.37-.67-1.17-.73-1.73 0 0-.13-1.25-.13-1.26-.06-.74-1.17-.73-1.13.14 0 .02.13 1.26.13 1.26.04.36.15.77.3 1.17-.08-.01-.15-.02-.22-.02 0 0-2.57-.12-2.57-.13-.73-.03-.89 1.22-.05 1.25l2.57.13c.53.03 1.29.37 1.61.72l.61.67.02.06c.1.27.14.55.14.83 0 .93-.51 1.77-1.34 2.18l-.2.1-.09.23c-.19.48-.6.82-1.1.93l-.67.14.87 2.75c-.48-.76-1.19-1.79-2.02-2.67l-.15-.16-.21-.02c-.51-.04-.99-.21-1.42-.48l1.7-1.48c.44-.39 1.04-.55 1.24-.49 0 0 .78.22.78.23.78.2 1.03-.92.29-1.21l-.78-.23c-.69-.2-1.67.22-2.24.72l-1.91 1.66-.39.32c-.44.36-.93.55-1.5.55-.8 0-1.54-.41-1.97-1.07v-1.88c0-.5.21-.98.34-1.07 0 0 .65-.43.64-.43.87-.69.21-1.57-.64-1.14 0-.01-.65.43-.65.43-.31.2-.54.56-.7.97-.13-.13-.28-.25-.43-.35 0 0-1.91-1.26-1.91-1.28-.81-.56-1.5.63-.61 1.11 0-.02 1.89 1.28 1.89 1.28.46.31.77.97.77 1.36v.84c-.43.24-.78.36-1.24.36-.67 0-1.31-.29-1.77-.79l-.07-.08-.09-.05a2.425 2.425 0 01-1.31-2.16c0-.38.09-.74.25-1.08l.15-.31-.14-.33c-.17-.34-.25-.7-.25-1.08 0-1.13.76-2.1 1.85-2.37l.39-.09.07-.43a2.41 2.41 0 012.39-2.05c.19 0 .39.02.58.07l.4.1.22-.38A2.41 2.41 0 019.17 1.3c.55 0 1.08.19 1.5.53l-.44.45-.01-.01-.31.31c-.41.35-.92.53-1.11.5 0 0-.84-.13-.84-.14-.83-.15-1.09 1.08-.18 1.29.01 0 .84.14.84.14.03 0 .06 0 .09.01-.14.46-.18.96-.12 1.4 0 0 .21 1.24.19 1.23.13.65 1.32.44 1.16-.22 0-.01-.19-1.23-.19-1.23-.07-.48.15-1.19.45-1.5l.48-.5c.07-.06.13-.12.19-.18l.93-.95c.5-.23 1.04-.34 1.59-.34 1.93 0 3.57 1.4 3.89 3.34l.05.31.26.15a2.445 2.445 0 01.87 3.4z\"],\n \"prescription\": [\"M13.95 10.23c.16-.18.22-.22.46-.22h1.48c.25 0 .47.08.59.33.1.2.09.41-.05.66l-2.71 3.58L16.88 19c.13.21.16.46.03.69-.12.21-.34.31-.57.31H14.7c-.31 0-.56-.17-.7-.44l-1.9-2.67-1.93 2.68c-.15.27-.42.43-.73.43H7.98c-.25 0-.47-.08-.59-.33-.1-.2-.09-.41.05-.66l3.09-4.35L6.26 9H5v4.32c0 .41-.3.69-.7.69H2.7c-.41 0-.7-.28-.7-.69V.69c0-.41.3-.69.7-.69h4.42c.71 0 1.36.1 1.94.3.59.2 1.11.49 1.54.87.44.38.78.84 1.02 1.39.24.54.36 1.14.36 1.78 0 1.01-.28 1.88-.84 2.6-.43.54-1.35 1.29-2 1.59l3.09 3.94 1.72-2.24zM6.71 6.04c.71 0 1.45-.16 1.81-.46.33-.28.5-.69.5-1.25s-.17-.97-.5-1.25c-.35-.3-1.1-.46-1.81-.46h-1.7v3.42h1.7z\"],\n \"presentation\": [\"M19 1h-8c0-.55-.45-1-1-1S9 .45 9 1H1c-.55 0-1 .45-1 1s.45 1 1 1h1v11c0 .55.45 1 1 1h4.59L4.3 18.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L9 16.41V19c0 .55.45 1 1 1s1-.45 1-1v-2.59l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L12.41 15H17c.55 0 1-.45 1-1V3h1c.55 0 1-.45 1-1s-.45-1-1-1zm-3 12H4V3h12v10z\"],\n \"print\": [\"M14 16H6v-4H4v5c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-5h-2v4zm2-13c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v1h12V3zm3 2H1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h2v-3h14v3h2c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-1 4h-2V7h2v2z\"],\n \"projects\": [\"M18 4c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v2h16V4zm-2-3c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v1h12V1zm3 6H1c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-5 7c0 .55-.45 1-1 1H7c-.55 0-1-.45-1-1v-2h1v2h6v-2h1v2z\"],\n \"properties\": [\"M2 15c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-7c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm5-4h12c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1zM2 1C.9 1 0 1.9 0 3s.9 2 2 2 2-.9 2-2-.9-2-2-2zm17 8H7c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zm0 7H7c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"property\": [\"M3 5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm5-1h11c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zM3 15c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm16 1H8c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm-1-8H9c-1.1 0-2 .9-2 2s.9 2 2 2h9c1.1 0 2-.9 2-2s-.9-2-2-2zM3 7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"],\n \"publish-function\": [\"M7.01 10.11c.35-.64.72-1.68 1.09-3.11l.8-3.03h.96l.24-.77h-.99c.28-1.11.66-1.92 1.12-2.43.28-.32.56-.48.83-.48.05 0 .1.02.13.05.03.03.05.07.05.12 0 .04-.04.13-.11.25-.08.12-.11.24-.11.35 0 .15.06.28.18.39.12.11.27.16.45.16.2 0 .36-.07.49-.2s.2-.31.2-.54c0-.26-.1-.47-.3-.63-.2-.16-.52-.24-.96-.24-.68 0-1.3.19-1.86.58-.55.38-1.08 1.02-1.58 1.91-.17.3-.34.5-.49.59-.15.08-.4.13-.74.12l-.23.77h.95L5.74 9.21c-.23.86-.39 1.39-.47 1.59-.12.29-.3.54-.54.75-.1.08-.21.12-.35.12-.04 0-.07-.01-.1-.03l-.03-.04c0-.02.03-.07.1-.13.07-.07.1-.17.1-.31 0-.15-.05-.28-.16-.38-.11-.1-.27-.15-.47-.15-.25 0-.44.07-.59.2-.15.12-.23.28-.23.46 0 .19.09.36.27.5.19.14.47.21.86.21.61 0 1.16-.15 1.63-.46.48-.31.89-.79 1.25-1.43zm3.7 1.18c-.18-.18-.43-.29-.71-.29s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L9 14.41V19c0 .55.45 1 1 1s1-.45 1-1v-4.59l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3zm4.15-6.78c.17-.13.36-.2.55-.2.07 0 .2.03.39.08s.36.08.5.08c.2 0 .37-.07.5-.2.13-.14.2-.31.2-.52 0-.22-.07-.4-.2-.53s-.33-.2-.58-.2c-.22 0-.43.05-.63.15-.2.1-.45.32-.75.67-.23.25-.56.7-1.01 1.33a6.52 6.52 0 00-.91-2.15l-2.38.39-.05.25c.18-.03.33-.05.45-.05.24 0 .43.1.59.3.25.31.59 1.24 1.02 2.79-.34.44-.58.73-.7.87-.21.22-.38.36-.52.43-.1.05-.22.08-.35.08-.1 0-.26-.05-.49-.16a1.01 1.01 0 00-.42-.11c-.23 0-.42.07-.57.22-.17.14-.24.32-.24.55 0 .21.07.38.21.51.14.13.33.2.56.2.23 0 .44-.05.64-.14.2-.09.45-.29.75-.59s.72-.78 1.25-1.43c.2.62.38 1.07.53 1.35.15.28.32.49.52.61.19.12.44.19.73.19.28 0 .57-.1.86-.3.38-.25.77-.69 1.17-1.31l-.25-.14c-.27.37-.48.6-.61.69-.09.06-.19.09-.31.09-.14 0-.28-.09-.42-.26-.23-.29-.54-1.09-.93-2.4.37-.58.66-.96.9-1.14z\"],\n \"pulse\": [\"M19 10h-2.38L14.9 6.55h-.01c-.17-.32-.5-.55-.89-.55-.43 0-.79.28-.93.66h-.01l-2.75 7.57L7.98 1.82h-.02A.978.978 0 007 1c-.44 0-.8.29-.94.69h-.01L3.28 10H1c-.55 0-1 .45-1 1s.45 1 1 1h3c.44 0 .8-.29.94-.69h.01l1.78-5.34 2.29 12.21h.02c.08.46.47.82.96.82.43 0 .79-.28.93-.66h.01l3.21-8.82.96 1.92h.01c.16.33.49.56.88.56h3c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"rain\": [\"M4 10a3 3 0 111.065-5.806A5.001 5.001 0 0114.63 3.11 3.5 3.5 0 1115.5 10H4zm0 2a1 1 0 011 1v5a1 1 0 11-2 0v-5a1 1 0 011-1zm9 1a1 1 0 10-2 0v6a1 1 0 102 0v-6zm3-1a1 1 0 011 1v3a1 1 0 11-2 0v-3a1 1 0 011-1zm-7 1a1 1 0 10-2 0v3a1 1 0 102 0v-3z\"],\n \"random\": [\"M14.47 5h2.12L15.3 6.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3a1.003 1.003 0 00-1.42 1.42L16.59 3H14c-.31 0-.57.15-.76.37l-.01-.01-2.93 3.52 1.3 1.56L14.47 5zm2.24 7.29a1.003 1.003 0 00-1.42 1.42l1.3 1.29h-2.12L4.77 3.36l-.01.01A.998.998 0 004 3H1c-.55 0-1 .45-1 1s.45 1 1 1h2.53l9.7 11.64.01-.01c.19.22.45.37.76.37h2.59l-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3zM3.53 15H1c-.55 0-1 .45-1 1s.45 1 1 1h3c.31 0 .57-.15.76-.37l.01.01 2.93-3.52-1.3-1.56L3.53 15z\"],\n \"record\": [\"M10 3a7 7 0 100 14 7 7 0 100-14z\"],\n \"rectangle\": [\"M1 4h18c.55 0 1 .45 1 1v10c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V5c0-.55.45-1 1-1zm1 2v8h16V6H2z\"],\n \"redo\": [\"M19.71 5.29l-4-4a1.003 1.003 0 00-1.42 1.42L16.59 5H6c-3.31 0-6 2.69-6 6s2.69 6 6 6h5v-2H6c-2.21 0-4-1.79-4-4s1.79-4 4-4h10.59L14.3 9.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM15 14c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"refresh\": [\"M19 1c-.55 0-1 .45-1 1v2.06C16.18 1.61 13.29 0 10 0 4.48 0 0 4.48 0 10c0 .55.45 1 1 1s1-.45 1-1c0-4.42 3.58-8 8-8 2.52 0 4.76 1.18 6.22 3H15c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 8c-.55 0-1 .45-1 1 0 4.42-3.58 8-8 8-2.52 0-4.76-1.18-6.22-3H5c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1s1-.45 1-1v-2.06C3.82 18.39 6.71 20 10 20c5.52 0 10-4.48 10-10 0-.55-.45-1-1-1z\"],\n \"regression-chart\": [\"M19 16H3.1L19.31 3.39l-.61-.79L2 15.59V3c0-.55-.45-1-1-1s-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm-9-9c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-5 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm10-2c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2zm-5 4c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2z\"],\n \"remove\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm5-9H5c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"remove-column\": [\"M19 0H5c-.55 0-1 .45-1 1v4h2V2h5v16H6v-3H4v4c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18h-5V2h5v16zM6.29 13.71a1.003 1.003 0 001.42-1.42L5.41 10 7.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L4 8.59l-2.29-2.3A1.003 1.003 0 00.29 7.71L2.59 10 .3 12.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L4 11.41l2.29 2.3z\"],\n \"remove-column-left\": [\"M4 11h6c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zM19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-7 18H2V2h10v16zm6 0h-5V2h5v16z\"],\n \"remove-column-right\": [\"M19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM7 18H2V2h5v16zm11 0H8V2h10v16zm-8-7h6c.55 0 1-.45 1-1s-.45-1-1-1h-6c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"remove-row-bottom\": [\"M7 14h6c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1zM19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2V8h16v10zm0-11H2V2h16v5z\"],\n \"remove-row-top\": [\"M7 8h6c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1zm12-8H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2v-5h16v5zm0-6H2V2h16v10z\"],\n \"repeat\": [\"M14 6c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1v2.05C16.18 1.6 13.29 0 10 0 4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10c0-.55-.45-1-1-1s-1 .45-1 1c0 4.42-3.58 8-8 8s-8-3.58-8-8 3.58-8 8-8c2.53 0 4.77 1.17 6.24 3H15c-.55 0-1 .45-1 1z\"],\n \"reset\": [\"M6 6c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1s1 .45 1 1v2.05C3.82 1.6 6.71 0 10 0c5.52 0 10 4.48 10 10s-4.48 10-10 10S0 15.52 0 10c0-.55.45-1 1-1s1 .45 1 1c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8C7.47 2 5.23 3.17 3.76 5H5c.55 0 1 .45 1 1z\"],\n \"resolve\": [\"M8.7 4.7C7.9 4.2 7 4 6 4c-3.3 0-6 2.7-6 6s2.7 6 6 6c1 0 1.9-.2 2.7-.7C7.3 14 6.5 12.1 6.5 10s.9-4 2.2-5.3zM14 4c-1 0-1.9.2-2.7.7 1.4 1.4 2.2 3.2 2.2 5.3s-.9 4-2.2 5.3c.8.5 1.7.7 2.7.7 3.3 0 6-2.7 6-6s-2.7-6-6-6zm-4 1.5C8.8 6.7 8 8.2 8 10s.8 3.3 2 4.4c1.2-1.1 2-2.7 2-4.5s-.8-3.3-2-4.4z\"],\n \"rig\": [\"M7 4.2C7 5.75 8.34 7 10 7s3-1.46 3-2.8C13 1.45 10.94 0 10 0H6c0 2.74 3.76 1.96 1 4.2zm11.71 14.09L13 12.59V9.01c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1v3.58l-5.71 5.7a1.003 1.003 0 001.42 1.42L7 15.42V19c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3.58l4.29 4.29a1.003 1.003 0 001.42-1.42zM10.21 8c.01 0 .01.01 0 0 .01.01.01 0 0 0z\"],\n \"right-join\": [\"M8.7 4.7C7.4 6 6.5 7.9 6.5 10s.8 4 2.2 5.3c-.8.5-1.7.7-2.7.7-3.3 0-6-2.7-6-6s2.7-6 6-6c1 0 1.9.2 2.7.7zm-3.34 9.25c-.55-1.2-.86-2.54-.86-3.95s.31-2.75.86-3.95a4.001 4.001 0 000 7.9zM14 4c3.3 0 6 2.7 6 6s-2.7 6-6 6c-1 0-1.9-.2-2.7-.7 1.3-1.3 2.2-3.2 2.2-5.3s-.8-3.9-2.2-5.3C12.1 4.2 13 4 14 4zm-4 1.5C8.8 6.7 8 8.2 8 10s.8 3.3 2 4.4c1.2-1.1 2-2.7 2-4.5s-.8-3.3-2-4.4z\"],\n \"ring\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\"],\n \"rocket\": [\"M7 7.5c0-3 1.857-6.25 3-7.5 1.143 1.25 3 4.5 3 7.5s-.714 6.25-1 7.5H8c-.286-1.25-1-4.5-1-7.5zm6.84 2.5c-.139 1.62-.47 3.405-.84 5.01l4 .99-1-4-2.16-2zm-4.832 6C9 16.139 9 16.284 9 16.429 9 17.143 9 17.5 10 20c1-2.5 1-2.857 1-3.571 0-.145 0-.29-.008-.429H9.008zM7 15.011c-.37-1.605-.701-3.39-.84-5.011L4 12l-1 4 4-.989zM10 5a1 1 0 100 2 1 1 0 000-2z\"],\n \"rocket-slant\": [\"M10 5c2.121-2.121 6.308-2.924 8-3-.076 1.692-.879 5.879-3 8-1.192 1.192-2.543 1.823-3.748 2.384-.442.207-.865.404-1.252.616-.203.111-.597.302-.986.49-.444.215-.88.426-1.014.51l-2-2c.158-.252 1-2 1-2s1.37-3.37 3-5zm5 1a1 1 0 11-2 0 1 1 0 012 0zM3 17s0-2 2-4l2 2c-2 2-4 2-4 2zm11-2l-4 4-1.298-4.233c1.033-.56 1.881-.962 2.643-1.322 1.275-.604 2.307-1.092 3.554-2.015L14 15zM1 10l4-4 3.557-.899c-.923 1.247-1.412 2.28-2.015 3.554-.36.762-.762 1.61-1.322 2.643L1 10z\"],\n \"rotate-document\": [\"M8.71 6.29A.997.997 0 008 6H3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h9c.55 0 1-.45 1-1v-8c0-.28-.11-.53-.29-.71l-4-4zM11 18H4V8h3v3c0 .55.45 1 1 1h3v6zm3-16h-1.59l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C9.11 2.47 9 2.72 9 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H14c1.1 0 2 .9 2 2v3c0 .55.45 1 1 1s1-.45 1-1V6c0-2.21-1.79-4-4-4z\"],\n \"rotate-page\": [\"M14 2h-1.59l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C9.11 2.47 9 2.72 9 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H14c1.1 0 2 .9 2 2v3c0 .55.45 1 1 1s1-.45 1-1V6c0-2.21-1.79-4-4-4zm-2 5H3c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 11H4V9h7v9z\"],\n \"route\": [\"M14.028 6.016c.146.275.31.57.485.872.304.524.628 1.047.952 1.545l.118.178-.208-.006-.577-.005c-2.093.004-2.841.303-2.841.895 0 .069.271.248 1.245.567l1.008.313c2.671.831 3.99 1.827 3.99 4.167 0 2.76-1.928 4.059-4.832 4.376-.782.085-1.52.098-2.452.066l-1.15-.046H6.221l.535-.811a67.46 67.46 0 001.122-1.787h2.04l.686.03c1.028.046 1.77.043 2.523-.039 1.832-.2 2.673-.767 2.673-1.789 0-.69-.483-1.09-1.992-1.585l-.83-.257c-1.192-.364-2.037-.7-2.59-1.165.399-1 .612-1.844.612-2.538a6.018 6.018 0 00-.382-2.098c.745-.573 1.884-.822 3.41-.883zM5 4.2c2.648 0 4.791 2.151 4.8 4.797C9.8 11.652 5 18.6 5 18.6l-.5-.744C3.273 15.993.2 11.121.2 8.997A4.802 4.802 0 015 4.2zm0 2.4a2.4 2.4 0 10.002 4.802A2.4 2.4 0 005 6.6zM17 .333a2.671 2.671 0 012.667 2.665C19.667 4.473 17 8.333 17 8.333l-.391-.587c-.741-1.137-2.276-3.629-2.276-4.748A2.668 2.668 0 0117 .333z\"],\n \"satellite\": [\"M9 18c.6 0 1 .4 1 1s-.4 1-1 1c-5 0-9-4-9-9 0-.6.4-1 1-1s1 .4 1 1c0 3.9 3.1 7 7 7zm0-4c.6 0 1 .4 1 1s-.4 1-1 1c-2.8 0-5-2.2-5-5 0-.6.4-1 1-1s1 .4 1 1c0 1.7 1.3 3 3 3zm5.7-3.7c.4-.4 1-.4 1.4 0l3.6 3.6c.4.4.4 1 0 1.4l-1.4 1.4c-.4.4-1 .4-1.4 0l-3.6-3.6c-.4-.4-.4-1 0-1.4l1.4-1.4zM4.7.3c.4-.4 1-.4 1.4 0l3.6 3.6c.4.4.4 1 0 1.4L8.3 6.7c-.4.4-1 .4-1.4 0L3.3 3.1c-.4-.4-.4-1 0-1.4L4.7.3zm11.1 1c.4-.4 1-.4 1.4 0l1.6 1.6c.4.4.4 1 0 1.4l-6.5 6.5c-.4.4-1 .4-1.4 0L9.3 9.2c-.4-.4-.4-1 0-1.4l6.5-6.5zM9 12c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1z\"],\n \"saved\": [\"M12 0H4c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V6l-6-6zm4 18H5V2h6v5h5v11zm-8.29-6.71a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29.32 0 .59-.16.77-.38l.01.01 4-5-.01-.01c.14-.18.23-.38.23-.62 0-.55-.45-1-1-1-.32 0-.59.16-.77.38l-.01-.01-3.3 4.13-2.21-2.21z\"],\n \"scatter-plot\": [\"M9 9c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm5 2c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4-5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm1 10H2V3c0-.55-.45-1-1-1s-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM5 15c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z\"],\n \"search\": [\"M19.56 17.44l-4.94-4.94A8.004 8.004 0 0016 8c0-4.42-3.58-8-8-8S0 3.58 0 8s3.58 8 8 8c1.67 0 3.21-.51 4.5-1.38l4.94 4.94a1.498 1.498 0 102.12-2.12zM8 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\"],\n \"search-around\": [\"M9.9 6.9a3 3 0 100 6 3 3 0 100-6zM3 14c-1.7 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3zm0 5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM3 0C1.3 0 0 1.3 0 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3zm0 5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM17 14c-1.7 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3zm0 5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM17 0c-1.7 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3zm0 5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM10 10L5 5\", \"M5.379 4.671l5.02 5.02-.707.708-5.02-5.02zM10 10l5-5\", \"M14.621 4.671l.707.708-5.02 5.02-.707-.707z\", \"M10 10l5 5M10.379 9.671l5.02 5.02-.707.708-5.02-5.02z\", \"M10 10l-5 5M9.621 9.671l.707.708-5.02 5.02-.707-.707z\"],\n \"search-template\": [\"M13 8H5c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zm0 3H5c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zm0-6H5c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zm6.56 12.44l-3.23-3.23A8.939 8.939 0 0018 9a9 9 0 10-9 9c1.94 0 3.74-.62 5.21-1.67l3.23 3.23a1.498 1.498 0 102.12-2.12zM9 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\"],\n \"search-text\": [\"M19.56 17.44l-3.23-3.23A8.939 8.939 0 0018 9a9 9 0 10-9 9c1.94 0 3.74-.62 5.21-1.67l3.23 3.23a1.498 1.498 0 102.12-2.12zM9 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm3.5-11h-7c-.28 0-.5.22-.5.5v2c0 .28.22.5.5.5s.5-.22.5-.5V7h2v6h-.5c-.28 0-.5.22-.5.5s.22.5.5.5h3c.28 0 .5-.22.5-.5s-.22-.5-.5-.5H10V7h2v.5c0 .28.22.5.5.5s.5-.22.5-.5v-2c0-.28-.22-.5-.5-.5z\"],\n \"segmented-control\": [\"M19 5H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-1 8h-8V7h8v6z\"],\n \"select\": [\"M19.71 18.29l-4.25-4.25L20 12.91 9.93 9.33c.04-.1.07-.21.07-.33V3c0-.55-.45-1-1-1H4V1c0-.55-.45-1-1-1S2 .45 2 1v1H1c-.55 0-1 .45-1 1s.45 1 1 1h1v5c0 .55.45 1 1 1h6c.12 0 .23-.03.34-.07L12.91 20l1.14-4.54 4.25 4.25c.17.18.42.29.7.29a1.003 1.003 0 00.71-1.71zM8 8H4V4h4v4z\"],\n \"selection\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\", \"M10 6a4 4 0 100 8 4 4 0 100-8z\"],\n \"send-message\": [\"M1.754.135L19.393 9.06c.57.288.775.943.458 1.462-.107.176-.266.32-.458.418l-17.64 8.925c-.57.288-1.288.1-1.604-.418C.05 19.287 0 19.183 0 19v-7l11-2L0 8V1.075C0 .481.529 0 1.18 0c.201 0 .399.047.574.135z\"],\n \"send-to\": [\"M19 0h-5c-.6 0-1 .4-1 1s.4 1 1 1h2.6l-4.3 4.3c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3L18 3.4V6c0 .5.5 1 1 1s1-.5 1-1V1c0-.6-.5-1-1-1zm0 9c-1 0-1.9-.5-2.5-1.3l-1.4 1.4c-.5.6-1.3.9-2.1.9-1.7 0-3-1.3-3-3 0-.8.3-1.6.9-2.1l1.4-1.4C11.5 2.9 11 2 11 1c0-.3.1-.6.2-.9-.4-.1-.8-.1-1.2-.1C4.5 0 0 4.5 0 10s4.5 10 10 10 10-4.5 10-10c0-.4 0-.8-.1-1.2-.3.1-.6.2-.9.2z\"],\n \"send-to-graph\": [\"M8 11H3c-.55 0-1 .45-1 1s.45 1 1 1h2.59L.3 18.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L7 14.41V17c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1zm10 2c-.53 0-1.01.21-1.37.55L11.9 10.6c.06-.19.1-.39.1-.6 0-.21-.04-.41-.1-.6l4.72-2.95c.37.34.85.55 1.38.55 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .21.04.41.1.6l-4.73 2.96c-.24-.23-.54-.4-.87-.48V3.93c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S8 .9 8 2c0 .93.64 1.71 1.5 1.93v4.14c-.33.09-.63.26-.87.48L7.6 7.91 5.42 6.55 3.9 5.6c.06-.19.1-.39.1-.6 0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.53 0 1.01-.21 1.37-.55L9 9.96V10h.06L12 11.84l.4.25 1.51.94 2.19 1.37c-.06.19-.1.39-.1.6 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2zm-7-2.96l-.06-.04H11v.04z\"],\n \"send-to-map\": [\"M8 11H3c-.55 0-1 .45-1 1s.45 1 1 1h2.59L.3 18.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L7 14.41V17c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1zm11.54-6.82l.01-.02-6-4-.01.02C13.39.08 13.21 0 13 0s-.39.08-.54.18l-.01-.02L7 3.8 1.55.17l-.01.01A.969.969 0 001 0C.45 0 0 .45 0 1v9c0-.55.45-1 1-1h1V2.87l4 2.67V9h2V5.54l4-2.67v11.6l-1 .67v2.4l2-1.33 5.45 3.63.01-.02c.15.1.33.18.54.18.55 0 1-.45 1-1V5c0-.35-.19-.64-.46-.82zM18 17.13l-4-2.67V2.87l4 2.67v11.59z\"],\n \"series-add\": [\"M13.29 9.29c.3.62.8 1.12 1.42 1.42l-3 3c-.18.18-.43.29-.71.29s-.53-.11-.71-.3L7 10.41l-5 5V17h17c.55 0 1 .45 1 1s-.45 1-1 1H1a.998.998 0 01-1-1V4c0-.55.45-1 1-1s1 .45 1 1v8.59l4.29-4.3C6.47 8.11 6.72 8 7 8s.53.11.71.29l3.29 3.3 2.29-2.3zM12 5c0-.5.4-1 1-1h2V2c0-.6.4-1 1-1 .5 0 1 .4 1 1v2h2c.5 0 1 .4 1 1s-.5 1-1 1h-2v2c0 .6-.5 1-1 1-.6 0-1-.4-1-1V6h-2c-.6 0-1-.4-1-1z\"],\n \"series-configuration\": [\"M11.91 10.67c.52.45 1.13.8 1.8 1.03l-2.01 2.01c-.18.18-.43.29-.71.29-.28 0-.53-.11-.71-.3L7 10.41l-5 5V17h16.99c.55 0 1 .45 1 1s-.45 1-1 1H1a.998.998 0 01-1-1V4c0-.55.45-1 1-1s1 .45 1 1v8.59l4.29-4.3C6.47 8.11 6.72 8 7 8c.28 0 .53.11.71.29l3.29 3.3.91-.92zM18.5 4.6h1.04c.25 0 .45.2.46.44v.9c0 .25-.2.45-.45.45h-1.04c-.07.22-.16.42-.27.62l.73.73c.17.17.17.44 0 .61l-.61.61c-.17.17-.44.17-.61 0l-.73-.73c-.2.11-.4.2-.62.26v1.05c0 .25-.2.45-.45.45h-.9c-.25 0-.45-.2-.45-.45V8.51c-.21-.06-.4-.15-.58-.25l-.76.77c-.17.17-.46.17-.64 0l-.64-.64a.465.465 0 010-.64l.76-.77c-.1-.19-.19-.38-.25-.59h-1.04c-.25 0-.45-.2-.45-.45v-.9c0-.25.2-.45.45-.45h1.04c.07-.22.16-.42.27-.61l-.73-.73a.429.429 0 010-.61l.61-.61c.17-.17.44-.17.61 0l.73.73c.2-.11.4-.2.62-.26V1.45a.44.44 0 01.44-.45h.9c.25 0 .45.2.45.45V2.5c.21.06.4.15.58.25l.76-.77c.17-.17.46-.17.64 0l.64.64c.17.17.17.46 0 .64l-.76.77c.1.17.19.36.25.57zm-4.69.9c0 .93.75 1.69 1.69 1.69.93 0 1.69-.75 1.69-1.69s-.75-1.69-1.69-1.69-1.69.76-1.69 1.69z\"],\n \"series-derived\": [\"M18.82 6.58c-.03.05-.07.09-.11.13 0 0 0-.01-.01-.01l-2 2c-.2.2-.4.3-.7.3-.6 0-1-.4-1-1 0-.3.1-.5.3-.7L16.6 6H11c-.6 0-1-.4-1-1s.4-1 1-1h5.6l-1.3-1.3c-.2-.2-.3-.4-.3-.7 0-.6.4-1 1-1 .3 0 .5.1.7.3l3 3c.2.2.3.4.3.7s-.1.5-.3.7l-.88.88zm-5.53 2.71c.3.62.8 1.12 1.42 1.42l-3 3c-.18.18-.43.29-.71.29s-.53-.11-.71-.3L7 10.41l-5 5V17h17c.55 0 1 .45 1 1s-.45 1-1 1H1a.998.998 0 01-1-1V4c0-.55.45-1 1-1s1 .45 1 1v8.59l4.29-4.3C6.47 8.11 6.72 8 7 8s.53.11.71.29l3.29 3.3 2.29-2.3z\"],\n \"series-filtered\": [\"M12.14 10.45c.21.67.65 1.23 1.22 1.61l-1.65 1.65c-.18.18-.43.29-.71.29s-.53-.11-.71-.3L7 10.41l-5 5V17h17c.55 0 1 .45 1 1s-.45 1-1 1H1a.998.998 0 01-1-1V4c0-.55.45-1 1-1s1 .45 1 1v8.59l4.29-4.3C6.47 8.11 6.72 8 7 8s.53.11.71.29l3.29 3.3 1.14-1.14zM19.35 1a.642.642 0 01.46 1.1l-3.03 3.03v2.95c0 .18-.07.34-.19.46l-1.28 1.29c-.11.1-.27.17-.45.17-.35 0-.64-.29-.64-.64V5.13L11.19 2.1a.642.642 0 01.45-1.1h7.71z\"],\n \"series-search\": [\"M11.28 11.31l-.28.28-3.29-3.3C7.53 8.11 7.28 8 7 8s-.53.11-.71.29L2 12.59V4c0-.55-.45-1-1-1s-1 .45-1 1v14a.998.998 0 001 1h18c.55 0 1-.45 1-1s-.45-1-1-1H2v-1.59l5-5 3.29 3.29c.18.19.43.3.71.3s.53-.11.71-.29l2.09-2.09c-.17.02-.34.02-.51.02-.7 0-1.38-.12-2.01-.33zm-.93-6c0-1.62 1.31-2.93 2.93-2.93s2.93 1.31 2.93 2.93-1.31 2.93-2.93 2.93-2.93-1.31-2.93-2.93zm6.47 2.43c.11-.17.21-.33.29-.51.01-.03.03-.06.04-.09.08-.18.16-.35.21-.54.06-.2.1-.38.14-.58.01-.05.01-.09.02-.14.03-.2.05-.39.05-.6 0-2.37-1.93-4.3-4.3-4.3-2.37.01-4.3 1.93-4.3 4.31s1.93 4.3 4.3 4.3c.21 0 .4-.02.6-.05.04 0 .09-.01.14-.02.2-.03.38-.08.57-.14.2-.06.37-.14.55-.21.03-.01.06-.03.09-.04.18-.09.34-.19.51-.29l2.87 2.87c.14.14.33.22.56.22.43 0 .78-.35.78-.78a.938.938 0 00-.23-.56l-2.89-2.85z\"],\n \"settings\": [\"M4 1c0-.55-.45-1-1-1S2 .45 2 1v5h2V1zM2 19c0 .55.45 1 1 1s1-.45 1-1v-6H2v6zm9-18c0-.55-.45-1-1-1S9 .45 9 1v8h2V1zm7 0c0-.55-.45-1-1-1s-1 .45-1 1v3h2V1zM9 19c0 .55.45 1 1 1s1-.45 1-1v-3H9v3zm9-14h-2c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-2 14c0 .55.45 1 1 1s1-.45 1-1v-8h-2v8zM4 7H2c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm7 3H9c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1z\"],\n \"shapes\": [\"M7.88 11.12a.958.958 0 011.277.33l3.719 6.207c.081.136.124.29.124.447 0 .495-.419.896-.936.896H4.936a.969.969 0 01-.436-.103.878.878 0 01-.392-1.21l3.409-6.208a.915.915 0 01.362-.36zM15 5a4 4 0 110 8 4 4 0 010-8zM8 1a1 1 0 011 1v6a1 1 0 01-1 1H2a1 1 0 01-1-1V2a1 1 0 011-1h6z\"],\n \"share\": [\"M15 18H2V5h8.76l2-2H1c-.55 0-1 .45-1 1v15c0 .55.45 1 1 1h15c.55 0 1-.45 1-1V7.24l-2 2V18zm4-18h-7c-.55 0-1 .45-1 1s.45 1 1 1h4.59l-7.3 7.29a1.003 1.003 0 001.42 1.42L18 3.41V8c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"shared-filter\": [\"M13.917 17.209c1.01.454 2.543.928 2.873 1.643.31.722.186 1.148.186 1.148H6.026s-.13-.426.186-1.148 1.842-1.203 2.86-1.65c1.017-.447.914-.722.948-1.093 0-.048.007-.097.007-.145a3.067 3.067 0 01-.839-1.237l-.007-.007c0-.007-.006-.014-.006-.02a1.757 1.757 0 01-.11-.337c-.234-.042-.372-.296-.426-.537a1.045 1.045 0 01-.138-.598c.034-.35.179-.509.337-.57v-.056c0-.44.034-1.065.117-1.478a2.508 2.508 0 01.962-1.623c.426-.33 1.038-.501 1.58-.501.544 0 1.155.172 1.588.502a2.496 2.496 0 01.963 1.622c.075.413.117 1.045.117 1.478v.062c.15.062.288.22.323.564.02.268-.083.502-.138.598-.048.234-.185.488-.42.537a2.635 2.635 0 01-.116.364 3.094 3.094 0 01-.818 1.224c0 .055 0 .11.007.158.034.378-.103.653.914 1.1z\", \"M14.976 16.57c-.24-.099-.455-.186-.65-.273l-.007-.004a3.801 3.801 0 01-.194-.091c.224-.288.41-.609.554-.946l.001-.002.013-.033c.018-.043.036-.087.052-.13l.011-.027.016-.04c.105-.092.19-.19.256-.284.129-.184.213-.38.265-.563.105-.226.225-.592.192-1.026l-.001-.011-.002-.011a1.854 1.854 0 00-.325-.91 9.924 9.924 0 00-.12-1.246 3.09 3.09 0 00-.106-.475l-.001-.006a3.543 3.543 0 00-.763-1.353c.27-.092.56-.139.83-.139.495 0 1.05.156 1.444.456a2.269 2.269 0 01.875 1.475c.069.375.106.95.106 1.344v.056c.138.056.263.2.294.513.019.244-.075.456-.125.543-.044.213-.169.444-.381.488-.025.1-.056.206-.094.3a2.815 2.815 0 01-.756 1.144c0 .05 0 .1.006.144.004.043.006.086.007.127.01.283.018.518.824.872.192.087.404.173.623.263.83.34 1.752.717 1.99 1.231.28.657.168 1.044.168 1.044h-2.081a3.864 3.864 0 00-.188-.542l-.005-.013-.006-.012c-.183-.397-.491-.681-.76-.88a5.614 5.614 0 00-.896-.522 17.36 17.36 0 00-.916-.4l-.15-.061zM14 1c.55 0 1 .45 1 1 0 .28-.11.53-.29.7L10 7.41v.897a3.182 3.182 0 00-.69.4 3.508 3.508 0 00-1.343 2.259c-.07.37-.107.836-.122 1.237a1.836 1.836 0 00-.339.926c-.046.458.09.84.195 1.06.053.178.138.376.27.56.055.08.125.162.21.242v.143l.053.052L6.71 16.71A1.003 1.003 0 015 16V7.41L.29 2.71A1.003 1.003 0 011 1h13z\", \"M9.059 14.361c-.23-.044-.366-.296-.42-.535a1.045 1.045 0 01-.138-.598c.034-.35.179-.509.337-.57v-.056c0-.44.034-1.065.117-1.478A2.508 2.508 0 0110 9.441V13c0 .28-.11.53-.29.71l-.651.651z\"],\n \"shield\": [\"M10 20c6-3.81 9-9.048 9-15.714-2 0-5-1.429-9-4.286-4 2.857-7 4.286-9 4.286C1 10.952 4 16.19 10 20zm0-17.348c2.577 1.734 4.776 2.88 6.667 3.419-.44 4.627-2.636 8.353-6.667 11.297V2.652z\"],\n \"ship\": [\"M6.84.804L6.5 2.5h-3a1 1 0 00-1 1v4.893l-1.58.451a.99.99 0 00-.691 1.192c.46 1.82 1.163 4.356 1.701 5.571-.218.012-.445.018-.68.018a.625.625 0 100 1.25c2.583 0 4.268-.68 5.202-1.146.687.466 1.88 1.146 3.548 1.146 1.65 0 2.837-.666 3.528-1.132l.005.003c.244.131.6.3 1.07.468.938.335 2.321.661 4.147.661a.625.625 0 100-1.25c-.323 0-.63-.011-.922-.031a.996.996 0 00.184-.334l1.67-5.168a1 1 0 00-.677-1.27l-1.505-.43V3.5a1 1 0 00-1-1h-3L13.16.804A1 1 0 0012.18 0H7.82a1 1 0 00-.98.804zM5 7.679l3.75-1.072V5H5v2.679zm6.25-1.072L15 7.68V5h-3.75v1.607zM6.205 16.95a.625.625 0 01.658.042c.569.407 1.597 1.134 3.137 1.134s2.568-.727 3.137-1.134a.625.625 0 01.724-.001l.007.005.045.029c.044.027.114.069.21.12.194.104.493.247.9.392.811.29 2.053.589 3.727.589a.625.625 0 110 1.25c-1.826 0-3.21-.326-4.148-.661a7.894 7.894 0 01-1.069-.468l-.005-.003c-.691.466-1.878 1.132-3.528 1.132-1.667 0-2.861-.68-3.548-1.146-.934.467-2.619 1.146-5.202 1.146a.625.625 0 110-1.25c2.66 0 4.23-.787 4.955-1.176z\"],\n \"shop\": [\"M17.94 3.63c-.01-.02-.01-.03-.02-.04l-.03-.09h-.01c-.18-.3-.49-.5-.86-.5h-14c-.42 0-.77.25-.92.61L0 8.5h.02a2.5 2.5 0 005 0 2.5 2.5 0 005 0 2.5 2.5 0 005 0 2.5 2.5 0 005 0l-2.08-4.87zM3.02 2h14c.55 0 1-.45 1-1s-.45-1-1-1h-14c-.55 0-1 .45-1 1s.44 1 1 1zm13 14h-12v-4h-2v7c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-7h-2v4z\"],\n \"shopping-cart\": [\"M18 14H8.72l-.67-2H17c.44 0 .8-.29.94-.69h.01l2-6h-.01c.03-.1.06-.2.06-.31 0-.55-.45-1-1-1H5.39l-.44-1.32h-.01C4.8 2.29 4.44 2 4 2H1c-.55 0-1 .45-1 1s.45 1 1 1h2.28l3.33 10H5c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2h9c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2zM6.05 6h11.56l-1.33 4H7.39L6.05 6z\"],\n \"signal-search\": [\"M7.15 10.33c.888.8 1.999 1.36 3.228 1.574l2.326 6.98a.846.846 0 01-.535 1.07.844.844 0 01-1.072-.535l-1.225-3.671H7.125L5.9 19.419a.85.85 0 01-1.072.536.85.85 0 01-.536-1.071l2.857-8.555zm1.353 1.305l-.808 2.413h1.607l-.8-2.413zM5 5.5c0 .76.13 1.49.37 2.17-.496 1.056-.313 2.356.704 3.29.385.353.404.94.038 1.311a.982.982 0 01-1.356.038c-2.183-2.01-2-5.125.01-6.94a.95.95 0 01.24-.156A6.421 6.421 0 005 5.5z\", \"M3.874 13.185c-1.346-.918-2.187-2.67-2.187-4.34 0-1.752.757-3.254 2.187-4.339.42-.25.42-.834.168-1.168-.252-.418-.84-.418-1.177-.167C1.014 4.59-.08 6.509.005 8.846c.084 2.253 1.177 4.423 2.86 5.675.168.083.336.166.504.166.253 0 .505-.083.673-.333.337-.418.253-.918-.168-1.169zM12.246 12.309a.98.98 0 01-1.354-.037.917.917 0 01-.206-.324 6.54 6.54 0 001.959-.049 5.125 5.125 0 01-.399.41zM14.631 11.476l1.228 1.229a6.6 6.6 0 01-1.723 1.816c-.169.083-.337.166-.505.166-.253 0-.505-.083-.673-.333-.337-.418-.253-.918.168-1.169.62-.422 1.133-1.022 1.505-1.709z\", \"M11.5 0C14.54 0 17 2.46 17 5.5c0 .26-.02.51-.06.75l-.03.17c-.04.25-.1.49-.17.73v.01c-.08.24-.17.47-.28.69-.01.04-.03.07-.05.11-.11.23-.24.44-.38.65l3.68 3.68A1.003 1.003 0 0119 14c-.28 0-.53-.11-.7-.29l-3.68-3.68c-.21.14-.42.27-.65.38-.04.01-.07.03-.11.05-.22.11-.45.2-.69.28h-.01c-.24.07-.48.13-.73.17l-.17.03c-.25.04-.5.06-.76.06C8.46 11 6 8.54 6 5.5S8.46 0 11.5 0zm0 1.5c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z\"],\n \"sim-card\": [\"M16.71 5.29l-5-5A.997.997 0 0011 0H4c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6c0-.28-.11-.53-.29-.71zM9 7h2v3H9V7zM6 7h2v3H6V7zm2 11H6v-3h2v3zm3 0H9v-3h2v3zm3 0h-2v-3h2v3zm0-4H6v-3h8v3zm0-4h-2V7h2v3z\"],\n \"slash\": [\"M12 2c-.46 0-.85.32-.97.74L7.04 16.7c-.02.1-.04.2-.04.3 0 .55.45 1 1 1 .46 0 .85-.32.97-.74L12.96 3.3c.02-.1.04-.2.04-.3 0-.55-.45-1-1-1z\"],\n \"small-cross\": [\"M11.41 10l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L10 8.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42L8.59 10 5.3 13.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3.29-3.3 3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L11.41 10z\"],\n \"small-minus\": [\"M14 9H6c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"small-plus\": [\"M14 9h-3V6c0-.55-.45-1-1-1s-1 .45-1 1v3H6c-.55 0-1 .45-1 1s.45 1 1 1h3v3c0 .55.45 1 1 1s1-.45 1-1v-3h3c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"small-square\": [\"M5 5v10h10V5H5zM4 3a1 1 0 00-1 1v12a1 1 0 001 1h12a1 1 0 001-1V4a1 1 0 00-1-1H4z\"],\n \"small-tick\": [\"M15 5c-.28 0-.53.11-.71.29L8 11.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l7-7A1.003 1.003 0 0015 5z\"],\n \"snowflake\": [\"M11 11.776v2.81l2.31 2.242a.987.987 0 010 1.415c-.399.39-1.044.39-1.442 0L11 17.414V19a.99.99 0 01-.996 1A.996.996 0 019 19v-1.636l-.912.879c-.398.39-1.043.39-1.441 0a.987.987 0 010-1.415L9 14.536v-2.79l-2.548 1.435-.837 3.063c-.146.534-.705.85-1.248.707a.998.998 0 01-.721-1.224l.309-1.132-1.4.793a1.03 1.03 0 01-1.393-.366.99.99 0 01.373-1.366l1.445-.818-1.224-.322a.998.998 0 01-.72-1.225c.145-.533.704-.85 1.248-.707l3.193.84 2.462-1.395-2.532-1.434-3.123.82a1.022 1.022 0 01-1.249-.706.998.998 0 01.721-1.225L2.91 7.18l-1.4-.793a.99.99 0 01-.373-1.366 1.03 1.03 0 011.392-.366l1.445.818-.328-1.2a.998.998 0 01.72-1.225 1.022 1.022 0 011.25.707l.855 3.132L9 8.311V5.414L6.647 3.121a.987.987 0 010-1.414 1.033 1.033 0 011.441 0L9 2.586V1c0-.552.44-1 1.004-1A.99.99 0 0111 1l-.007 1.536.875-.829a1.033 1.033 0 011.441 0 .987.987 0 010 1.414L11 5.364v2.918l2.53-1.42.855-3.131c.146-.534.705-.85 1.249-.707a.998.998 0 01.72 1.224l-.327 1.2 1.4-.792a1.03 1.03 0 011.392.366.99.99 0 01-.373 1.366l-1.355.768 1.153.303a.998.998 0 01.721 1.225c-.146.533-.705.85-1.249.707l-3.123-.821-2.576 1.459 2.506 1.42 3.193-.84a1.022 1.022 0 011.249.707.998.998 0 01-.72 1.225l-1.224.322 1.4.793a.99.99 0 01.373 1.366 1.03 1.03 0 01-1.393.366l-1.356-.768.31 1.132a.998.998 0 01-.721 1.224 1.022 1.022 0 01-1.249-.707l-.837-3.063L11 11.776z\"],\n \"social-media\": [\"M11.5 5c.8 0 1.6-.4 2-1 2 1.2 3.3 3.3 3.5 5.7 0 .5.5.9 1 .9.6 0 1-.5 1-1v-.1c-.2-3.3-2.2-6.2-5.1-7.6C13.7.8 12.7 0 11.5 0 10.1 0 9 1.1 9 2.5S10.1 5 11.5 5zm5 7c-1.4 0-2.5 1.1-2.5 2.5 0 .4.1.7.2 1.1-1.1.9-2.6 1.4-4.2 1.4-1.9 0-3.6-.8-4.9-2-.2-.2-.5-.4-.8-.4-.5 0-1 .5-1 1 0 .3.1.5.3.7C5.3 18 7.5 19 10 19c2.2 0 4.2-.8 5.8-2.1.2.1.5.1.7.1 1.4 0 2.5-1.1 2.5-2.5S17.9 12 16.5 12zM5 10.5c0-1.1-.7-2.1-1.7-2.4.5-1.9 1.9-3.5 3.6-4.4.3-.2.6-.5.6-.9 0-.5-.4-1-1-1-.2 0-.4.1-.6.2-2.4 1.2-4.2 3.6-4.7 6.4C.5 8.9 0 9.6 0 10.5 0 11.9 1.1 13 2.5 13S5 11.9 5 10.5z\"],\n \"sort\": [\"M19 16h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm0-5h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zM7 15c-.28 0-.53.11-.71.29L5 16.59V11c0-.55-.45-1-1-1s-1 .45-1 1v5.59L1.71 15.3A.965.965 0 001 15a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 007 15zM19 1h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 5h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1z\"],\n \"sort-alphabetical\": [\"M8 15c-.28 0-.53.11-.71.29L6 16.59v-5.58c0-.55-.45-1-1-1s-1 .45-1 1v5.58L2.71 15.3c-.18-.18-.43-.3-.71-.3a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 008 15zm8.89-.79v-1.22H11.3v1.3h3.51L11 18.78V20h5.99v-1.3h-3.91l3.81-4.49zM14.97 0h-1.95L9.01 11.01h1.89l.98-2.92h4.17l.98 2.92h1.96L14.97 0zm-2.59 6.63l1.58-4.74H14l1.57 4.74h-3.19z\"],\n \"sort-alphabetical-desc\": [\"M8.01 15c-.28 0-.53.11-.71.29L6 16.59v-5.58c0-.55-.45-1-1-1s-1 .45-1 1v5.58L2.71 15.3c-.18-.18-.43-.3-.71-.3a1.003 1.003 0 00-.71 1.71l3 3a1.014 1.014 0 001.42 0l3-3c.18-.18.29-.43.29-.71.01-.55-.44-1-.99-1zm4.44-5.65l6.4-7.88V0H10.5v1.67h5.91L10 9.44v1.57h9V9.35h-6.55zm1.27 3.64L11 20h1.59l.56-1.56h2.68l.55 1.56h1.64l-2.68-7.01h-1.62zm-.16 4.3l.93-2.57h.02l.9 2.57h-1.85z\"],\n \"sort-asc\": [\"M10 8h5c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1h-5c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm0 5h7c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1h-7c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm0-10h3c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm9 12h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zM7 14c-.28 0-.53.11-.71.29L5 15.59V10c0-.55-.45-1-1-1s-1 .45-1 1v5.59L1.71 14.3A.965.965 0 001 14a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 007 14z\"],\n \"sort-desc\": [\"M13 15h-3c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm-6-1c-.28 0-.53.11-.71.29L5 15.59V10c0-.55-.45-1-1-1s-1 .45-1 1v5.59L1.71 14.3A.965.965 0 001 14a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 007 14zM19 0h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-4 10h-5c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm2-5h-7c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z\"],\n \"sort-numerical\": [\"M9 14.99c-.28 0-.53.11-.71.29L7 16.58v-5.59c0-.55-.45-1-1-1s-1 .45-1 1v5.59l-1.29-1.29a.965.965 0 00-.71-.3 1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29.28 0 .53-.11.71-.29l3-3c.18-.18.29-.43.29-.71a.99.99 0 00-1-1zm8.88.23c-.08-.42-.22-.79-.42-1.12-.2-.33-.47-.6-.8-.8-.33-.2-.76-.3-1.28-.3a2.333 2.333 0 00-1.72.71c-.21.22-.37.48-.49.78-.11.3-.17.62-.17.97 0 .27.04.54.13.8.08.26.22.5.4.7.19.21.43.38.71.5a2.142 2.142 0 001.72.02c.25-.12.47-.31.66-.58l.02.02c-.01.19-.04.4-.08.63-.04.24-.11.46-.21.67-.1.21-.23.38-.39.53a.92.92 0 01-.62.22c-.24 0-.44-.08-.6-.25-.16-.17-.27-.36-.31-.59h-1.31c.04.29.12.56.24.79.12.23.28.43.48.59.19.16.42.28.67.36.25.08.52.12.82.12.49 0 .9-.1 1.23-.31.34-.21.61-.48.82-.82.21-.34.37-.71.47-1.13.1-.42.15-.83.15-1.25 0-.43-.04-.85-.12-1.26zm-1.42.63c-.05.15-.11.28-.2.4-.09.12-.2.21-.34.27s-.3.1-.49.1c-.17 0-.33-.04-.46-.11s-.24-.17-.33-.29c-.08-.12-.15-.25-.19-.4-.04-.15-.06-.31-.06-.47 0-.15.02-.3.07-.45.05-.15.11-.28.2-.39.09-.12.2-.21.33-.28.13-.07.27-.11.44-.11.17 0 .33.04.47.11.14.07.25.17.34.28a1.387 1.387 0 01.28.86c.01.17-.02.33-.06.48zM15.32 11H17V0h-1.25c-.05.34-.17.62-.34.85-.17.23-.39.42-.63.57-.25.15-.52.25-.83.31-.3.06-.62.09-.94.09v1.41h2.31V11z\"],\n \"sort-numerical-desc\": [\"M9 15c-.28 0-.53.11-.71.29L7 16.59v-5.58c0-.55-.45-1-1-1s-1 .45-1 1v5.58L3.71 15.3c-.18-.18-.43-.3-.71-.3a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29.28 0 .53-.11.71-.29l3-3A1.003 1.003 0 009 15zm6.7-1.33a1.5 1.5 0 01-.44.43c-.17.11-.37.19-.58.23-.22.04-.44.06-.67.05v1.07h1.66V20H17v-6.99h-1.06c-.04.26-.12.48-.24.66zm3.15-10.3c-.11-.68-.29-1.26-.55-1.76-.26-.5-.62-.89-1.08-1.18C16.75.14 16.17 0 15.46 0c-.54 0-1.03.09-1.46.27-.43.18-.79.44-1.09.76-.3.33-.52.71-.67 1.15-.16.44-.24.92-.24 1.43 0 .54.08 1.04.23 1.47.15.44.37.81.65 1.12.28.31.61.55 1 .72.39.17.82.26 1.3.26.46 0 .88-.11 1.26-.33.38-.22.68-.53.9-.94l.03.03c-.03.35-.07.74-.12 1.16-.05.42-.15.81-.29 1.18-.14.37-.35.68-.61.92-.26.25-.62.37-1.06.37-.43 0-.77-.13-1.03-.4-.25-.27-.4-.62-.44-1.05h-1.64c.02.43.11.83.29 1.18.17.35.39.66.67.91a3.027 3.027 0 002.07.8c.71 0 1.3-.17 1.79-.5.48-.33.87-.76 1.17-1.29.3-.53.51-1.12.64-1.76.13-.64.19-1.28.19-1.92.01-.77-.05-1.49-.15-2.17zM17.1 4.44c-.08.27-.19.5-.34.71-.15.21-.34.37-.57.49-.23.12-.5.18-.8.18-.3 0-.56-.06-.78-.19-.22-.13-.4-.29-.55-.49-.14-.2-.25-.44-.32-.7-.07-.27-.11-.55-.11-.84 0-.28.04-.55.11-.82.07-.26.18-.49.32-.7.14-.2.33-.36.55-.48.22-.12.48-.17.78-.17.31 0 .57.06.8.18.23.12.42.28.57.48.15.2.26.43.34.69.08.26.11.53.11.82 0 .29-.04.57-.11.84z\"],\n \"split-columns\": [\"M15 13a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3a1.003 1.003 0 00-1.42 1.42L16.59 9H11V2h5v2c.77 0 1.47.3 2 .78V1c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v3.78C2.53 4.3 3.23 4 4 4V2h5v7H3.41L4.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L3.41 11H9v7H4v-2c-.77 0-1.47-.3-2-.78V19c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3.78c-.53.48-1.23.78-2 .78v2h-5v-7h5.59l-1.29 1.29c-.19.18-.3.43-.3.71z\"],\n \"square\": [\"M19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2V2h16v16z\"],\n \"stacked-chart\": [\"M12 2c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v4h4V2zm3 14h2c.55 0 1-.45 1-1v-5h-4v5c0 .55.45 1 1 1zm3-10c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v3h4V6zm-6 1H8v5h4V7zm-9 9h2c.55 0 1-.45 1-1v-3H2v3c0 .55.45 1 1 1zm16 1H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM6 9c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v2h4V9zm3 7h2c.55 0 1-.45 1-1v-2H8v2c0 .55.45 1 1 1z\"],\n \"stadium-geometry\": [\"M15 7H5a3 3 0 000 6h10a3 3 0 100-6zM5 5a5 5 0 000 10h10a5 5 0 000-10H5z\"],\n \"star\": [\"M10 0l3.1 6.6 6.9 1-5 5.1 1.2 7.3-6.2-3.4L3.8 20 5 12.7 0 7.6l6.9-1z\"],\n \"star-empty\": [\"M20 7.6l-6.9-1.1L10 0 6.9 6.6 0 7.6l5 5.1L3.8 20l6.2-3.4 6.2 3.4-1.2-7.2 5-5.2zM10 15l-4.5 2.4.9-5.2-3.6-3.6 5-.8L10 3.1l2.2 4.7 5 .8-3.6 3.7.9 5.2L10 15z\"],\n \"step-backward\": [\"M15 3c-.23 0-.42.09-.59.21l-.01-.01L8 8V4c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-4l6.4 4.8.01-.01c.17.12.36.21.59.21.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"step-chart\": [\"M19 16H2v-3h4c.55 0 1-.45 1-1V8h3v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V6h2c.55 0 1-.45 1-1s-.45-1-1-1h-3c-.55 0-1 .45-1 1v4h-3V7c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v4H2V3c0-.55-.45-1-1-1s-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"step-forward\": [\"M15 3h-2c-.55 0-1 .45-1 1v4L5.6 3.2l-.01.01C5.42 3.09 5.23 3 5 3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1 .23 0 .42-.09.59-.21l.01.01L12 12v4c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"stop\": [\"M16 3H4c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"stopwatch\": [\"M10 6a6 6 0 106 6h-6V6zm-.998-1.938A1.015 1.015 0 019 4V2H7a1 1 0 110-2h6a1 1 0 010 2h-2v2c0 .02 0 .041-.002.062A8.001 8.001 0 0110 20a8 8 0 01-.998-15.938z\"],\n \"strikethrough\": [\"M18 9h-4.46a4.7 4.7 0 00-.4-.14c-.19-.05-.51-.14-.96-.25-.45-.11-.9-.23-1.37-.35-.47-.12-.89-.23-1.27-.33s-.6-.16-.65-.17c-.53-.15-.95-.37-1.27-.66-.32-.28-.49-.68-.49-1.19 0-.36.09-.66.26-.9s.39-.43.65-.57c.26-.14.55-.24.87-.3s.63-.09.93-.09c.89 0 1.63.19 2.21.57.45.3.75.76.89 1.38h2.63c-.06-.52-.2-.98-.42-1.4-.3-.57-.71-1.05-1.23-1.43a5.33 5.33 0 00-1.79-.87c-.7-.2-1.42-.3-2.19-.3-.66 0-1.31.08-1.96.25s-1.22.43-1.73.77-.92.79-1.23 1.32c-.31.52-.46 1.15-.46 1.87 0 .37.05.74.15 1.1.1.36.28.7.53 1.02.18.24.41.47.69.67H2c-.55 0-1 .45-1 1s.45 1 1 1h10.14c.02.01.05.02.07.02.3.11.58.29.84.55.25.26.38.67.38 1.21 0 .27-.06.53-.17.79-.11.26-.29.49-.54.69-.25.2-.57.36-.97.49s-.88.19-1.44.19c-.52 0-1.01-.06-1.45-.17-.45-.11-.84-.29-1.19-.54s-.61-.56-.8-.95c-.05-.08-.09-.18-.12-.28H4.11c.09.43.22.82.4 1.18.33.65.77 1.18 1.32 1.59.55.41 1.2.72 1.94.92.74.2 1.53.3 2.37.3.73 0 1.44-.08 2.14-.25.7-.17 1.33-.43 1.88-.79.55-.36.99-.83 1.33-1.39.34-.56.51-1.25.51-2.05 0-.37-.06-.75-.18-1.12a3.12 3.12 0 00-.15-.39H18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"style\": [\"M18 18H2V2h12.3l2-2H1C.4 0 0 .4 0 1v18c0 .6.4 1 1 1h18c.6 0 1-.4 1-1V7.7l-2 2V18zm1.2-18l-7.6 7.6 2.8 2.8L20 4.8V0h-.8zM4 15.9c3.1.2 5.9.2 8.2-2 1.1-1.1 1.1-3 0-4.1-.6-.5-1.3-.8-2-.8s-1.4.3-1.9.8C7.2 11 6.6 14.3 4 15.9z\"],\n \"swap-horizontal\": [\"M16.02 10c-.01 0-.01 0 0 0H16h.02zM2 6h13.58l-2.29 2.29a1 1 0 00-.3.71 1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-4-4a1.003 1.003 0 00-1.42 1.42L15.58 4H2c-.55 0-1 .45-1 1s.45 1 1 1zm2 4h-.02H4zm14 4H4.42l2.29-2.29a1 1 0 00.3-.71 1.003 1.003 0 00-1.71-.71l-4 4c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L4.42 16H18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"swap-vertical\": [\"M9.71 5.3l-4-4A.997.997 0 005 1.01c-.28 0-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L4 4.42V18c0 .55.45 1 1 1s1-.45 1-1V4.42l2.29 2.29a1 1 0 00.71.3 1.003 1.003 0 00.71-1.71zM10 3.98c0 .01 0 .01 0 0V4v-.02zm0 12.04c0-.01 0-.01 0 0V16v.02zm9-3.03c-.28 0-.53.11-.71.29L16 15.58V2c0-.55-.45-1-1-1s-1 .45-1 1v13.58l-2.29-2.29a1.003 1.003 0 00-1.42 1.42l4 4c.18.18.43.29.71.29.28 0 .53-.11.71-.29l4-4c.18-.18.29-.43.29-.71 0-.56-.45-1.01-1-1.01z\"],\n \"switch\": [\"M12.293 2.293l1.414 1.414-7.127 7.129a3.5 3.5 0 11-1.415-1.415l7.128-7.128zM16.5 9a3.5 3.5 0 110 7 3.5 3.5 0 010-7zm-13 2a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm13 0a1.5 1.5 0 100 3 1.5 1.5 0 000-3z\"],\n \"symbol-circle\": [\"M10 4.01a6 6 0 100 12 6 6 0 100-12z\"],\n \"symbol-cross\": [\"M15 8.01h-3v-3c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v3H5c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h3v3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-3h3c.55 0 1-.45 1-1v-2c0-.56-.45-1-1-1z\"],\n \"symbol-diamond\": [\"M15 10.01c0-.21-.08-.39-.18-.54l.02-.01-4-6-.02.01c-.18-.28-.47-.46-.82-.46s-.64.18-.82.45l-.01-.01-4 6 .02.01c-.11.16-.19.34-.19.55s.08.39.18.54l-.02.01 4 6 .02-.01c.18.27.47.46.82.46s.64-.19.82-.46l.02.01 4-6-.02-.01c.1-.16.18-.34.18-.54z\"],\n \"symbol-rectangle\": [\"M16 5H4c-.5 0-1 .5-1 1v8c0 .5.5 1 1 1h12c.5 0 1-.5 1-1V6c0-.5-.5-1-1-1z\"],\n \"symbol-square\": [\"M15 4.01H5c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-10c0-.56-.45-1-1-1z\"],\n \"symbol-triangle-down\": [\"M16 5c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1 0 .16.05.31.11.44H4.1l5 10h.01c.17.33.5.56.89.56s.72-.23.89-.56h.01l5-10h-.01c.06-.13.11-.28.11-.44z\"],\n \"symbol-triangle-up\": [\"M15.89 14.56l-4.99-10h-.01c-.17-.33-.5-.56-.89-.56s-.72.23-.89.56H9.1l-5 10h.01c-.06.13-.11.28-.11.44 0 .55.45 1 1 1h10c.55 0 1-.45 1-1 0-.16-.05-.31-.11-.44z\"],\n \"syringe\": [\"M15.146.854a.5.5 0 01.708-.708l4 4a.5.5 0 01-.708.708l-.646-.647L17.207 5.5l1.647 1.646a.5.5 0 01-.708.708l-.646-.647-1.146 1.146-7.5 7.5a.5.5 0 01-.708 0l-.646-.646-2.646 2.647a.5.5 0 01-.708 0l-.646-.647-2.646 2.647a.5.5 0 01-.708-.708L2.793 16.5l-.647-.646a.5.5 0 010-.708L4.793 12.5l-.647-.646a.5.5 0 010-.708l7.5-7.5L12.794 2.5l-.647-.646a.5.5 0 01.708-.708L14.5 2.793 15.793 1.5l-.647-.646zM12.707 4l.793-.793L16.793 6.5 16 7.293 12.707 4zm2.586 4l-.793.793-1.646-1.647a.5.5 0 00-.708.708L13.793 9.5 12.5 10.793l-1.646-1.647a.5.5 0 00-.708.708l1.647 1.646-1.293 1.293-1.646-1.647a.5.5 0 00-.708.708L9.793 13.5 8.5 14.793 5.207 11.5 12 4.707 15.293 8zM3.207 15.5L5.5 13.207 6.793 14.5 4.5 16.793 3.207 15.5zM16.5 2.207L17.793 3.5 16.5 4.793 15.207 3.5 16.5 2.207z\"],\n \"tag\": [\"M2 4a2 2 0 012-2h4.588a2 2 0 011.414.586l7.41 7.41a2 2 0 010 2.828l-4.588 4.588a2 2 0 01-2.829 0l-7.41-7.41A2 2 0 012 8.588V4zm3.489-.006a1.495 1.495 0 100 2.99 1.495 1.495 0 000-2.99z\"],\n \"take-action\": [\"M5 7c.28 0 .53-.11.71-.29l5-5A1.003 1.003 0 009.29.29l-5 5A1.003 1.003 0 005 7zm6 6a1.003 1.003 0 001.71.71l5-5a1.003 1.003 0 00-1.42-1.42l-5 5c-.18.18-.29.43-.29.71zm8 5h-1c0-.55-.45-1-1-1h-7c-.55 0-1 .45-1 1H8c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm-9-6l6-6-1.29-1.29a1.003 1.003 0 00-1.42-1.42L12 2 6 8l1.29 1.29-7 7a1.003 1.003 0 001.42 1.42l7-7L10 12z\"],\n \"tank\": [\"M3.956 4.47A1 1 0 014.804 4h6.392a1 1 0 01.848.47L13 6h5a1 1 0 010 2h-5v1h4a3 3 0 110 6H3a3 3 0 010-6V6.287a1 1 0 01.152-.53l.804-1.287zM3 11h14a1 1 0 110 2H3a1 1 0 110-2z\"],\n \"target\": [\"M9 5a1 1 0 012 0v3a1 1 0 01-2 0V5zM12 9a1 1 0 000 2h3a1 1 0 000-2h-3zM4 10a1 1 0 011-1h3a1 1 0 010 2H5a1 1 0 01-1-1zM10 11a1 1 0 00-1 1v3a1 1 0 002 0v-3a1 1 0 00-1-1z\", \"M10 20c5.523 0 10-4.477 10-10S15.523 0 10 0 0 4.477 0 10s4.477 10 10 10zm0-2a8 8 0 100-16 8 8 0 000 16z\"],\n \"taxi\": [\"M19 9h-.33l.33 1v.5c0 .15-.03.3-.07.44h.01L17 17.23v.27c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5V17H6v.5c0 .83-.67 1.5-1.5 1.5S3 18.33 3 17.5v-.27l-1.93-6.28h.01c-.05-.15-.08-.3-.08-.45V10s.02-.06.05-.16c.06-.17.16-.47.28-.84H1c-.55 0-1-.45-1-1s.45-1 1-1h1l1-3h-.01v-.01c.25-.64 1-1.31 1.67-1.5 0 0 .78-.21 2.33-.36V1c0-.55.45-1 1-1h4c.55 0 1 .45 1 1v1.13c1.55.14 2.33.36 2.33.36.67.19 1.42.86 1.67 1.5V4H17l1 3h1c.55 0 1 .45 1 1s-.45 1-1 1zM3 11.5c0 .83.67 1.5 1.5 1.5S6 12.33 6 11.5 5.33 10 4.5 10 3 10.67 3 11.5zM16 7l-1-3H5L4 7v1h12V7zm-.5 3c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"],\n \"temperature\": [\"M11 0a2 2 0 00-2 2v10.535a4 4 0 104 0V2a2 2 0 00-2-2zM3 2.5a.5.5 0 01.5-.5h4a.5.5 0 010 1h-4a.5.5 0 01-.5-.5zM3.5 8a.5.5 0 000 1h4a.5.5 0 000-1h-4zM5 5.5a.5.5 0 01.5-.5h2a.5.5 0 010 1h-2a.5.5 0 01-.5-.5zm.5 5.5a.5.5 0 000 1h2a.5.5 0 000-1h-2z\"],\n \"text-highlight\": [\"M16 17c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1s1-.45 1-1-.45-1-1-1c-.77 0-1.47.3-2 .78-.53-.48-1.23-.78-2-.78-.55 0-1 .45-1 1s.45 1 1 1 1 .45 1 1v12c0 .55-.45 1-1 1s-1 .45-1 1 .45 1 1 1c.77 0 1.47-.3 2-.78.53.48 1.23.78 2 .78.55 0 1-.45 1-1s-.45-1-1-1zm-4-4H2V7h10V5H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h11v-2zm7-8h-3v2h2v6h-2v2h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z\"],\n \"th\": [\"M19 1H1c-.6 0-1 .5-1 1v16c0 .5.4 1 1 1h18c.5 0 1-.5 1-1V2c0-.5-.5-1-1-1zM7 17H2v-3h5v3zm0-4H2v-3h5v3zm0-4H2V6h5v3zm11 8H8v-3h10v3zm0-4H8v-3h10v3zm0-4H8V6h10v3z\"],\n \"th-derived\": [\"M5.3 13.3c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3l3-3c.2-.2.3-.4.3-.7s-.1-.5-.3-.7l-3-3C6.5 7.1 6.3 7 6 7c-.6 0-1 .4-1 1 0 .3.1.5.3.7L6.6 10H1c-.6 0-1 .4-1 1s.4 1 1 1h5.6l-1.3 1.3zM19 1H3c-.5 0-1 .5-1 1v6h1c0-1.7 1.3-3 3-3 .8 0 1.6.3 2.1.9l.1.1H9v.8l1 1V6h8v3h-6.8c.3.3.5.6.6 1H18v3h-6.8l-.1.1-.9.9H18v3h-8v-2.8l-1 1V17H4v-.8c-.6-.5-1-1.3-1-2.2H2v4c0 .5.5 1 1 1h16c.6 0 1-.5 1-1V2c0-.5-.5-1-1-1z\"],\n \"th-disconnect\": [\"M14.25 1H19c.5 0 1 .5 1 1v16c0 .5-.5 1-1 1h-7.221l.278-2H18v-3h-5.527l.14-1H18v-3h-4.971l.139-1H18V6h-4.416l.637-4.587c.02-.139.03-.277.03-.413zM8.221 1l-.694 5H2v3h5.11l-.139 1H2v3h4.555l-.14 1H2v3h3.999l-.22 1.587c-.02.139-.03.277-.03.413H1c-.6 0-1-.5-1-1V2c0-.5.4-1 1-1h7.221zM10.26.862a1 1 0 011.98.276l-2.5 18a1 1 0 01-1.98-.276l2.5-18z\"],\n \"th-filtered\": [\"M17.333 10l1.435-1.722a1 1 0 00.232-.64V4.85l1-.9V18c0 .5-.5 1-1 1H1c-.6 0-1-.5-1-1V2c0-.5.4-1 1-1h6.722L12 4.85V6H8v3h4v1H8v3h10v-3h-.667zM7 17v-3H2v3h5zm0-4v-3H2v3h5zm0-4V6H2v3h5zm11 8v-3H8v3h10z\", \"M19.35 0a.642.642 0 01.46 1.1l-3.03 3.03v2.95c0 .18-.07.34-.19.46l-1.28 1.29c-.11.1-.27.17-.45.17-.35 0-.64-.29-.64-.64V4.13L11.19 1.1a.642.642 0 01.45-1.1h7.71z\"],\n \"th-list\": [\"M19 1H1c-.6 0-1 .5-1 1v16c0 .5.4 1 1 1h18c.5 0 1-.5 1-1V2c0-.5-.5-1-1-1zm-1 16H2v-3h16v3zm0-4H2v-3h16v3zm0-4H2V6h16v3z\"],\n \"third-party\": [\"M8 0C3.58 0 0 3.58 0 8a8 8 0 005.856 7.71c.064-.057.129-.109.19-.156.278-.209.595-.383.896-.53.358-.174.81-.358 1.193-.515.206-.084.393-.16.534-.223a3.93 3.93 0 00.203-.095 4.1 4.1 0 01-.305-.45C8.382 13.911 8.19 14 8 14c-.67 0-1.36-1.1-1.73-3h1.252c.047-.296.153-.571.323-.797l.01-.203H6.12C6.05 9.39 6 8.73 6 8s.05-1.39.12-2h3.76l.037.344c.315-.145.65-.242.979-.295L10.89 6h2.76c.027.077.052.155.076.233l.118-.04A3.62 3.62 0 0114.998 6c.247 0 .51.028.772.086A8 8 0 008 0zm5.17 5h-2.44c-.21-1.11-.51-2.03-.91-2.69 1.43.46 2.61 1.43 3.35 2.69zM8 2c.67 0 1.36 1.1 1.73 3H6.27C6.64 3.1 7.33 2 8 2zm-1.82.31c-.4.66-.71 1.58-.91 2.69H2.83a6.025 6.025 0 013.35-2.69zM2 8c0-.7.13-1.37.35-2h2.76C5.04 6.62 5 7.28 5 8s.04 1.38.11 2H2.35C2.13 9.37 2 8.7 2 8zm.83 3h2.44c.21 1.11.51 2.03.91 2.69A6.025 6.025 0 012.83 11z\", \"M13.917 15.209c.21.094.444.19.685.288.912.374 1.927.789 2.188 1.355.31.722.186 1.148.186 1.148H6.026s-.13-.426.186-1.148c.256-.584 1.305-1.011 2.234-1.39.22-.088.432-.175.626-.26.909-.4.923-.662.94-.978.002-.037.004-.076.008-.115l.003-.072c.002-.025.004-.049.004-.073a3.067 3.067 0 01-.839-1.237l-.007-.007a.024.024 0 00-.003-.01 1.757 1.757 0 01-.113-.347c-.234-.042-.372-.296-.427-.537a1.045 1.045 0 01-.137-.598c.034-.35.179-.509.337-.57v-.056c0-.44.034-1.065.117-1.478a2.508 2.508 0 01.962-1.623c.426-.33 1.038-.501 1.58-.501.544 0 1.155.172 1.588.502a2.496 2.496 0 01.963 1.622c.075.413.117 1.045.117 1.478v.062c.15.062.288.22.323.564.02.268-.083.502-.138.598-.048.234-.185.488-.42.537a2.635 2.635 0 01-.116.364 3.094 3.094 0 01-.818 1.224c0 .055 0 .11.007.158.004.048.006.095.007.14.011.311.02.57.907.96z\", \"M14.976 14.57c-.24-.098-.455-.186-.65-.274l-.007-.003a3.801 3.801 0 01-.194-.091c.224-.288.41-.609.554-.946l.001-.002.013-.033c.018-.043.036-.087.052-.13l.011-.027.016-.04c.105-.092.19-.19.256-.284.129-.184.213-.38.265-.563.105-.226.225-.592.192-1.026l-.001-.011-.002-.011a1.855 1.855 0 00-.325-.91 9.924 9.924 0 00-.12-1.246 3.088 3.088 0 00-.106-.474l-.001-.007a3.543 3.543 0 00-.763-1.353c.27-.092.56-.139.83-.139.495 0 1.05.156 1.444.456a2.269 2.269 0 01.875 1.475c.069.375.106.95.106 1.344v.056c.138.056.263.2.294.513.019.244-.075.456-.125.543-.044.213-.169.444-.381.488-.025.1-.056.206-.094.3a2.815 2.815 0 01-.756 1.144c0 .05 0 .1.006.144.004.043.006.086.007.127.01.283.018.518.824.873.192.086.404.172.623.262.83.34 1.752.717 1.99 1.231.28.657.168 1.044.168 1.044h-2.081a3.864 3.864 0 00-.188-.542l-.005-.013-.006-.012c-.183-.397-.491-.681-.76-.88a5.614 5.614 0 00-.896-.522 17.36 17.36 0 00-.916-.4l-.15-.061z\"],\n \"thumbs-down\": [\"M18.55 6.56c-.31-.01-.65-.03-1.02-.06.03 0 .06-.01.09-.01.88-.12 1.68-.63 1.76-1.37.08-.75-.58-1.25-1.46-1.33-.32-.03-.65-.05-.99-.08.59-.19 1.05-.54 1.09-1.2.05-.75-.99-1.32-1.87-1.41-.34-.03-.64-.05-.91-.07h-.11c-.28-.02-.54-.02-.77-.02-3.92-.08-7.29.6-9.36 1.93v7.72c2.67 1.66 5.95 4.61 5.26 7.08-.21.76.39 1.35 1.23 1.26 1.01-.11 1.71-1.18 1.75-2.28.05-1.29-.19-2.59-.62-3.74-.05-.32.01-.65.47-.68.61-.04 1.39-.08 1.99-.1.32 0 .64-.01.94-.03h.01c.52-.03 1-.07 1.42-.12.88-.11 1.69-.6 1.79-1.35.1-.75-.55-1.25-1.44-1.35-.07-.01-.13-.02-.2-.02.21-.02.42-.04.61-.06.88-.11 1.69-.6 1.79-1.35.09-.75-.56-1.31-1.45-1.36zM3 3H0v8h3c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"thumbs-up\": [\"M3 9H0v8h3c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zm16.99 3.09c-.1-.75-.91-1.24-1.79-1.35-.19-.02-.4-.05-.61-.06.07-.01.14-.01.2-.02.88-.1 1.53-.61 1.44-1.35-.1-.74-.91-1.24-1.79-1.35-.42-.05-.9-.09-1.42-.12h-.01l-.94-.03c-.6-.02-1.39-.05-1.99-.1-.45-.03-.51-.36-.47-.68.43-1.15.67-2.45.62-3.74-.04-1.11-.74-2.17-1.75-2.28-.84-.09-1.45.5-1.23 1.26.7 2.47-2.58 5.43-5.25 7.08v7.72c2.08 1.33 5.44 2.01 9.35 1.93.24 0 .49-.01.77-.02h.11c.27-.02.57-.04.91-.07.88-.08 1.92-.66 1.87-1.41-.04-.65-.5-1.01-1.09-1.2.34-.03.67-.05.99-.08.89-.08 1.55-.58 1.46-1.33-.08-.75-.88-1.25-1.76-1.37-.03 0-.06-.01-.09-.01.37-.02.71-.04 1.02-.06.91-.05 1.55-.61 1.45-1.36z\"],\n \"tick\": [\"M17 4c-.28 0-.53.11-.71.29L7 13.59 3.71 10.3A.965.965 0 003 10a1.003 1.003 0 00-.71 1.71l4 4c.18.18.43.29.71.29s.53-.11.71-.29l10-10A1.003 1.003 0 0017 4z\"],\n \"tick-circle\": [\"M10 20C4.48 20 0 15.52 0 10S4.48 0 10 0s10 4.48 10 10-4.48 10-10 10zm5-14c-.28 0-.53.11-.71.29L8 12.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29.28 0 .53-.11.71-.29l7-7A1.003 1.003 0 0015 6z\"],\n \"time\": [\"M11 9.59V4c0-.55-.45-1-1-1s-1 .45-1 1v6c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L11 9.59zM10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"],\n \"timeline-area-chart\": [\"M19 16H2V3c0-.55-.45-1-1-1s-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0-13.41l-7.07 7.07-4.3-3.44-.01.01A.987.987 0 007 6c-.24 0-.46.1-.63.24l-.01-.01L3 9.03V15h16V2.59z\"],\n \"timeline-bar-chart\": [\"M19 17H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM9 16h2c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1zm6 0h2c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1zM3 16h2c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1z\"],\n \"timeline-events\": [\"M5 5c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1s-1 .5-1 1v2c0 .6.4 1 1 1zm10 0c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1s-1 .5-1 1v2c0 .6.4 1 1 1zm-9 9H4v2h2v-2zM17 3v1c0 1.1-.9 2-2 2s-2-.9-2-2V3H7v1c0 1.1-.9 2-2 2s-2-.9-2-2V3H2c-.5 0-1 .5-1 1v14c0 .5.5 1 1 1h16c.5 0 1-.5 1-1V4c0-.5-.5-1-1-1h-1zM7 17H3v-4h4v4zm0-5H3V8h4v4zm5 5H8v-4h4v4zm0-5H8V8h4v4zm5 5h-4v-4h4v4zm0-5h-4V8h4v4zm-6 2H9v2h2v-2zm5-5h-2v2h2V9z\"],\n \"timeline-line-chart\": [\"M19 16H2v-1.59l5-5 3.29 3.29c.18.19.43.3.71.3s.53-.11.71-.29l7-7a1.003 1.003 0 00-1.42-1.42L11 10.59l-3.29-3.3C7.53 7.11 7.28 7 7 7s-.53.11-.71.29L2 11.59V3c0-.55-.45-1-1-1s-1 .45-1 1v14a.998.998 0 001 1h18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"tint\": [\"M9.86 2S3.98 9.18 3.98 12.17C3.99 15.4 6.78 18 9.96 18c3.18-.01 6.04-2.63 6.03-5.86C15.99 9.05 9.86 2 9.86 2z\"],\n \"torch\": [\"M6.97 19c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2h-6v2zm-3-15l3 4v8h6V8l3-4h-12zm5 5c0-.55.45-1 1-1s1 .45 1 1v2c0 .55-.45 1-1 1s-1-.45-1-1V9zm6-9h-10c-.55 0-1 .45-1 1v2h12V1c0-.55-.45-1-1-1z\"],\n \"tractor\": [\"M4.5 11a4.5 4.5 0 110 9 4.5 4.5 0 010-9zm11.499 1a4 4 0 110 8 4 4 0 010-8zm-11.5 1.571a1.928 1.928 0 100 3.857 1.928 1.928 0 000-3.857zM16 14.667a1.333 1.333 0 100 2.666 1.333 1.333 0 000-2.666zM5.999 0C7.46 0 8.527.668 9 2l.851 4.256c1.433.096 2.82.217 4.147.362V2h2L16 6.862c.962.13 1.886.275 2.767.435.779.141 1.232.614 1.232 1.284L20 13a4.995 4.995 0 00-4-1.997A5.001 5.001 0 0011.099 15h-1.12a5.499 5.499 0 00-5.478-4.994 5.482 5.482 0 00-3.377 1.157H.004v-1.18L0 7.327c-.002-.597.37-1.18.999-1.302V1a1 1 0 011-1h4zm1 2H3v4h.75c1.386.027 2.749.073 4.079.139L6.999 2z\"],\n \"train\": [\"M16 18h-2l2 2H4l.12-.12L6 18H4c-1.1 0-2-.9-2-2V2c0-1.1 3.58-2 8-2s8 .9 8 2v14c0 1.1-.9 2-2 2zM5.5 15c.83 0 1.5-.67 1.5-1.5S6.33 12 5.5 12 4 12.67 4 13.5 4.67 15 5.5 15zM9 3H4v6h5V3zm7 0h-5v6h5V3zm-1.5 9c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"],\n \"translate\": [\"M19.89 18.56l-4.99-10h-.01c-.17-.33-.5-.56-.89-.56s-.72.23-.89.56h-.01l-1.73 3.46-2.8-2.3 1.99-1.64C11.44 7.34 12 6.23 12 5V4h1c.55 0 1-.45 1-1s-.45-1-1-1H8V1c0-.55-.45-1-1-1S6 .45 6 1v1H1c-.55 0-1 .45-1 1s.45 1 1 1h9v1c0 .62-.28 1.18-.73 1.54L7 8.42 4.73 6.54C4.28 6.18 4 5.62 4 5H2c0 1.23.56 2.34 1.44 3.07l1.99 1.64-3.06 2.52.01.01c-.23.18-.38.45-.38.76 0 .55.45 1 1 1 .24 0 .45-.1.63-.24l.01.01L7 11l3.36 2.77.01-.01c.02.02.05.03.08.05.01 0 .01.01.02.02l-2.36 4.73h.01c-.07.13-.12.28-.12.44 0 .55.45 1 1 1 .39 0 .72-.23.89-.56h.01L11.12 17h5.76l1.22 2.45h.01c.17.32.5.55.89.55.55 0 1-.45 1-1 0-.16-.05-.31-.11-.44zM12.12 15L14 11.24 15.88 15h-3.76z\"],\n \"trash\": [\"M17 1h-5c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1H3c-.55 0-1 .45-1 1v1h16V2c0-.55-.45-1-1-1zm.5 3h-15c-.28 0-.5.22-.5.5s.22.5.5.5H3v14c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5h.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5zM7 16c0 .55-.45 1-1 1s-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v8zm4 0c0 .55-.45 1-1 1s-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v8zm4 0c0 .55-.45 1-1 1s-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v8z\"],\n \"tree\": [\"M11 15.542V20H9v-4.458L2 17l4.5-5.625L4 12l3.655-5.483L6 7l4-7 4 7-1.655-.483L16 12l-2.5-.625L18 17l-7-1.458z\"],\n \"trending-down\": [\"M19 10c-.55 0-1 .45-1 1v1.37l-6.25-7.03-.01.01A.971.971 0 0011 5c-.23 0-.42.09-.59.21l-.01-.01-3.43 2.58-5.42-3.61-.01.01A.969.969 0 001 4c-.55 0-1 .45-1 1 0 .35.19.64.46.82l-.01.01 6 4 .01-.02c.15.11.33.19.54.19.23 0 .42-.09.59-.21l.01.01 3.26-2.45L16.77 14H15c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1z\"],\n \"trending-up\": [\"M19 4h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.77l-5.91 6.65L7.6 10.2l-.01.01C7.42 10.09 7.23 10 7 10c-.21 0-.39.08-.54.18l-.01-.02-6 4 .01.02c-.27.18-.46.47-.46.82 0 .55.45 1 1 1 .21 0 .39-.08.54-.18l.01.02 5.41-3.61 3.43 2.58.01-.01c.18.11.37.2.6.2.3 0 .56-.14.74-.34l.01.01L18 7.63V9c0 .55.45 1 1 1s1-.45 1-1V5c0-.55-.45-1-1-1z\"],\n \"truck\": [\"M16 0a1 1 0 011 1v11a1 1 0 011 1v3h.5a.5.5 0 01.5.5v1a.5.5 0 01-.5.5H17v1a1 1 0 01-1 1h-1a1 1 0 01-1-1v-1H6v1a1 1 0 01-1 1H4a1 1 0 01-1-1v-1H1.5a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5H2v-3a1 1 0 011-1V1a1 1 0 112 0v3a2 2 0 012-2h6a2 2 0 012 2V1a1 1 0 011-1zm-4 10H8a1 1 0 00-1 1v4a1 1 0 001 1h4a1 1 0 001-1v-4a1 1 0 00-1-1zm-7 4H4a1 1 0 000 2h1a1 1 0 000-2zm11 0h-1a1 1 0 000 2h1a1 1 0 000-2zm-4.5 0a.5.5 0 110 1h-3l-.09-.008A.5.5 0 018.5 14zm0-1.5a.5.5 0 110 1h-3l-.09-.008a.5.5 0 01.09-.992zm0-1.5a.5.5 0 110 1h-3l-.09-.008A.5.5 0 018.5 11zM14 5H6v3h8V5z\"],\n \"two-columns\": [\"M5 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm14.71 9.29l-3-3A1.003 1.003 0 0015 7v6a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM12 0H8c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"unarchive\": [\"M16.434 0a1 1 0 01.857.486L20 5v14a1 1 0 01-1 1H1a1 1 0 01-1-1V5L2.709.486A1 1 0 013.566 0h12.868zM10 8c-.28 0-.53.11-.71.29l-3 3-.084.096A1.003 1.003 0 007.71 12.71L9 11.41v4.58l.007.116c.058.496.482.884.993.884.55 0 1-.45 1-1v-4.58l1.29 1.29.081.073c.171.139.389.227.629.227a1.003 1.003 0 00.71-1.71l-3-3-.096-.084A1.002 1.002 0 0010 8zm6-6H4L2 5.002h16L16 2z\"],\n \"underline\": [\"M10 17c3.3 0 6-2.7 6-6V3.5c0-.8-.7-1.5-1.5-1.5S13 2.7 13 3.5V11c0 1.7-1.3 3-3 3s-3-1.3-3-3V3.5C7 2.7 6.3 2 5.5 2S4 2.7 4 3.5V11c0 3.3 2.7 6 6 6zM16.5 19h-13c-.3 0-.5.2-.5.5s.2.5.5.5h13c.3 0 .5-.2.5-.5s-.2-.5-.5-.5z\"],\n \"undo\": [\"M5 14c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm9-9H3.41L5.7 2.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C.11 5.47 0 5.72 0 6c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L3.41 7H14c2.21 0 4 1.79 4 4s-1.79 4-4 4H9v2h5c3.31 0 6-2.69 6-6s-2.69-6-6-6z\"],\n \"ungroup-objects\": [\"M4.5 6C2.01 6 0 8.01 0 10.5S2.01 15 4.5 15 9 12.99 9 10.5 6.99 6 4.5 6zm11 0C13.01 6 11 8.01 11 10.5s2.01 4.5 4.5 4.5 4.5-2.01 4.5-4.5S17.99 6 15.5 6z\"],\n \"unknown-vehicle\": [\"M13 11.988v-4H4v-1l1-3h6V2.003a35.867 35.867 0 00-1-.015c-3.593 0-5.332.488-5.332.488-.67.188-1.424.864-1.674 1.503l-.004.009H3l-1 3H1a1 1 0 100 2h.333l-.28.84-.053.16v7.5a1.5 1.5 0 103 0v-.5h12v.5a1.5 1.5 0 103 0v-4.5h-5a1 1 0 01-1-1zm-8.5 1a1.5 1.5 0 110-3 1.5 1.5 0 010 3zM19.83 2.782a2.392 2.392 0 00-.592-.853c-.276-.264-.64-.485-1.09-.663C17.695 1.09 17.132 1 16.457 1c-.523 0-.996.084-1.418.253a3.157 3.157 0 00-1.084.703c-.299.3-.532.656-.698 1.065-.166.41-.254.861-.264 1.353h2.096c0-.246.028-.476.085-.69.057-.214.145-.4.264-.56.119-.16.27-.287.456-.383.185-.095.406-.143.663-.143.38 0 .677.1.89.3.215.2.321.51.321.93.01.245-.035.45-.135.614-.1.164-.23.314-.392.45a8.598 8.598 0 01-.527.41 3.53 3.53 0 00-.542.485c-.171.187-.32.412-.45.676-.127.265-.206.592-.234.984v.614h1.924v-.519c.038-.273.13-.5.278-.683.147-.182.316-.343.506-.484a13.5 13.5 0 01.606-.424c.214-.14.408-.312.584-.512s.323-.442.442-.724.178-.642.178-1.079c0-.264-.059-.548-.178-.854zm-4.54 6.099v2.103h2.237V8.881H15.29z\"],\n \"unlock\": [\"M14 1c-2.21 0-4 1.79-4 4v4H2c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-8c0-.55-.45-1-1-1h-2V5c0-1.1.9-2 2-2s2 .9 2 2v2c0 .55.45 1 1 1s1-.45 1-1V5c0-2.21-1.79-4-4-4z\"],\n \"unpin\": [\"M11.77 1.16c-.81.81-.74 2.28.02 3.76L6.1 8.71c-2.17-1.46-4.12-2-4.94-1.18l4.95 4.95-2.12 3.54 3.54-2.12 4.95 4.95c.82-.82.27-2.77-1.19-4.94l3.8-5.69c1.47.76 2.94.84 3.76.02l-7.08-7.08z\"],\n \"unresolve\": [\"M11.47 12.46c.16-.36.29-.74.38-1.14 0-.02.01-.04.01-.06.09-.4.14-.82.14-1.26 0-.44-.05-.86-.14-1.27 0-.02-.01-.04-.01-.06-.09-.4-.22-.78-.38-1.14-.01-.02-.02-.03-.02-.05a5.94 5.94 0 00-.61-1.03c0-.01-.01-.01-.01-.02a6.308 6.308 0 00-2.1-1.77c-.19-.1-.39-.18-.59-.26-.03-.01-.06-.02-.1-.03-.17-.07-.34-.12-.52-.17-.05-.01-.1-.03-.15-.04a4.34 4.34 0 00-.52-.09c-.05-.01-.11-.02-.17-.03C6.46 4.02 6.23 4 6 4c-3.31 0-6 2.69-6 6s2.69 6 6 6c.23 0 .46-.02.68-.04l.17-.03c.17-.02.34-.06.51-.09.05-.01.1-.03.15-.04.18-.05.36-.1.53-.17l.09-.03a5.973 5.973 0 002.68-2.04c0-.01.01-.01.01-.02.24-.32.44-.66.61-1.03.02-.01.03-.03.04-.05zM14 4c-.99 0-1.91.24-2.73.66a7.51 7.51 0 010 10.68c.82.42 1.74.66 2.73.66 3.31 0 6-2.69 6-6s-2.69-6-6-6z\"],\n \"updated\": [\"M10 0C6.71 0 3.82 1.6 2 4.05V2c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.76C5.22 3.17 7.47 2 10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8c0-.55-.45-1-1-1s-1 .45-1 1c0 5.52 4.48 10 10 10s10-4.48 10-10S15.52 0 10 0zm4 7c-.28 0-.53.11-.71.29L9 11.58 6.71 9.29a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29.28 0 .53-.11.71-.29l5-5A1.003 1.003 0 0014 7z\"],\n \"upload\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm4 10c-.28 0-.53-.11-.71-.29L11 7.41V15c0 .55-.45 1-1 1s-1-.45-1-1V7.41l-2.29 2.3a1.003 1.003 0 01-1.42-1.42l4-4c.18-.18.43-.29.71-.29s.53.11.71.29l4 4A1.003 1.003 0 0114 10z\"],\n \"user\": [\"M10 0C4.48 0 0 4.48 0 10c0 .33.02.65.05.97.01.12.03.23.05.35.03.2.05.4.09.59.03.14.06.28.1.42l.12.48c.05.16.1.31.15.46.05.13.09.27.15.4.06.16.13.32.21.48.05.11.1.22.16.33.09.17.17.34.27.5.05.09.1.17.15.25.11.18.22.35.34.52.04.06.08.11.12.17 1.19 1.62 2.85 2.86 4.78 3.53l.09.03c.46.15.93.27 1.42.36.08.01.17.03.25.04.49.07.99.12 1.5.12s1.01-.05 1.5-.12c.08-.01.17-.02.25-.04.49-.09.96-.21 1.42-.36l.09-.03c1.93-.67 3.59-1.91 4.78-3.53.04-.05.08-.1.12-.16.12-.17.23-.35.34-.53.05-.08.1-.16.15-.25.1-.17.19-.34.27-.51.05-.11.1-.21.15-.32.07-.16.14-.32.21-.49.05-.13.1-.26.14-.39.05-.15.11-.31.15-.46.05-.16.08-.32.12-.48.03-.14.07-.28.1-.42.04-.19.06-.39.09-.59.02-.12.04-.23.05-.35.05-.32.07-.64.07-.97 0-5.52-4.48-10-10-10zm0 18a7.94 7.94 0 01-6.15-2.89c.84-.44 1.86-.82 2.67-1.19 1.45-.65 1.3-1.05 1.35-1.59.01-.07.01-.14.01-.21-.51-.45-.93-1.08-1.2-1.8l-.01-.01c0-.01-.01-.02-.01-.03a4.42 4.42 0 01-.15-.48c-.33-.07-.53-.44-.61-.79-.08-.14-.23-.48-.2-.87.05-.51.26-.74.49-.83v-.08c0-.63.06-1.55.17-2.15.02-.17.06-.33.11-.5.21-.73.66-1.4 1.26-1.86.62-.47 1.5-.72 2.28-.72.78 0 1.65.25 2.27.73.6.46 1.05 1.12 1.26 1.86.05.16.08.33.11.5.11.6.17 1.51.17 2.15v.09c.22.1.42.33.46.82.04.39-.12.73-.2.87-.07.34-.27.71-.6.78-.04.16-.09.33-.15.48 0 .01-.02.05-.02.05-.26.71-.67 1.33-1.17 1.78 0 .08.01.16.01.23.05.54-.15.94 1.31 1.59.81.36 1.84.74 2.68 1.19A7.958 7.958 0 0110 18z\"],\n \"variable\": [\"M4.93 3.79a9.1 9.1 0 012.2-2.27L7.29 1c-1.38.59-2.57 1.33-3.55 2.22C2.46 4.39 1.49 5.72.83 7.23.28 8.51 0 9.81 0 11.12c0 2.28.83 4.57 2.49 6.86l.16-.55c-.49-1.23-.73-2.38-.73-3.44 0-1.67.28-3.46.84-5.36.55-1.9 1.28-3.51 2.17-4.84zm9.38 8.39l-.33-.2c-.37.54-.65.87-.82 1a.74.74 0 01-.42.12c-.19 0-.38-.12-.57-.37-.31-.42-.73-1.59-1.26-3.5.47-.85.86-1.41 1.19-1.67.23-.19.48-.29.74-.29.1 0 .28.04.53.11.26.07.48.11.68.11.27 0 .5-.1.68-.29.18-.19.27-.44.27-.75 0-.33-.09-.58-.27-.77-.18-.19-.44-.29-.78-.29-.3 0-.59.07-.86.22s-.61.47-1.02.97c-.31.37-.77 1.02-1.37 1.94a9.683 9.683 0 00-1.24-3.14l-3.24.59-.06.36c.24-.05.44-.07.61-.07.32 0 .59.14.8.43.33.45.8 1.8 1.39 4.07-.47.64-.78 1.06-.96 1.26-.28.32-.52.53-.7.62-.14.08-.3.11-.48.11-.14 0-.36-.08-.67-.23-.21-.1-.4-.15-.57-.15-.31 0-.57.11-.78.32s-.31.48-.31.8c0 .31.09.55.28.75.19.19.44.29.76.29.31 0 .6-.07.87-.2s.61-.42 1.02-.86c.41-.44.98-1.13 1.7-2.08.28.9.52 1.56.72 1.97.2.41.44.71.7.89.26.18.59.27.99.27.38 0 .77-.14 1.17-.43.54-.36 1.07-1 1.61-1.91zM17.51 1l-.15.54c.49 1.24.73 2.39.73 3.45 0 1.43-.21 2.96-.63 4.6-.33 1.26-.75 2.45-1.27 3.55-.52 1.11-1.02 1.97-1.51 2.6-.49.62-1.09 1.2-1.8 1.72l-.17.53c1.38-.59 2.57-1.34 3.55-2.23 1.29-1.17 2.26-2.5 2.91-4 .55-1.28.83-2.59.83-3.91 0-2.27-.83-4.56-2.49-6.85z\"],\n \"vertical-bar-chart-asc\": [\"M8 7H7c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zM3 9H2c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-9c0-.55-.45-1-1-1zm10-5h-1c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm5-4h-1c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"vertical-bar-chart-desc\": [\"M3 0H2c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm5 4H7c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm5 3h-1c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm5 2h-1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-9c0-.55-.45-1-1-1z\"],\n \"vertical-distribution\": [\"M1 2h18c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1s.45 1 1 1zm2 5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1H3zm16 11H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"video\": [\"M19 2H1c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zM7 14V6l6 4-6 4z\"],\n \"virus\": [\"M15.249 13.835l1.251 1.251.354-.354.087-.077a1 1 0 011.327 1.491l-2.122 2.122-.087.077a1 1 0 01-1.327-1.491l.354-.354-1.251-1.251A6.466 6.466 0 0111 16.424L10.999 18h.501a1 1 0 01.117 1.993L11.5 20h-3a1 1 0 01-.117-1.993L8.5 18h.499v-1.577a6.46 6.46 0 01-2.538-.97L5.414 16.5l.354.354a1 1 0 01-1.327 1.491l-.087-.077-2.122-2.122a1 1 0 011.327-1.491l.087.077.354.354.97-.97a6.472 6.472 0 01-1.384-3.057l-.025.002L2 11.06v.44a1 1 0 01-1.993.117L0 11.5v-3a1 1 0 011.993-.117L2 8.5v.56h1.567A6.471 6.471 0 014.97 5.883l-.971-.969-.353.354-.087.077a1 1 0 01-1.327-1.491l2.122-2.122.087-.077a1 1 0 011.327 1.491l-.354.353 1.047 1.048A6.46 6.46 0 019 3.577L9 2h-.5A1 1 0 018.383.007L8.5 0h3a1 1 0 01.117 1.993L11.5 2H11v1.577a6.466 6.466 0 012.838 1.176l.04-.046L15.086 3.5l-.353-.353a1 1 0 011.327-1.491l.087.077 2.122 2.122a1 1 0 01-1.327 1.491l-.087-.077-.354-.354-1.207 1.207-.046.041a6.467 6.467 0 011.16 2.733H18V8.5a1 1 0 011.993-.117L20 8.5v3a1 1 0 01-1.993.117L18 11.5v-.605h-1.561a6.466 6.466 0 01-1.19 2.94zM12.5 11a1.5 1.5 0 100 3 1.5 1.5 0 000-3zM8 6a2 2 0 100 4 2 2 0 000-4z\"],\n \"volume-down\": [\"M15.92 3.93l-1.6 1.18A7.948 7.948 0 0116 10c0 1.84-.63 3.54-1.68 4.89l1.6 1.18A9.878 9.878 0 0018 10c0-2.29-.78-4.39-2.08-6.07zM11 3c-.28 0-.53.11-.71.29L7.59 6H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h4.59l2.71 2.71c.17.18.42.29.7.29.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"volume-off\": [\"M14 3c-.28 0-.53.11-.71.29L10.59 6H6c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h4.59l2.71 2.71c.17.18.42.29.7.29.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"volume-up\": [\"M9 3.43c-.28 0-.53.11-.71.29l-2.7 2.71H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h4.59l2.71 2.71a1.003 1.003 0 001.71-.71v-12c-.01-.55-.46-1-1.01-1zm8.31-1.56l-1.62 1.2C17.14 5.16 18 7.69 18 10.43s-.86 5.27-2.31 7.37l1.62 1.2C19 16.57 20 13.62 20 10.43c0-3.18-1-6.13-2.69-8.56zm-3.39 2.49l-1.6 1.18A7.948 7.948 0 0114 10.43c0 1.84-.63 3.54-1.68 4.89l1.6 1.18A9.94 9.94 0 0016 10.43c0-2.28-.78-4.38-2.08-6.07z\"],\n \"walk\": [\"M16 10h-2c-.23 0-.42-.09-.59-.21l-.01.01-1.69-1.27-.63 3.14 2.62 2.62c.19.18.3.43.3.71v4c0 .55-.45 1-1 1s-1-.45-1-1v-3.59L9.39 12.8l-2.45 6.55h-.01c-.14.38-.5.65-.93.65-.55 0-1-.45-1-1 0-.12.03-.24.07-.35h-.01L9.43 7h-2.9l-1.7 2.55-.01-.01c-.18.27-.47.46-.82.46-.55 0-1-.45-1-1 0-.21.08-.39.18-.54l-.01-.01 2-3 .02.01C5.36 5.19 5.65 5 6 5h4.18l.36-.96c-.33-.43-.54-.96-.54-1.54a2.5 2.5 0 015 0A2.5 2.5 0 0112.5 5c-.06 0-.12-.01-.18-.02l-.44 1.18L14.33 8H16c.55 0 1 .45 1 1s-.45 1-1 1z\"],\n \"warning-sign\": [\"M19.86 17.52l.01-.01-9-16-.01.01C10.69 1.21 10.37 1 10 1s-.69.21-.86.52l-.01-.01-9 16 .01.01c-.08.14-.14.3-.14.48 0 .55.45 1 1 1h18c.55 0 1-.45 1-1 0-.18-.06-.34-.14-.48zM11 17H9v-2h2v2zm0-3H9V6h2v8z\"],\n \"waterfall-chart\": [\"M13 7h2c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm-9 8h1c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm4-6h2c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm11-5h-1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm0 12H2V3c0-.55-.45-1-1-1s-1 .45-1 1v14a.998.998 0 001 1h18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"waves\": [\"M4.948 2.682a1 1 0 00-1.897.001l-.005.016-.027.074a6.05 6.05 0 01-.6 1.172C1.958 4.635 1.468 5 .999 5a1 1 0 000 2c1.457 0 2.442-1.027 3-1.825C4.558 5.973 5.543 7 7 7s2.442-1.027 3-1.825C10.558 5.973 11.543 7 13 7s2.442-1.027 3-1.825C16.558 5.973 17.544 7 19 7a1 1 0 100-2c-.47 0-.958-.365-1.418-1.055a6.048 6.048 0 01-.628-1.246l-.006-.016a1 1 0 00-1.896 0l-.006.016a5.868 5.868 0 01-.147.364c-.11.246-.272.568-.481.882C13.958 4.635 13.469 5 13 5c-.47 0-.958-.365-1.418-1.055a6.048 6.048 0 01-.628-1.246l-.006-.016a1 1 0 00-1.897 0l-.005.016-.027.074a6.05 6.05 0 01-.6 1.172C7.958 4.635 7.468 5 6.999 5c-.47 0-.958-.365-1.418-1.055A6.05 6.05 0 014.954 2.7l-.006-.016v-.001zm0 6a1 1 0 00-1.897.001l-.005.016-.027.074a6.05 6.05 0 01-.6 1.172c-.46.69-.95 1.055-1.419 1.055a1 1 0 100 2c1.457 0 2.442-1.027 3-1.825C4.558 11.973 5.543 13 7 13s2.442-1.027 3-1.825c.558.798 1.543 1.825 3 1.825s2.442-1.027 3-1.825c.558.798 1.544 1.825 3 1.825a1 1 0 100-2c-.47 0-.958-.365-1.418-1.055a6.048 6.048 0 01-.628-1.246l-.006-.016a1 1 0 00-1.896 0l-.006.016a5.868 5.868 0 01-.147.364c-.11.246-.272.568-.481.882-.46.69-.949 1.055-1.418 1.055-.47 0-.958-.365-1.418-1.055a6.048 6.048 0 01-.628-1.246l-.006-.016a1 1 0 00-1.897 0l-.005.016-.027.074a6.05 6.05 0 01-.6 1.172c-.46.69-.95 1.055-1.419 1.055-.47 0-.958-.365-1.418-1.055A6.05 6.05 0 014.954 8.7l-.006-.016zm-1.896-6zm1.896 12l.006.017.027.074a6.053 6.053 0 00.6 1.172c.46.69.95 1.055 1.419 1.055.47 0 .958-.365 1.418-1.055a6.053 6.053 0 00.628-1.246l.005-.016a1 1 0 011.897 0l.006.016.027.074a6.051 6.051 0 00.6 1.172c.46.69.95 1.055 1.419 1.055.47 0 .958-.365 1.418-1.055a6.051 6.051 0 00.628-1.246l.006-.016a1 1 0 011.896 0l.006.016.027.074a6.051 6.051 0 00.6 1.172c.46.69.95 1.055 1.419 1.055a1 1 0 110 2c-1.456 0-2.442-1.027-3-1.825-.558.798-1.543 1.825-3 1.825s-2.442-1.027-3-1.825C9.442 17.973 8.457 19 7 19s-2.442-1.027-3-1.825C3.442 17.973 2.457 19 1 19a1 1 0 110-2c.47 0 .958-.365 1.418-1.055a6.053 6.053 0 00.628-1.246l.005-.016a1 1 0 011.897-.001z\"],\n \"widget\": [\"M18 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM2 16c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm15-1h2V5h-2v10zM3 5H1v10h2V5zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm3 3h10V1H5v2zm13 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM5 19h10v-2H5v2z\"],\n \"widget-button\": [\"M1 4h18c.55 0 1 .45 1 1v10c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V5c0-.55.45-1 1-1zm1 2v8h16V6H2zm4 5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm4 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm4 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"widget-footer\": [\"M17 0H3c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H4v-4h12v4zm0-5H4V2h12v11z\"],\n \"widget-header\": [\"M17 0H3c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H4V7h12v11zm0-12H4V2h12v4z\"],\n \"wind\": [\"M12 6a3 3 0 113 3H4a1 1 0 000 2h11a5 5 0 10-5-5 1 1 0 102 0zM1 12a1 1 0 100 2h10a2 2 0 110 4c-.934 0-1.803-.614-2.057-1.333a1 1 0 10-1.886.666C7.627 18.944 9.321 20 11 20a4 4 0 000-8H1z\"],\n \"wrench\": [\"M19.8 4.44L16.13 8.1l-3.55-.71-.71-3.53L15.54.21c-2.01-.53-4.23-.03-5.8 1.53-1.86 1.85-2.23 4.6-1.14 6.83L.59 16.59C.22 16.95 0 17.45 0 18a2 2 0 002 2c.55 0 1.05-.22 1.41-.59l8.03-8.04c2.23 1.05 4.97.67 6.82-1.16 1.57-1.56 2.07-3.77 1.54-5.77z\"],\n \"zoom-in\": [\"M19.56 17.44l-4.94-4.94A8.004 8.004 0 0016 8c0-4.42-3.58-8-8-8S0 3.58 0 8s3.58 8 8 8c1.67 0 3.21-.51 4.5-1.38l4.94 4.94a1.498 1.498 0 102.12-2.12zM8 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm3-7H9V5c0-.55-.45-1-1-1s-1 .45-1 1v2H5c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V9h2c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"zoom-out\": [\"M11 7H5c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1zm8.56 10.44l-4.94-4.94A8.004 8.004 0 0016 8c0-4.42-3.58-8-8-8S0 3.58 0 8s3.58 8 8 8c1.67 0 3.21-.51 4.5-1.38l4.94 4.94a1.498 1.498 0 102.12-2.12zM8 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\"],\n \"zoom-to-fit\": [\"M1 7c.55 0 1-.45 1-1V2h4c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v5c0 .55.45 1 1 1zm5 1a1.003 1.003 0 00-1.71-.71l-2 2c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L4.41 10 5.7 8.71c.19-.18.3-.43.3-.71zm2-2c.28 0 .53-.11.71-.29L10 4.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-2-2C10.53 2.11 10.28 2 10 2s-.53.11-.71.29l-2 2A1.003 1.003 0 008 6zM6 18H2v-4c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm8-6a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l1.3 1.29-1.29 1.29c-.19.18-.3.43-.3.71zm5-12h-5c-.55 0-1 .45-1 1s.45 1 1 1h4v4c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm-7 14c-.28 0-.53.11-.71.29L10 15.59 8.71 14.3A.965.965 0 008 14a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 0012 14zm7-1c-.55 0-1 .45-1 1v4h-4c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1z\"]\n};","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __decorate, __extends, __rest } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { IconSvgPaths16, IconSvgPaths20 } from \"@blueprintjs/icons\";\nimport { AbstractPureComponent2, Classes, DISPLAYNAME_PREFIX } from \"../../common\";\nexport var IconSize;\n\n(function (IconSize) {\n IconSize[IconSize[\"STANDARD\"] = 16] = \"STANDARD\";\n IconSize[IconSize[\"LARGE\"] = 20] = \"LARGE\";\n})(IconSize || (IconSize = {}));\n\nvar Icon =\n/** @class */\nfunction (_super) {\n __extends(Icon, _super);\n\n function Icon() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Icon.prototype.render = function () {\n var icon = this.props.icon;\n\n if (icon == null || typeof icon === \"boolean\") {\n return null;\n } else if (typeof icon !== \"string\") {\n return icon;\n }\n\n var _a = this.props,\n className = _a.className,\n color = _a.color,\n htmlTitle = _a.htmlTitle,\n // eslint-disable-next-line deprecation/deprecation\n iconSize = _a.iconSize,\n intent = _a.intent,\n _b = _a.size,\n size = _b === void 0 ? iconSize !== null && iconSize !== void 0 ? iconSize : IconSize.STANDARD : _b,\n title = _a.title,\n _c = _a.tagName,\n tagName = _c === void 0 ? \"span\" : _c,\n htmlprops = __rest(_a, [\"className\", \"color\", \"htmlTitle\", \"iconSize\", \"intent\", \"size\", \"title\", \"tagName\"]); // choose which pixel grid is most appropriate for given icon size\n\n\n var pixelGridSize = size >= IconSize.LARGE ? IconSize.LARGE : IconSize.STANDARD; // render path elements, or nothing if icon name is unknown.\n\n var paths = this.renderSvgPaths(pixelGridSize, icon); // eslint-disable-next-line deprecation/deprecation\n\n var classes = classNames(Classes.ICON, Classes.iconClass(icon), Classes.intentClass(intent), className);\n var viewBox = \"0 0 \".concat(pixelGridSize, \" \").concat(pixelGridSize);\n return React.createElement(tagName, __assign(__assign({}, htmlprops), {\n \"aria-hidden\": title ? undefined : true,\n className: classes,\n title: htmlTitle\n }), React.createElement(\"svg\", {\n fill: color,\n \"data-icon\": icon,\n width: size,\n height: size,\n viewBox: viewBox\n }, title && React.createElement(\"desc\", null, title), paths));\n };\n /** Render `` elements for the given icon name. Returns `null` if name is unknown. */\n\n\n Icon.prototype.renderSvgPaths = function (pathsSize, iconName) {\n var svgPathsRecord = pathsSize === IconSize.STANDARD ? IconSvgPaths16 : IconSvgPaths20;\n var pathStrings = svgPathsRecord[iconName];\n\n if (pathStrings == null) {\n return null;\n }\n\n return pathStrings.map(function (d, i) {\n return React.createElement(\"path\", {\n key: i,\n d: d,\n fillRule: \"evenodd\"\n });\n });\n };\n\n Icon.displayName = \"\".concat(DISPLAYNAME_PREFIX, \".Icon\");\n /** @deprecated use IconSize.STANDARD */\n\n Icon.SIZE_STANDARD = IconSize.STANDARD;\n /** @deprecated use IconSize.LARGE */\n\n Icon.SIZE_LARGE = IconSize.LARGE;\n Icon = __decorate([polyfill], Icon);\n return Icon;\n}(AbstractPureComponent2);\n\nexport { Icon };","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __decorate, __extends } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2, Classes } from \"../../common\";\nimport { SPINNER_WARN_CLASSES_SIZE } from \"../../common/errors\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { clamp } from \"../../common/utils\";\nexport var SpinnerSize;\n\n(function (SpinnerSize) {\n SpinnerSize[SpinnerSize[\"SMALL\"] = 20] = \"SMALL\";\n SpinnerSize[SpinnerSize[\"STANDARD\"] = 50] = \"STANDARD\";\n SpinnerSize[SpinnerSize[\"LARGE\"] = 100] = \"LARGE\";\n})(SpinnerSize || (SpinnerSize = {})); // see http://stackoverflow.com/a/18473154/3124288 for calculating arc path\n\n\nvar R = 45;\nvar SPINNER_TRACK = \"M 50,50 m 0,-\".concat(R, \" a \").concat(R, \",\").concat(R, \" 0 1 1 0,\").concat(R * 2, \" a \").concat(R, \",\").concat(R, \" 0 1 1 0,-\").concat(R * 2); // unitless total length of SVG path, to which stroke-dash* properties are relative.\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/pathLength\n// this value is the result of `.getTotalLength()` and works in all browsers:\n\nvar PATH_LENGTH = 280;\nvar MIN_SIZE = 10;\nvar STROKE_WIDTH = 4;\nvar MIN_STROKE_WIDTH = 16;\n\nvar Spinner =\n/** @class */\nfunction (_super) {\n __extends(Spinner, _super);\n\n function Spinner() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Spinner.prototype.componentDidUpdate = function (prevProps) {\n if (prevProps.value !== this.props.value) {\n // IE/Edge: re-render after changing value to force SVG update\n this.forceUpdate();\n }\n };\n\n Spinner.prototype.render = function () {\n var _a;\n\n var _b = this.props,\n className = _b.className,\n intent = _b.intent,\n value = _b.value,\n _c = _b.tagName,\n tagName = _c === void 0 ? \"div\" : _c;\n var size = this.getSize();\n var classes = classNames(Classes.SPINNER, Classes.intentClass(intent), (_a = {}, _a[Classes.SPINNER_NO_SPIN] = value != null, _a), className); // keep spinner track width consistent at all sizes (down to about 10px).\n\n var strokeWidth = Math.min(MIN_STROKE_WIDTH, STROKE_WIDTH * SpinnerSize.LARGE / size);\n var strokeOffset = PATH_LENGTH - PATH_LENGTH * (value == null ? 0.25 : clamp(value, 0, 1)); // multiple DOM elements around SVG are necessary to properly isolate animation:\n // - SVG elements in IE do not support anim/trans so they must be set on a parent HTML element.\n // - SPINNER_ANIMATION isolates svg from parent display and is always centered inside root element.\n\n return React.createElement(tagName, {\n className: classes,\n role: \"progressbar\"\n }, React.createElement(tagName, {\n className: Classes.SPINNER_ANIMATION\n }, React.createElement(\"svg\", {\n width: size,\n height: size,\n strokeWidth: strokeWidth.toFixed(2),\n viewBox: this.getViewBox(strokeWidth)\n }, React.createElement(\"path\", {\n className: Classes.SPINNER_TRACK,\n d: SPINNER_TRACK\n }), React.createElement(\"path\", {\n className: Classes.SPINNER_HEAD,\n d: SPINNER_TRACK,\n pathLength: PATH_LENGTH,\n strokeDasharray: \"\".concat(PATH_LENGTH, \" \").concat(PATH_LENGTH),\n strokeDashoffset: strokeOffset\n }))));\n };\n\n Spinner.prototype.validateProps = function (_a) {\n var _b = _a.className,\n className = _b === void 0 ? \"\" : _b,\n size = _a.size;\n\n if (size != null && (className.indexOf(Classes.SMALL) >= 0 || className.indexOf(Classes.LARGE) >= 0)) {\n console.warn(SPINNER_WARN_CLASSES_SIZE);\n }\n };\n /**\n * Resolve size to a pixel value.\n * Size can be set by className, props, default, or minimum constant.\n */\n\n\n Spinner.prototype.getSize = function () {\n var _a = this.props,\n _b = _a.className,\n className = _b === void 0 ? \"\" : _b,\n size = _a.size;\n\n if (size == null) {\n // allow Classes constants to determine default size.\n if (className.indexOf(Classes.SMALL) >= 0) {\n return SpinnerSize.SMALL;\n } else if (className.indexOf(Classes.LARGE) >= 0) {\n return SpinnerSize.LARGE;\n }\n\n return SpinnerSize.STANDARD;\n }\n\n return Math.max(MIN_SIZE, size);\n };\n /** Compute viewbox such that stroked track sits exactly at edge of image frame. */\n\n\n Spinner.prototype.getViewBox = function (strokeWidth) {\n var radius = R + strokeWidth / 2;\n var viewBoxX = (50 - radius).toFixed(2);\n var viewBoxWidth = (radius * 2).toFixed(2);\n return \"\".concat(viewBoxX, \" \").concat(viewBoxX, \" \").concat(viewBoxWidth, \" \").concat(viewBoxWidth);\n };\n\n Spinner.displayName = \"\".concat(DISPLAYNAME_PREFIX, \".Spinner\");\n /** @deprecated use SpinnerSize.SMALL */\n\n Spinner.SIZE_SMALL = SpinnerSize.SMALL;\n /** @deprecated use SpinnerSize.STANDARD */\n\n Spinner.SIZE_STANDARD = SpinnerSize.STANDARD;\n /** @deprecated use SpinnerSize.LARGE */\n\n Spinner.SIZE_LARGE = SpinnerSize.LARGE;\n Spinner = __decorate([polyfill], Spinner);\n return Spinner;\n}(AbstractPureComponent2);\n\nexport { Spinner };","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __decorate, __extends } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2, Classes } from \"../../common\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\n/**\n * `Collapse` can be in one of six states, enumerated here.\n * When changing the `isOpen` prop, the following happens to the states:\n * isOpen={true} : CLOSED -> OPEN_START -> OPENING -> OPEN\n * isOpen={false} : OPEN -> CLOSING_START -> CLOSING -> CLOSED\n */\n\nexport var AnimationStates;\n\n(function (AnimationStates) {\n /**\n * The body is re-rendered, height is set to the measured body height and\n * the body Y is set to 0.\n */\n AnimationStates[AnimationStates[\"OPEN_START\"] = 0] = \"OPEN_START\";\n /**\n * Animation begins, height is set to auto. This is all animated, and on\n * complete, the state changes to OPEN.\n */\n\n AnimationStates[AnimationStates[\"OPENING\"] = 1] = \"OPENING\";\n /**\n * The collapse height is set to auto, and the body Y is set to 0 (so the\n * element can be seen as normal).\n */\n\n AnimationStates[AnimationStates[\"OPEN\"] = 2] = \"OPEN\";\n /**\n * Height has been changed from auto to the measured height of the body to\n * prepare for the closing animation in CLOSING.\n */\n\n AnimationStates[AnimationStates[\"CLOSING_START\"] = 3] = \"CLOSING_START\";\n /**\n * Height is set to 0 and the body Y is at -height. Both of these properties\n * are transformed, and then after the animation is complete, the state\n * changes to CLOSED.\n */\n\n AnimationStates[AnimationStates[\"CLOSING\"] = 4] = \"CLOSING\";\n /**\n * The contents of the collapse is not rendered, the collapse height is 0,\n * and the body Y is at -height (so that the bottom of the body is at Y=0).\n */\n\n AnimationStates[AnimationStates[\"CLOSED\"] = 5] = \"CLOSED\";\n})(AnimationStates || (AnimationStates = {}));\n\nvar Collapse =\n/** @class */\nfunction (_super) {\n __extends(Collapse, _super);\n\n function Collapse() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {\n animationState: _this.props.isOpen ? AnimationStates.OPEN : AnimationStates.CLOSED,\n height: undefined,\n heightWhenOpen: undefined\n }; // The element containing the contents of the collapse.\n\n _this.contents = null;\n\n _this.contentsRefHandler = function (el) {\n _this.contents = el;\n\n if (_this.contents != null) {\n var height = _this.contents.clientHeight;\n\n _this.setState({\n animationState: _this.props.isOpen ? AnimationStates.OPEN : AnimationStates.CLOSED,\n height: height === 0 ? undefined : \"\".concat(height, \"px\"),\n heightWhenOpen: height === 0 ? undefined : height\n });\n }\n };\n\n return _this;\n }\n\n Collapse.getDerivedStateFromProps = function (props, state) {\n var isOpen = props.isOpen;\n var animationState = state.animationState;\n\n if (isOpen) {\n switch (animationState) {\n case AnimationStates.OPEN:\n // no-op\n break;\n\n case AnimationStates.OPENING:\n // allow Collapse#onDelayedStateChange() to handle the transition here\n break;\n\n default:\n return {\n animationState: AnimationStates.OPEN_START\n };\n }\n } else {\n switch (animationState) {\n case AnimationStates.CLOSED:\n // no-op\n break;\n\n case AnimationStates.CLOSING:\n // allow Collapse#onDelayedStateChange() to handle the transition here\n break;\n\n default:\n // need to set an explicit height so that transition can work\n return {\n animationState: AnimationStates.CLOSING_START,\n height: \"\".concat(state.heightWhenOpen, \"px\")\n };\n }\n }\n\n return null;\n };\n\n Collapse.prototype.render = function () {\n var isContentVisible = this.state.animationState !== AnimationStates.CLOSED;\n var shouldRenderChildren = isContentVisible || this.props.keepChildrenMounted;\n var displayWithTransform = isContentVisible && this.state.animationState !== AnimationStates.CLOSING;\n var isAutoHeight = this.state.height === \"auto\";\n var containerStyle = {\n height: isContentVisible ? this.state.height : undefined,\n overflowY: isAutoHeight ? \"visible\" : undefined,\n // transitions don't work with height: auto\n transition: isAutoHeight ? \"none\" : undefined\n };\n var contentsStyle = {\n // only use heightWhenOpen while closing\n transform: displayWithTransform ? \"translateY(0)\" : \"translateY(-\".concat(this.state.heightWhenOpen, \"px)\"),\n // transitions don't work with height: auto\n transition: isAutoHeight ? \"none\" : undefined\n };\n return React.createElement(this.props.component, {\n className: classNames(Classes.COLLAPSE, this.props.className),\n style: containerStyle\n }, React.createElement(\"div\", {\n className: Classes.COLLAPSE_BODY,\n ref: this.contentsRefHandler,\n style: contentsStyle,\n \"aria-hidden\": !isContentVisible && this.props.keepChildrenMounted\n }, shouldRenderChildren ? this.props.children : null));\n };\n\n Collapse.prototype.componentDidMount = function () {\n this.forceUpdate(); // HACKHACK: this should probably be done in getSnapshotBeforeUpdate\n\n /* eslint-disable react/no-did-mount-set-state */\n\n if (this.props.isOpen) {\n this.setState({\n animationState: AnimationStates.OPEN,\n height: \"auto\"\n });\n } else {\n this.setState({\n animationState: AnimationStates.CLOSED,\n height: \"0px\"\n });\n }\n /* eslint-disable react/no-did-mount-set-state */\n\n };\n\n Collapse.prototype.componentDidUpdate = function () {\n var _this = this;\n\n if (this.contents == null) {\n return;\n }\n\n var transitionDuration = this.props.transitionDuration;\n var animationState = this.state.animationState;\n\n if (animationState === AnimationStates.OPEN_START) {\n var clientHeight = this.contents.clientHeight;\n this.setState({\n animationState: AnimationStates.OPENING,\n height: \"\".concat(clientHeight, \"px\"),\n heightWhenOpen: clientHeight\n });\n this.setTimeout(function () {\n return _this.onDelayedStateChange();\n }, transitionDuration);\n } else if (animationState === AnimationStates.CLOSING_START) {\n var clientHeight_1 = this.contents.clientHeight;\n this.setTimeout(function () {\n return _this.setState({\n animationState: AnimationStates.CLOSING,\n height: \"0px\",\n heightWhenOpen: clientHeight_1\n });\n });\n this.setTimeout(function () {\n return _this.onDelayedStateChange();\n }, transitionDuration);\n }\n };\n\n Collapse.prototype.onDelayedStateChange = function () {\n switch (this.state.animationState) {\n case AnimationStates.OPENING:\n this.setState({\n animationState: AnimationStates.OPEN,\n height: \"auto\"\n });\n break;\n\n case AnimationStates.CLOSING:\n this.setState({\n animationState: AnimationStates.CLOSED\n });\n break;\n\n default:\n break;\n }\n };\n\n Collapse.displayName = \"\".concat(DISPLAYNAME_PREFIX, \".Collapse\");\n Collapse.defaultProps = {\n component: \"div\",\n isOpen: false,\n keepChildrenMounted: false,\n transitionDuration: 200\n };\n Collapse = __decorate([polyfill], Collapse);\n return Collapse;\n}(AbstractPureComponent2);\n\nexport { Collapse };","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __extends } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { AbstractPureComponent2, Classes, Keys, Utils } from \"../../common\";\nimport { Icon, IconSize } from \"../icon/icon\";\nimport { Spinner } from \"../spinner/spinner\";\n\nvar AbstractButton =\n/** @class */\nfunction (_super) {\n __extends(AbstractButton, _super);\n\n function AbstractButton() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {\n isActive: false\n }; // we're casting as `any` to get around a somewhat opaque safeInvoke error\n // that \"Type argument candidate 'KeyboardEvent' is not a valid type\n // argument because it is not a supertype of candidate\n // 'KeyboardEvent'.\"\n\n _this.handleKeyDown = function (e) {\n var _a, _b; // HACKHACK: https://github.com/palantir/blueprint/issues/4165\n\n /* eslint-disable deprecation/deprecation */\n\n\n if (Keys.isKeyboardClick(e.which)) {\n e.preventDefault();\n\n if (e.which !== _this.currentKeyDown) {\n _this.setState({\n isActive: true\n });\n }\n }\n\n _this.currentKeyDown = e.which;\n (_b = (_a = _this.props).onKeyDown) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n };\n\n _this.handleKeyUp = function (e) {\n var _a, _b, _c; // HACKHACK: https://github.com/palantir/blueprint/issues/4165\n\n /* eslint-disable deprecation/deprecation */\n\n\n if (Keys.isKeyboardClick(e.which)) {\n _this.setState({\n isActive: false\n });\n\n (_a = _this.buttonRef) === null || _a === void 0 ? void 0 : _a.click();\n }\n\n _this.currentKeyDown = undefined;\n (_c = (_b = _this.props).onKeyUp) === null || _c === void 0 ? void 0 : _c.call(_b, e);\n };\n\n _this.handleBlur = function (e) {\n var _a, _b;\n\n if (_this.state.isActive) {\n _this.setState({\n isActive: false\n });\n }\n\n (_b = (_a = _this.props).onBlur) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n };\n\n return _this;\n }\n\n AbstractButton.prototype.getCommonButtonProps = function () {\n var _a;\n\n var _b = this.props,\n active = _b.active,\n alignText = _b.alignText,\n fill = _b.fill,\n large = _b.large,\n loading = _b.loading,\n outlined = _b.outlined,\n minimal = _b.minimal,\n small = _b.small,\n tabIndex = _b.tabIndex;\n var disabled = this.props.disabled || loading;\n var className = classNames(Classes.BUTTON, (_a = {}, _a[Classes.ACTIVE] = !disabled && (active || this.state.isActive), _a[Classes.DISABLED] = disabled, _a[Classes.FILL] = fill, _a[Classes.LARGE] = large, _a[Classes.LOADING] = loading, _a[Classes.MINIMAL] = minimal, _a[Classes.OUTLINED] = outlined, _a[Classes.SMALL] = small, _a), Classes.alignmentClass(alignText), Classes.intentClass(this.props.intent), this.props.className);\n return {\n className: className,\n disabled: disabled,\n onBlur: this.handleBlur,\n onClick: disabled ? undefined : this.props.onClick,\n onKeyDown: this.handleKeyDown,\n onKeyUp: this.handleKeyUp,\n tabIndex: disabled ? -1 : tabIndex\n };\n };\n\n AbstractButton.prototype.renderChildren = function () {\n var _a = this.props,\n children = _a.children,\n icon = _a.icon,\n loading = _a.loading,\n rightIcon = _a.rightIcon,\n text = _a.text;\n var maybeHasText = !Utils.isReactNodeEmpty(text) || !Utils.isReactNodeEmpty(children);\n return [loading && React.createElement(Spinner, {\n key: \"loading\",\n className: Classes.BUTTON_SPINNER,\n size: IconSize.LARGE\n }), // The icon is purely decorative if text is provided\n React.createElement(Icon, {\n key: \"leftIcon\",\n icon: icon,\n \"aria-hidden\": maybeHasText,\n tabIndex: maybeHasText ? -1 : 0\n }), maybeHasText && React.createElement(\"span\", {\n key: \"text\",\n className: Classes.BUTTON_TEXT\n }, text, children), React.createElement(Icon, {\n key: \"rightIcon\",\n icon: rightIcon\n })];\n };\n\n return AbstractButton;\n}(AbstractPureComponent2);\n\nexport { AbstractButton };","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __extends } from \"tslib\"; // HACKHACK: these components should go in separate files\n\n/* eslint-disable max-classes-per-file */\n\nimport * as React from \"react\";\nimport { DISPLAYNAME_PREFIX, removeNonHTMLProps } from \"../../common/props\";\nimport { refHandler, setRef } from \"../../common/refs\";\nimport { AbstractButton } from \"./abstractButton\";\n\nvar Button =\n/** @class */\nfunction (_super) {\n __extends(Button, _super);\n\n function Button() {\n var _this = _super !== null && _super.apply(this, arguments) || this; // need to keep this ref so that we can access it in AbstractButton#handleKeyUp\n\n\n _this.buttonRef = null;\n _this.handleRef = refHandler(_this, \"buttonRef\", _this.props.elementRef);\n return _this;\n }\n\n Button.prototype.render = function () {\n return React.createElement(\"button\", __assign({\n type: \"button\",\n ref: this.handleRef\n }, removeNonHTMLProps(this.props), this.getCommonButtonProps()), this.renderChildren());\n };\n\n Button.prototype.componentDidUpdate = function (prevProps) {\n if (prevProps.elementRef !== this.props.elementRef) {\n setRef(prevProps.elementRef, null);\n this.handleRef = refHandler(this, \"buttonRef\", this.props.elementRef);\n setRef(this.props.elementRef, this.buttonRef);\n }\n };\n\n Button.displayName = \"\".concat(DISPLAYNAME_PREFIX, \".Button\");\n return Button;\n}(AbstractButton);\n\nexport { Button };\n\nvar AnchorButton =\n/** @class */\nfunction (_super) {\n __extends(AnchorButton, _super);\n\n function AnchorButton() {\n var _this = _super !== null && _super.apply(this, arguments) || this; // need to keep this ref so that we can access it in AbstractButton#handleKeyUp\n\n\n _this.buttonRef = null;\n _this.handleRef = refHandler(_this, \"buttonRef\", _this.props.elementRef);\n return _this;\n }\n\n AnchorButton.prototype.render = function () {\n var _a = this.props,\n href = _a.href,\n _b = _a.tabIndex,\n tabIndex = _b === void 0 ? 0 : _b;\n var commonProps = this.getCommonButtonProps();\n return React.createElement(\"a\", __assign({\n role: \"button\",\n ref: this.handleRef\n }, removeNonHTMLProps(this.props), commonProps, {\n href: commonProps.disabled ? undefined : href,\n tabIndex: commonProps.disabled ? -1 : tabIndex\n }), this.renderChildren());\n };\n\n AnchorButton.prototype.componentDidUpdate = function (prevProps) {\n if (prevProps.elementRef !== this.props.elementRef) {\n setRef(prevProps.elementRef, null);\n this.handleRef = refHandler(this, \"buttonRef\", this.props.elementRef);\n setRef(this.props.elementRef, this.buttonRef);\n }\n };\n\n AnchorButton.displayName = \"\".concat(DISPLAYNAME_PREFIX, \".AnchorButton\");\n return AnchorButton;\n}(AbstractButton);\n\nexport { AnchorButton };","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __decorate, __extends, __rest } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2, Classes } from \"../../common\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\"; // this component is simple enough that tests would be purely tautological.\n\n/* istanbul ignore next */\n\nvar ButtonGroup =\n/** @class */\nfunction (_super) {\n __extends(ButtonGroup, _super);\n\n function ButtonGroup() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ButtonGroup.prototype.render = function () {\n var _a;\n\n var _b = this.props,\n alignText = _b.alignText,\n className = _b.className,\n fill = _b.fill,\n minimal = _b.minimal,\n large = _b.large,\n vertical = _b.vertical,\n htmlProps = __rest(_b, [\"alignText\", \"className\", \"fill\", \"minimal\", \"large\", \"vertical\"]);\n\n var buttonGroupClasses = classNames(Classes.BUTTON_GROUP, (_a = {}, _a[Classes.FILL] = fill, _a[Classes.LARGE] = large, _a[Classes.MINIMAL] = minimal, _a[Classes.VERTICAL] = vertical, _a), Classes.alignmentClass(alignText), className);\n return React.createElement(\"div\", __assign({}, htmlProps, {\n className: buttonGroupClasses\n }), this.props.children);\n };\n\n ButtonGroup.displayName = \"\".concat(DISPLAYNAME_PREFIX, \".ButtonGroup\");\n ButtonGroup = __decorate([polyfill], ButtonGroup);\n return ButtonGroup;\n}(AbstractPureComponent2);\n\nexport { ButtonGroup };","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __decorate, __extends, __rest } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2, Classes, Elevation } from \"../../common\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\n\nvar Card =\n/** @class */\nfunction (_super) {\n __extends(Card, _super);\n\n function Card() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Card.prototype.render = function () {\n var _a;\n\n var _b = this.props,\n className = _b.className,\n elevation = _b.elevation,\n interactive = _b.interactive,\n htmlProps = __rest(_b, [\"className\", \"elevation\", \"interactive\"]);\n\n var classes = classNames(Classes.CARD, (_a = {}, _a[Classes.INTERACTIVE] = interactive, _a), Classes.elevationClass(elevation), className);\n return React.createElement(\"div\", __assign({\n className: classes\n }, htmlProps));\n };\n\n Card.displayName = \"\".concat(DISPLAYNAME_PREFIX, \".Card\");\n Card.defaultProps = {\n elevation: Elevation.ZERO,\n interactive: false\n };\n Card = __decorate([polyfill], Card);\n return Card;\n}(AbstractPureComponent2);\n\nexport { Card };","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar userAgent = typeof navigator !== \"undefined\" ? navigator.userAgent : \"\";\nvar browser = {\n isEdge: /Edge/.test(userAgent),\n isInternetExplorer: /Trident|rv:11/.test(userAgent),\n isWebkit: /AppleWebKit/.test(userAgent)\n};\nexport var Browser = {\n isEdge: function isEdge() {\n return browser.isEdge;\n },\n isInternetExplorer: function isInternetExplorer() {\n return browser.isInternetExplorer;\n },\n isWebkit: function isWebkit() {\n return browser.isWebkit;\n }\n};","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __decorate, __extends } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2, Classes, Keys } from \"../../common\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { clamp } from \"../../common/utils\";\nimport { Browser } from \"../../compatibility\";\nvar BUFFER_WIDTH_DEFAULT = 5;\nvar BUFFER_WIDTH_IE = 30;\n\nvar EditableText =\n/** @class */\nfunction (_super) {\n __extends(EditableText, _super);\n\n function EditableText(props, context) {\n var _this = _super.call(this, props, context) || this;\n\n _this.inputElement = null;\n _this.valueElement = null;\n _this.refHandlers = {\n content: function content(spanElement) {\n _this.valueElement = spanElement;\n },\n input: function input(_input) {\n if (_input != null) {\n _this.inputElement = _input; // temporary fix for #3882\n\n if (!_this.props.alwaysRenderInput) {\n _this.inputElement.focus();\n }\n\n if (_this.state != null && _this.state.isEditing) {\n var supportsSelection = inputSupportsSelection(_input);\n\n if (supportsSelection) {\n var length_1 = _input.value.length;\n\n _input.setSelectionRange(_this.props.selectAllOnFocus ? 0 : length_1, length_1);\n }\n\n if (!supportsSelection || !_this.props.selectAllOnFocus) {\n _input.scrollLeft = _input.scrollWidth;\n }\n }\n }\n }\n };\n\n _this.cancelEditing = function () {\n var _a, _b, _c, _d;\n\n var _e = _this.state,\n lastValue = _e.lastValue,\n value = _e.value;\n\n _this.setState({\n isEditing: false,\n value: lastValue\n });\n\n if (value !== lastValue) {\n (_b = (_a = _this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, lastValue);\n }\n\n (_d = (_c = _this.props).onCancel) === null || _d === void 0 ? void 0 : _d.call(_c, lastValue);\n };\n\n _this.toggleEditing = function () {\n var _a, _b;\n\n if (_this.state.isEditing) {\n var value = _this.state.value;\n\n _this.setState({\n isEditing: false,\n lastValue: value\n });\n\n (_b = (_a = _this.props).onConfirm) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n } else if (!_this.props.disabled) {\n _this.setState({\n isEditing: true\n });\n }\n };\n\n _this.handleFocus = function () {\n var _a = _this.props,\n alwaysRenderInput = _a.alwaysRenderInput,\n disabled = _a.disabled,\n selectAllOnFocus = _a.selectAllOnFocus;\n\n if (!disabled) {\n _this.setState({\n isEditing: true\n });\n }\n\n if (alwaysRenderInput && selectAllOnFocus && _this.inputElement != null) {\n var length_2 = _this.inputElement.value.length;\n\n _this.inputElement.setSelectionRange(0, length_2);\n }\n };\n\n _this.handleTextChange = function (event) {\n var _a, _b;\n\n var value = event.target.value; // state value should be updated only when uncontrolled\n\n if (_this.props.value == null) {\n _this.setState({\n value: value\n });\n }\n\n (_b = (_a = _this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n };\n\n _this.handleKeyEvent = function (event) {\n // HACKHACK: https://github.com/palantir/blueprint/issues/4165\n\n /* eslint-disable-next-line deprecation/deprecation */\n var altKey = event.altKey,\n ctrlKey = event.ctrlKey,\n metaKey = event.metaKey,\n shiftKey = event.shiftKey,\n which = event.which;\n\n if (which === Keys.ESCAPE) {\n _this.cancelEditing();\n\n return;\n }\n\n var hasModifierKey = altKey || ctrlKey || metaKey || shiftKey;\n\n if (which === Keys.ENTER) {\n // prevent IE11 from full screening with alt + enter\n // shift + enter adds a newline by default\n if (altKey || shiftKey) {\n event.preventDefault();\n }\n\n if (_this.props.confirmOnEnterKey && _this.props.multiline) {\n if (event.target != null && hasModifierKey) {\n insertAtCaret(event.target, \"\\n\");\n\n _this.handleTextChange(event);\n } else {\n _this.toggleEditing();\n }\n } else if (!_this.props.multiline || hasModifierKey) {\n _this.toggleEditing();\n }\n }\n };\n\n var value = props.value == null ? props.defaultValue : props.value;\n _this.state = {\n inputHeight: 0,\n inputWidth: 0,\n isEditing: props.isEditing === true && props.disabled === false,\n lastValue: value,\n value: value\n };\n return _this;\n }\n\n EditableText.prototype.render = function () {\n var _a;\n\n var _b;\n\n var _c = this.props,\n alwaysRenderInput = _c.alwaysRenderInput,\n disabled = _c.disabled,\n multiline = _c.multiline,\n contentId = _c.contentId;\n var value = (_b = this.props.value) !== null && _b !== void 0 ? _b : this.state.value;\n var hasValue = value != null && value !== \"\";\n var classes = classNames(Classes.EDITABLE_TEXT, Classes.intentClass(this.props.intent), (_a = {}, _a[Classes.DISABLED] = disabled, _a[Classes.EDITABLE_TEXT_EDITING] = this.state.isEditing, _a[Classes.EDITABLE_TEXT_PLACEHOLDER] = !hasValue, _a[Classes.MULTILINE] = multiline, _a), this.props.className);\n var contentStyle;\n\n if (multiline) {\n // set height only in multiline mode when not editing\n // otherwise we're measuring this element to determine appropriate height of text\n contentStyle = {\n height: !this.state.isEditing ? this.state.inputHeight : undefined\n };\n } else {\n // minWidth only applies in single line mode (multiline == width 100%)\n contentStyle = {\n height: this.state.inputHeight,\n lineHeight: this.state.inputHeight != null ? \"\".concat(this.state.inputHeight, \"px\") : undefined,\n minWidth: this.props.minWidth\n };\n } // If we are always rendering an input, then NEVER make the container div focusable.\n // Otherwise, make container div focusable when not editing, so it can still be tabbed\n // to focus (when the input is rendered, it is itself focusable so container div doesn't need to be)\n\n\n var tabIndex = alwaysRenderInput || this.state.isEditing || disabled ? undefined : 0; // we need the contents to be rendered while editing so that we can measure their height\n // and size the container element responsively\n\n var shouldHideContents = alwaysRenderInput && !this.state.isEditing;\n var spanProps = contentId != null ? {\n id: contentId\n } : {};\n return React.createElement(\"div\", {\n className: classes,\n onFocus: this.handleFocus,\n tabIndex: tabIndex\n }, alwaysRenderInput || this.state.isEditing ? this.renderInput(value) : undefined, shouldHideContents ? undefined : React.createElement(\"span\", __assign({}, spanProps, {\n className: Classes.EDITABLE_TEXT_CONTENT,\n ref: this.refHandlers.content,\n style: contentStyle\n }), hasValue ? value : this.props.placeholder));\n };\n\n EditableText.prototype.componentDidMount = function () {\n this.updateInputDimensions();\n };\n\n EditableText.prototype.componentDidUpdate = function (prevProps, prevState) {\n var _a, _b;\n\n var newState = {}; // allow setting the value to undefined/null in controlled mode\n\n if (this.props.value !== prevProps.value && (prevProps.value != null || this.props.value != null)) {\n newState.value = this.props.value;\n }\n\n if (this.props.isEditing != null && this.props.isEditing !== prevProps.isEditing) {\n newState.isEditing = this.props.isEditing;\n }\n\n if (this.props.disabled || this.props.disabled == null && prevProps.disabled) {\n newState.isEditing = false;\n }\n\n this.setState(newState);\n\n if (this.state.isEditing && !prevState.isEditing) {\n (_b = (_a = this.props).onEdit) === null || _b === void 0 ? void 0 : _b.call(_a, this.state.value);\n } // updateInputDimensions is an expensive method. Call it only when the props\n // it depends on change\n\n\n if (this.state.value !== prevState.value || this.props.alwaysRenderInput !== prevProps.alwaysRenderInput || this.props.maxLines !== prevProps.maxLines || this.props.minLines !== prevProps.minLines || this.props.minWidth !== prevProps.minWidth || this.props.multiline !== prevProps.multiline) {\n this.updateInputDimensions();\n }\n };\n\n EditableText.prototype.renderInput = function (value) {\n var _a = this.props,\n disabled = _a.disabled,\n maxLength = _a.maxLength,\n multiline = _a.multiline,\n type = _a.type,\n placeholder = _a.placeholder;\n var props = {\n className: Classes.EDITABLE_TEXT_INPUT,\n disabled: disabled,\n maxLength: maxLength,\n onBlur: this.toggleEditing,\n onChange: this.handleTextChange,\n onKeyDown: this.handleKeyEvent,\n placeholder: placeholder,\n value: value\n };\n var _b = this.state,\n inputHeight = _b.inputHeight,\n inputWidth = _b.inputWidth;\n\n if (inputHeight !== 0 && inputWidth !== 0) {\n props.style = {\n height: inputHeight,\n lineHeight: !multiline && inputHeight != null ? \"\".concat(inputHeight, \"px\") : undefined,\n width: multiline ? \"100%\" : inputWidth\n };\n }\n\n return multiline ? React.createElement(\"textarea\", __assign({\n ref: this.refHandlers.input\n }, props)) : React.createElement(\"input\", __assign({\n ref: this.refHandlers.input,\n type: type\n }, props));\n };\n\n EditableText.prototype.updateInputDimensions = function () {\n if (this.valueElement != null) {\n var _a = this.props,\n maxLines = _a.maxLines,\n minLines = _a.minLines,\n minWidth = _a.minWidth,\n multiline = _a.multiline;\n var _b = this.valueElement,\n parentElement_1 = _b.parentElement,\n textContent = _b.textContent;\n var _c = this.valueElement,\n scrollHeight_1 = _c.scrollHeight,\n scrollWidth = _c.scrollWidth;\n var lineHeight = getLineHeight(this.valueElement); // add one line to computed height if text ends in newline\n // because collapses that trailing whitespace but