{"version":3,"sources":["../node_modules/object-assign/index.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","Directions/index.tsx","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/katex/dist/katex.js","../node_modules/react-katex/dist/react-katex.js","Puzzle/Square/index.tsx","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/isarray/index.js","../node_modules/buffer/index.js","../node_modules/lodash/lodash.js","Puzzle/index.tsx","../../../src/common/alignment.ts","../../../src/common/elevation.ts","../../../src/common/intent.ts","../../../src/common/classes.ts","../../../src/common/interactionMode.ts","../../../src/accessibility/focusStyleManager.ts","../../../src/accessibility/index.ts","../node_modules/tslib/tslib.es6.js","../../../src/common/errors.ts","../../../../src/common/utils/compareUtils.ts","../node_modules/process/browser.js","../../../src/common/utils.ts","../../../src/common/abstractComponent.ts","../../../src/common/abstractPureComponent.ts","../../../src/common/boundary.ts","../../../src/common/colors.ts","../../../src/common/position.ts","../../../src/common/props.ts","../../../src/common/keys.ts","../../../src/common/index.ts","../node_modules/dom4/build/dom4.max.js","../node_modules/classnames/index.js","../node_modules/core-js/library/modules/_global.js","../node_modules/core-js/library/modules/_core.js","../node_modules/core-js/library/modules/_a-function.js","../node_modules/core-js/library/modules/_ctx.js","../node_modules/core-js/library/modules/_is-object.js","../node_modules/core-js/library/modules/_an-object.js","../node_modules/core-js/library/modules/_fails.js","../node_modules/core-js/library/modules/_descriptors.js","../node_modules/core-js/library/modules/_dom-create.js","../node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/core-js/library/modules/_to-primitive.js","../node_modules/core-js/library/modules/_object-dp.js","../node_modules/core-js/library/modules/_property-desc.js","../node_modules/core-js/library/modules/_hide.js","../node_modules/core-js/library/modules/_has.js","../node_modules/core-js/library/modules/_export.js","../node_modules/core-js/library/modules/_cof.js","../node_modules/core-js/library/modules/_iobject.js","../node_modules/core-js/library/modules/_defined.js","../node_modules/core-js/library/modules/_to-iobject.js","../node_modules/core-js/library/modules/_to-integer.js","../node_modules/core-js/library/modules/_to-length.js","../node_modules/core-js/library/modules/_to-absolute-index.js","../node_modules/core-js/library/modules/_array-includes.js","../node_modules/core-js/library/modules/_library.js","../node_modules/core-js/library/modules/_shared.js","../node_modules/core-js/library/modules/_uid.js","../node_modules/core-js/library/modules/_shared-key.js","../node_modules/core-js/library/modules/_object-keys-internal.js","../node_modules/core-js/library/modules/_enum-bug-keys.js","../node_modules/core-js/library/modules/_object-keys.js","../node_modules/core-js/library/modules/_object-gops.js","../node_modules/core-js/library/modules/_object-pie.js","../node_modules/core-js/library/modules/_to-object.js","../node_modules/core-js/library/modules/_object-assign.js","../node_modules/core-js/library/modules/es6.object.assign.js","../node_modules/core-js/library/fn/object/assign.js","../node_modules/babel-runtime/core-js/object/assign.js","../node_modules/babel-runtime/helpers/extends.js","../node_modules/babel-runtime/helpers/classCallCheck.js","../node_modules/core-js/library/modules/_string-at.js","../node_modules/core-js/library/modules/_redefine.js","../node_modules/core-js/library/modules/_iterators.js","../node_modules/core-js/library/modules/_object-dps.js","../node_modules/core-js/library/modules/_html.js","../node_modules/core-js/library/modules/_object-create.js","../node_modules/core-js/library/modules/_wks.js","../node_modules/core-js/library/modules/_set-to-string-tag.js","../node_modules/core-js/library/modules/_iter-create.js","../node_modules/core-js/library/modules/_object-gpo.js","../node_modules/core-js/library/modules/_iter-define.js","../node_modules/core-js/library/modules/es6.string.iterator.js","../node_modules/core-js/library/modules/_add-to-unscopables.js","../node_modules/core-js/library/modules/_iter-step.js","../node_modules/core-js/library/modules/es6.array.iterator.js","../node_modules/core-js/library/modules/web.dom.iterable.js","../node_modules/core-js/library/modules/_wks-ext.js","../node_modules/core-js/library/fn/symbol/iterator.js","../node_modules/babel-runtime/core-js/symbol/iterator.js","../node_modules/core-js/library/modules/_meta.js","../node_modules/core-js/library/modules/_wks-define.js","../node_modules/core-js/library/modules/_enum-keys.js","../node_modules/core-js/library/modules/_is-array.js","../node_modules/core-js/library/modules/_object-gopn.js","../node_modules/core-js/library/modules/_object-gopn-ext.js","../node_modules/core-js/library/modules/_object-gopd.js","../node_modules/core-js/library/modules/es6.symbol.js","../node_modules/core-js/library/modules/es7.symbol.async-iterator.js","../node_modules/core-js/library/modules/es7.symbol.observable.js","../node_modules/core-js/library/fn/symbol/index.js","../node_modules/babel-runtime/core-js/symbol.js","../node_modules/babel-runtime/helpers/typeof.js","../node_modules/babel-runtime/helpers/possibleConstructorReturn.js","../node_modules/core-js/library/modules/_set-proto.js","../node_modules/core-js/library/modules/es6.object.set-prototype-of.js","../node_modules/core-js/library/fn/object/set-prototype-of.js","../node_modules/babel-runtime/core-js/object/set-prototype-of.js","../node_modules/core-js/library/modules/es6.object.create.js","../node_modules/core-js/library/fn/object/create.js","../node_modules/babel-runtime/core-js/object/create.js","../node_modules/babel-runtime/helpers/inherits.js","../../src/index.js","../../src/utils/debounce.js","../../src/utils/isBrowser.js","../../src/utils/isFunction.js","../../src/utils/getStyleComputedProperty.js","../../src/utils/getParentNode.js","../../src/utils/getScrollParent.js","../../src/utils/isIE.js","../../src/utils/getOffsetParent.js","../../src/utils/isOffsetContainer.js","../../src/utils/getRoot.js","../../src/utils/findCommonOffsetParent.js","../../src/utils/getScroll.js","../../src/utils/includeScroll.js","../../src/utils/getBordersSize.js","../../src/utils/getWindowSizes.js","../../src/utils/getClientRect.js","../../src/utils/getBoundingClientRect.js","../../src/utils/getOffsetRectRelativeToArbitraryNode.js","../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../../src/utils/isFixed.js","../../src/utils/getFixedPositionOffsetParent.js","../../src/utils/getBoundaries.js","../../src/utils/computeAutoPlacement.js","../../src/utils/getReferenceOffsets.js","../../src/utils/getOuterSizes.js","../../src/utils/getOppositePlacement.js","../../src/utils/getPopperOffsets.js","../../src/utils/find.js","../../src/utils/findIndex.js","../../src/utils/runModifiers.js","../../src/methods/update.js","../../src/utils/isModifierEnabled.js","../../src/utils/getSupportedPropertyName.js","../../src/methods/destroy.js","../../src/utils/getWindow.js","../../src/utils/setupEventListeners.js","../../src/methods/enableEventListeners.js","../../src/utils/removeEventListeners.js","../../src/methods/disableEventListeners.js","../../src/utils/isNumeric.js","../../src/utils/setStyles.js","../../src/utils/setAttributes.js","../../src/modifiers/applyStyle.js","../../src/modifiers/computeStyle.js","../../src/utils/isModifierRequired.js","../../src/modifiers/arrow.js","../../src/utils/getOppositeVariation.js","../../src/methods/placements.js","../../src/utils/clockwise.js","../../src/modifiers/flip.js","../../src/modifiers/keepTogether.js","../../src/modifiers/offset.js","../../src/modifiers/preventOverflow.js","../../src/modifiers/shift.js","../../src/modifiers/hide.js","../../src/modifiers/inner.js","../../src/modifiers/index.js","../../src/methods/defaults.js","../node_modules/gud/index.js","../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/warning.js","../node_modules/create-react-context/lib/implementation.js","../node_modules/create-react-context/lib/index.js","../node_modules/react-popper/lib/esm/Manager.js","../node_modules/react-popper/lib/esm/utils.js","../node_modules/react-popper/lib/esm/Popper.js","../node_modules/warning/browser.js","../node_modules/react-popper/lib/esm/Reference.js","../node_modules/react-popper/lib/esm/index.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/dom-helpers/class/hasClass.js","../node_modules/dom-helpers/class/addClass.js","../node_modules/dom-helpers/class/removeClass.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-transition-group/utils/PropTypes.js","../node_modules/react-transition-group/Transition.js","../node_modules/react-transition-group/CSSTransition.js","../node_modules/react-transition-group/utils/ChildMapping.js","../node_modules/react-transition-group/TransitionGroup.js","../node_modules/react-transition-group/ReplaceTransition.js","../node_modules/react-transition-group/index.js","../../../../src/components/portal/portal.tsx","../../../../src/components/overlay/overlay.tsx","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../../../../src/components/resize-sensor/resizeSensor.tsx","../../../../src/components/tooltip/tooltip.tsx","../../../../src/components/popover/popperUtils.ts","../../../../src/components/popover/popoverArrow.tsx","../../../../src/components/popover/popoverMigrationUtils.ts","../../../../src/components/popover/popover.tsx","../../../../src/components/context-menu/contextMenu.tsx","../../../src/generated/iconContents.ts","../../../src/generated/iconNames.ts","../../../src/generated/iconSvgPaths.ts","../../src/index.ts","../../../../src/components/icon/icon.tsx","../../../../src/components/spinner/spinner.tsx","../../../../src/components/button/abstractButton.tsx","../../../../src/components/button/buttons.tsx","../../../../src/components/html/html.tsx","../../../../src/components/dialog/dialog.tsx","../../../../src/components/alert/alert.tsx","../../../../src/components/breadcrumbs/breadcrumb.tsx","../../../../src/components/menu/menuDivider.tsx","../../../../src/components/text/text.tsx","../../../../src/components/menu/menuItem.tsx","../../../../src/components/menu/menu.tsx","../../../../src/components/overflow-list/overflowList.tsx","../../../../src/components/breadcrumbs/breadcrumbs.tsx","../../../../src/components/button/buttonGroup.tsx","../../../../src/components/callout/callout.tsx","../../../../src/components/card/card.tsx","../../../../src/components/collapse/collapse.tsx","../../../../src/components/collapsible-list/collapsibleList.tsx","../../../../src/common/utils/isDarkTheme.ts","../../../../src/components/context-menu/contextMenuTarget.tsx","../../../../src/components/divider/divider.tsx","../../../src/compatibility/browser.ts","../../../src/compatibility/index.ts","../../../../src/components/editable-text/editableText.tsx","../../../../src/components/forms/controlGroup.tsx","../../../../src/components/forms/controls.tsx","../../../../src/components/forms/fileInput.tsx","../../../../src/components/forms/formGroup.tsx","../../../../src/components/forms/inputGroup.tsx","../../../../src/components/forms/numericInput.tsx","../../../../src/components/forms/radioGroup.tsx","../../../../src/components/forms/textArea.tsx","../../../../src/components/html-select/htmlSelect.tsx","../../../../src/components/html-table/htmlTable.tsx","../../../../src/components/hotkeys/hotkeyParser.ts","../../../../src/components/hotkeys/keyCombo.tsx","../../../../src/components/hotkeys/hotkey.tsx","../../../../src/components/hotkeys/hotkeysDialog.tsx","../../../../src/components/hotkeys/hotkeysEvents.ts","../../../../src/components/hotkeys/hotkeysTarget.tsx","../../../../src/components/hotkeys/hotkeys.tsx","../../../../src/components/navbar/navbarDivider.tsx","../../../../src/components/navbar/navbarGroup.tsx","../../../../src/components/navbar/navbarHeading.tsx","../../../../src/components/navbar/navbar.tsx","../../../../src/components/non-ideal-state/nonIdealState.tsx","../../../../src/components/panel-stack/panelView.tsx","../../../../src/components/panel-stack/panelStack.tsx","../../../../src/components/progress-bar/progressBar.tsx","../../../../src/components/slider/handleProps.tsx","../../../../src/components/slider/sliderUtils.ts","../../../../src/components/slider/handle.tsx","../../../../src/components/slider/multiSlider.tsx","../../../../src/components/slider/rangeSlider.tsx","../../../../src/components/slider/slider.tsx","../../../../src/components/tabs/tab.tsx","../../../../src/components/tabs/tabTitle.tsx","../../../../src/components/tabs/tabs.tsx","../../../../src/components/tag/tag.tsx","../../../../src/components/tag-input/tagInput.tsx","../../../../src/components/toast/toast.tsx","../../../../src/components/toast/toaster.tsx","../../../../src/components/tree/treeNode.tsx","../../../../src/components/tree/tree.tsx","../../../src/components/index.ts","Sidebar/index.tsx","constant-map.ts","generator.ts","Index.tsx"],"names":["getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","toObject","val","TypeError","shouldUseNative","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","order2","map","n","join","test3","split","forEach","letter","keys","err","module","exports","target","source","from","symbols","to","s","arguments","length","key","call","k","require","Symbol","for","p","q","r","t","u","v","w","x","y","z","A","B","C","iterator","aa","a","b","e","c","d","g","h","f","Error","l","m","replace","name","framesToPop","D","encodeURIComponent","E","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","F","G","props","context","refs","updater","H","I","isReactComponent","setState","forceUpdate","J","constructor","isPureReactComponent","K","current","currentDispatcher","L","M","ref","__self","__source","N","children","Array","defaultProps","$$typeof","type","_owner","ba","O","escape","P","Q","R","pop","result","keyPrefix","func","count","S","push","T","U","isArray","next","done","value","V","toString","ca","da","W","X","Children","toArray","only","createRef","Component","PureComponent","createContext","_calculateChangedBits","_currentValue","_currentValue2","Provider","Consumer","_context","forwardRef","render","lazy","_ctor","_status","_result","memo","compare","Fragment","StrictMode","Suspense","createElement","cloneElement","createFactory","bind","isValidElement","version","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","unstable_ConcurrentMode","unstable_Profiler","Y","default","Z","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","console","error","REACT_ELEMENT_TYPE","throwOnDirectAccess","extendStatics","setPrototypeOf","__proto__","__extends","__","create","__assign","apply","__rest","indexOf","__decorate","decorators","desc","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","generator","Promise","resolve","reject","fulfilled","step","rejected","then","__generator","body","_","label","sent","trys","ops","verb","op","__exportStar","__values","o","__read","ar","__spread","concat","__await","__asyncGenerator","asyncIterator","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__importStar","mod","__esModule","__importDefault","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","runClearTimeout","marker","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","len","run","Item","array","noop","nextTick","args","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","Popper","window","document","longerTimeoutBrowsers","timeoutDuration","isBrowser","navigator","userAgent","microtaskDebounce","fn","called","taskDebounce","scheduled","supportsMicroTasks","isFunction","functionToCheck","getStyleComputedProperty","element","property","nodeType","css","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","overflow","overflowX","overflowY","test","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","documentElement","offsetParent","noOffsetParent","nextElementSibling","isOffsetContainer","firstElementChild","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","element1root","getScroll","side","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","getClientRect","offsets","width","height","getBoundingClientRect","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","parent","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","reference","padding","boundariesElement","boundaries","boundariesNode","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","sort","area","filteredAreas","filter","computedPlacement","variation","getReferenceOffsets","state","getOuterSizes","marginBottom","marginRight","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","findIndex","prop","cur","match","obj","runModifiers","modifiers","data","ends","undefined","slice","warn","enabled","update","isDestroyed","options","positionFixed","flip","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","attachToScrollParents","event","callback","scrollParents","isBody","addEventListener","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","removeEventListeners","removeEventListener","isNumeric","isNaN","isFinite","setStyles","unit","setAttributes","attributes","setAttribute","applyStyle","instance","arrowElement","arrowStyles","applyStyleOnLoad","modifierOptions","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","floor","round","prefixedProperty","invertTop","invertLeft","arrow","isModifierRequired","requestingName","requestedName","requesting","isRequired","requested","querySelector","isVertical","sideCapitalized","toLowerCase","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","min","getOppositeVariation","validPlacements","placements","clockwise","counter","index","reverse","BEHAVIORS","flipped","placementOpposite","flipOrder","behavior","FLIP","CLOCKWISE","COUNTERCLOCKWISE","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","keepTogether","toValue","str","size","parseOffset","offset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","mergeWithPrevious","reduce","index2","preventOverflow","transformProp","popperStyles","transform","priority","escapeWithReference","shiftvariation","shiftOffsets","hide","bound","inner","subtractLength","requestAnimationFrame","debounce","Defaults","jquery","onLoad","Utils","global","PopperUtils","printWarning","emptyFunction","warning","_react","_react2","_interopRequireDefault","_propTypes","_propTypes2","_gud","_gud2","_warning","_warning2","_classCallCheck","Constructor","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","enumerable","writable","configurable","MAX_SIGNED_31_BIT_INT","objectIs","createEventEmitter","handlers","handler","get","set","newValue","changedBits","onlyChild","createReactContext","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","_Component","_temp","_this","_len","_key","_ret","emitter","getChildContext","_ref","componentWillReceiveProps","nextProps","oldValue","childContextTypes","object","_Component2","_temp2","_this2","_len2","_key2","_ret2","getValue","observedBits","componentDidMount","componentWillUnmount","contextTypes","Manager","ManagerContext","getReferenceRef","referenceNode","_React$Component","React","unwrapArray","arg","safeInvoke","initialStyle","opacity","pointerEvents","initialArrowStyle","InnerPopper","popperNode","arrowNode","setPopperNode","innerRef","updatePopperInstance","setArrowNode","popperInstance","updateStateModifier","getOptions","getPopperStyle","getPopperPlacement","getArrowStyle","getOutOfBoundariesState","destroyPopperInstance","referenceElement","PopperJS","componentDidUpdate","prevProps","prevState","outOfBoundaries","arrowProps","InnerReference","refHandler","Reference","componentWillMount","getDerivedStateFromProps","componentWillUpdate","nextState","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","displayName","newApiName","maybeSnapshot","snapshot","__suppressDeprecationWarning","EXITING","ENTERED","ENTERING","EXITED","UNMOUNTED","PropTypes","_interopRequireWildcard","_reactDom","_reactLifecyclesCompat","_PropTypes","newObj","_objectWithoutPropertiesLoose","excluded","sourceKeys","_inheritsLoose","Transition","parentGroup","initialStatus","transitionGroup","appear","isMounting","enter","appearStatus","in","unmountOnExit","mountOnEnter","status","nextCallback","_proto","nextIn","updateStatus","nextStatus","cancelNextCallback","getTimeouts","exit","mounting","findDOMNode","performEnter","performExit","appearing","timeouts","onEnter","safeSetState","onEntering","onTransitionEnd","onEntered","_this3","onExit","onExiting","onExited","cancel","setNextCallback","_this4","active","addEndListener","_this$props","childProps","child","propTypes","_default","_addClass","_removeClass","_Transition","_extends","addClass","classes","removeClass","CSSTransition","_this$getClassNames","className","getClassNames","removeClasses","_this$getClassNames2","activeClassName","reflowAndAddClass","_this$getClassNames3","doneClassName","_this$getClassNames4","_this$getClassNames5","_this$getClassNames6","classNames","_this$getClassNames7","_ChildMapping","_assertThisInitialized","values","component","childFactory","TransitionGroup","handleExited","firstRender","appeared","prevChildMapping","getInitialChildMapping","getNextChildMapping","currentChildMapping","getChildMapping","_TransitionGroup","ReplaceTransition","_args","handleEnter","handleLifecycle","handleEntering","_len3","_key3","handleEntered","_len4","_key4","handleExit","_len5","_key5","handleExiting","_len6","_key6","_len7","_key7","idx","originalArgs","_child$props","inProp","_React$Children$toArr","first","second","MapShim","Map","getIndex","entry","anonymous","__entries__","prototypeAccessors","delete","entries","splice","has","clear","ctx","list","defineProperties","global$1","Function","requestAnimationFrame$1","Date","now","trailingTimeout","throttle","delay","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","REFRESH_DELAY","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","observe","childList","characterData","subtree","disconnect","propertyName","getInstance","instance_","defineConfigurable","getWindowOf","ownerGlobal","emptyRect","createRectInit","toFloat","positions","getPaddings","paddings","getSVGContentRect","bbox","getBBox","getHTMLElementContentRect","horizPad","vertPad","boxSizing","isDocumentElement","abs","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getContentRect","createReadOnlyRect","Constr","DOMRectReadOnly","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","broadcastRect","ResizeObserverEntry","rectInit","contentRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","unobserve","clearActive","this$1","observation","WeakMap","ResizeObserver","method"],"mappings":"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A,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,IACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,IACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,GACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,MAAA,KAAA,EAAA,EAAA,GACA,KAAA,CAAA,MAAA,KAAA,EAAA,EAAA,GACA,KAAA,CAAA,MAAA,KAAA,EAAA,EAAA,GACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,MAAA,KAAA,EAAA,EAAA,GACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,EAAA,KAAA,KAAA,EAAA,EAAA,MACA,KAAA,EAAA,KAAA,KAAA,EAAA,EAAA,MACA,KAAA,CAAA,EAAA,KAAA,EAAA,EAAA,IACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,IACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,IACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,IACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,MAAA,KAAA,EAAA,EAAA,QACA,KAAA,CAAA,MAAA,KAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,KAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,KAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,KAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,KAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,SACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,MAAA,MAAA,EAAA,EAAA,QACA,KAAA,CAAA,MAAA,MAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,KAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,KAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,SAEA,sBAAA,CACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,OAAA,OAAA,MAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,OAAA,OACA,GAAA,CAAA,EAAA,OAAA,KAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,OACA,GAAA,CAAA,OAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,SAEA,kBAAA,CACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,EAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,OACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,OACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,SACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,SACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,OACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,OACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,OACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,EAAA,OAAA,EAAA,EAAA,OACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,EAAA,OAAA,EAAA,EAAA,SAEA,YAAA,CACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,IAAA,EAAA,EAAA,MACA,GAAA,CAAA,OAAA,IAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,IAAA,EAAA,EAAA,MACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,EAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,SACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,OACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,SACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,EAAA,EAAA,MACA,GAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,IAAA,OAAA,OAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,IAAA,IAAA,EAAA,EAAA,MACA,IAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,IAAA,CAAA,IAAA,IAAA,EAAA,EAAA,MACA,IAAA,CAAA,IAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,SACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,SACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,GACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,OAAA,EAAA,MACA,KAAA,CAAA,EAAA,OAAA,OAAA,EAAA,SACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,OAAA,EAAA,MACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,MACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,MACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,CAAA,IAAA,IAAA,EAAA,EAAA,MACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,IAAA,EAAA,EAAA,MACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,IAAA,IAAA,EAAA,EAAA,MACA,KAAA,CAAA,IAAA,IAAA,EAAA,EAAA,MACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,MACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,MACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,MACA,KAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,SACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,KAAA,CAAA,IAAA,IAAA,EAAA,EAAA,MACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,MACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,MACA,KAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,KAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,KAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,KAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,MACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,MACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,SACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,IAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,MAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,MAAA,CAAA,EAAA,OAAA,EAAA,E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IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,MAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,KAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,KAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,IAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,SACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,KAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,SACA,IAAA,CAAA,EAAA,OAAA,KAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,OACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,MAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,OAAA,EAAA,SACA,KAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,OAAA,EAAA,SAEA,cAAA,CACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,OAAA,IAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,OAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,IAAA,OAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,MAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,MAAA,EAAA,QACA,GAAA,EAAA,OAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,MAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,MAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,IAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,KACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,KACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,KACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,KACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,MAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,KACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,KACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,KACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,IAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,MAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,OAAA,EAAA,SACA,KAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,MAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,SAEA,eAAA,CACA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,GACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,IAAA,EAAA,EAAA,IACA,GAAA,CAAA,OAAA,IAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,IAAA,EAAA,EAAA,IACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,EAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,MAAA,MAAA,EAAA,EAAA,QACA,GAAA,EAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,MAAA,MAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,KACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,SACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,GAAA,CAAA,EAAA,OAAA,KAAA,EAAA,KACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,EAAA,EAAA,IACA,GAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,IAAA,OAAA,OAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,IAAA,IAAA,EAAA,EAAA,IACA,IAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,IAAA,CAAA,IAAA,IAAA,EAAA,EAAA,IACA,IAAA,CAAA,IAAA,OAAA,EAAA,EAAA,IACA,IAAA,CAAA,EAAA,EAAA,EAAA,EAAA,GACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,SACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,GACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,OAAA,EAAA,IACA,KAAA,CAAA,EAAA,OAAA,OAAA,EAAA,GACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,IAAA,EAAA,EAAA,MACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,KAAA,CAAA,EAAA,OAAA,OAAA,EAAA,IACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,OAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,IACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,IACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,IAAA,IAAA,EAAA,EAAA,IACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,KAAA,KAAA,EAAA,EAAA,KACA,KAAA,CAAA,KAAA,KAAA,EAAA,EAAA,MACA,KAAA,CAAA,KAAA,KAAA,EAAA,EAAA,MACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,KAAA,KAAA,EAAA,EAAA,KACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,OAAA,OAAA,OACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,IAAA,EAAA,EAAA,IACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,MAAA,MAAA,EAAA,EAAA,QACA,KAAA,CAAA,MAAA,MAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,IAAA,IAAA,EAAA,EAAA,IACA,KAAA,CAAA,IAAA,IAAA,EAAA,EAAA,IACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,IACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,IACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,IACA,KAAA,CAAA,GAAA,GAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,KAAA,CAAA,IAAA,IAAA,EAAA,EAAA,IACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,KAAA,IAAA,EAAA,EAAA,KACA,KAAA,CAAA,KAAA,KAAA,EAAA,EAAA,KACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,MAAA,MAAA,EAAA,EAAA,GACA,KAAA,CAAA,MAAA,MAAA,EAAA,EAAA,GACA,KAAA,CAAA,MAAA,MAAA,EAAA,EAAA,QACA,KAAA,CAAA,MAAA,MAAA,EAAA,EAAA,QACA,KAAA,CAAA,MAAA,MAAA,EAAA,EAAA,QACA,KAAA,CAAA,MAAA,MAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,KAAA,IAAA,EAAA,EAAA,KACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,IACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,IACA,KAAA,CAAA,KAAA,KAAA,EAAA,EAAA,KACA,KAAA,CAAA,IAAA,GAAA,EAAA,EAAA,KACA,KAAA,EAAA,IAAA,IAAA,EAAA,EAAA,MACA,KAAA,EAAA,GAAA,IAAA,EAAA,EAAA,MACA,KAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,KAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,KAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,KAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,KAAA,KAAA,EAAA,EAAA,KACA,KAAA,CAAA,KAAA,KAAA,EAAA,EAAA,KACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,IACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,EAAA,OAAA,OAAA,EAAA,EAAA,IACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,GACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,IAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,MAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,MAAA,CAAA,KAAA,KAAA,EAAA,EAAA,KACA,MAAA,CAAA,KAAA,KAAA,EAAA,EAAA,KACA,MAAA,CAAA,KAAA,KAAA,EAAA,EAAA,MACA,MAAA,CAAA,KAAA,KAAA,EAAA,EAAA,MACA,MAAA,CAAA,KAAA,KAAA,EAAA,EAAA,MACA,MAAA,CAAA,KAAA,KAAA,EAAA,EAAA,MACA,MAAA,CAAA,KAAA,KAAA,EAAA,EAAA,MACA,MAAA,CAAA,KAAA,KAAA,EAAA,EAAA,MACA,MAAA,CAAA,KAAA,KAAA,EAAA,EAAA,MACA,MAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,MAAA,CAAA,OAAA,OAAA,EAAA,EAAA,SAEA,kBAAA,CACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,GACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,OACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,SACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,SACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,OACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,OACA,IAAA,CAAA,OAAA,OAAA,MAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,OACA,IAAA,CAAA,EAAA,OAAA,MAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,OACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,OACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,OACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,OACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,OACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,MACA,KAAA,CAAA,OAAA,OAAA,EAAA,EAAA,OACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,SAEA,cAAA,CACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,GACA,GAAA,CAAA,EAAA,OAAA,EAAA,OAAA,KACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,OACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,OACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,OACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,IAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,OACA,IAAA,CAAA,EAAA,OAAA,MAAA,OAAA,OACA,IAAA,CAAA,OAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,OAAA,OACA,IAAA,CAAA,OAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,OAAA,OACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,MAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,OAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QAEA,eAAA,CACA,GAAA,CAAA,EAAA,OAAA,EAAA,OAAA,KACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,OACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,OACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,OACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,IAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,OACA,IAAA,CAAA,EAAA,OAAA,MAAA,OAAA,OACA,IAAA,CAAA,OAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,OAAA,OACA,IAAA,CAAA,OAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,OAAA,OACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,MAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,OAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,KAAA,CAAA,OAAA,OAAA,EAAA,OAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,OAAA,QAEA,iBAAA,CACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,IAAA,EAAA,EAAA,KACA,GAAA,CAAA,OAAA,IAAA,EAAA,EAAA,SACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,IAAA,EAAA,EAAA,KACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,EAAA,EAAA,KACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,EAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,OAAA,EAAA,SACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,MAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,GAAA,CAAA,IAAA,OAAA,OAAA,EAAA,KACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,KACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,IAAA,OAAA,EAAA,EAAA,KACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,KACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,OAAA,EAAA,KACA,KAAA,CAAA,EAAA,OAAA,OAAA,EAAA,SACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,KAAA,CAAA,EAA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AA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,IACA,IAAA,CAAA,OAAA,OAAA,MAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,MAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,IAAA,OAAA,OAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,MAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QA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AAA,EAAA,OAAA,OAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,KAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,GAAA,CAAA,IAAA,IAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,GAAA,CAAA,IAAA,OAAA,OAAA,EAAA,IACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,IACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,IACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,OAAA,OAAA,OAAA,EAAA,QACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,QACA,IAAA,CAAA,IAAA,O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EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,EAAA,OAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,OAAA,KAAA,EAAA,EAAA,MACA,GAAA,EAAA,OAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,KAAA,EAAA,EAAA,MACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,MACA,GAAA,EAAA,OAAA,OAAA,EAAA,EAAA,MACA,GAAA,EAAA,OAAA,OAAA,EAAA,EAAA,MACA,GAAA,EAAA,OAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,OAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,OAAA,EAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,GAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,OAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,CAAA,EAAA,OAAA,EAAA,EAAA,MACA,IAAA,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AAA,MACA,IAAA,MACA,IAAA,KACA,IAAA,MACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,MACA,IAAA,KACA,IAAA,MACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,MACA,IAAA,MACA,IAAA,MACA,IAAA,MACA,IAAA,KACA,IAAA,MACA,IAAA,KACA,IAAA,MACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,MACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,MACA,IAAA,MACA,IAAA,MACA,IAAA,KACA,IAAA,KACA,IAAA,MACA,IAAA,MACA,IAAA,MACA,IAAA,KACA,IAAA,MACA,IAAA,KACA,IAAA,MACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,MACA,IAAA,MACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,MACA,IAAA,MACA,IAAA,MACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,MACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,MACA,IAAA,KACA,IAAA,MACA,IAAA,MACA,IAAA,MACA,IAAA,KACA,IAAA,MACA,IAAA,MACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,MACA,IAAA,MACA,IAAA,MACA,IAAA,KACA,IAAA,MACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,MACA,IAAA,KACA,IAAA,MACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,MACA,IAAA,MACA,IAAA,MACA,IAAA,MACA,IAAA,KACA,IAAA,MACA,IAAA,KACA,IAAA,MACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,MACA,IAAA,MACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,MACA,IAAA,MACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,KACA,IAAA,SAIA;;;;ACllfA,IAAA,EAAA,EAAA,UAAA,IA9LA,SAAA,EAAA,GACA,iBAAA,SAAA,oBAAA,OAAA,EAAA,QAAA,QAAA,SAAA,QAAA,cAA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A,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,KAAA,IAAA,KACA,IAAA,KAAA,IAAA,KACA,IAAA,KAEA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAA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","file":"Index.d34241c5.map","sourceRoot":"../src","sourcesContent":["/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v16.6.1\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var k=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.concurrent_mode\"):60111,y=n?Symbol.for(\"react.forward_ref\"):60112,z=n?Symbol.for(\"react.suspense\"):60113,A=n?Symbol.for(\"react.memo\"):\n60115,B=n?Symbol.for(\"react.lazy\"):60116,C=\"function\"===typeof Symbol&&Symbol.iterator;function aa(a,b,e,c,d,g,h,f){if(!a){a=void 0;if(void 0===b)a=Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var l=[e,c,d,g,h,f],m=0;a=Error(b.replace(/%s/g,function(){return l[m++]}));a.name=\"Invariant Violation\"}a.framesToPop=1;throw a;}}\nfunction D(a){for(var b=arguments.length-1,e=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=0;c<b;c++)e+=\"&args[]=\"+encodeURIComponent(arguments[c+1]);aa(!1,\"Minified React error #\"+a+\"; visit %s for the full message or use the non-minified dev environment for full errors and additional helpful warnings. \",e)}var E={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},F={};\nfunction G(a,b,e){this.props=a;this.context=b;this.refs=F;this.updater=e||E}G.prototype.isReactComponent={};G.prototype.setState=function(a,b){\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a?D(\"85\"):void 0;this.updater.enqueueSetState(this,a,b,\"setState\")};G.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function H(){}H.prototype=G.prototype;function I(a,b,e){this.props=a;this.context=b;this.refs=F;this.updater=e||E}var J=I.prototype=new H;\nJ.constructor=I;k(J,G.prototype);J.isPureReactComponent=!0;var K={current:null,currentDispatcher:null},L=Object.prototype.hasOwnProperty,M={key:!0,ref:!0,__self:!0,__source:!0};\nfunction N(a,b,e){var c=void 0,d={},g=null,h=null;if(null!=b)for(c in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(g=\"\"+b.key),b)L.call(b,c)&&!M.hasOwnProperty(c)&&(d[c]=b[c]);var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){for(var l=Array(f),m=0;m<f;m++)l[m]=arguments[m+2];d.children=l}if(a&&a.defaultProps)for(c in f=a.defaultProps,f)void 0===d[c]&&(d[c]=f[c]);return{$$typeof:p,type:a,key:g,ref:h,props:d,_owner:K.current}}\nfunction ba(a,b){return{$$typeof:p,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===p}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g,Q=[];function R(a,b,e,c){if(Q.length){var d=Q.pop();d.result=a;d.keyPrefix=b;d.func=e;d.context=c;d.count=0;return d}return{result:a,keyPrefix:b,func:e,context:c,count:0}}\nfunction S(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>Q.length&&Q.push(a)}\nfunction T(a,b,e,c){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return e(c,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var h=0;h<a.length;h++){d=a[h];var f=b+U(d,h);g+=T(d,f,e,c)}else if(null===a||\"object\"!==typeof a?f=null:(f=C&&a[C]||a[\"@@iterator\"],f=\"function\"===typeof f?f:null),\"function\"===typeof f)for(a=f.call(a),h=\n0;!(d=a.next()).done;)d=d.value,f=b+U(d,h++),g+=T(d,f,e,c);else\"object\"===d&&(e=\"\"+a,D(\"31\",\"[object Object]\"===e?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":e,\"\"));return g}function V(a,b,e){return null==a?0:T(a,\"\",b,e)}function U(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function ca(a,b){a.func.call(a.context,b,a.count++)}\nfunction da(a,b,e){var c=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?W(a,c,e,function(a){return a}):null!=a&&(O(a)&&(a=ba(a,d+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(P,\"$&/\")+\"/\")+e)),c.push(a))}function W(a,b,e,c,d){var g=\"\";null!=e&&(g=(\"\"+e).replace(P,\"$&/\")+\"/\");b=R(b,g,c,d);V(a,da,b);S(b)}\nvar X={Children:{map:function(a,b,e){if(null==a)return a;var c=[];W(a,c,null,b,e);return c},forEach:function(a,b,e){if(null==a)return a;b=R(null,null,b,e);V(a,ca,b);S(b)},count:function(a){return V(a,function(){return null},null)},toArray:function(a){var b=[];W(a,b,null,function(a){return a});return b},only:function(a){O(a)?void 0:D(\"143\");return a}},createRef:function(){return{current:null}},Component:G,PureComponent:I,createContext:function(a,b){void 0===b&&(b=null);a={$$typeof:w,_calculateChangedBits:b,\n_currentValue:a,_currentValue2:a,Provider:null,Consumer:null};a.Provider={$$typeof:v,_context:a};return a.Consumer=a},forwardRef:function(a){return{$$typeof:y,render:a}},lazy:function(a){return{$$typeof:B,_ctor:a,_status:-1,_result:null}},memo:function(a,b){return{$$typeof:A,type:a,compare:void 0===b?null:b}},Fragment:r,StrictMode:t,Suspense:z,createElement:N,cloneElement:function(a,b,e){null===a||void 0===a?D(\"267\",a):void 0;var c=void 0,d=k({},a.props),g=a.key,h=a.ref,f=a._owner;if(null!=b){void 0!==\nb.ref&&(h=b.ref,f=K.current);void 0!==b.key&&(g=\"\"+b.key);var l=void 0;a.type&&a.type.defaultProps&&(l=a.type.defaultProps);for(c in b)L.call(b,c)&&!M.hasOwnProperty(c)&&(d[c]=void 0===b[c]&&void 0!==l?l[c]:b[c])}c=arguments.length-2;if(1===c)d.children=e;else if(1<c){l=Array(c);for(var m=0;m<c;m++)l[m]=arguments[m+2];d.children=l}return{$$typeof:p,type:a.type,key:g,ref:h,props:d,_owner:f}},createFactory:function(a){var b=N.bind(null,a);b.type=a;return b},isValidElement:O,version:\"16.6.1\",__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentOwner:K,\nassign:k}};X.unstable_ConcurrentMode=x;X.unstable_Profiler=u;var Y={default:X},Z=Y&&X||Y;module.exports=Z.default||Z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react.production.min.js');\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\n","import * as React from \"react\"\nimport { iPuzzle } from \"../types\"\n\ninterface Props {\n\theading: string\n\tpuzzle: iPuzzle\n}\n\nexport default class Directions extends React.Component<Props> {\n\trender() {\n\t\treturn (\n\t\t\t<div className=\"directions\">\n\t\t\t\t<h2>{this.props.heading}</h2>\n\t\t\t\t<p>Cut the following into sixteen squares, and match the trigonometric functions with their respective values.</p>\n\t\t\t\t<p>Functions may not be matched with other functions, and constants may not be matched with other constants.</p>\n\t\t\t\t<p>There will be {this.props.puzzle.revealedCorner ? \"fourteen\" : \"sixteen\"} unmatched constants around the border of the outer square.</p>\n\t\t\t</div>\n\t\t)\n\t}\n}\n","/** @license React v16.6.1\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});var d=null,f=!1,h=3,k=-1,l=-1,m=!1,n=!1;function p(){if(!m){var a=d.expirationTime;n?q():n=!0;r(t,a)}}\nfunction u(){var a=d,b=d.next;if(d===b)d=null;else{var c=d.previous;d=c.next=b;b.previous=c}a.next=a.previous=null;c=a.callback;b=a.expirationTime;a=a.priorityLevel;var e=h,Q=l;h=a;l=b;try{var g=c()}finally{h=e,l=Q}if(\"function\"===typeof g)if(g={callback:g,priorityLevel:a,expirationTime:b,next:null,previous:null},null===d)d=g.next=g.previous=g;else{c=null;a=d;do{if(a.expirationTime>=b){c=a;break}a=a.next}while(a!==d);null===c?c=d:c===d&&(d=g,p());b=c.previous;b.next=c.previous=g;g.next=c;g.previous=\nb}}function v(){if(-1===k&&null!==d&&1===d.priorityLevel){m=!0;try{do u();while(null!==d&&1===d.priorityLevel)}finally{m=!1,null!==d?p():n=!1}}}function t(a){m=!0;var b=f;f=a;try{if(a)for(;null!==d;){var c=exports.unstable_now();if(d.expirationTime<=c){do u();while(null!==d&&d.expirationTime<=c)}else break}else if(null!==d){do u();while(null!==d&&!w())}}finally{m=!1,f=b,null!==d?p():n=!1,v()}}\nvar x=Date,y=\"function\"===typeof setTimeout?setTimeout:void 0,z=\"function\"===typeof clearTimeout?clearTimeout:void 0,A=\"function\"===typeof requestAnimationFrame?requestAnimationFrame:void 0,B=\"function\"===typeof cancelAnimationFrame?cancelAnimationFrame:void 0,C,D;function E(a){C=A(function(b){z(D);a(b)});D=y(function(){B(C);a(exports.unstable_now())},100)}\nif(\"object\"===typeof performance&&\"function\"===typeof performance.now){var F=performance;exports.unstable_now=function(){return F.now()}}else exports.unstable_now=function(){return x.now()};var r,q,w;\nif(\"undefined\"!==typeof window&&window._schedMock){var G=window._schedMock;r=G[0];q=G[1];w=G[2]}else if(\"undefined\"===typeof window||\"function\"!==typeof window.addEventListener){var H=null,I=-1,J=function(a,b){if(null!==H){var c=H;H=null;try{I=b,c(a)}finally{I=-1}}};r=function(a,b){-1!==I?setTimeout(r,0,a,b):(H=a,setTimeout(J,b,!0,b),setTimeout(J,1073741823,!1,1073741823))};q=function(){H=null};w=function(){return!1};exports.unstable_now=function(){return-1===I?0:I}}else{\"undefined\"!==typeof console&&\n(\"function\"!==typeof A&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\"),\"function\"!==typeof B&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\"));var K=null,L=!1,M=-1,N=!1,O=!1,P=0,R=33,S=33;w=function(){return P<=exports.unstable_now()};var T=\"__reactIdleCallback$\"+Math.random().toString(36).slice(2);\nwindow.addEventListener(\"message\",function(a){if(a.source===window&&a.data===T){L=!1;a=K;var b=M;K=null;M=-1;var c=exports.unstable_now(),e=!1;if(0>=P-c)if(-1!==b&&b<=c)e=!0;else{N||(N=!0,E(U));K=a;M=b;return}if(null!==a){O=!0;try{a(e)}finally{O=!1}}}},!1);var U=function(a){if(null!==K){E(U);var b=a-P+S;b<S&&R<S?(8>b&&(b=8),S=b<R?R:b):R=b;P=a+S;L||(L=!0,window.postMessage(T,\"*\"))}else N=!1};r=function(a,b){K=a;M=b;O||0>b?window.postMessage(T,\"*\"):N||(N=!0,E(U))};q=function(){K=null;L=!1;M=-1}}\nexports.unstable_ImmediatePriority=1;exports.unstable_UserBlockingPriority=2;exports.unstable_NormalPriority=3;exports.unstable_IdlePriority=4;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:break;default:a=3}var c=h,e=k;h=a;k=exports.unstable_now();try{return b()}finally{h=c,k=e,v()}};\nexports.unstable_scheduleCallback=function(a,b){var c=-1!==k?k:exports.unstable_now();if(\"object\"===typeof b&&null!==b&&\"number\"===typeof b.timeout)b=c+b.timeout;else switch(h){case 1:b=c+-1;break;case 2:b=c+250;break;case 4:b=c+1073741823;break;default:b=c+5E3}a={callback:a,priorityLevel:h,expirationTime:b,next:null,previous:null};if(null===d)d=a.next=a.previous=a,p();else{c=null;var e=d;do{if(e.expirationTime>b){c=e;break}e=e.next}while(e!==d);null===c?c=d:c===d&&(d=a,p());b=c.previous;b.next=c.previous=\na;a.next=c;a.previous=b}return a};exports.unstable_cancelCallback=function(a){var b=a.next;if(null!==b){if(b===a)d=null;else{a===d&&(d=b);var c=a.previous;c.next=b;b.previous=c}a.next=a.previous=null}};exports.unstable_wrapCallback=function(a){var b=h;return function(){var c=h,e=k;h=b;k=exports.unstable_now();try{return a.apply(this,arguments)}finally{h=c,k=e,v()}}};exports.unstable_getCurrentPriorityLevel=function(){return h};\nexports.unstable_shouldYield=function(){return!f&&(null!==d&&d.expirationTime<l||w())};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n  module.exports = require('./cjs/scheduler.development.js');\n}\n","/** @license React v16.6.1\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),n=require(\"object-assign\"),ba=require(\"scheduler\");function ca(a,b,c,d,e,f,g,h){if(!a){a=void 0;if(void 0===b)a=Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var k=[c,d,e,f,g,h],l=0;a=Error(b.replace(/%s/g,function(){return k[l++]}));a.name=\"Invariant Violation\"}a.framesToPop=1;throw a;}}\nfunction t(a){for(var b=arguments.length-1,c=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,d=0;d<b;d++)c+=\"&args[]=\"+encodeURIComponent(arguments[d+1]);ca(!1,\"Minified React error #\"+a+\"; visit %s for the full message or use the non-minified dev environment for full errors and additional helpful warnings. \",c)}aa?void 0:t(\"227\");function da(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}\nvar ea=!1,fa=null,ha=!1,ia=null,ja={onError:function(a){ea=!0;fa=a}};function ka(a,b,c,d,e,f,g,h,k){ea=!1;fa=null;da.apply(ja,arguments)}function la(a,b,c,d,e,f,g,h,k){ka.apply(this,arguments);if(ea){if(ea){var l=fa;ea=!1;fa=null}else t(\"198\"),l=void 0;ha||(ha=!0,ia=l)}}var ma=null,na={};\nfunction oa(){if(ma)for(var a in na){var b=na[a],c=ma.indexOf(a);-1<c?void 0:t(\"96\",a);if(!pa[c]){b.extractEvents?void 0:t(\"97\",a);pa[c]=b;c=b.eventTypes;for(var d in c){var e=void 0;var f=c[d],g=b,h=d;qa.hasOwnProperty(h)?t(\"99\",h):void 0;qa[h]=f;var k=f.phasedRegistrationNames;if(k){for(e in k)k.hasOwnProperty(e)&&ra(k[e],g,h);e=!0}else f.registrationName?(ra(f.registrationName,g,h),e=!0):e=!1;e?void 0:t(\"98\",d,a)}}}}\nfunction ra(a,b,c){sa[a]?t(\"100\",a):void 0;sa[a]=b;ta[a]=b.eventTypes[c].dependencies}var pa=[],qa={},sa={},ta={},ua=null,va=null,wa=null;function xa(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=wa(c);la(d,b,void 0,a);a.currentTarget=null}function ya(a,b){null==b?t(\"30\"):void 0;if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}\nfunction za(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var Aa=null;function Ba(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;d<b.length&&!a.isPropagationStopped();d++)xa(a,b[d],c[d]);else b&&xa(a,b,c);a._dispatchListeners=null;a._dispatchInstances=null;a.isPersistent()||a.constructor.release(a)}}\nvar Ca={injectEventPluginOrder:function(a){ma?t(\"101\"):void 0;ma=Array.prototype.slice.call(a);oa()},injectEventPluginsByName:function(a){var b=!1,c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];na.hasOwnProperty(c)&&na[c]===d||(na[c]?t(\"102\",c):void 0,na[c]=d,b=!0)}b&&oa()}};\nfunction Da(a,b){var c=a.stateNode;if(!c)return null;var d=ua(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;c&&\"function\"!==typeof c?t(\"231\",b,typeof c):void 0;\nreturn c}function Ea(a){null!==a&&(Aa=ya(Aa,a));a=Aa;Aa=null;if(a&&(za(a,Ba),Aa?t(\"95\"):void 0,ha))throw a=ia,ha=!1,ia=null,a;}var Fa=Math.random().toString(36).slice(2),Ga=\"__reactInternalInstance$\"+Fa,Ha=\"__reactEventHandlers$\"+Fa;function Ia(a){if(a[Ga])return a[Ga];for(;!a[Ga];)if(a.parentNode)a=a.parentNode;else return null;a=a[Ga];return 5===a.tag||6===a.tag?a:null}function Ja(a){a=a[Ga];return!a||5!==a.tag&&6!==a.tag?null:a}\nfunction Ka(a){if(5===a.tag||6===a.tag)return a.stateNode;t(\"33\")}function La(a){return a[Ha]||null}function Ma(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}function Na(a,b,c){if(b=Da(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ya(c._dispatchListeners,b),c._dispatchInstances=ya(c._dispatchInstances,a)}\nfunction Oa(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Ma(b);for(b=c.length;0<b--;)Na(c[b],\"captured\",a);for(b=0;b<c.length;b++)Na(c[b],\"bubbled\",a)}}function Pa(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=Da(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=ya(c._dispatchListeners,b),c._dispatchInstances=ya(c._dispatchInstances,a))}function Qa(a){a&&a.dispatchConfig.registrationName&&Pa(a._targetInst,null,a)}\nfunction Ra(a){za(a,Oa)}var Sa=!(\"undefined\"===typeof window||!window.document||!window.document.createElement);function Ta(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Ua={animationend:Ta(\"Animation\",\"AnimationEnd\"),animationiteration:Ta(\"Animation\",\"AnimationIteration\"),animationstart:Ta(\"Animation\",\"AnimationStart\"),transitionend:Ta(\"Transition\",\"TransitionEnd\")},Va={},Wa={};\nSa&&(Wa=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Ua.animationend.animation,delete Ua.animationiteration.animation,delete Ua.animationstart.animation),\"TransitionEvent\"in window||delete Ua.transitionend.transition);function Xa(a){if(Va[a])return Va[a];if(!Ua[a])return a;var b=Ua[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Wa)return Va[a]=b[c];return a}\nvar Ya=Xa(\"animationend\"),Za=Xa(\"animationiteration\"),$a=Xa(\"animationstart\"),ab=Xa(\"transitionend\"),bb=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),cb=null,eb=null,fb=null;\nfunction gb(){if(fb)return fb;var a,b=eb,c=b.length,d,e=\"value\"in cb?cb.value:cb.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return fb=e.slice(a,1<d?1-d:void 0)}function hb(){return!0}function ib(){return!1}\nfunction A(a,b,c,d){this.dispatchConfig=a;this._targetInst=b;this.nativeEvent=c;a=this.constructor.Interface;for(var e in a)a.hasOwnProperty(e)&&((b=a[e])?this[e]=b(c):\"target\"===e?this.target=d:this[e]=c[e]);this.isDefaultPrevented=(null!=c.defaultPrevented?c.defaultPrevented:!1===c.returnValue)?hb:ib;this.isPropagationStopped=ib;return this}\nn(A.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=hb)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=hb)},persist:function(){this.isPersistent=hb},isPersistent:ib,destructor:function(){var a=this.constructor.Interface,\nb;for(b in a)this[b]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null;this.isPropagationStopped=this.isDefaultPrevented=ib;this._dispatchInstances=this._dispatchListeners=null}});A.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};\nA.extend=function(a){function b(){}function c(){return d.apply(this,arguments)}var d=this;b.prototype=d.prototype;var e=new b;n(e,c.prototype);c.prototype=e;c.prototype.constructor=c;c.Interface=n({},d.Interface,a);c.extend=d.extend;jb(c);return c};jb(A);function kb(a,b,c,d){if(this.eventPool.length){var e=this.eventPool.pop();this.call(e,a,b,c,d);return e}return new this(a,b,c,d)}function lb(a){a instanceof this?void 0:t(\"279\");a.destructor();10>this.eventPool.length&&this.eventPool.push(a)}\nfunction jb(a){a.eventPool=[];a.getPooled=kb;a.release=lb}var mb=A.extend({data:null}),nb=A.extend({data:null}),ob=[9,13,27,32],pb=Sa&&\"CompositionEvent\"in window,qb=null;Sa&&\"documentMode\"in document&&(qb=document.documentMode);\nvar rb=Sa&&\"TextEvent\"in window&&!qb,sb=Sa&&(!pb||qb&&8<qb&&11>=qb),tb=String.fromCharCode(32),ub={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},vb=!1;\nfunction wb(a,b){switch(a){case \"keyup\":return-1!==ob.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function xb(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var yb=!1;function zb(a,b){switch(a){case \"compositionend\":return xb(b);case \"keypress\":if(32!==b.which)return null;vb=!0;return tb;case \"textInput\":return a=b.data,a===tb&&vb?null:a;default:return null}}\nfunction Ab(a,b){if(yb)return\"compositionend\"===a||!pb&&wb(a,b)?(a=gb(),fb=eb=cb=null,yb=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return sb&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar Bb={eventTypes:ub,extractEvents:function(a,b,c,d){var e=void 0;var f=void 0;if(pb)b:{switch(a){case \"compositionstart\":e=ub.compositionStart;break b;case \"compositionend\":e=ub.compositionEnd;break b;case \"compositionupdate\":e=ub.compositionUpdate;break b}e=void 0}else yb?wb(a,c)&&(e=ub.compositionEnd):\"keydown\"===a&&229===c.keyCode&&(e=ub.compositionStart);e?(sb&&\"ko\"!==c.locale&&(yb||e!==ub.compositionStart?e===ub.compositionEnd&&yb&&(f=gb()):(cb=d,eb=\"value\"in cb?cb.value:cb.textContent,yb=\n!0)),e=mb.getPooled(e,b,c,d),f?e.data=f:(f=xb(c),null!==f&&(e.data=f)),Ra(e),f=e):f=null;(a=rb?zb(a,c):Ab(a,c))?(b=nb.getPooled(ub.beforeInput,b,c,d),b.data=a,Ra(b)):b=null;return null===f?b:null===b?f:[f,b]}},Cb=null,Db=null,Eb=null;function Hb(a){if(a=va(a)){\"function\"!==typeof Cb?t(\"280\"):void 0;var b=ua(a.stateNode);Cb(a.stateNode,a.type,b)}}function Ib(a){Db?Eb?Eb.push(a):Eb=[a]:Db=a}function Jb(){if(Db){var a=Db,b=Eb;Eb=Db=null;Hb(a);if(b)for(a=0;a<b.length;a++)Hb(b[a])}}\nfunction Kb(a,b){return a(b)}function Lb(a,b,c){return a(b,c)}function Mb(){}var Nb=!1;function Ob(a,b){if(Nb)return a(b);Nb=!0;try{return Kb(a,b)}finally{if(Nb=!1,null!==Db||null!==Eb)Mb(),Jb()}}var Pb={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Qb(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!Pb[a.type]:\"textarea\"===b?!0:!1}\nfunction Rb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}function Sb(a){if(!Sa)return!1;a=\"on\"+a;var b=a in document;b||(b=document.createElement(\"div\"),b.setAttribute(a,\"return;\"),b=\"function\"===typeof b[a]);return b}function Tb(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ub(a){var b=Tb(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Vb(a){a._valueTracker||(a._valueTracker=Ub(a))}function Wb(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Tb(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}\nvar Xb=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Yb=/^(.*)[\\\\\\/]/,B=\"function\"===typeof Symbol&&Symbol.for,Zb=B?Symbol.for(\"react.element\"):60103,$b=B?Symbol.for(\"react.portal\"):60106,ac=B?Symbol.for(\"react.fragment\"):60107,bc=B?Symbol.for(\"react.strict_mode\"):60108,cc=B?Symbol.for(\"react.profiler\"):60114,dc=B?Symbol.for(\"react.provider\"):60109,ec=B?Symbol.for(\"react.context\"):60110,fc=B?Symbol.for(\"react.concurrent_mode\"):60111,gc=B?Symbol.for(\"react.forward_ref\"):60112,hc=B?Symbol.for(\"react.suspense\"):\n60113,ic=B?Symbol.for(\"react.memo\"):60115,jc=B?Symbol.for(\"react.lazy\"):60116,kc=\"function\"===typeof Symbol&&Symbol.iterator;function lc(a){if(null===a||\"object\"!==typeof a)return null;a=kc&&a[kc]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nfunction mc(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case fc:return\"ConcurrentMode\";case ac:return\"Fragment\";case $b:return\"Portal\";case cc:return\"Profiler\";case bc:return\"StrictMode\";case hc:return\"Suspense\"}if(\"object\"===typeof a)switch(a.$$typeof){case ec:return\"Context.Consumer\";case dc:return\"Context.Provider\";case gc:var b=a.render;b=b.displayName||b.name||\"\";return a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\n\")\":\"ForwardRef\");case ic:return mc(a.type);case jc:if(a=1===a._status?a._result:null)return mc(a)}return null}function nc(a){var b=\"\";do{a:switch(a.tag){case 2:case 16:case 0:case 1:case 5:case 8:case 13:var c=a._debugOwner,d=a._debugSource,e=mc(a.type);var f=null;c&&(f=mc(c.type));c=e;e=\"\";d?e=\" (at \"+d.fileName.replace(Yb,\"\")+\":\"+d.lineNumber+\")\":f&&(e=\" (created by \"+f+\")\");f=\"\\n    in \"+(c||\"Unknown\")+e;break a;default:f=\"\"}b+=f;a=a.return}while(a);return b}\nvar oc=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,pc=Object.prototype.hasOwnProperty,qc={},rc={};\nfunction sc(a){if(pc.call(rc,a))return!0;if(pc.call(qc,a))return!1;if(oc.test(a))return rc[a]=!0;qc[a]=!0;return!1}function tc(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction uc(a,b,c,d){if(null===b||\"undefined\"===typeof b||tc(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function E(a,b,c,d,e){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b}var F={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){F[a]=new E(a,0,!1,a,null)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];F[b]=new E(b,1,!1,a[1],null)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){F[a]=new E(a,2,!1,a.toLowerCase(),null)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){F[a]=new E(a,2,!1,a,null)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){F[a]=new E(a,3,!1,a.toLowerCase(),null)});[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){F[a]=new E(a,3,!0,a,null)});\n[\"capture\",\"download\"].forEach(function(a){F[a]=new E(a,4,!1,a,null)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){F[a]=new E(a,6,!1,a,null)});[\"rowSpan\",\"start\"].forEach(function(a){F[a]=new E(a,5,!1,a.toLowerCase(),null)});var vc=/[\\-:]([a-z])/g;function xc(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(vc,\nxc);F[b]=new E(b,1,!1,a,null)});\"xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(vc,xc);F[b]=new E(b,1,!1,a,\"http://www.w3.org/1999/xlink\")});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(vc,xc);F[b]=new E(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\")});F.tabIndex=new E(\"tabIndex\",1,!1,\"tabindex\",null);\nfunction yc(a,b,c,d){var e=F.hasOwnProperty(b)?F[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1]?!1:!0;f||(uc(b,c,e,d)&&(c=null),d||null===e?sc(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}\nfunction zc(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ac(a,b){var c=b.checked;return n({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}\nfunction Bc(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=zc(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function Cc(a,b){b=b.checked;null!=b&&yc(a,\"checked\",b,!1)}\nfunction Dc(a,b){Cc(a,b);var c=zc(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?Ec(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&Ec(a,b.type,zc(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction Fc(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!a.defaultChecked;a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction Ec(a,b,c){if(\"number\"!==b||a.ownerDocument.activeElement!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var Gc={change:{phasedRegistrationNames:{bubbled:\"onChange\",captured:\"onChangeCapture\"},dependencies:\"blur change click focus input keydown keyup selectionchange\".split(\" \")}};function Hc(a,b,c){a=A.getPooled(Gc.change,a,b,c);a.type=\"change\";Ib(c);Ra(a);return a}var Jc=null,Kc=null;function Lc(a){Ea(a)}\nfunction Mc(a){var b=Ka(a);if(Wb(b))return a}function Nc(a,b){if(\"change\"===a)return b}var Oc=!1;Sa&&(Oc=Sb(\"input\")&&(!document.documentMode||9<document.documentMode));function Pc(){Jc&&(Jc.detachEvent(\"onpropertychange\",Qc),Kc=Jc=null)}function Qc(a){\"value\"===a.propertyName&&Mc(Kc)&&(a=Hc(Kc,a,Rb(a)),Ob(Lc,a))}function Rc(a,b,c){\"focus\"===a?(Pc(),Jc=b,Kc=c,Jc.attachEvent(\"onpropertychange\",Qc)):\"blur\"===a&&Pc()}function Sc(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return Mc(Kc)}\nfunction Tc(a,b){if(\"click\"===a)return Mc(b)}function Uc(a,b){if(\"input\"===a||\"change\"===a)return Mc(b)}\nvar Vc={eventTypes:Gc,_isInputEventSupported:Oc,extractEvents:function(a,b,c,d){var e=b?Ka(b):window,f=void 0,g=void 0,h=e.nodeName&&e.nodeName.toLowerCase();\"select\"===h||\"input\"===h&&\"file\"===e.type?f=Nc:Qb(e)?Oc?f=Uc:(f=Sc,g=Rc):(h=e.nodeName)&&\"input\"===h.toLowerCase()&&(\"checkbox\"===e.type||\"radio\"===e.type)&&(f=Tc);if(f&&(f=f(a,b)))return Hc(f,c,d);g&&g(a,e,b);\"blur\"===a&&(a=e._wrapperState)&&a.controlled&&\"number\"===e.type&&Ec(e,\"number\",e.value)}},Wc=A.extend({view:null,detail:null}),Xc={Alt:\"altKey\",\nControl:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Yc(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Xc[a])?!!b[a]:!1}function Zc(){return Yc}\nvar $c=0,ad=0,bd=!1,cd=!1,dd=Wc.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:Zc,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)},movementX:function(a){if(\"movementX\"in a)return a.movementX;var b=$c;$c=a.screenX;return bd?\"mousemove\"===a.type?a.screenX-b:0:(bd=!0,0)},movementY:function(a){if(\"movementY\"in a)return a.movementY;\nvar b=ad;ad=a.screenY;return cd?\"mousemove\"===a.type?a.screenY-b:0:(cd=!0,0)}}),ed=dd.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),fd={mouseEnter:{registrationName:\"onMouseEnter\",dependencies:[\"mouseout\",\"mouseover\"]},mouseLeave:{registrationName:\"onMouseLeave\",dependencies:[\"mouseout\",\"mouseover\"]},pointerEnter:{registrationName:\"onPointerEnter\",dependencies:[\"pointerout\",\"pointerover\"]},pointerLeave:{registrationName:\"onPointerLeave\",\ndependencies:[\"pointerout\",\"pointerover\"]}},gd={eventTypes:fd,extractEvents:function(a,b,c,d){var e=\"mouseover\"===a||\"pointerover\"===a,f=\"mouseout\"===a||\"pointerout\"===a;if(e&&(c.relatedTarget||c.fromElement)||!f&&!e)return null;e=d.window===d?d:(e=d.ownerDocument)?e.defaultView||e.parentWindow:window;f?(f=b,b=(b=c.relatedTarget||c.toElement)?Ia(b):null):f=null;if(f===b)return null;var g=void 0,h=void 0,k=void 0,l=void 0;if(\"mouseout\"===a||\"mouseover\"===a)g=dd,h=fd.mouseLeave,k=fd.mouseEnter,l=\"mouse\";\nelse if(\"pointerout\"===a||\"pointerover\"===a)g=ed,h=fd.pointerLeave,k=fd.pointerEnter,l=\"pointer\";var m=null==f?e:Ka(f);e=null==b?e:Ka(b);a=g.getPooled(h,f,c,d);a.type=l+\"leave\";a.target=m;a.relatedTarget=e;c=g.getPooled(k,b,c,d);c.type=l+\"enter\";c.target=e;c.relatedTarget=m;d=b;if(f&&d)a:{b=f;e=d;l=0;for(g=b;g;g=Ma(g))l++;g=0;for(k=e;k;k=Ma(k))g++;for(;0<l-g;)b=Ma(b),l--;for(;0<g-l;)e=Ma(e),g--;for(;l--;){if(b===e||b===e.alternate)break a;b=Ma(b);e=Ma(e)}b=null}else b=null;e=b;for(b=[];f&&f!==e;){l=\nf.alternate;if(null!==l&&l===e)break;b.push(f);f=Ma(f)}for(f=[];d&&d!==e;){l=d.alternate;if(null!==l&&l===e)break;f.push(d);d=Ma(d)}for(d=0;d<b.length;d++)Pa(b[d],\"bubbled\",a);for(d=f.length;0<d--;)Pa(f[d],\"captured\",c);return[a,c]}},hd=Object.prototype.hasOwnProperty;function id(a,b){return a===b?0!==a||0!==b||1/a===1/b:a!==a&&b!==b}\nfunction jd(a,b){if(id(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!hd.call(b,c[d])||!id(a[c[d]],b[c[d]]))return!1;return!0}function kd(a){var b=a;if(a.alternate)for(;b.return;)b=b.return;else{if(0!==(b.effectTag&2))return 1;for(;b.return;)if(b=b.return,0!==(b.effectTag&2))return 1}return 3===b.tag?2:3}function ld(a){2!==kd(a)?t(\"188\"):void 0}\nfunction md(a){var b=a.alternate;if(!b)return b=kd(a),3===b?t(\"188\"):void 0,1===b?null:a;for(var c=a,d=b;;){var e=c.return,f=e?e.alternate:null;if(!e||!f)break;if(e.child===f.child){for(var g=e.child;g;){if(g===c)return ld(e),a;if(g===d)return ld(e),b;g=g.sibling}t(\"188\")}if(c.return!==d.return)c=e,d=f;else{g=!1;for(var h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===c){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}g?\nvoid 0:t(\"189\")}}c.alternate!==d?t(\"190\"):void 0}3!==c.tag?t(\"188\"):void 0;return c.stateNode.current===c?a:b}function nd(a){a=md(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nvar od=A.extend({animationName:null,elapsedTime:null,pseudoElement:null}),pd=A.extend({clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),qd=Wc.extend({relatedTarget:null});function rd(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}\nvar sd={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},td={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",\n116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},ud=Wc.extend({key:function(a){if(a.key){var b=sd[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=rd(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?td[a.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:Zc,charCode:function(a){return\"keypress\"===\na.type?rd(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===a.type?rd(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),vd=dd.extend({dataTransfer:null}),wd=Wc.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:Zc}),xd=A.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),yd=dd.extend({deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in\na?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null}),zd=[[\"abort\",\"abort\"],[Ya,\"animationEnd\"],[Za,\"animationIteration\"],[$a,\"animationStart\"],[\"canplay\",\"canPlay\"],[\"canplaythrough\",\"canPlayThrough\"],[\"drag\",\"drag\"],[\"dragenter\",\"dragEnter\"],[\"dragexit\",\"dragExit\"],[\"dragleave\",\"dragLeave\"],[\"dragover\",\"dragOver\"],[\"durationchange\",\"durationChange\"],[\"emptied\",\"emptied\"],[\"encrypted\",\"encrypted\"],\n[\"ended\",\"ended\"],[\"error\",\"error\"],[\"gotpointercapture\",\"gotPointerCapture\"],[\"load\",\"load\"],[\"loadeddata\",\"loadedData\"],[\"loadedmetadata\",\"loadedMetadata\"],[\"loadstart\",\"loadStart\"],[\"lostpointercapture\",\"lostPointerCapture\"],[\"mousemove\",\"mouseMove\"],[\"mouseout\",\"mouseOut\"],[\"mouseover\",\"mouseOver\"],[\"playing\",\"playing\"],[\"pointermove\",\"pointerMove\"],[\"pointerout\",\"pointerOut\"],[\"pointerover\",\"pointerOver\"],[\"progress\",\"progress\"],[\"scroll\",\"scroll\"],[\"seeking\",\"seeking\"],[\"stalled\",\"stalled\"],\n[\"suspend\",\"suspend\"],[\"timeupdate\",\"timeUpdate\"],[\"toggle\",\"toggle\"],[\"touchmove\",\"touchMove\"],[ab,\"transitionEnd\"],[\"waiting\",\"waiting\"],[\"wheel\",\"wheel\"]],Ad={},Bd={};function Cd(a,b){var c=a[0];a=a[1];var d=\"on\"+(a[0].toUpperCase()+a.slice(1));b={phasedRegistrationNames:{bubbled:d,captured:d+\"Capture\"},dependencies:[c],isInteractive:b};Ad[a]=b;Bd[c]=b}\n[[\"blur\",\"blur\"],[\"cancel\",\"cancel\"],[\"click\",\"click\"],[\"close\",\"close\"],[\"contextmenu\",\"contextMenu\"],[\"copy\",\"copy\"],[\"cut\",\"cut\"],[\"auxclick\",\"auxClick\"],[\"dblclick\",\"doubleClick\"],[\"dragend\",\"dragEnd\"],[\"dragstart\",\"dragStart\"],[\"drop\",\"drop\"],[\"focus\",\"focus\"],[\"input\",\"input\"],[\"invalid\",\"invalid\"],[\"keydown\",\"keyDown\"],[\"keypress\",\"keyPress\"],[\"keyup\",\"keyUp\"],[\"mousedown\",\"mouseDown\"],[\"mouseup\",\"mouseUp\"],[\"paste\",\"paste\"],[\"pause\",\"pause\"],[\"play\",\"play\"],[\"pointercancel\",\"pointerCancel\"],\n[\"pointerdown\",\"pointerDown\"],[\"pointerup\",\"pointerUp\"],[\"ratechange\",\"rateChange\"],[\"reset\",\"reset\"],[\"seeked\",\"seeked\"],[\"submit\",\"submit\"],[\"touchcancel\",\"touchCancel\"],[\"touchend\",\"touchEnd\"],[\"touchstart\",\"touchStart\"],[\"volumechange\",\"volumeChange\"]].forEach(function(a){Cd(a,!0)});zd.forEach(function(a){Cd(a,!1)});\nvar Dd={eventTypes:Ad,isInteractiveTopLevelEventType:function(a){a=Bd[a];return void 0!==a&&!0===a.isInteractive},extractEvents:function(a,b,c,d){var e=Bd[a];if(!e)return null;switch(a){case \"keypress\":if(0===rd(c))return null;case \"keydown\":case \"keyup\":a=ud;break;case \"blur\":case \"focus\":a=qd;break;case \"click\":if(2===c.button)return null;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":a=dd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":a=\nvd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":a=wd;break;case Ya:case Za:case $a:a=od;break;case ab:a=xd;break;case \"scroll\":a=Wc;break;case \"wheel\":a=yd;break;case \"copy\":case \"cut\":case \"paste\":a=pd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":a=ed;break;default:a=A}b=a.getPooled(e,b,c,d);Ra(b);return b}},Ed=Dd.isInteractiveTopLevelEventType,\nFd=[];function Gd(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d;for(d=c;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo;if(!d)break;a.ancestors.push(c);c=Ia(d)}while(c);for(c=0;c<a.ancestors.length;c++){b=a.ancestors[c];var e=Rb(a.nativeEvent);d=a.topLevelType;for(var f=a.nativeEvent,g=null,h=0;h<pa.length;h++){var k=pa[h];k&&(k=k.extractEvents(d,b,f,e))&&(g=ya(g,k))}Ea(g)}}var Hd=!0;\nfunction G(a,b){if(!b)return null;var c=(Ed(a)?Id:Jd).bind(null,a);b.addEventListener(a,c,!1)}function Kd(a,b){if(!b)return null;var c=(Ed(a)?Id:Jd).bind(null,a);b.addEventListener(a,c,!0)}function Id(a,b){Lb(Jd,a,b)}\nfunction Jd(a,b){if(Hd){var c=Rb(b);c=Ia(c);null===c||\"number\"!==typeof c.tag||2===kd(c)||(c=null);if(Fd.length){var d=Fd.pop();d.topLevelType=a;d.nativeEvent=b;d.targetInst=c;a=d}else a={topLevelType:a,nativeEvent:b,targetInst:c,ancestors:[]};try{Ob(Gd,a)}finally{a.topLevelType=null,a.nativeEvent=null,a.targetInst=null,a.ancestors.length=0,10>Fd.length&&Fd.push(a)}}}var Ld={},Md=0,Nd=\"_reactListenersID\"+(\"\"+Math.random()).slice(2);\nfunction Od(a){Object.prototype.hasOwnProperty.call(a,Nd)||(a[Nd]=Md++,Ld[a[Nd]]={});return Ld[a[Nd]]}function Pd(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}function Qd(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Rd(a,b){var c=Qd(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Qd(c)}}function Sd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Sd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Td(){for(var a=window,b=Pd();b instanceof a.HTMLIFrameElement;){try{a=b.contentDocument.defaultView}catch(c){break}b=Pd(a.document)}return b}function Ud(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Vd=Sa&&\"documentMode\"in document&&11>=document.documentMode,Wd={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},Xd=null,Yd=null,Zd=null,$d=!1;\nfunction ae(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if($d||null==Xd||Xd!==Pd(c))return null;c=Xd;\"selectionStart\"in c&&Ud(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return Zd&&jd(Zd,c)?null:(Zd=c,a=A.getPooled(Wd.select,Yd,a,b),a.type=\"select\",a.target=Xd,Ra(a),a)}\nvar be={eventTypes:Wd,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=Od(e);f=ta.onSelect;for(var g=0;g<f.length;g++){var h=f[g];if(!e.hasOwnProperty(h)||!e[h]){e=!1;break a}}e=!0}f=!e}if(f)return null;e=b?Ka(b):window;switch(a){case \"focus\":if(Qb(e)||\"true\"===e.contentEditable)Xd=e,Yd=b,Zd=null;break;case \"blur\":Zd=Yd=Xd=null;break;case \"mousedown\":$d=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":return $d=!1,ae(c,d);case \"selectionchange\":if(Vd)break;\ncase \"keydown\":case \"keyup\":return ae(c,d)}return null}};Ca.injectEventPluginOrder(\"ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin\".split(\" \"));ua=La;va=Ja;wa=Ka;Ca.injectEventPluginsByName({SimpleEventPlugin:Dd,EnterLeaveEventPlugin:gd,ChangeEventPlugin:Vc,SelectEventPlugin:be,BeforeInputEventPlugin:Bb});function ce(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}\nfunction ee(a,b){a=n({children:void 0},b);if(b=ce(b.children))a.children=b;return a}function fe(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+zc(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction ge(a,b){null!=b.dangerouslySetInnerHTML?t(\"91\"):void 0;return n({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function he(a,b){var c=b.value;null==c&&(c=b.defaultValue,b=b.children,null!=b&&(null!=c?t(\"92\"):void 0,Array.isArray(b)&&(1>=b.length?void 0:t(\"93\"),b=b[0]),c=b),null==c&&(c=\"\"));a._wrapperState={initialValue:zc(c)}}\nfunction ie(a,b){var c=zc(b.value),d=zc(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function je(a){var b=a.textContent;b===a._wrapperState.initialValue&&(a.value=b)}var ke={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction le(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function me(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?le(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar ne=void 0,oe=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==ke.svg||\"innerHTML\"in a)a.innerHTML=b;else{ne=ne||document.createElement(\"div\");ne.innerHTML=\"<svg>\"+b+\"</svg>\";for(b=ne.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pe(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qe={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},re=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qe).forEach(function(a){re.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qe[b]=qe[a]})});function se(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qe.hasOwnProperty(a)&&qe[a]?(\"\"+b).trim():b+\"px\"}\nfunction te(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=se(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ue=n({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ve(a,b){b&&(ue[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML?t(\"137\",a,\"\"):void 0),null!=b.dangerouslySetInnerHTML&&(null!=b.children?t(\"60\"):void 0,\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML?void 0:t(\"61\")),null!=b.style&&\"object\"!==typeof b.style?t(\"62\",\"\"):void 0)}\nfunction we(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}\nfunction xe(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=Od(a);b=ta[b];for(var d=0;d<b.length;d++){var e=b[d];if(!c.hasOwnProperty(e)||!c[e]){switch(e){case \"scroll\":Kd(\"scroll\",a);break;case \"focus\":case \"blur\":Kd(\"focus\",a);Kd(\"blur\",a);c.blur=!0;c.focus=!0;break;case \"cancel\":case \"close\":Sb(e)&&Kd(e,a);break;case \"invalid\":case \"submit\":case \"reset\":break;default:-1===bb.indexOf(e)&&G(e,a)}c[e]=!0}}}function ye(){}var ze=null,Ae=null;\nfunction Be(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}function Ce(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var De=\"function\"===typeof setTimeout?setTimeout:void 0,Ee=\"function\"===typeof clearTimeout?clearTimeout:void 0;\nfunction Fe(a){for(a=a.nextSibling;a&&1!==a.nodeType&&3!==a.nodeType;)a=a.nextSibling;return a}function Ge(a){for(a=a.firstChild;a&&1!==a.nodeType&&3!==a.nodeType;)a=a.nextSibling;return a}new Set;var He=[],Ie=-1;function H(a){0>Ie||(a.current=He[Ie],He[Ie]=null,Ie--)}function I(a,b){Ie++;He[Ie]=a.current;a.current=b}var Je={},J={current:Je},K={current:!1},Ke=Je;\nfunction Le(a,b){var c=a.type.contextTypes;if(!c)return Je;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Me(a){H(K,a);H(J,a)}function Ne(a){H(K,a);H(J,a)}\nfunction Oe(a,b,c){J.current!==Je?t(\"168\"):void 0;I(J,b,a);I(K,c,a)}function Pe(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)e in a?void 0:t(\"108\",mc(b)||\"Unknown\",e);return n({},c,d)}function Qe(a){var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||Je;Ke=J.current;I(J,b,a);I(K,K.current,a);return!0}\nfunction Re(a,b,c){var d=a.stateNode;d?void 0:t(\"169\");c?(b=Pe(a,b,Ke),d.__reactInternalMemoizedMergedChildContext=b,H(K,a),H(J,a),I(J,b,a)):H(K,a);I(K,c,a)}var Se=null,Te=null;function Ue(a){return function(b){try{return a(b)}catch(c){}}}\nfunction Ve(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);Se=Ue(function(a){return b.onCommitFiberRoot(c,a)});Te=Ue(function(a){return b.onCommitFiberUnmount(c,a)})}catch(d){}return!0}\nfunction We(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.firstContextDependency=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childExpirationTime=this.expirationTime=0;this.alternate=null}function M(a,b,c,d){return new We(a,b,c,d)}\nfunction Xe(a){a=a.prototype;return!(!a||!a.isReactComponent)}function Ye(a){if(\"function\"===typeof a)return Xe(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===gc)return 11;if(a===ic)return 14}return 2}\nfunction Ze(a,b){var c=a.alternate;null===c?(c=M(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childExpirationTime=a.childExpirationTime;c.expirationTime=a.expirationTime;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;c.firstContextDependency=a.firstContextDependency;c.sibling=a.sibling;\nc.index=a.index;c.ref=a.ref;return c}\nfunction $e(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)Xe(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ac:return af(c.children,e,f,b);case fc:return bf(c,e|3,f,b);case bc:return bf(c,e|2,f,b);case cc:return a=M(12,c,b,e|4),a.elementType=cc,a.type=cc,a.expirationTime=f,a;case hc:return a=M(13,c,b,e),a.elementType=hc,a.type=hc,a.expirationTime=f,a;default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case dc:g=10;break a;case ec:g=9;break a;case gc:g=11;break a;case ic:g=\n14;break a;case jc:g=16;d=null;break a}t(\"130\",null==a?a:typeof a,\"\")}b=M(g,c,b,e);b.elementType=a;b.type=d;b.expirationTime=f;return b}function af(a,b,c,d){a=M(7,a,d,b);a.expirationTime=c;return a}function bf(a,b,c,d){a=M(8,a,d,b);b=0===(b&1)?bc:fc;a.elementType=b;a.type=b;a.expirationTime=c;return a}function cf(a,b,c){a=M(6,a,null,b);a.expirationTime=c;return a}\nfunction df(a,b,c){b=M(4,null!==a.children?a.children:[],a.key,b);b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}function ef(a,b){a.didError=!1;var c=a.earliestPendingTime;0===c?a.earliestPendingTime=a.latestPendingTime=b:c<b?a.earliestPendingTime=b:a.latestPendingTime>b&&(a.latestPendingTime=b);ff(b,a)}\nfunction gf(a,b){a.didError=!1;var c=a.latestPingedTime;0!==c&&c>=b&&(a.latestPingedTime=0);c=a.earliestPendingTime;var d=a.latestPendingTime;c===b?a.earliestPendingTime=d===b?a.latestPendingTime=0:d:d===b&&(a.latestPendingTime=c);c=a.earliestSuspendedTime;d=a.latestSuspendedTime;0===c?a.earliestSuspendedTime=a.latestSuspendedTime=b:c<b?a.earliestSuspendedTime=b:d>b&&(a.latestSuspendedTime=b);ff(b,a)}\nfunction hf(a,b){var c=a.earliestPendingTime;a=a.earliestSuspendedTime;c>b&&(b=c);a>b&&(b=a);return b}function ff(a,b){var c=b.earliestSuspendedTime,d=b.latestSuspendedTime,e=b.earliestPendingTime,f=b.latestPingedTime;e=0!==e?e:f;0===e&&(0===a||d<a)&&(e=d);a=e;0!==a&&c>a&&(a=c);b.nextExpirationTimeToWorkOn=e;b.expirationTime=a}var jf=!1;\nfunction kf(a){return{baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function lf(a){return{baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}\nfunction mf(a){return{expirationTime:a,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function nf(a,b){null===a.lastUpdate?a.firstUpdate=a.lastUpdate=b:(a.lastUpdate.next=b,a.lastUpdate=b)}\nfunction of(a,b){var c=a.alternate;if(null===c){var d=a.updateQueue;var e=null;null===d&&(d=a.updateQueue=kf(a.memoizedState))}else d=a.updateQueue,e=c.updateQueue,null===d?null===e?(d=a.updateQueue=kf(a.memoizedState),e=c.updateQueue=kf(c.memoizedState)):d=a.updateQueue=lf(e):null===e&&(e=c.updateQueue=lf(d));null===e||d===e?nf(d,b):null===d.lastUpdate||null===e.lastUpdate?(nf(d,b),nf(e,b)):(nf(d,b),e.lastUpdate=b)}\nfunction pf(a,b){var c=a.updateQueue;c=null===c?a.updateQueue=kf(a.memoizedState):qf(a,c);null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=b:(c.lastCapturedUpdate.next=b,c.lastCapturedUpdate=b)}function qf(a,b){var c=a.alternate;null!==c&&b===c.updateQueue&&(b=a.updateQueue=lf(b));return b}\nfunction rf(a,b,c,d,e,f){switch(c.tag){case 1:return a=c.payload,\"function\"===typeof a?a.call(f,d,e):a;case 3:a.effectTag=a.effectTag&-2049|64;case 0:a=c.payload;e=\"function\"===typeof a?a.call(f,d,e):a;if(null===e||void 0===e)break;return n({},d,e);case 2:jf=!0}return d}\nfunction sf(a,b,c,d,e){jf=!1;b=qf(a,b);for(var f=b.baseState,g=null,h=0,k=b.firstUpdate,l=f;null!==k;){var m=k.expirationTime;m<e?(null===g&&(g=k,f=l),h<m&&(h=m)):(l=rf(a,b,k,l,c,d),null!==k.callback&&(a.effectTag|=32,k.nextEffect=null,null===b.lastEffect?b.firstEffect=b.lastEffect=k:(b.lastEffect.nextEffect=k,b.lastEffect=k)));k=k.next}m=null;for(k=b.firstCapturedUpdate;null!==k;){var q=k.expirationTime;q<e?(null===m&&(m=k,null===g&&(f=l)),h<q&&(h=q)):(l=rf(a,b,k,l,c,d),null!==k.callback&&(a.effectTag|=\n32,k.nextEffect=null,null===b.lastCapturedEffect?b.firstCapturedEffect=b.lastCapturedEffect=k:(b.lastCapturedEffect.nextEffect=k,b.lastCapturedEffect=k)));k=k.next}null===g&&(b.lastUpdate=null);null===m?b.lastCapturedUpdate=null:a.effectTag|=32;null===g&&null===m&&(f=l);b.baseState=f;b.firstUpdate=g;b.firstCapturedUpdate=m;a.expirationTime=h;a.memoizedState=l}\nfunction tf(a,b,c){null!==b.firstCapturedUpdate&&(null!==b.lastUpdate&&(b.lastUpdate.next=b.firstCapturedUpdate,b.lastUpdate=b.lastCapturedUpdate),b.firstCapturedUpdate=b.lastCapturedUpdate=null);uf(b.firstEffect,c);b.firstEffect=b.lastEffect=null;uf(b.firstCapturedEffect,c);b.firstCapturedEffect=b.lastCapturedEffect=null}function uf(a,b){for(;null!==a;){var c=a.callback;if(null!==c){a.callback=null;var d=b;\"function\"!==typeof c?t(\"191\",c):void 0;c.call(d)}a=a.nextEffect}}\nfunction vf(a,b){return{value:a,source:b,stack:nc(b)}}var wf={current:null},xf=null,yf=null,zf=null;function Af(a,b){var c=a.type._context;I(wf,c._currentValue,a);c._currentValue=b}function Bf(a){var b=wf.current;H(wf,a);a.type._context._currentValue=b}function Cf(a){xf=a;zf=yf=null;a.firstContextDependency=null}\nfunction Df(a,b){if(zf!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)zf=a,b=1073741823;b={context:a,observedBits:b,next:null};null===yf?(null===xf?t(\"293\"):void 0,xf.firstContextDependency=yf=b):yf=yf.next=b}return a._currentValue}var Ef={},N={current:Ef},Ff={current:Ef},Gf={current:Ef};function Hf(a){a===Ef?t(\"174\"):void 0;return a}\nfunction If(a,b){I(Gf,b,a);I(Ff,a,a);I(N,Ef,a);var c=b.nodeType;switch(c){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:me(null,\"\");break;default:c=8===c?b.parentNode:b,b=c.namespaceURI||null,c=c.tagName,b=me(b,c)}H(N,a);I(N,b,a)}function Jf(a){H(N,a);H(Ff,a);H(Gf,a)}function Kf(a){Hf(Gf.current);var b=Hf(N.current);var c=me(b,a.type);b!==c&&(I(Ff,a,a),I(N,c,a))}function Lf(a){Ff.current===a&&(H(N,a),H(Ff,a))}\nfunction O(a,b){if(a&&a.defaultProps){b=n({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c])}return b}function Mf(a){var b=a._result;switch(a._status){case 1:return b;case 2:throw b;case 0:throw b;default:throw a._status=0,b=a._ctor,b=b(),b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)}),a._result=b,b;}}var Nf=Xb.ReactCurrentOwner,Of=(new aa.Component).refs;\nfunction Pf(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:n({},b,c);a.memoizedState=c;d=a.updateQueue;null!==d&&0===a.expirationTime&&(d.baseState=c)}\nvar Uf={isMounted:function(a){return(a=a._reactInternalFiber)?2===kd(a):!1},enqueueSetState:function(a,b,c){a=a._reactInternalFiber;var d=Qf();d=Rf(d,a);var e=mf(d);e.payload=b;void 0!==c&&null!==c&&(e.callback=c);Sf();of(a,e);Tf(a,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternalFiber;var d=Qf();d=Rf(d,a);var e=mf(d);e.tag=1;e.payload=b;void 0!==c&&null!==c&&(e.callback=c);Sf();of(a,e);Tf(a,d)},enqueueForceUpdate:function(a,b){a=a._reactInternalFiber;var c=Qf();c=Rf(c,a);var d=mf(c);d.tag=\n2;void 0!==b&&null!==b&&(d.callback=b);Sf();of(a,d);Tf(a,c)}};function Vf(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!jd(c,d)||!jd(e,f):!0}\nfunction Wf(a,b,c){var d=!1,e=Je;var f=b.contextType;\"object\"===typeof f&&null!==f?f=Nf.currentDispatcher.readContext(f):(e=L(b)?Ke:J.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Le(a,e):Je);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Uf;a.stateNode=b;b._reactInternalFiber=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Xf(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Uf.enqueueReplaceState(b,b.state,null)}\nfunction Yf(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Of;var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=Nf.currentDispatcher.readContext(f):(f=L(b)?Ke:J.current,e.context=Le(a,f));f=a.updateQueue;null!==f&&(sf(a,f,c,e,d),e.state=a.memoizedState);f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Pf(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\n\"function\"!==typeof e.componentWillMount||(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Uf.enqueueReplaceState(e,e.state,null),f=a.updateQueue,null!==f&&(sf(a,f,c,e,d),e.state=a.memoizedState));\"function\"===typeof e.componentDidMount&&(a.effectTag|=4)}var Zf=Array.isArray;\nfunction $f(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;var d=void 0;c&&(1!==c.tag?t(\"289\"):void 0,d=c.stateNode);d?void 0:t(\"147\",a);var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===Of&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}\"string\"!==typeof a?t(\"284\"):void 0;c._owner?void 0:t(\"290\",a)}return a}\nfunction ag(a,b){\"textarea\"!==a.type&&t(\"31\",\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b,\"\")}\nfunction bg(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.effectTag=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b,c){a=Ze(a,b,c);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.effectTag=\n2,c):d;b.effectTag=2;return c}function g(b){a&&null===b.alternate&&(b.effectTag=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=cf(c,a.mode,d),b.return=a,b;b=e(b,c,d);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props,d),d.ref=$f(a,b,c),d.return=a,d;d=$e(c.type,c.key,c.props,null,a.mode,d);d.ref=$f(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==\nc.implementation)return b=df(c,a.mode,d),b.return=a,b;b=e(b,c.children||[],d);b.return=a;return b}function m(a,b,c,d,g){if(null===b||7!==b.tag)return b=af(c,a.mode,d,g),b.return=a,b;b=e(b,c,d);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=cf(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case Zb:return c=$e(b.type,b.key,b.props,null,a.mode,c),c.ref=$f(a,null,b),c.return=a,c;case $b:return b=df(b,a.mode,c),b.return=a,b}if(Zf(b)||\nlc(b))return b=af(b,a.mode,c,null),b.return=a,b;ag(a,b)}return null}function x(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case Zb:return c.key===e?c.type===ac?m(a,b,c.props.children,d,e):k(a,b,c,d):null;case $b:return c.key===e?l(a,b,c,d):null}if(Zf(c)||lc(c))return null!==e?null:m(a,b,c,d,null);ag(a,c)}return null}function z(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=\na.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case Zb:return a=a.get(null===d.key?c:d.key)||null,d.type===ac?m(b,a,d.props.children,e,d.key):k(b,a,d,e);case $b:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e)}if(Zf(d)||lc(d))return a=a.get(c)||null,m(b,a,d,e,null);ag(b,d)}return null}function C(e,g,h,k){for(var l=null,r=null,m=g,u=g=0,p=null;null!==m&&u<h.length;u++){m.index>u?(p=m,m=null):p=m.sibling;var v=x(e,m,h[u],k);if(null===v){null===m&&(m=p);break}a&&\nm&&null===v.alternate&&b(e,m);g=f(v,g,u);null===r?l=v:r.sibling=v;r=v;m=p}if(u===h.length)return c(e,m),l;if(null===m){for(;u<h.length;u++)if(m=q(e,h[u],k))g=f(m,g,u),null===r?l=m:r.sibling=m,r=m;return l}for(m=d(e,m);u<h.length;u++)if(p=z(m,e,u,h[u],k))a&&null!==p.alternate&&m.delete(null===p.key?u:p.key),g=f(p,g,u),null===r?l=p:r.sibling=p,r=p;a&&m.forEach(function(a){return b(e,a)});return l}function Q(e,g,h,k){var l=lc(h);\"function\"!==typeof l?t(\"150\"):void 0;h=l.call(h);null==h?t(\"151\"):void 0;\nfor(var m=l=null,r=g,u=g=0,p=null,v=h.next();null!==r&&!v.done;u++,v=h.next()){r.index>u?(p=r,r=null):p=r.sibling;var y=x(e,r,v.value,k);if(null===y){r||(r=p);break}a&&r&&null===y.alternate&&b(e,r);g=f(y,g,u);null===m?l=y:m.sibling=y;m=y;r=p}if(v.done)return c(e,r),l;if(null===r){for(;!v.done;u++,v=h.next())v=q(e,v.value,k),null!==v&&(g=f(v,g,u),null===m?l=v:m.sibling=v,m=v);return l}for(r=d(e,r);!v.done;u++,v=h.next())v=z(r,e,u,v.value,k),null!==v&&(a&&null!==v.alternate&&r.delete(null===v.key?u:\nv.key),g=f(v,g,u),null===m?l=v:m.sibling=v,m=v);a&&r.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ac&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Zb:a:{l=f.key;for(k=d;null!==k;){if(k.key===l)if(7===k.tag?f.type===ac:k.elementType===f.type){c(a,k.sibling);d=e(k,f.type===ac?f.props.children:f.props,h);d.ref=$f(a,k,f);d.return=a;a=d;break a}else{c(a,k);break}else b(a,k);k=\nk.sibling}f.type===ac?(d=af(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=$e(f.type,f.key,f.props,null,a.mode,h),h.ref=$f(a,d,f),h.return=a,a=h)}return g(a);case $b:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=df(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\n\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h),d.return=a,a=d):(c(a,d),d=cf(f,a.mode,h),d.return=a,a=d),g(a);if(Zf(f))return C(a,d,f,h);if(lc(f))return Q(a,d,f,h);l&&ag(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:h=a.type,t(\"152\",h.displayName||h.name||\"Component\")}return c(a,d)}}var cg=bg(!0),dg=bg(!1),eg=null,fg=null,gg=!1;\nfunction hg(a,b){var c=M(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function ig(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;default:return!1}}\nfunction jg(a){if(gg){var b=fg;if(b){var c=b;if(!ig(a,b)){b=Fe(c);if(!b||!ig(a,b)){a.effectTag|=2;gg=!1;eg=a;return}hg(eg,c)}eg=a;fg=Ge(b)}else a.effectTag|=2,gg=!1,eg=a}}function kg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag;)a=a.return;eg=a}function lg(a){if(a!==eg)return!1;if(!gg)return kg(a),gg=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!Ce(b,a.memoizedProps))for(b=fg;b;)hg(a,b),b=Fe(b);kg(a);fg=eg?Fe(a.stateNode):null;return!0}function mg(){fg=eg=null;gg=!1}var ng=Xb.ReactCurrentOwner;\nfunction P(a,b,c,d){b.child=null===a?dg(b,null,c,d):cg(b,a.child,c,d)}function og(a,b,c,d,e){c=c.render;var f=b.ref;Cf(b,e);d=c(d,f);b.effectTag|=1;P(a,b,d,e);return b.child}\nfunction pg(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!Xe(g)&&void 0===g.defaultProps&&null===c.compare)return b.tag=15,b.type=g,qg(a,b,g,d,e,f);a=$e(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(e<f&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:jd,c(e,d)&&a.ref===b.ref))return rg(a,b,f);a=Ze(g,d,f);a.ref=b.ref;a.return=b;return b.child=a}\nfunction qg(a,b,c,d,e,f){return null!==a&&e<f&&jd(a.memoizedProps,d)&&a.ref===b.ref?rg(a,b,f):sg(a,b,c,d,f)}function tg(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.effectTag|=128}function sg(a,b,c,d,e){var f=L(c)?Ke:J.current;f=Le(b,f);Cf(b,e);c=c(d,f);b.effectTag|=1;P(a,b,c,e);return b.child}\nfunction ug(a,b,c,d,e){if(L(c)){var f=!0;Qe(b)}else f=!1;Cf(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),Wf(b,c,d,e),Yf(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=Nf.currentDispatcher.readContext(l):(l=L(c)?Ke:J.current,l=Le(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Xf(b,g,d,l);jf=!1;var x=b.memoizedState;k=g.state=x;var z=b.updateQueue;null!==z&&(sf(b,z,d,g,e),k=b.memoizedState);h!==d||x!==k||K.current||jf?(\"function\"===typeof m&&(Pf(b,c,m,d),k=b.memoizedState),(h=jf||Vf(b,c,h,d,x,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&\ng.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.effectTag|=4)):(\"function\"===typeof g.componentDidMount&&(b.effectTag|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.effectTag|=4),d=!1)}else g=b.stateNode,h=b.memoizedProps,g.props=b.type===b.elementType?h:O(b.type,h),k=g.context,l=c.contextType,\"object\"===typeof l&&null!==l?l=Nf.currentDispatcher.readContext(l):(l=L(c)?Ke:J.current,l=Le(b,l)),m=c.getDerivedStateFromProps,\n(q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Xf(b,g,d,l),jf=!1,k=b.memoizedState,x=g.state=k,z=b.updateQueue,null!==z&&(sf(b,z,d,g,e),x=b.memoizedState),h!==d||k!==x||K.current||jf?(\"function\"===typeof m&&(Pf(b,c,m,d),x=b.memoizedState),(m=jf||Vf(b,c,h,d,k,x,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||\n(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,x,l),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,x,l)),\"function\"===typeof g.componentDidUpdate&&(b.effectTag|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.effectTag|=256)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),b.memoizedProps=\nd,b.memoizedState=x),g.props=d,g.state=x,g.context=l,d=m):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),d=!1);return vg(a,b,c,d,f,e)}\nfunction vg(a,b,c,d,e,f){tg(a,b);var g=0!==(b.effectTag&64);if(!d&&!g)return e&&Re(b,c,!1),rg(a,b,f);d=b.stateNode;ng.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.effectTag|=1;null!==a&&g?(b.child=cg(b,a.child,null,f),b.child=cg(b,null,h,f)):P(a,b,h,f);b.memoizedState=d.state;e&&Re(b,c,!0);return b.child}function wg(a){var b=a.stateNode;b.pendingContext?Oe(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Oe(a,b.context,!1);If(a,b.containerInfo)}\nfunction xg(a,b,c){var d=b.mode,e=b.pendingProps,f=b.memoizedState;if(0===(b.effectTag&64)){f=null;var g=!1}else f={timedOutAt:null!==f?f.timedOutAt:0},g=!0,b.effectTag&=-65;null===a?g?(g=e.fallback,e=af(null,d,0,null),0===(b.mode&1)&&yg(b,e,null!==b.memoizedState?b.child.child:b.child),d=af(g,d,c,null),e.sibling=d,c=e,c.return=d.return=b):c=d=dg(b,null,e.children,c):null!==a.memoizedState?(d=a.child,a=d.sibling,g?(c=e.fallback,e=Ze(d,d.pendingProps,0),e.effectTag|=2,0===(b.mode&1)&&(g=null!==b.memoizedState?\nb.child.child:b.child,g!==d.child&&yg(b,e,g)),d=e.sibling=Ze(a,c,a.expirationTime),d.effectTag|=2,c=e,e.childExpirationTime=0,c.return=d.return=b):(g=a.child,d=cg(b,d.child,e.children,c),cg(b,g,null,c),c=d)):(a=a.child,g?(g=e.fallback,e=af(null,d,0,null),e.effectTag|=2,e.child=a,a.return=e,0===(b.mode&1)&&yg(b,e,null!==b.memoizedState?b.child.child:b.child),d=e.sibling=af(g,d,c,null),d.effectTag|=2,c=e,e.childExpirationTime=0,c.return=d.return=b):d=c=cg(b,a,e.children,c));b.memoizedState=f;b.child=\nc;return d}function yg(a,b,c){for(c=b.child=c;null!==c;)null===b.firstEffect&&(b.firstEffect=c.firstEffect),null!==c.lastEffect&&(null!==b.lastEffect&&(b.lastEffect.nextEffect=c.firstEffect),b.lastEffect=c.lastEffect),1<c.effectTag&&(null!==b.lastEffect?b.lastEffect.nextEffect=c:b.firstEffect=c,b.lastEffect=c),c.return=b,c=c.sibling;a.firstEffect=b.firstEffect;a.lastEffect=b.lastEffect}\nfunction rg(a,b,c){null!==a&&(b.firstContextDependency=a.firstContextDependency);if(b.childExpirationTime<c)return null;null!==a&&b.child!==a.child?t(\"153\"):void 0;if(null!==b.child){a=b.child;c=Ze(a,a.pendingProps,a.expirationTime);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Ze(a,a.pendingProps,a.expirationTime),c.return=b;c.sibling=null}return b.child}\nfunction zg(a,b,c){var d=b.expirationTime;if(null!==a&&a.memoizedProps===b.pendingProps&&!K.current&&d<c){switch(b.tag){case 3:wg(b);mg();break;case 5:Kf(b);break;case 1:L(b.type)&&Qe(b);break;case 4:If(b,b.stateNode.containerInfo);break;case 10:Af(b,b.memoizedProps.value);break;case 13:if(null!==b.memoizedState){d=b.child.childExpirationTime;if(0!==d&&d>=c)return xg(a,b,c);b=rg(a,b,c);return null!==b?b.sibling:null}}return rg(a,b,c)}b.expirationTime=0;switch(b.tag){case 2:d=b.elementType;null!==\na&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;var e=Le(b,J.current);Cf(b,c);e=d(a,e);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;if(L(d)){var f=!0;Qe(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Pf(b,d,g,a);e.updater=Uf;b.stateNode=e;e._reactInternalFiber=b;Yf(b,d,a,c);b=vg(null,b,d,!0,f,c)}else b.tag=0,P(null,b,e,c),b=b.child;\nreturn b;case 16:e=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);f=b.pendingProps;a=Mf(e);b.type=a;e=b.tag=Ye(a);f=O(a,f);g=void 0;switch(e){case 0:g=sg(null,b,a,f,c);break;case 1:g=ug(null,b,a,f,c);break;case 11:g=og(null,b,a,f,c);break;case 14:g=pg(null,b,a,O(a.type,f),d,c);break;default:t(\"283\",a)}return g;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:O(d,e),sg(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:O(d,e),ug(a,b,d,\ne,c);case 3:wg(b);d=b.updateQueue;null===d?t(\"282\"):void 0;e=b.memoizedState;e=null!==e?e.element:null;sf(b,d,b.pendingProps,null,c);d=b.memoizedState.element;if(d===e)mg(),b=rg(a,b,c);else{e=b.stateNode;if(e=(null===a||null===a.child)&&e.hydrate)fg=Ge(b.stateNode.containerInfo),eg=b,e=gg=!0;e?(b.effectTag|=2,b.child=dg(b,null,d,c)):(P(a,b,d,c),mg());b=b.child}return b;case 5:return Kf(b),null===a&&jg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ce(d,e)?g=null:null!==\nf&&Ce(d,f)&&(b.effectTag|=16),tg(a,b),1!==c&&b.mode&1&&e.hidden?(b.expirationTime=1,b=null):(P(a,b,g,c),b=b.child),b;case 6:return null===a&&jg(b),null;case 13:return xg(a,b,c);case 4:return If(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=cg(b,null,d,c):P(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:O(d,e),og(a,b,d,e,c);case 7:return P(a,b,b.pendingProps,c),b.child;case 8:return P(a,b,b.pendingProps.children,c),b.child;case 12:return P(a,b,b.pendingProps.children,\nc),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;Af(b,f);if(null!==g){var h=g.value;f=h===f&&(0!==h||1/h===1/f)||h!==h&&f!==f?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0;if(0===f){if(g.children===e.children&&!K.current){b=rg(a,b,c);break a}}else for(g=b.child,null!==g&&(g.return=b);null!==g;){h=g.firstContextDependency;if(null!==h){do{if(h.context===d&&0!==(h.observedBits&f)){if(1===g.tag){var k=mf(c);k.tag=2;of(g,k)}g.expirationTime<\nc&&(g.expirationTime=c);k=g.alternate;null!==k&&k.expirationTime<c&&(k.expirationTime=c);for(var l=g.return;null!==l;){k=l.alternate;if(l.childExpirationTime<c)l.childExpirationTime=c,null!==k&&k.childExpirationTime<c&&(k.childExpirationTime=c);else if(null!==k&&k.childExpirationTime<c)k.childExpirationTime=c;else break;l=l.return}}k=g.child;h=h.next}while(null!==h)}else k=10===g.tag?g.type===b.type?null:g.child:g.child;if(null!==k)k.return=g;else for(k=g;null!==k;){if(k===b){k=null;break}g=k.sibling;\nif(null!==g){g.return=k.return;k=g;break}k=k.return}g=k}}P(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,Cf(b,c),e=Df(e,f.unstable_observedBits),d=d(e),b.effectTag|=1,P(a,b,d,c),b.child;case 14:return e=b.type,f=O(e.type,b.pendingProps),pg(a,b,e,f,d,c);case 15:return qg(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:O(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),b.tag=1,L(d)?(a=!0,Qe(b)):\na=!1,Cf(b,c),Wf(b,d,e,c),Yf(b,d,e,c),vg(null,b,d,!0,a,c);default:t(\"156\")}}function Ag(a){a.effectTag|=4}var Bg=void 0,Cg=void 0,Gg=void 0,Hg=void 0;Bg=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Cg=function(){};\nGg=function(a,b,c,d,e){var f=a.memoizedProps;if(f!==d){var g=b.stateNode;Hf(N.current);a=null;switch(c){case \"input\":f=Ac(g,f);d=Ac(g,d);a=[];break;case \"option\":f=ee(g,f);d=ee(g,d);a=[];break;case \"select\":f=n({},f,{value:void 0});d=n({},d,{value:void 0});a=[];break;case \"textarea\":f=ge(g,f);d=ge(g,d);a=[];break;default:\"function\"!==typeof f.onClick&&\"function\"===typeof d.onClick&&(g.onclick=ye)}ve(c,d);g=c=void 0;var h=null;for(c in f)if(!d.hasOwnProperty(c)&&f.hasOwnProperty(c)&&null!=f[c])if(\"style\"===\nc){var k=f[c];for(g in k)k.hasOwnProperty(g)&&(h||(h={}),h[g]=\"\")}else\"dangerouslySetInnerHTML\"!==c&&\"children\"!==c&&\"suppressContentEditableWarning\"!==c&&\"suppressHydrationWarning\"!==c&&\"autoFocus\"!==c&&(sa.hasOwnProperty(c)?a||(a=[]):(a=a||[]).push(c,null));for(c in d){var l=d[c];k=null!=f?f[c]:void 0;if(d.hasOwnProperty(c)&&l!==k&&(null!=l||null!=k))if(\"style\"===c)if(k){for(g in k)!k.hasOwnProperty(g)||l&&l.hasOwnProperty(g)||(h||(h={}),h[g]=\"\");for(g in l)l.hasOwnProperty(g)&&k[g]!==l[g]&&(h||\n(h={}),h[g]=l[g])}else h||(a||(a=[]),a.push(c,h)),h=l;else\"dangerouslySetInnerHTML\"===c?(l=l?l.__html:void 0,k=k?k.__html:void 0,null!=l&&k!==l&&(a=a||[]).push(c,\"\"+l)):\"children\"===c?k===l||\"string\"!==typeof l&&\"number\"!==typeof l||(a=a||[]).push(c,\"\"+l):\"suppressContentEditableWarning\"!==c&&\"suppressHydrationWarning\"!==c&&(sa.hasOwnProperty(c)?(null!=l&&xe(e,c),a||k===l||(a=[])):(a=a||[]).push(c,l))}h&&(a=a||[]).push(\"style\",h);e=a;(b.updateQueue=e)&&Ag(b)}};Hg=function(a,b,c,d){c!==d&&Ag(b)};\nfunction Ig(a,b){var c=b.source,d=b.stack;null===d&&null!==c&&(d=nc(c));null!==c&&mc(c.type);b=b.value;null!==a&&1===a.tag&&mc(a.type);try{console.error(b)}catch(e){setTimeout(function(){throw e;})}}function Jg(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Kg(a,c)}else b.current=null}\nfunction Lg(a){\"function\"===typeof Te&&Te(a);switch(a.tag){case 0:case 11:case 14:case 15:var b=a.updateQueue;if(null!==b&&(b=b.lastEffect,null!==b)){var c=b=b.next;do{var d=c.destroy;if(null!==d){var e=a;try{d()}catch(f){Kg(e,f)}}c=c.next}while(c!==b)}break;case 1:Jg(a);b=a.stateNode;if(\"function\"===typeof b.componentWillUnmount)try{b.props=a.memoizedProps,b.state=a.memoizedState,b.componentWillUnmount()}catch(f){Kg(a,f)}break;case 5:Jg(a);break;case 4:Mg(a)}}\nfunction Ng(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Og(a){a:{for(var b=a.return;null!==b;){if(Ng(b)){var c=b;break a}b=b.return}t(\"160\");c=void 0}var d=b=void 0;switch(c.tag){case 5:b=c.stateNode;d=!1;break;case 3:b=c.stateNode.containerInfo;d=!0;break;case 4:b=c.stateNode.containerInfo;d=!0;break;default:t(\"161\")}c.effectTag&16&&(pe(b,\"\"),c.effectTag&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||Ng(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag;){if(c.effectTag&2)continue b;\nif(null===c.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.effectTag&2)){c=c.stateNode;break a}}for(var e=a;;){if(5===e.tag||6===e.tag)if(c)if(d){var f=b,g=e.stateNode,h=c;8===f.nodeType?f.parentNode.insertBefore(g,h):f.insertBefore(g,h)}else b.insertBefore(e.stateNode,c);else d?(g=b,h=e.stateNode,8===g.nodeType?(f=g.parentNode,f.insertBefore(h,g)):(f=g,f.appendChild(h)),g=g._reactRootContainer,null!==g&&void 0!==g||null!==f.onclick||(f.onclick=ye)):b.appendChild(e.stateNode);\nelse if(4!==e.tag&&null!==e.child){e.child.return=e;e=e.child;continue}if(e===a)break;for(;null===e.sibling;){if(null===e.return||e.return===a)return;e=e.return}e.sibling.return=e.return;e=e.sibling}}\nfunction Mg(a){for(var b=a,c=!1,d=void 0,e=void 0;;){if(!c){c=b.return;a:for(;;){null===c?t(\"160\"):void 0;switch(c.tag){case 5:d=c.stateNode;e=!1;break a;case 3:d=c.stateNode.containerInfo;e=!0;break a;case 4:d=c.stateNode.containerInfo;e=!0;break a}c=c.return}c=!0}if(5===b.tag||6===b.tag){a:for(var f=b,g=f;;)if(Lg(g),null!==g.child&&4!==g.tag)g.child.return=g,g=g.child;else{if(g===f)break;for(;null===g.sibling;){if(null===g.return||g.return===f)break a;g=g.return}g.sibling.return=g.return;g=g.sibling}e?\n(f=d,g=b.stateNode,8===f.nodeType?f.parentNode.removeChild(g):f.removeChild(g)):d.removeChild(b.stateNode)}else if(4===b.tag?(d=b.stateNode.containerInfo,e=!0):Lg(b),null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return;b=b.return;4===b.tag&&(c=!1)}b.sibling.return=b.return;b=b.sibling}}\nfunction Pg(a,b){switch(b.tag){case 0:case 11:case 14:case 15:break;case 1:break;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps,e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[Ha]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&Cc(c,d);we(a,e);b=we(a,d);for(e=0;e<f.length;e+=2){var g=f[e],h=f[e+1];\"style\"===g?te(c,h):\"dangerouslySetInnerHTML\"===g?oe(c,h):\"children\"===g?pe(c,h):yc(c,g,h,b)}switch(a){case \"input\":Dc(c,d);break;case \"textarea\":ie(c,\nd);break;case \"select\":b=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,a=d.value,null!=a?fe(c,!!d.multiple,a,!1):b!==!!d.multiple&&(null!=d.defaultValue?fe(c,!!d.multiple,d.defaultValue,!0):fe(c,!!d.multiple,d.multiple?[]:\"\",!1))}}}break;case 6:null===b.stateNode?t(\"162\"):void 0;b.stateNode.nodeValue=b.memoizedProps;break;case 3:break;case 12:break;case 13:c=b.memoizedState;a=b;null===c?d=!1:(d=!0,a=b.child,0===c.timedOutAt&&(c.timedOutAt=Qf()));if(null!==a)a:for(b=c=a;;){if(5===\nb.tag)a=b.stateNode,d?a.style.display=\"none\":(a=b.stateNode,f=b.memoizedProps.style,f=void 0!==f&&null!==f&&f.hasOwnProperty(\"display\")?f.display:null,a.style.display=se(\"display\",f));else if(6===b.tag)b.stateNode.nodeValue=d?\"\":b.memoizedProps;else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===c)break a;for(;null===b.sibling;){if(null===b.return||b.return===c)break a;b=b.return}b.sibling.return=b.return;b=b.sibling}break;case 17:break;default:t(\"163\")}}\nfunction Qg(a,b,c){c=mf(c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Rg(d);Ig(a,b)};return c}\nfunction Sg(a,b,c){c=mf(c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Tg?Tg=new Set([this]):Tg.add(this));var c=b.value,e=b.stack;Ig(a,b);this.componentDidCatch(c,{componentStack:null!==e?e:\"\"})});return c}\nfunction Ug(a){switch(a.tag){case 1:L(a.type)&&Me(a);var b=a.effectTag;return b&2048?(a.effectTag=b&-2049|64,a):null;case 3:return Jf(a),Ne(a),b=a.effectTag,0!==(b&64)?t(\"285\"):void 0,a.effectTag=b&-2049|64,a;case 5:return Lf(a),null;case 13:return b=a.effectTag,b&2048?(a.effectTag=b&-2049|64,a):null;case 4:return Jf(a),null;case 10:return Bf(a),null;default:return null}}\nvar Vg={readContext:Df},Wg=Xb.ReactCurrentOwner,Xg=1073741822,Yg=0,Zg=!1,R=null,S=null,T=0,$g=-1,ah=!1,U=null,bh=!1,ch=null,dh=null,Tg=null;function eh(){if(null!==R)for(var a=R.return;null!==a;){var b=a;switch(b.tag){case 1:var c=b.type.childContextTypes;null!==c&&void 0!==c&&Me(b);break;case 3:Jf(b);Ne(b);break;case 5:Lf(b);break;case 4:Jf(b);break;case 10:Bf(b)}a=a.return}S=null;T=0;$g=-1;ah=!1;R=null}function Sf(){null!==dh&&(ba.unstable_cancelCallback(ch),dh())}\nfunction fh(a){for(;;){var b=a.alternate,c=a.return,d=a.sibling;if(0===(a.effectTag&1024)){R=a;a:{var e=b;b=a;var f=T;var g=b.pendingProps;switch(b.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:L(b.type)&&Me(b);break;case 3:Jf(b);Ne(b);g=b.stateNode;g.pendingContext&&(g.context=g.pendingContext,g.pendingContext=null);if(null===e||null===e.child)lg(b),b.effectTag&=-3;Cg(b);break;case 5:Lf(b);var h=Hf(Gf.current);f=b.type;if(null!==e&&null!=b.stateNode)Gg(e,b,f,g,h),e.ref!==b.ref&&(b.effectTag|=\n128);else if(g){var k=Hf(N.current);if(lg(b)){g=b;e=g.stateNode;var l=g.type,m=g.memoizedProps,q=h;e[Ga]=g;e[Ha]=m;f=void 0;h=l;switch(h){case \"iframe\":case \"object\":G(\"load\",e);break;case \"video\":case \"audio\":for(l=0;l<bb.length;l++)G(bb[l],e);break;case \"source\":G(\"error\",e);break;case \"img\":case \"image\":case \"link\":G(\"error\",e);G(\"load\",e);break;case \"form\":G(\"reset\",e);G(\"submit\",e);break;case \"details\":G(\"toggle\",e);break;case \"input\":Bc(e,m);G(\"invalid\",e);xe(q,\"onChange\");break;case \"select\":e._wrapperState=\n{wasMultiple:!!m.multiple};G(\"invalid\",e);xe(q,\"onChange\");break;case \"textarea\":he(e,m),G(\"invalid\",e),xe(q,\"onChange\")}ve(h,m);l=null;for(f in m)m.hasOwnProperty(f)&&(k=m[f],\"children\"===f?\"string\"===typeof k?e.textContent!==k&&(l=[\"children\",k]):\"number\"===typeof k&&e.textContent!==\"\"+k&&(l=[\"children\",\"\"+k]):sa.hasOwnProperty(f)&&null!=k&&xe(q,f));switch(h){case \"input\":Vb(e);Fc(e,m,!0);break;case \"textarea\":Vb(e);je(e,m);break;case \"select\":case \"option\":break;default:\"function\"===typeof m.onClick&&\n(e.onclick=ye)}f=l;g.updateQueue=f;g=null!==f?!0:!1;g&&Ag(b)}else{m=b;e=f;q=g;l=9===h.nodeType?h:h.ownerDocument;k===ke.html&&(k=le(e));k===ke.html?\"script\"===e?(e=l.createElement(\"div\"),e.innerHTML=\"<script>\\x3c/script>\",l=e.removeChild(e.firstChild)):\"string\"===typeof q.is?l=l.createElement(e,{is:q.is}):(l=l.createElement(e),\"select\"===e&&q.multiple&&(l.multiple=!0)):l=l.createElementNS(k,e);e=l;e[Ga]=m;e[Ha]=g;Bg(e,b,!1,!1);q=e;l=f;m=g;var x=h,z=we(l,m);switch(l){case \"iframe\":case \"object\":G(\"load\",\nq);h=m;break;case \"video\":case \"audio\":for(h=0;h<bb.length;h++)G(bb[h],q);h=m;break;case \"source\":G(\"error\",q);h=m;break;case \"img\":case \"image\":case \"link\":G(\"error\",q);G(\"load\",q);h=m;break;case \"form\":G(\"reset\",q);G(\"submit\",q);h=m;break;case \"details\":G(\"toggle\",q);h=m;break;case \"input\":Bc(q,m);h=Ac(q,m);G(\"invalid\",q);xe(x,\"onChange\");break;case \"option\":h=ee(q,m);break;case \"select\":q._wrapperState={wasMultiple:!!m.multiple};h=n({},m,{value:void 0});G(\"invalid\",q);xe(x,\"onChange\");break;case \"textarea\":he(q,\nm);h=ge(q,m);G(\"invalid\",q);xe(x,\"onChange\");break;default:h=m}ve(l,h);k=void 0;var C=l,Q=q,v=h;for(k in v)if(v.hasOwnProperty(k)){var r=v[k];\"style\"===k?te(Q,r):\"dangerouslySetInnerHTML\"===k?(r=r?r.__html:void 0,null!=r&&oe(Q,r)):\"children\"===k?\"string\"===typeof r?(\"textarea\"!==C||\"\"!==r)&&pe(Q,r):\"number\"===typeof r&&pe(Q,\"\"+r):\"suppressContentEditableWarning\"!==k&&\"suppressHydrationWarning\"!==k&&\"autoFocus\"!==k&&(sa.hasOwnProperty(k)?null!=r&&xe(x,k):null!=r&&yc(Q,k,r,z))}switch(l){case \"input\":Vb(q);\nFc(q,m,!1);break;case \"textarea\":Vb(q);je(q,m);break;case \"option\":null!=m.value&&q.setAttribute(\"value\",\"\"+zc(m.value));break;case \"select\":h=q;h.multiple=!!m.multiple;q=m.value;null!=q?fe(h,!!m.multiple,q,!1):null!=m.defaultValue&&fe(h,!!m.multiple,m.defaultValue,!0);break;default:\"function\"===typeof h.onClick&&(q.onclick=ye)}(g=Be(f,g))&&Ag(b);b.stateNode=e}null!==b.ref&&(b.effectTag|=128)}else null===b.stateNode?t(\"166\"):void 0;break;case 6:e&&null!=b.stateNode?Hg(e,b,e.memoizedProps,g):(\"string\"!==\ntypeof g&&(null===b.stateNode?t(\"166\"):void 0),e=Hf(Gf.current),Hf(N.current),lg(b)?(g=b,f=g.stateNode,e=g.memoizedProps,f[Ga]=g,(g=f.nodeValue!==e)&&Ag(b)):(f=b,g=(9===e.nodeType?e:e.ownerDocument).createTextNode(g),g[Ga]=b,f.stateNode=g));break;case 11:break;case 13:g=b.memoizedState;if(0!==(b.effectTag&64)){b.expirationTime=f;b.firstEffect=b.lastEffect=null;R=b;break a}g=null!==g;if(g!==(null!==e&&null!==e.memoizedState)||0===(b.effectTag&1)&&g)b.effectTag|=4;break;case 7:break;case 8:break;case 12:break;\ncase 4:Jf(b);Cg(b);break;case 10:Bf(b);break;case 9:break;case 14:break;case 17:L(b.type)&&Me(b);break;default:t(\"156\")}R=null}b=a;if(1===T||1!==b.childExpirationTime){g=0;for(f=b.child;null!==f;)e=f.expirationTime,h=f.childExpirationTime,e>g&&(g=e),h>g&&(g=h),f=f.sibling;b.childExpirationTime=g}if(null!==R)return R.firstEffect=R.lastEffect=null,R;null!==c&&0===(c.effectTag&1024)&&(null===c.firstEffect&&(c.firstEffect=a.firstEffect),null!==a.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=\na.firstEffect),c.lastEffect=a.lastEffect),1<a.effectTag&&(null!==c.lastEffect?c.lastEffect.nextEffect=a:c.firstEffect=a,c.lastEffect=a))}else{a=Ug(a,T);if(null!==a)return a.effectTag&=1023,a;null!==c&&(c.firstEffect=c.lastEffect=null,c.effectTag|=1024)}if(null!==d)return d;if(null!==c)a=c;else break}return null}function gh(a){var b=zg(a.alternate,a,T);a.memoizedProps=a.pendingProps;null===b&&(b=fh(a));Wg.current=null;return b}\nfunction hh(a,b){Zg?t(\"243\"):void 0;Sf();Zg=!0;Wg.currentDispatcher=Vg;var c=a.nextExpirationTimeToWorkOn;if(c!==T||a!==S||null===R)eh(),S=a,T=c,R=Ze(S.current,null,T),a.pendingCommitExpirationTime=0;var d=!1;do{try{if(b)for(;null!==R&&!ih();)R=gh(R);else for(;null!==R;)R=gh(R)}catch(C){if(zf=yf=xf=null,null===R)d=!0,Rg(C);else{null===R?t(\"271\"):void 0;var e=R,f=e.return;if(null===f)d=!0,Rg(C);else{a:{var g=a,h=f,k=e,l=C;f=T;k.effectTag|=1024;k.firstEffect=k.lastEffect=null;if(null!==l&&\"object\"===\ntypeof l&&\"function\"===typeof l.then){var m=l;l=h;var q=-1,x=-1;do{if(13===l.tag){var z=l.alternate;if(null!==z&&(z=z.memoizedState,null!==z)){x=10*(1073741822-z.timedOutAt);break}z=l.pendingProps.maxDuration;if(\"number\"===typeof z)if(0>=z)q=0;else if(-1===q||z<q)q=z}l=l.return}while(null!==l);l=h;do{if(z=13===l.tag)z=void 0===l.memoizedProps.fallback?!1:null===l.memoizedState;if(z){h=jh.bind(null,g,l,k,0===(l.mode&1)?1073741823:f);m.then(h,h);if(0===(l.mode&1)){l.effectTag|=64;P(k.alternate,k,null,\nf);k.effectTag&=-1025;k.effectTag&=-933;1===k.tag&&null===k.alternate&&(k.tag=17);k.expirationTime=f;break a}-1===q?g=1073741823:(-1===x&&(x=10*(1073741822-hf(g,f))-5E3),g=x+q);0<=g&&$g<g&&($g=g);l.effectTag|=2048;l.expirationTime=f;break a}l=l.return}while(null!==l);l=Error((mc(k.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\"+nc(k))}ah=\n!0;l=vf(l,k);g=h;do{switch(g.tag){case 3:k=l;g.effectTag|=2048;g.expirationTime=f;f=Qg(g,k,f);pf(g,f);break a;case 1:if(k=l,h=g.type,m=g.stateNode,0===(g.effectTag&64)&&(\"function\"===typeof h.getDerivedStateFromError||null!==m&&\"function\"===typeof m.componentDidCatch&&(null===Tg||!Tg.has(m)))){g.effectTag|=2048;g.expirationTime=f;f=Sg(g,k,f);pf(g,f);break a}}g=g.return}while(null!==g)}R=fh(e);continue}}}break}while(1);Zg=!1;zf=yf=xf=Wg.currentDispatcher=null;if(d)S=null,a.finishedWork=null;else if(null!==\nR)a.finishedWork=null;else{d=a.current.alternate;null===d?t(\"281\"):void 0;S=null;if(ah){e=a.latestPendingTime;f=a.latestSuspendedTime;g=a.latestPingedTime;if(0!==e&&e<c||0!==f&&f<c||0!==g&&g<c){gf(a,c);kh(a,d,c,a.expirationTime,-1);return}if(!a.didError&&b){a.didError=!0;c=a.nextExpirationTimeToWorkOn=c;b=a.expirationTime=1073741823;kh(a,d,c,b,-1);return}}b&&-1!==$g?(gf(a,c),b=10*(1073741822-hf(a,c)),b<$g&&($g=b),b=10*(1073741822-Qf()),b=$g-b,kh(a,d,c,a.expirationTime,0>b?0:b)):(a.pendingCommitExpirationTime=\nc,a.finishedWork=d)}}function Kg(a,b){for(var c=a.return;null!==c;){switch(c.tag){case 1:var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Tg||!Tg.has(d))){a=vf(b,a);a=Sg(c,a,1073741823);of(c,a);Tf(c,1073741823);return}break;case 3:a=vf(b,a);a=Qg(c,a,1073741823);of(c,a);Tf(c,1073741823);return}c=c.return}3===a.tag&&(c=vf(b,a),c=Qg(a,c,1073741823),of(a,c),Tf(a,1073741823))}\nfunction Rf(a,b){0!==Yg?a=Yg:Zg?a=bh?1073741823:T:b.mode&1?(a=lh?1073741822-10*(((1073741822-a+15)/10|0)+1):1073741822-25*(((1073741822-a+500)/25|0)+1),null!==S&&a===T&&--a):a=1073741823;lh&&(0===mh||a<mh)&&(mh=a);return a}\nfunction jh(a,b,c,d){var e=a.earliestSuspendedTime;var f=a.latestSuspendedTime;if(0!==e&&d<=e&&d>=f){f=e=d;a.didError=!1;var g=a.latestPingedTime;if(0===g||g>f)a.latestPingedTime=f;ff(f,a)}else e=Qf(),e=Rf(e,b),ef(a,e);0!==(b.mode&1)&&a===S&&T===d&&(S=null);nh(b,e);0===(b.mode&1)&&(nh(c,e),1===c.tag&&null!==c.stateNode&&(b=mf(e),b.tag=2,of(c,b)));c=a.expirationTime;0!==c&&oh(a,c)}\nfunction nh(a,b){a.expirationTime<b&&(a.expirationTime=b);var c=a.alternate;null!==c&&c.expirationTime<b&&(c.expirationTime=b);var d=a.return,e=null;if(null===d&&3===a.tag)e=a.stateNode;else for(;null!==d;){c=d.alternate;d.childExpirationTime<b&&(d.childExpirationTime=b);null!==c&&c.childExpirationTime<b&&(c.childExpirationTime=b);if(null===d.return&&3===d.tag){e=d.stateNode;break}d=d.return}return null===e?null:e}\nfunction Tf(a,b){a=nh(a,b);null!==a&&(!Zg&&0!==T&&b>T&&eh(),ef(a,b),Zg&&!bh&&S===a||oh(a,a.expirationTime),ph>qh&&(ph=0,t(\"185\")))}function rh(a,b,c,d,e){var f=Yg;Yg=1073741823;try{return a(b,c,d,e)}finally{Yg=f}}var sh=null,V=null,th=0,uh=void 0,W=!1,vh=null,X=0,mh=0,wh=!1,xh=null,Z=!1,yh=!1,lh=!1,zh=null,Ah=ba.unstable_now(),Bh=1073741822-(Ah/10|0),Ch=Bh,qh=50,ph=0,Dh=null;function Eh(){Bh=1073741822-((ba.unstable_now()-Ah)/10|0)}\nfunction Fh(a,b){if(0!==th){if(b<th)return;null!==uh&&ba.unstable_cancelCallback(uh)}th=b;a=ba.unstable_now()-Ah;uh=ba.unstable_scheduleCallback(Gh,{timeout:10*(1073741822-b)-a})}function kh(a,b,c,d,e){a.expirationTime=d;0!==e||ih()?0<e&&(a.timeoutHandle=De(Hh.bind(null,a,b,c),e)):(a.pendingCommitExpirationTime=c,a.finishedWork=b)}function Hh(a,b,c){a.pendingCommitExpirationTime=c;a.finishedWork=b;Eh();Ch=Bh;Ih(a,c)}function Qf(){if(W)return Ch;Jh();if(0===X||1===X)Eh(),Ch=Bh;return Ch}\nfunction oh(a,b){null===a.nextScheduledRoot?(a.expirationTime=b,null===V?(sh=V=a,a.nextScheduledRoot=a):(V=V.nextScheduledRoot=a,V.nextScheduledRoot=sh)):b>a.expirationTime&&(a.expirationTime=b);W||(Z?yh&&(vh=a,X=1073741823,Kh(a,1073741823,!1)):1073741823===b?Lh(1073741823,!1):Fh(a,b))}\nfunction Jh(){var a=0,b=null;if(null!==V)for(var c=V,d=sh;null!==d;){var e=d.expirationTime;if(0===e){null===c||null===V?t(\"244\"):void 0;if(d===d.nextScheduledRoot){sh=V=d.nextScheduledRoot=null;break}else if(d===sh)sh=e=d.nextScheduledRoot,V.nextScheduledRoot=e,d.nextScheduledRoot=null;else if(d===V){V=c;V.nextScheduledRoot=sh;d.nextScheduledRoot=null;break}else c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null;d=c.nextScheduledRoot}else{e>a&&(a=e,b=d);if(d===V)break;if(1073741823===\na)break;c=d;d=d.nextScheduledRoot}}vh=b;X=a}var Mh=!1;function ih(){return Mh?!0:ba.unstable_shouldYield()?Mh=!0:!1}function Gh(){try{if(!ih()&&null!==sh){Eh();var a=sh;do{var b=a.expirationTime;0!==b&&Bh<=b&&(a.nextExpirationTimeToWorkOn=Bh);a=a.nextScheduledRoot}while(a!==sh)}Lh(0,!0)}finally{Mh=!1}}\nfunction Lh(a,b){Jh();if(b)for(Eh(),Ch=Bh;null!==vh&&0!==X&&a<=X&&!(Mh&&Bh>X);)Kh(vh,X,Bh>X),Jh(),Eh(),Ch=Bh;else for(;null!==vh&&0!==X&&a<=X;)Kh(vh,X,!1),Jh();b&&(th=0,uh=null);0!==X&&Fh(vh,X);ph=0;Dh=null;if(null!==zh)for(a=zh,zh=null,b=0;b<a.length;b++){var c=a[b];try{c._onComplete()}catch(d){wh||(wh=!0,xh=d)}}if(wh)throw a=xh,xh=null,wh=!1,a;}function Ih(a,b){W?t(\"253\"):void 0;vh=a;X=b;Kh(a,b,!1);Lh(1073741823,!1)}\nfunction Kh(a,b,c){W?t(\"245\"):void 0;W=!0;if(c){var d=a.finishedWork;null!==d?Nh(a,d,b):(a.finishedWork=null,d=a.timeoutHandle,-1!==d&&(a.timeoutHandle=-1,Ee(d)),hh(a,c),d=a.finishedWork,null!==d&&(ih()?a.finishedWork=d:Nh(a,d,b)))}else d=a.finishedWork,null!==d?Nh(a,d,b):(a.finishedWork=null,d=a.timeoutHandle,-1!==d&&(a.timeoutHandle=-1,Ee(d)),hh(a,c),d=a.finishedWork,null!==d&&Nh(a,d,b));W=!1}\nfunction Nh(a,b,c){var d=a.firstBatch;if(null!==d&&d._expirationTime>=c&&(null===zh?zh=[d]:zh.push(d),d._defer)){a.finishedWork=b;a.expirationTime=0;return}a.finishedWork=null;a===Dh?ph++:(Dh=a,ph=0);bh=Zg=!0;a.current===b?t(\"177\"):void 0;c=a.pendingCommitExpirationTime;0===c?t(\"261\"):void 0;a.pendingCommitExpirationTime=0;d=b.expirationTime;var e=b.childExpirationTime;d=e>d?e:d;a.didError=!1;0===d?(a.earliestPendingTime=0,a.latestPendingTime=0,a.earliestSuspendedTime=0,a.latestSuspendedTime=0,a.latestPingedTime=\n0):(e=a.latestPendingTime,0!==e&&(e>d?a.earliestPendingTime=a.latestPendingTime=0:a.earliestPendingTime>d&&(a.earliestPendingTime=a.latestPendingTime)),e=a.earliestSuspendedTime,0===e?ef(a,d):d<a.latestSuspendedTime?(a.earliestSuspendedTime=0,a.latestSuspendedTime=0,a.latestPingedTime=0,ef(a,d)):d>e&&ef(a,d));ff(0,a);Wg.current=null;1<b.effectTag?null!==b.lastEffect?(b.lastEffect.nextEffect=b,d=b.firstEffect):d=b:d=b.firstEffect;ze=Hd;e=Td();if(Ud(e)){if(\"selectionStart\"in e)var f={start:e.selectionStart,\nend:e.selectionEnd};else a:{f=(f=e.ownerDocument)&&f.defaultView||window;var g=f.getSelection&&f.getSelection();if(g&&0!==g.rangeCount){f=g.anchorNode;var h=g.anchorOffset,k=g.focusNode;g=g.focusOffset;try{f.nodeType,k.nodeType}catch(db){f=null;break a}var l=0,m=-1,q=-1,x=0,z=0,C=e,Q=null;b:for(;;){for(var v;;){C!==f||0!==h&&3!==C.nodeType||(m=l+h);C!==k||0!==g&&3!==C.nodeType||(q=l+g);3===C.nodeType&&(l+=C.nodeValue.length);if(null===(v=C.firstChild))break;Q=C;C=v}for(;;){if(C===e)break b;Q===f&&\n++x===h&&(m=l);Q===k&&++z===g&&(q=l);if(null!==(v=C.nextSibling))break;C=Q;Q=C.parentNode}C=v}f=-1===m||-1===q?null:{start:m,end:q}}else f=null}f=f||{start:0,end:0}}else f=null;Ae={focusedElem:e,selectionRange:f};Hd=!1;for(U=d;null!==U;){e=!1;f=void 0;try{for(;null!==U;){if(U.effectTag&256)a:{var r=U.alternate;h=U;switch(h.tag){case 0:case 11:case 15:break a;case 1:if(h.effectTag&256&&null!==r){var u=r.memoizedProps,y=r.memoizedState,Y=h.stateNode,Uh=Y.getSnapshotBeforeUpdate(h.elementType===h.type?\nu:O(h.type,u),y);Y.__reactInternalSnapshotBeforeUpdate=Uh}break a;case 3:case 5:case 6:case 4:case 17:break a;default:t(\"163\")}}U=U.nextEffect}}catch(db){e=!0,f=db}e&&(null===U?t(\"178\"):void 0,Kg(U,f),null!==U&&(U=U.nextEffect))}for(U=d;null!==U;){r=!1;u=void 0;try{for(;null!==U;){var w=U.effectTag;w&16&&pe(U.stateNode,\"\");if(w&128){var D=U.alternate;if(null!==D){var p=D.ref;null!==p&&(\"function\"===typeof p?p(null):p.current=null)}}switch(w&14){case 2:Og(U);U.effectTag&=-3;break;case 6:Og(U);U.effectTag&=\n-3;Pg(U.alternate,U);break;case 4:Pg(U.alternate,U);break;case 8:y=U,Mg(y),y.return=null,y.child=null,y.alternate&&(y.alternate.child=null,y.alternate.return=null)}U=U.nextEffect}}catch(db){r=!0,u=db}r&&(null===U?t(\"178\"):void 0,Kg(U,u),null!==U&&(U=U.nextEffect))}p=Ae;D=Td();w=p.focusedElem;u=p.selectionRange;if(D!==w&&w&&w.ownerDocument&&Sd(w.ownerDocument.documentElement,w)){null!==u&&Ud(w)&&(D=u.start,p=u.end,void 0===p&&(p=D),\"selectionStart\"in w?(w.selectionStart=D,w.selectionEnd=Math.min(p,\nw.value.length)):(p=(D=w.ownerDocument||document)&&D.defaultView||window,p.getSelection&&(p=p.getSelection(),y=w.textContent.length,r=Math.min(u.start,y),u=void 0===u.end?r:Math.min(u.end,y),!p.extend&&r>u&&(y=u,u=r,r=y),y=Rd(w,r),Y=Rd(w,u),y&&Y&&(1!==p.rangeCount||p.anchorNode!==y.node||p.anchorOffset!==y.offset||p.focusNode!==Y.node||p.focusOffset!==Y.offset)&&(D=D.createRange(),D.setStart(y.node,y.offset),p.removeAllRanges(),r>u?(p.addRange(D),p.extend(Y.node,Y.offset)):(D.setEnd(Y.node,Y.offset),\np.addRange(D))))));D=[];for(p=w;p=p.parentNode;)1===p.nodeType&&D.push({element:p,left:p.scrollLeft,top:p.scrollTop});\"function\"===typeof w.focus&&w.focus();for(w=0;w<D.length;w++)p=D[w],p.element.scrollLeft=p.left,p.element.scrollTop=p.top}Ae=null;Hd=!!ze;ze=null;a.current=b;for(U=d;null!==U;){d=!1;w=void 0;try{for(D=c;null!==U;){var Fb=U.effectTag;if(Fb&36){var Gb=U.alternate;p=U;r=D;switch(p.tag){case 0:case 11:case 15:break;case 1:var wc=p.stateNode;if(p.effectTag&4)if(null===Gb)wc.componentDidMount();\nelse{var di=p.elementType===p.type?Gb.memoizedProps:O(p.type,Gb.memoizedProps);wc.componentDidUpdate(di,Gb.memoizedState,wc.__reactInternalSnapshotBeforeUpdate)}var Dg=p.updateQueue;null!==Dg&&tf(p,Dg,wc,r);break;case 3:var Eg=p.updateQueue;if(null!==Eg){u=null;if(null!==p.child)switch(p.child.tag){case 5:u=p.child.stateNode;break;case 1:u=p.child.stateNode}tf(p,Eg,u,r)}break;case 5:var ei=p.stateNode;null===Gb&&p.effectTag&4&&Be(p.type,p.memoizedProps)&&ei.focus();break;case 6:break;case 4:break;\ncase 12:break;case 13:break;case 17:break;default:t(\"163\")}}if(Fb&128){var Ic=U.ref;if(null!==Ic){var Fg=U.stateNode;switch(U.tag){case 5:var de=Fg;break;default:de=Fg}\"function\"===typeof Ic?Ic(de):Ic.current=de}}U=U.nextEffect}}catch(db){d=!0,w=db}d&&(null===U?t(\"178\"):void 0,Kg(U,w),null!==U&&(U=U.nextEffect))}Zg=bh=!1;\"function\"===typeof Se&&Se(b.stateNode);Fb=b.expirationTime;b=b.childExpirationTime;b=b>Fb?b:Fb;0===b&&(Tg=null);a.expirationTime=b;a.finishedWork=null}\nfunction Rg(a){null===vh?t(\"246\"):void 0;vh.expirationTime=0;wh||(wh=!0,xh=a)}function Oh(a,b){var c=Z;Z=!0;try{return a(b)}finally{(Z=c)||W||Lh(1073741823,!1)}}function Ph(a,b){if(Z&&!yh){yh=!0;try{return a(b)}finally{yh=!1}}return a(b)}function Qh(a,b,c){if(lh)return a(b,c);Z||W||0===mh||(Lh(mh,!1),mh=0);var d=lh,e=Z;Z=lh=!0;try{return a(b,c)}finally{lh=d,(Z=e)||W||Lh(1073741823,!1)}}\nfunction Rh(a,b,c,d,e){var f=b.current;a:if(c){c=c._reactInternalFiber;b:{2===kd(c)&&1===c.tag?void 0:t(\"170\");var g=c;do{switch(g.tag){case 3:g=g.stateNode.context;break b;case 1:if(L(g.type)){g=g.stateNode.__reactInternalMemoizedMergedChildContext;break b}}g=g.return}while(null!==g);t(\"171\");g=void 0}if(1===c.tag){var h=c.type;if(L(h)){c=Pe(c,h,g);break a}}c=g}else c=Je;null===b.context?b.context=c:b.pendingContext=c;b=e;e=mf(d);e.payload={element:a};b=void 0===b?null:b;null!==b&&(e.callback=b);\nSf();of(f,e);Tf(f,d);return d}function Sh(a,b,c,d){var e=b.current,f=Qf();e=Rf(f,e);return Rh(a,b,c,e,d)}function Th(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function Vh(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:$b,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nCb=function(a,b,c){switch(b){case \"input\":Dc(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=La(d);e?void 0:t(\"90\");Wb(d);Dc(d,e)}}}break;case \"textarea\":ie(a,c);break;case \"select\":b=c.value,null!=b&&fe(a,!!c.multiple,b,!1)}};\nfunction Wh(a){var b=1073741822-25*(((1073741822-Qf()+500)/25|0)+1);b>=Xg&&(b=Xg-1);this._expirationTime=Xg=b;this._root=a;this._callbacks=this._next=null;this._hasChildren=this._didComplete=!1;this._children=null;this._defer=!0}Wh.prototype.render=function(a){this._defer?void 0:t(\"250\");this._hasChildren=!0;this._children=a;var b=this._root._internalRoot,c=this._expirationTime,d=new Xh;Rh(a,b,null,c,d._onCommit);return d};\nWh.prototype.then=function(a){if(this._didComplete)a();else{var b=this._callbacks;null===b&&(b=this._callbacks=[]);b.push(a)}};\nWh.prototype.commit=function(){var a=this._root._internalRoot,b=a.firstBatch;this._defer&&null!==b?void 0:t(\"251\");if(this._hasChildren){var c=this._expirationTime;if(b!==this){this._hasChildren&&(c=this._expirationTime=b._expirationTime,this.render(this._children));for(var d=null,e=b;e!==this;)d=e,e=e._next;null===d?t(\"251\"):void 0;d._next=e._next;this._next=b;a.firstBatch=this}this._defer=!1;Ih(a,c);b=this._next;this._next=null;b=a.firstBatch=b;null!==b&&b._hasChildren&&b.render(b._children)}else this._next=\nnull,this._defer=!1};Wh.prototype._onComplete=function(){if(!this._didComplete){this._didComplete=!0;var a=this._callbacks;if(null!==a)for(var b=0;b<a.length;b++)(0,a[b])()}};function Xh(){this._callbacks=null;this._didCommit=!1;this._onCommit=this._onCommit.bind(this)}Xh.prototype.then=function(a){if(this._didCommit)a();else{var b=this._callbacks;null===b&&(b=this._callbacks=[]);b.push(a)}};\nXh.prototype._onCommit=function(){if(!this._didCommit){this._didCommit=!0;var a=this._callbacks;if(null!==a)for(var b=0;b<a.length;b++){var c=a[b];\"function\"!==typeof c?t(\"191\",c):void 0;c()}}};\nfunction Yh(a,b,c){b=M(3,null,null,b?3:0);a={current:b,containerInfo:a,pendingChildren:null,earliestPendingTime:0,latestPendingTime:0,earliestSuspendedTime:0,latestSuspendedTime:0,latestPingedTime:0,didError:!1,pendingCommitExpirationTime:0,finishedWork:null,timeoutHandle:-1,context:null,pendingContext:null,hydrate:c,nextExpirationTimeToWorkOn:0,expirationTime:0,firstBatch:null,nextScheduledRoot:null};this._internalRoot=b.stateNode=a}\nYh.prototype.render=function(a,b){var c=this._internalRoot,d=new Xh;b=void 0===b?null:b;null!==b&&d.then(b);Sh(a,c,null,d._onCommit);return d};Yh.prototype.unmount=function(a){var b=this._internalRoot,c=new Xh;a=void 0===a?null:a;null!==a&&c.then(a);Sh(null,b,null,c._onCommit);return c};Yh.prototype.legacy_renderSubtreeIntoContainer=function(a,b,c){var d=this._internalRoot,e=new Xh;c=void 0===c?null:c;null!==c&&e.then(c);Sh(b,d,a,e._onCommit);return e};\nYh.prototype.createBatch=function(){var a=new Wh(this),b=a._expirationTime,c=this._internalRoot,d=c.firstBatch;if(null===d)c.firstBatch=a,a._next=null;else{for(c=null;null!==d&&d._expirationTime>=b;)c=d,d=d._next;a._next=d;null!==c&&(c._next=a)}return a};function Zh(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}Kb=Oh;Lb=Qh;Mb=function(){W||0===mh||(Lh(mh,!1),mh=0)};\nfunction $h(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new Yh(a,!1,b)}\nfunction ai(a,b,c,d,e){Zh(c)?void 0:t(\"200\");var f=c._reactRootContainer;if(f){if(\"function\"===typeof e){var g=e;e=function(){var a=Th(f._internalRoot);g.call(a)}}null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)}else{f=c._reactRootContainer=$h(c,d);if(\"function\"===typeof e){var h=e;e=function(){var a=Th(f._internalRoot);h.call(a)}}Ph(function(){null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)})}return Th(f._internalRoot)}\nfunction bi(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;Zh(b)?void 0:t(\"200\");return Vh(a,b,null,c)}\nvar ci={createPortal:bi,findDOMNode:function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternalFiber;void 0===b&&(\"function\"===typeof a.render?t(\"188\"):t(\"268\",Object.keys(a)));a=nd(b);a=null===a?null:a.stateNode;return a},hydrate:function(a,b,c){return ai(null,a,b,!0,c)},render:function(a,b,c){return ai(null,a,b,!1,c)},unstable_renderSubtreeIntoContainer:function(a,b,c,d){null==a||void 0===a._reactInternalFiber?t(\"38\"):void 0;return ai(a,b,c,!1,d)},unmountComponentAtNode:function(a){Zh(a)?\nvoid 0:t(\"40\");return a._reactRootContainer?(Ph(function(){ai(null,null,a,!1,function(){a._reactRootContainer=null})}),!0):!1},unstable_createPortal:function(){return bi.apply(void 0,arguments)},unstable_batchedUpdates:Oh,unstable_interactiveUpdates:Qh,flushSync:function(a,b){W?t(\"187\"):void 0;var c=Z;Z=!0;try{return rh(a,b)}finally{Z=c,Lh(1073741823,!1)}},unstable_flushControlled:function(a){var b=Z;Z=!0;try{rh(a)}finally{(Z=b)||W||Lh(1073741823,!1)}},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{Events:[Ja,\nKa,La,Ca.injectEventPluginsByName,qa,Ra,function(a){za(a,Qa)},Ib,Jb,Jd,Ea]},unstable_createRoot:function(a,b){Zh(a)?void 0:t(\"299\",\"unstable_createRoot\");return new Yh(a,!0,null!=b&&!0===b.hydrate)}};(function(a){var b=a.findFiberByHostInstance;return Ve(n({},a,{findHostInstanceByFiber:function(a){a=nd(a);return null===a?null:a.stateNode},findFiberByHostInstance:function(a){return b?b(a):null}}))})({findFiberByHostInstance:Ia,bundleType:0,version:\"16.6.1\",rendererPackageName:\"react-dom\"});\nvar fi={default:ci},gi=fi&&ci||fi;module.exports=gi.default||gi;\n","'use strict';\n\nfunction checkDCE() {\n  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n  if (\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n  ) {\n    return;\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    // This branch is unreachable because this function is only called\n    // in production, but the condition is true only in development.\n    // Therefore if the branch is still here, dead code elimination wasn't\n    // properly applied.\n    // Don't change the message. React DevTools relies on it. Also make sure\n    // this message doesn't occur elsewhere in this function, or it will cause\n    // a false positive.\n    throw new Error('^_^');\n  }\n  try {\n    // Verify that the code above has been dead code eliminated (DCE'd).\n    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n  } catch (err) {\n    // DevTools shouldn't crash React, no matter what.\n    // We should still report in case we break this code.\n    console.error(err);\n  }\n}\n\nif (process.env.NODE_ENV === 'production') {\n  // DCE check should happen before ReactDOM bundle executes so that\n  // DevTools can report bad minification during injection.\n  checkDCE();\n  module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n  module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim\n  };\n\n  ReactPropTypes.checkPropTypes = emptyFunction;\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n  var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n    Symbol.for &&\n    Symbol.for('react.element')) ||\n    0xeac7;\n\n  var isValidElement = function(object) {\n    return typeof object === 'object' &&\n      object !== null &&\n      object.$$typeof === REACT_ELEMENT_TYPE;\n  };\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"katex\"] = factory();\n\telse\n\t\troot[\"katex\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 63);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_slicedToArray__ = __webpack_require__(57);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_slicedToArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_slicedToArray__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_get_iterator__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_get_iterator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_get_iterator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__domTree__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__fontMetrics__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__symbols__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__stretchy__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__units__ = __webpack_require__(19);\n\n\n\n/* eslint no-console:0 */\n/**\n * This module contains general functions that can be used for building\n * different kinds of domTree nodes in a consistent manner.\n */\n\n\n\n\n\n\n\n\n// The following have to be loaded from Main-Italic font, using class mainit\nvar mainitLetters = [\"\\\\imath\", \"ı\", // dotless i\n\"\\\\jmath\", \"ȷ\", // dotless j\n\"\\\\pounds\", \"\\\\mathsterling\", \"\\\\textsterling\", \"£\"];\n\n/**\n * Looks up the given symbol in fontMetrics, after applying any symbol\n * replacements defined in symbol.js\n */\nvar lookupSymbol = function lookupSymbol(value,\n// TODO(#963): Use a union type for this.\nfontFamily, mode) {\n    // Replace the value with its replaced value from symbol.js\n    if (__WEBPACK_IMPORTED_MODULE_4__symbols__[\"a\" /* default */][mode][value] && __WEBPACK_IMPORTED_MODULE_4__symbols__[\"a\" /* default */][mode][value].replace) {\n        value = __WEBPACK_IMPORTED_MODULE_4__symbols__[\"a\" /* default */][mode][value].replace;\n    }\n    return {\n        value: value,\n        metrics: __WEBPACK_IMPORTED_MODULE_3__fontMetrics__[\"a\" /* default */].getCharacterMetrics(value, fontFamily, mode)\n    };\n};\n\n/**\n * Makes a symbolNode after translation via the list of symbols in symbols.js.\n * Correctly pulls out metrics for the character, and optionally takes a list of\n * classes to be attached to the node.\n *\n * TODO: make argument order closer to makeSpan\n * TODO: add a separate argument for math class (e.g. `mop`, `mbin`), which\n * should if present come first in `classes`.\n * TODO(#953): Make `options` mandatory and always pass it in.\n */\nvar makeSymbol = function makeSymbol(value, fontFamily, mode, options, classes) {\n    var lookup = lookupSymbol(value, fontFamily, mode);\n    var metrics = lookup.metrics;\n    value = lookup.value;\n\n    var symbolNode = void 0;\n    if (metrics) {\n        var italic = metrics.italic;\n        if (mode === \"text\") {\n            italic = 0;\n        }\n        symbolNode = new __WEBPACK_IMPORTED_MODULE_2__domTree__[\"a\" /* default */].symbolNode(value, metrics.height, metrics.depth, italic, metrics.skew, metrics.width, classes);\n    } else {\n        // TODO(emily): Figure out a good way to only print this in development\n        typeof console !== \"undefined\" && console.warn(\"No character metrics for '\" + value + \"' in style '\" + fontFamily + \"'\");\n        symbolNode = new __WEBPACK_IMPORTED_MODULE_2__domTree__[\"a\" /* default */].symbolNode(value, 0, 0, 0, 0, 0, classes);\n    }\n\n    if (options) {\n        symbolNode.maxFontSize = options.sizeMultiplier;\n        if (options.style.isTight()) {\n            symbolNode.classes.push(\"mtight\");\n        }\n        var color = options.getColor();\n        if (color) {\n            symbolNode.style.color = color;\n        }\n    }\n\n    return symbolNode;\n};\n\n/**\n * Makes a symbol in Main-Regular or AMS-Regular.\n * Used for rel, bin, open, close, inner, and punct.\n *\n * TODO(#953): Make `options` mandatory and always pass it in.\n */\nvar mathsym = function mathsym(value, mode, options) {\n    var classes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n    // Decide what font to render the symbol in by its entry in the symbols\n    // table.\n    // Have a special case for when the value = \\ because the \\ is used as a\n    // textord in unsupported command errors but cannot be parsed as a regular\n    // text ordinal and is therefore not present as a symbol in the symbols\n    // table for text, as well as a special case for boldsymbol because it\n    // can be used for bold + and -\n    if (options && options.fontFamily && options.fontFamily === \"boldsymbol\" && lookupSymbol(value, \"Main-Bold\", mode).metrics) {\n        return makeSymbol(value, \"Main-Bold\", mode, options, classes.concat([\"mathbf\"]));\n    } else if (value === \"\\\\\" || __WEBPACK_IMPORTED_MODULE_4__symbols__[\"a\" /* default */][mode][value].font === \"main\") {\n        return makeSymbol(value, \"Main-Regular\", mode, options, classes);\n    } else {\n        return makeSymbol(value, \"AMS-Regular\", mode, options, classes.concat([\"amsrm\"]));\n    }\n};\n\n/**\n * Makes a symbol in the default font for mathords and textords.\n */\nvar mathDefault = function mathDefault(value, mode, options, classes, type) {\n    if (type === \"mathord\") {\n        var fontLookup = mathit(value, mode, options, classes);\n        return makeSymbol(value, fontLookup.fontName, mode, options, classes.concat([fontLookup.fontClass]));\n    } else if (type === \"textord\") {\n        var font = __WEBPACK_IMPORTED_MODULE_4__symbols__[\"a\" /* default */][mode][value] && __WEBPACK_IMPORTED_MODULE_4__symbols__[\"a\" /* default */][mode][value].font;\n        if (font === \"ams\") {\n            var _fontName = retrieveTextFontName(\"amsrm\", options.fontWeight, options.fontShape);\n            return makeSymbol(value, _fontName, mode, options, classes.concat(\"amsrm\", options.fontWeight, options.fontShape));\n        } else {\n            // if (font === \"main\") {\n            var _fontName2 = retrieveTextFontName(\"textrm\", options.fontWeight, options.fontShape);\n            return makeSymbol(value, _fontName2, mode, options, classes.concat(options.fontWeight, options.fontShape));\n        }\n    } else {\n        throw new Error(\"unexpected type: \" + type + \" in mathDefault\");\n    }\n};\n\n/**\n * Determines which of the two font names (Main-Italic and Math-Italic) and\n * corresponding style tags (mainit or mathit) to use for font \"mathit\",\n * depending on the symbol.  Use this function instead of fontMap for font\n * \"mathit\".\n */\nvar mathit = function mathit(value, mode, options, classes) {\n    if (/[0-9]/.test(value.charAt(0)) ||\n    // glyphs for \\imath and \\jmath do not exist in Math-Italic so we\n    // need to use Main-Italic instead\n    __WEBPACK_IMPORTED_MODULE_5__utils__[\"a\" /* default */].contains(mainitLetters, value)) {\n        return {\n            fontName: \"Main-Italic\",\n            fontClass: \"mainit\"\n        };\n    } else {\n        return {\n            fontName: \"Math-Italic\",\n            fontClass: \"mathit\"\n        };\n    }\n};\n\n/**\n * Determines which of the two font names (Main-Bold and Math-BoldItalic) and\n * corresponding style tags (mathbf or boldsymbol) to use for font \"boldsymbol\",\n * depending on the symbol.  Use this function instead of fontMap for font\n * \"boldsymbol\".\n */\nvar boldsymbol = function boldsymbol(value, mode, options, classes) {\n    if (lookupSymbol(value, \"Math-BoldItalic\", mode).metrics) {\n        return {\n            fontName: \"Math-BoldItalic\",\n            fontClass: \"boldsymbol\"\n        };\n    } else {\n        // Some glyphs do not exist in Math-BoldItalic so we need to use\n        // Main-Bold instead.\n        return {\n            fontName: \"Main-Bold\",\n            fontClass: \"mathbf\"\n        };\n    }\n};\n\n/**\n * Makes either a mathord or textord in the correct font and color.\n */\nvar makeOrd = function makeOrd(group, options, type) {\n    var mode = group.mode;\n    var value = group.value;\n\n    var classes = [\"mord\"];\n\n    var fontFamily = options.fontFamily;\n    if (fontFamily) {\n        var _fontName3 = void 0;\n        var fontClasses = void 0;\n        if (fontFamily === \"boldsymbol\") {\n            var fontData = boldsymbol(value, mode, options, classes);\n            _fontName3 = fontData.fontName;\n            fontClasses = [fontData.fontClass];\n        } else if (fontFamily === \"mathit\" || __WEBPACK_IMPORTED_MODULE_5__utils__[\"a\" /* default */].contains(mainitLetters, value)) {\n            var _fontData = mathit(value, mode, options, classes);\n            _fontName3 = _fontData.fontName;\n            fontClasses = [_fontData.fontClass];\n        } else if (fontFamily.indexOf(\"math\") !== -1 || mode === \"math\") {\n            // To support old font functions (i.e. \\rm \\sf etc.) or math mode.\n            _fontName3 = fontMap[fontFamily].fontName;\n            fontClasses = [fontFamily];\n        } else {\n            _fontName3 = retrieveTextFontName(fontFamily, options.fontWeight, options.fontShape);\n            fontClasses = [fontFamily, options.fontWeight, options.fontShape];\n        }\n        if (lookupSymbol(value, _fontName3, mode).metrics) {\n            return makeSymbol(value, _fontName3, mode, options, classes.concat(fontClasses));\n        } else {\n            return mathDefault(value, mode, options, classes, type);\n        }\n    } else {\n        return mathDefault(value, mode, options, classes, type);\n    }\n};\n\n/**\n * Combine as many characters as possible in the given array of characters\n * via their tryCombine method.\n */\nvar tryCombineChars = function tryCombineChars(chars) {\n    for (var i = 0; i < chars.length - 1; i++) {\n        if (chars[i].tryCombine(chars[i + 1])) {\n            chars.splice(i + 1, 1);\n            i--;\n        }\n    }\n    return chars;\n};\n\n/**\n * Calculate the height, depth, and maxFontSize of an element based on its\n * children.\n */\nvar sizeElementFromChildren = function sizeElementFromChildren(elem) {\n    var height = 0;\n    var depth = 0;\n    var maxFontSize = 0;\n\n    var _iteratorNormalCompletion = true;\n    var _didIteratorError = false;\n    var _iteratorError = undefined;\n\n    try {\n        for (var _iterator = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_get_iterator___default()(elem.children), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n            var child = _step.value;\n\n            if (child.height > height) {\n                height = child.height;\n            }\n            if (child.depth > depth) {\n                depth = child.depth;\n            }\n            if (child.maxFontSize > maxFontSize) {\n                maxFontSize = child.maxFontSize;\n            }\n        }\n    } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n    } finally {\n        try {\n            if (!_iteratorNormalCompletion && _iterator.return) {\n                _iterator.return();\n            }\n        } finally {\n            if (_didIteratorError) {\n                throw _iteratorError;\n            }\n        }\n    }\n\n    elem.height = height;\n    elem.depth = depth;\n    elem.maxFontSize = maxFontSize;\n};\n\n/**\n * Makes a span with the given list of classes, list of children, and options.\n *\n * TODO(#953): Ensure that `options` is always provided (currently some call\n * sites don't pass it) and make the type below mandatory.\n * TODO: add a separate argument for math class (e.g. `mop`, `mbin`), which\n * should if present come first in `classes`.\n */\nvar makeSpan = function makeSpan(classes, children, options, style) {\n    var span = new __WEBPACK_IMPORTED_MODULE_2__domTree__[\"a\" /* default */].span(classes, children, options, style);\n\n    sizeElementFromChildren(span);\n\n    return span;\n};\n\nvar makeLineSpan = function makeLineSpan(className, options) {\n    // Return a span with an SVG image of a horizontal line. The SVG path\n    // fills the middle fifth of the span. We want an extra tall span\n    // because Chrome will sometimes not display a span that is 0.04em tall.\n    var lineHeight = options.fontMetrics().defaultRuleThickness;\n    var line = __WEBPACK_IMPORTED_MODULE_6__stretchy__[\"a\" /* default */].ruleSpan(className, lineHeight, options);\n    line.height = lineHeight;\n    line.style.height = 5 * line.height + \"em\";\n    line.maxFontSize = 1.0;\n    return line;\n};\n\n/**\n * Makes an anchor with the given href, list of classes, list of children,\n * and options.\n */\nvar makeAnchor = function makeAnchor(href, classes, children, options) {\n    var anchor = new __WEBPACK_IMPORTED_MODULE_2__domTree__[\"a\" /* default */].anchor(href, classes, children, options);\n\n    sizeElementFromChildren(anchor);\n\n    return anchor;\n};\n\n/**\n * Makes a document fragment with the given list of children.\n */\nvar makeFragment = function makeFragment(children) {\n    var fragment = new __WEBPACK_IMPORTED_MODULE_2__domTree__[\"a\" /* default */].documentFragment(children);\n\n    sizeElementFromChildren(fragment);\n\n    return fragment;\n};\n\n// These are exact object types to catch typos in the names of the optional fields.\n\n\n// A list of child or kern nodes to be stacked on top of each other (i.e. the\n// first element will be at the bottom, and the last at the top).\n\n\n// Computes the updated `children` list and the overall depth.\n//\n// This helper function for makeVList makes it easier to enforce type safety by\n// allowing early exits (returns) in the logic.\nvar getVListChildrenAndDepth = function getVListChildrenAndDepth(params) {\n    if (params.positionType === \"individualShift\") {\n        var oldChildren = params.children;\n        var _children = [oldChildren[0]];\n\n        // Add in kerns to the list of params.children to get each element to be\n        // shifted to the correct specified shift\n        var _depth = -oldChildren[0].shift - oldChildren[0].elem.depth;\n        var currPos = _depth;\n        for (var i = 1; i < oldChildren.length; i++) {\n            var diff = -oldChildren[i].shift - currPos - oldChildren[i].elem.depth;\n            var _size = diff - (oldChildren[i - 1].elem.height + oldChildren[i - 1].elem.depth);\n\n            currPos = currPos + diff;\n\n            _children.push({ type: \"kern\", size: _size });\n            _children.push(oldChildren[i]);\n        }\n\n        return { children: _children, depth: _depth };\n    }\n\n    var depth = void 0;\n    if (params.positionType === \"top\") {\n        // We always start at the bottom, so calculate the bottom by adding up\n        // all the sizes\n        var bottom = params.positionData;\n        var _iteratorNormalCompletion2 = true;\n        var _didIteratorError2 = false;\n        var _iteratorError2 = undefined;\n\n        try {\n            for (var _iterator2 = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_get_iterator___default()(params.children), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n                var child = _step2.value;\n\n                bottom -= child.type === \"kern\" ? child.size : child.elem.height + child.elem.depth;\n            }\n        } catch (err) {\n            _didIteratorError2 = true;\n            _iteratorError2 = err;\n        } finally {\n            try {\n                if (!_iteratorNormalCompletion2 && _iterator2.return) {\n                    _iterator2.return();\n                }\n            } finally {\n                if (_didIteratorError2) {\n                    throw _iteratorError2;\n                }\n            }\n        }\n\n        depth = bottom;\n    } else if (params.positionType === \"bottom\") {\n        depth = -params.positionData;\n    } else {\n        var firstChild = params.children[0];\n        if (firstChild.type !== \"elem\") {\n            throw new Error('First child must have type \"elem\".');\n        }\n        if (params.positionType === \"shift\") {\n            depth = -firstChild.elem.depth - params.positionData;\n        } else if (params.positionType === \"firstBaseline\") {\n            depth = -firstChild.elem.depth;\n        } else {\n            throw new Error(\"Invalid positionType \" + params.positionType + \".\");\n        }\n    }\n    return { children: params.children, depth: depth };\n};\n\n/**\n * Makes a vertical list by stacking elements and kerns on top of each other.\n * Allows for many different ways of specifying the positioning method.\n *\n * See VListParam documentation above.\n */\nvar makeVList = function makeVList(params, options) {\n    var _getVListChildrenAndD = getVListChildrenAndDepth(params),\n        children = _getVListChildrenAndD.children,\n        depth = _getVListChildrenAndD.depth;\n\n    // Create a strut that is taller than any list item. The strut is added to\n    // each item, where it will determine the item's baseline. Since it has\n    // `overflow:hidden`, the strut's top edge will sit on the item's line box's\n    // top edge and the strut's bottom edge will sit on the item's baseline,\n    // with no additional line-height spacing. This allows the item baseline to\n    // be positioned precisely without worrying about font ascent and\n    // line-height.\n\n\n    var pstrutSize = 0;\n    var _iteratorNormalCompletion3 = true;\n    var _didIteratorError3 = false;\n    var _iteratorError3 = undefined;\n\n    try {\n        for (var _iterator3 = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_get_iterator___default()(children), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n            var child = _step3.value;\n\n            if (child.type === \"elem\") {\n                var _elem = child.elem;\n                pstrutSize = Math.max(pstrutSize, _elem.maxFontSize, _elem.height);\n            }\n        }\n    } catch (err) {\n        _didIteratorError3 = true;\n        _iteratorError3 = err;\n    } finally {\n        try {\n            if (!_iteratorNormalCompletion3 && _iterator3.return) {\n                _iterator3.return();\n            }\n        } finally {\n            if (_didIteratorError3) {\n                throw _iteratorError3;\n            }\n        }\n    }\n\n    pstrutSize += 2;\n    var pstrut = makeSpan([\"pstrut\"], []);\n    pstrut.style.height = pstrutSize + \"em\";\n\n    // Create a new list of actual children at the correct offsets\n    var realChildren = [];\n    var minPos = depth;\n    var maxPos = depth;\n    var currPos = depth;\n    var _iteratorNormalCompletion4 = true;\n    var _didIteratorError4 = false;\n    var _iteratorError4 = undefined;\n\n    try {\n        for (var _iterator4 = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_get_iterator___default()(children), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n            var _child = _step4.value;\n\n            if (_child.type === \"kern\") {\n                currPos += _child.size;\n            } else {\n                var _elem2 = _child.elem;\n                var classes = _child.wrapperClasses || [];\n                var style = _child.wrapperStyle || {};\n\n                var childWrap = makeSpan(classes, [pstrut, _elem2], undefined, style);\n                childWrap.style.top = -pstrutSize - currPos - _elem2.depth + \"em\";\n                if (_child.marginLeft) {\n                    childWrap.style.marginLeft = _child.marginLeft;\n                }\n                if (_child.marginRight) {\n                    childWrap.style.marginRight = _child.marginRight;\n                }\n\n                realChildren.push(childWrap);\n                currPos += _elem2.height + _elem2.depth;\n            }\n            minPos = Math.min(minPos, currPos);\n            maxPos = Math.max(maxPos, currPos);\n        }\n\n        // The vlist contents go in a table-cell with `vertical-align:bottom`.\n        // This cell's bottom edge will determine the containing table's baseline\n        // without overly expanding the containing line-box.\n    } catch (err) {\n        _didIteratorError4 = true;\n        _iteratorError4 = err;\n    } finally {\n        try {\n            if (!_iteratorNormalCompletion4 && _iterator4.return) {\n                _iterator4.return();\n            }\n        } finally {\n            if (_didIteratorError4) {\n                throw _iteratorError4;\n            }\n        }\n    }\n\n    var vlist = makeSpan([\"vlist\"], realChildren);\n    vlist.style.height = maxPos + \"em\";\n\n    // A second row is used if necessary to represent the vlist's depth.\n    var rows = void 0;\n    if (minPos < 0) {\n        var depthStrut = makeSpan([\"vlist\"], []);\n        depthStrut.style.height = -minPos + \"em\";\n\n        // Safari wants the first row to have inline content; otherwise it\n        // puts the bottom of the *second* row on the baseline.\n        var topStrut = makeSpan([\"vlist-s\"], [new __WEBPACK_IMPORTED_MODULE_2__domTree__[\"a\" /* default */].symbolNode(\"\\u200B\")]);\n\n        rows = [makeSpan([\"vlist-r\"], [vlist, topStrut]), makeSpan([\"vlist-r\"], [depthStrut])];\n    } else {\n        rows = [makeSpan([\"vlist-r\"], [vlist])];\n    }\n\n    var vtable = makeSpan([\"vlist-t\"], rows);\n    if (rows.length === 2) {\n        vtable.classes.push(\"vlist-t2\");\n    }\n    vtable.height = maxPos;\n    vtable.depth = -minPos;\n    return vtable;\n};\n\n// Converts verb group into body string, dealing with \\verb* form\nvar makeVerb = function makeVerb(group, options) {\n    // TODO(#892): Make ParseNode type-safe and confirm `group.type` to guarantee\n    // that `group.value.body` is of type string.\n    var text = group.value.body;\n    if (group.value.star) {\n        text = text.replace(/ /g, \"\\u2423\"); // Open Box\n    } else {\n        text = text.replace(/ /g, '\\xA0'); // No-Break Space\n        // (so that, in particular, spaces don't coalesce)\n    }\n    return text;\n};\n\n// Glue is a concept from TeX which is a flexible space between elements in\n// either a vertical or horizontal list.  In KaTeX, at least for now, it's\n// static space between elements in a horizontal layout.\nvar makeGlue = function makeGlue(measurement, options) {\n    // Make an empty span for the rule\n    var rule = makeSpan([\"mord\", \"rule\"], [], options);\n    var size = Object(__WEBPACK_IMPORTED_MODULE_7__units__[\"a\" /* calculateSize */])(measurement, options);\n    rule.style.marginRight = size + \"em\";\n    return rule;\n};\n\n// Takes an Options object, and returns the appropriate fontLookup\nvar retrieveTextFontName = function retrieveTextFontName(fontFamily, fontWeight, fontShape) {\n    var baseFontName = retrieveBaseFontName(fontFamily);\n    var fontStylesName = retrieveFontStylesName(fontWeight, fontShape);\n    return baseFontName + \"-\" + fontStylesName;\n};\n\nvar retrieveBaseFontName = function retrieveBaseFontName(font) {\n    var baseFontName = \"\";\n    switch (font) {\n        case \"amsrm\":\n            baseFontName = \"AMS\";\n            break;\n        case \"textrm\":\n            baseFontName = \"Main\";\n            break;\n        case \"textsf\":\n            baseFontName = \"SansSerif\";\n            break;\n        case \"texttt\":\n            baseFontName = \"Typewriter\";\n            break;\n        default:\n            throw new Error(\"Invalid font provided: \" + font);\n    }\n    return baseFontName;\n};\n\nvar retrieveFontStylesName = function retrieveFontStylesName(fontWeight, fontShape) {\n    var fontStylesName = '';\n    if (fontWeight === \"textbf\") {\n        fontStylesName += \"Bold\";\n    }\n    if (fontShape === \"textit\") {\n        fontStylesName += \"Italic\";\n    }\n    return fontStylesName || \"Regular\";\n};\n\n// A map of spacing functions to their attributes, like size and corresponding\n// CSS class\nvar spacingFunctions = {\n    \"\\\\qquad\": {\n        size: \"2em\",\n        className: \"qquad\"\n    },\n    \"\\\\quad\": {\n        size: \"1em\",\n        className: \"quad\"\n    },\n    \"\\\\enspace\": {\n        size: \"0.5em\",\n        className: \"enspace\"\n    },\n    \"\\\\;\": {\n        size: \"0.277778em\",\n        className: \"thickspace\"\n    },\n    \"\\\\:\": {\n        size: \"0.22222em\",\n        className: \"mediumspace\"\n    },\n    \"\\\\,\": {\n        size: \"0.16667em\",\n        className: \"thinspace\"\n    },\n    \"\\\\!\": {\n        size: \"-0.16667em\",\n        className: \"negativethinspace\"\n    }\n};\n\n/**\n * Maps TeX font commands to objects containing:\n * - variant: string used for \"mathvariant\" attribute in buildMathML.js\n * - fontName: the \"style\" parameter to fontMetrics.getCharacterMetrics\n */\n// A map between tex font commands an MathML mathvariant attribute values\nvar fontMap = {\n    // styles\n    \"mathbf\": {\n        variant: \"bold\",\n        fontName: \"Main-Bold\"\n    },\n    \"mathrm\": {\n        variant: \"normal\",\n        fontName: \"Main-Regular\"\n    },\n    \"textit\": {\n        variant: \"italic\",\n        fontName: \"Main-Italic\"\n    },\n\n    // \"mathit\" and \"boldsymbol\" are missing because they require the use of two\n    // fonts: Main-Italic and Math-Italic for \"mathit\", and Math-BoldItalic and\n    // Main-Bold for \"boldsymbol\".  This is handled by a special case in makeOrd\n    // which ends up calling mathit and boldsymbol.\n\n    // families\n    \"mathbb\": {\n        variant: \"double-struck\",\n        fontName: \"AMS-Regular\"\n    },\n    \"mathcal\": {\n        variant: \"script\",\n        fontName: \"Caligraphic-Regular\"\n    },\n    \"mathfrak\": {\n        variant: \"fraktur\",\n        fontName: \"Fraktur-Regular\"\n    },\n    \"mathscr\": {\n        variant: \"script\",\n        fontName: \"Script-Regular\"\n    },\n    \"mathsf\": {\n        variant: \"sans-serif\",\n        fontName: \"SansSerif-Regular\"\n    },\n    \"mathtt\": {\n        variant: \"monospace\",\n        fontName: \"Typewriter-Regular\"\n    }\n};\n\nvar svgData = {\n    //   path, width, height\n    vec: [\"vec\", 0.471, 0.714] // values from the font glyph\n};\n\nvar staticSvg = function staticSvg(value, options) {\n    // Create a span with inline SVG for the element.\n    var _svgData$value = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_slicedToArray___default()(svgData[value], 3),\n        pathName = _svgData$value[0],\n        width = _svgData$value[1],\n        height = _svgData$value[2];\n\n    var path = new __WEBPACK_IMPORTED_MODULE_2__domTree__[\"a\" /* default */].pathNode(pathName);\n    var svgNode = new __WEBPACK_IMPORTED_MODULE_2__domTree__[\"a\" /* default */].svgNode([path], {\n        \"width\": width + \"em\",\n        \"height\": height + \"em\",\n        // Override CSS rule `.katex svg { width: 100% }`\n        \"style\": \"width:\" + width + \"em\",\n        \"viewBox\": \"0 0 \" + 1000 * width + \" \" + 1000 * height,\n        \"preserveAspectRatio\": \"xMinYMin\"\n    });\n    var span = makeSpan([\"overlay\"], [svgNode], options);\n    span.height = height;\n    span.style.height = height + \"em\";\n    span.style.width = width + \"em\";\n    return span;\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n    fontMap: fontMap,\n    makeSymbol: makeSymbol,\n    mathsym: mathsym,\n    makeSpan: makeSpan,\n    makeLineSpan: makeLineSpan,\n    makeAnchor: makeAnchor,\n    makeFragment: makeFragment,\n    makeVList: makeVList,\n    makeOrd: makeOrd,\n    makeVerb: makeVerb,\n    makeGlue: makeGlue,\n    staticSvg: staticSvg,\n    svgData: svgData,\n    tryCombineChars: tryCombineChars,\n    spacingFunctions: spacingFunctions\n});\n\n/***/ }),\n/* 1 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_get_iterator__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_get_iterator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_get_iterator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils__ = __webpack_require__(5);\n\n\n\n\n/**\n * These objects store data about MathML nodes. This is the MathML equivalent\n * of the types in domTree.js. Since MathML handles its own rendering, and\n * since we're mainly using MathML to improve accessibility, we don't manage\n * any of the styling state that the plain DOM nodes do.\n *\n * The `toNode` and `toMarkup` functions work simlarly to how they do in\n * domTree.js, creating namespaced DOM nodes and HTML text markup respectively.\n */\n\n\n\n/**\n * MathML node types used in KaTeX. For a complete list of MathML nodes, see\n * https://developer.mozilla.org/en-US/docs/Web/MathML/Element.\n */\n\n/**\n * This node represents a general purpose MathML node of any type. The\n * constructor requires the type of node to create (for example, `\"mo\"` or\n * `\"mspace\"`, corresponding to `<mo>` and `<mspace>` tags).\n */\nvar MathNode = function () {\n    function MathNode(type, children) {\n        __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, MathNode);\n\n        this.type = type;\n        this.attributes = {};\n        this.children = children || [];\n    }\n\n    /**\n     * Sets an attribute on a MathML node. MathML depends on attributes to convey a\n     * semantic content, so this is used heavily.\n     */\n\n\n    __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default()(MathNode, [{\n        key: \"setAttribute\",\n        value: function setAttribute(name, value) {\n            this.attributes[name] = value;\n        }\n\n        /**\n         * Converts the math node into a MathML-namespaced DOM element.\n         */\n\n    }, {\n        key: \"toNode\",\n        value: function toNode() {\n            var node = document.createElementNS(\"http://www.w3.org/1998/Math/MathML\", this.type);\n\n            for (var attr in this.attributes) {\n                if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n                    node.setAttribute(attr, this.attributes[attr]);\n                }\n            }\n\n            var _iteratorNormalCompletion = true;\n            var _didIteratorError = false;\n            var _iteratorError = undefined;\n\n            try {\n                for (var _iterator = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_get_iterator___default()(this.children), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n                    var child = _step.value;\n\n                    node.appendChild(child.toNode());\n                }\n            } catch (err) {\n                _didIteratorError = true;\n                _iteratorError = err;\n            } finally {\n                try {\n                    if (!_iteratorNormalCompletion && _iterator.return) {\n                        _iterator.return();\n                    }\n                } finally {\n                    if (_didIteratorError) {\n                        throw _iteratorError;\n                    }\n                }\n            }\n\n            return node;\n        }\n\n        /**\n         * Converts the math node into an HTML markup string.\n         */\n\n    }, {\n        key: \"toMarkup\",\n        value: function toMarkup() {\n            var markup = \"<\" + this.type;\n\n            // Add the attributes\n            for (var attr in this.attributes) {\n                if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n                    markup += \" \" + attr + \"=\\\"\";\n                    markup += __WEBPACK_IMPORTED_MODULE_3__utils__[\"a\" /* default */].escape(this.attributes[attr]);\n                    markup += \"\\\"\";\n                }\n            }\n\n            markup += \">\";\n\n            for (var i = 0; i < this.children.length; i++) {\n                markup += this.children[i].toMarkup();\n            }\n\n            markup += \"</\" + this.type + \">\";\n\n            return markup;\n        }\n\n        /**\n         * Converts the math node into a string, similar to innerText.\n         */\n\n    }, {\n        key: \"toText\",\n        value: function toText() {\n            if (this.type === \"mspace\") {\n                if (this.attributes.width === \"0.16667em\") {\n                    return \"\\u2006\";\n                } else {\n                    // TODO: Use other space characters for different widths.\n                    // https://github.com/Khan/KaTeX/issues/1036\n                    return \" \";\n                }\n            }\n            return this.children.map(function (child) {\n                return child.toText();\n            }).join(\"\");\n        }\n    }]);\n\n    return MathNode;\n}();\n\n/**\n * This node represents a piece of text.\n */\n\n\nvar TextNode = function () {\n    function TextNode(text) {\n        __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, TextNode);\n\n        this.text = text;\n    }\n\n    /**\n     * Converts the text node into a DOM text node.\n     */\n\n\n    __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default()(TextNode, [{\n        key: \"toNode\",\n        value: function toNode() {\n            return document.createTextNode(this.text);\n        }\n\n        /**\n         * Converts the text node into HTML markup (which is just the text itself).\n         */\n\n    }, {\n        key: \"toMarkup\",\n        value: function toMarkup() {\n            return __WEBPACK_IMPORTED_MODULE_3__utils__[\"a\" /* default */].escape(this.text);\n        }\n\n        /**\n         * Converts the text node into a string (which is just the text iteself).\n         */\n\n    }, {\n        key: \"toText\",\n        value: function toText() {\n            return this.text;\n        }\n    }]);\n\n    return TextNode;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n    MathNode: MathNode,\n    TextNode: TextNode\n});\n\n/***/ }),\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return makeText; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return groupTypes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return buildExpression; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return buildGroup; });\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = buildMathML;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__fontMetrics__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ParseError__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Style__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__symbols__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__stretchy__ = __webpack_require__(13);\n/**\n * WARNING: New methods on groupTypes should be added to src/functions.\n *\n * This file converts a parse tree into a cooresponding MathML tree. The main\n * entry point is the `buildMathML` function, which takes a parse tree from the\n * parser.\n */\n\n\n\n\n\n\n\n\n\n\n/**\n * Takes a symbol and converts it into a MathML text node after performing\n * optional replacement from symbols.js.\n */\nvar makeText = function makeText(text, mode) {\n    if (__WEBPACK_IMPORTED_MODULE_5__symbols__[\"a\" /* default */][mode][text] && __WEBPACK_IMPORTED_MODULE_5__symbols__[\"a\" /* default */][mode][text].replace) {\n        text = __WEBPACK_IMPORTED_MODULE_5__symbols__[\"a\" /* default */][mode][text].replace;\n    }\n\n    return new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].TextNode(text);\n};\n\n/**\n * Returns the math variant as a string or null if none is required.\n */\nvar getVariant = function getVariant(group, options) {\n    var font = options.fontFamily;\n    if (!font) {\n        return null;\n    }\n\n    var mode = group.mode;\n    if (font === \"mathit\") {\n        return \"italic\";\n    } else if (font === \"boldsymbol\") {\n        return \"bold-italic\";\n    }\n\n    var value = group.value;\n    if (__WEBPACK_IMPORTED_MODULE_6__utils__[\"a\" /* default */].contains([\"\\\\imath\", \"\\\\jmath\"], value)) {\n        return null;\n    }\n\n    if (__WEBPACK_IMPORTED_MODULE_5__symbols__[\"a\" /* default */][mode][value] && __WEBPACK_IMPORTED_MODULE_5__symbols__[\"a\" /* default */][mode][value].replace) {\n        value = __WEBPACK_IMPORTED_MODULE_5__symbols__[\"a\" /* default */][mode][value].replace;\n    }\n\n    var fontName = __WEBPACK_IMPORTED_MODULE_0__buildCommon__[\"a\" /* default */].fontMap[font].fontName;\n    if (__WEBPACK_IMPORTED_MODULE_1__fontMetrics__[\"a\" /* default */].getCharacterMetrics(value, fontName, mode)) {\n        return __WEBPACK_IMPORTED_MODULE_0__buildCommon__[\"a\" /* default */].fontMap[font].variant;\n    }\n\n    return null;\n};\n\n/**\n * Functions for handling the different types of groups found in the parse\n * tree. Each function should take a parse group and return a MathML node.\n */\nvar groupTypes = {};\n\nvar defaultVariant = {\n    \"mi\": \"italic\",\n    \"mn\": \"normal\",\n    \"mtext\": \"normal\"\n};\n\ngroupTypes.mathord = function (group, options) {\n    var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mi\", [makeText(group.value, group.mode)]);\n\n    var variant = getVariant(group, options) || \"italic\";\n    if (variant !== defaultVariant[node.type]) {\n        node.setAttribute(\"mathvariant\", variant);\n    }\n    return node;\n};\n\ngroupTypes.textord = function (group, options) {\n    var text = makeText(group.value, group.mode);\n\n    var variant = getVariant(group, options) || \"normal\";\n\n    var node = void 0;\n    if (group.mode === 'text') {\n        node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mtext\", [text]);\n    } else if (/[0-9]/.test(group.value)) {\n        // TODO(kevinb) merge adjacent <mn> nodes\n        // do it as a post processing step\n        node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mn\", [text]);\n    } else if (group.value === \"\\\\prime\") {\n        node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [text]);\n    } else {\n        node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mi\", [text]);\n    }\n    if (variant !== defaultVariant[node.type]) {\n        node.setAttribute(\"mathvariant\", variant);\n    }\n\n    return node;\n};\n\ngroupTypes.bin = function (group, options) {\n    var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [makeText(group.value, group.mode)]);\n\n    var variant = getVariant(group, options);\n    if (variant === \"bold-italic\") {\n        node.setAttribute(\"mathvariant\", variant);\n    }\n\n    return node;\n};\n\ngroupTypes.rel = function (group) {\n    var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [makeText(group.value, group.mode)]);\n\n    return node;\n};\n\ngroupTypes.open = function (group) {\n    var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [makeText(group.value, group.mode)]);\n\n    return node;\n};\n\ngroupTypes.close = function (group) {\n    var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [makeText(group.value, group.mode)]);\n\n    return node;\n};\n\ngroupTypes.inner = function (group) {\n    var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [makeText(group.value, group.mode)]);\n\n    return node;\n};\n\ngroupTypes.punct = function (group) {\n    var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [makeText(group.value, group.mode)]);\n\n    node.setAttribute(\"separator\", \"true\");\n\n    return node;\n};\n\ngroupTypes.ordgroup = function (group, options) {\n    var inner = buildExpression(group.value, options);\n\n    var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mrow\", inner);\n\n    return node;\n};\n\ngroupTypes.supsub = function (group, options) {\n    // Is the inner group a relevant horizonal brace?\n    var isBrace = false;\n    var isOver = void 0;\n    var isSup = void 0;\n    if (group.value.base) {\n        if (group.value.base.value.type === \"horizBrace\") {\n            isSup = group.value.sup ? true : false;\n            if (isSup === group.value.base.value.isOver) {\n                isBrace = true;\n                isOver = group.value.base.value.isOver;\n            }\n        }\n    }\n\n    var removeUnnecessaryRow = true;\n    var children = [buildGroup(group.value.base, options, removeUnnecessaryRow)];\n\n    if (group.value.sub) {\n        children.push(buildGroup(group.value.sub, options, removeUnnecessaryRow));\n    }\n\n    if (group.value.sup) {\n        children.push(buildGroup(group.value.sup, options, removeUnnecessaryRow));\n    }\n\n    var nodeType = void 0;\n    if (isBrace) {\n        nodeType = isOver ? \"mover\" : \"munder\";\n    } else if (!group.value.sub) {\n        var base = group.value.base;\n        if (base && base.value.limits && options.style === __WEBPACK_IMPORTED_MODULE_4__Style__[\"a\" /* default */].DISPLAY) {\n            nodeType = \"mover\";\n        } else {\n            nodeType = \"msup\";\n        }\n    } else if (!group.value.sup) {\n        var _base = group.value.base;\n        if (_base && _base.value.limits && options.style === __WEBPACK_IMPORTED_MODULE_4__Style__[\"a\" /* default */].DISPLAY) {\n            nodeType = \"munder\";\n        } else {\n            nodeType = \"msub\";\n        }\n    } else {\n        var _base2 = group.value.base;\n        if (_base2 && _base2.value.limits && options.style === __WEBPACK_IMPORTED_MODULE_4__Style__[\"a\" /* default */].DISPLAY) {\n            nodeType = \"munderover\";\n        } else {\n            nodeType = \"msubsup\";\n        }\n    }\n\n    var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(nodeType, children);\n\n    return node;\n};\n\ngroupTypes.spacing = function (group) {\n    var node = void 0;\n\n    if (group.value === \"\\\\ \" || group.value === \"\\\\space\" || group.value === \" \" || group.value === \"~\") {\n        node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mtext\", [new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].TextNode(\"\\xA0\")]);\n    } else {\n        node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mspace\");\n\n        node.setAttribute(\"width\", __WEBPACK_IMPORTED_MODULE_0__buildCommon__[\"a\" /* default */].spacingFunctions[group.value].size);\n    }\n\n    return node;\n};\n\ngroupTypes.horizBrace = function (group, options) {\n    var accentNode = __WEBPACK_IMPORTED_MODULE_7__stretchy__[\"a\" /* default */].mathMLnode(group.value.label);\n    return new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(group.value.isOver ? \"mover\" : \"munder\", [buildGroup(group.value.base, options), accentNode]);\n};\n\ngroupTypes.xArrow = function (group, options) {\n    var arrowNode = __WEBPACK_IMPORTED_MODULE_7__stretchy__[\"a\" /* default */].mathMLnode(group.value.label);\n    var node = void 0;\n    var lowerNode = void 0;\n\n    if (group.value.body) {\n        var upperNode = buildGroup(group.value.body, options);\n        if (group.value.below) {\n            lowerNode = buildGroup(group.value.below, options);\n            node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"munderover\", [arrowNode, lowerNode, upperNode]);\n        } else {\n            node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mover\", [arrowNode, upperNode]);\n        }\n    } else if (group.value.below) {\n        lowerNode = buildGroup(group.value.below, options);\n        node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"munder\", [arrowNode, lowerNode]);\n    } else {\n        node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mover\", [arrowNode]);\n    }\n    return node;\n};\n\ngroupTypes.mclass = function (group, options) {\n    var inner = buildExpression(group.value.value, options);\n    return new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mstyle\", inner);\n};\n\ngroupTypes.raisebox = function (group, options) {\n    var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mpadded\", [buildGroup(group.value.body, options)]);\n    var dy = group.value.dy.value.number + group.value.dy.value.unit;\n    node.setAttribute(\"voffset\", dy);\n    return node;\n};\n\n/**\n * Takes a list of nodes, builds them, and returns a list of the generated\n * MathML nodes. A little simpler than the HTML version because we don't do any\n * previous-node handling.\n */\nvar buildExpression = function buildExpression(expression, options) {\n    var groups = [];\n    for (var i = 0; i < expression.length; i++) {\n        var group = expression[i];\n        groups.push(buildGroup(group, options));\n    }\n\n    // TODO(kevinb): combine \\\\not with mrels and mords\n\n    return groups;\n};\n\n/**\n * Takes a group from the parser and calls the appropriate groupTypes function\n * on it to produce a MathML node.\n */\nvar buildGroup = function buildGroup(group, options) {\n    var removeUnnecessaryRow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n    if (!group) {\n        return new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mrow\");\n    }\n\n    if (groupTypes[group.type]) {\n        // Call the groupTypes function\n        var result = groupTypes[group.type](group, options);\n        if (removeUnnecessaryRow) {\n            if (result.type === \"mrow\" && result.children.length === 1) {\n                return result.children[0];\n            }\n        }\n        return result;\n    } else {\n        throw new __WEBPACK_IMPORTED_MODULE_3__ParseError__[\"a\" /* default */](\"Got group of unknown type: '\" + group.type + \"'\");\n    }\n};\n\n/**\n * Takes a full parse tree and settings and builds a MathML representation of\n * it. In particular, we put the elements from building the parse tree into a\n * <semantics> tag so we can also include that TeX source as an annotation.\n *\n * Note that we actually return a domTree element with a `<math>` inside it so\n * we can do appropriate styling.\n */\nfunction buildMathML(tree, texExpression, options) {\n    var expression = buildExpression(tree, options);\n\n    // Wrap up the expression in an mrow so it is presented in the semantics\n    // tag correctly.\n    var wrapper = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mrow\", expression);\n\n    // Build a TeX annotation of the source\n    var annotation = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"annotation\", [new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].TextNode(texExpression)]);\n\n    annotation.setAttribute(\"encoding\", \"application/x-tex\");\n\n    var semantics = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"semantics\", [wrapper, annotation]);\n\n    var math = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"math\", [semantics]);\n\n    // You can't style <math> nodes, so we wrap the node in a span.\n    return __WEBPACK_IMPORTED_MODULE_0__buildCommon__[\"a\" /* default */].makeSpan([\"katex-mathml\"], [math]);\n}\n\n/***/ }),\n/* 3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _functions; });\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = defineFunction;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return ordargument; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__buildMathML__ = __webpack_require__(2);\n\n\n\n/** Context provided to function handlers for error messages. */\n\n\n// TODO: Enumerate all allowed output types.\n\n\n/**\n * Final function spec for use at parse time.\n * This is almost identical to `FunctionPropSpec`, except it\n * 1. includes the function handler, and\n * 2. requires all arguments except argTypes.\n * It is generated by `defineFunction()` below.\n */\n\n\n/**\n * All registered functions.\n * `functions.js` just exports this same dictionary again and makes it public.\n * `Parser.js` requires this dictionary.\n */\nvar _functions = {};\n\nfunction defineFunction(_ref) {\n    var type = _ref.type,\n        names = _ref.names,\n        props = _ref.props,\n        handler = _ref.handler,\n        htmlBuilder = _ref.htmlBuilder,\n        mathmlBuilder = _ref.mathmlBuilder;\n\n    // Set default values of functions\n    var data = {\n        numArgs: props.numArgs,\n        argTypes: props.argTypes,\n        greediness: props.greediness === undefined ? 1 : props.greediness,\n        allowedInText: !!props.allowedInText,\n        allowedInMath: props.allowedInMath === undefined ? true : props.allowedInMath,\n        numOptionalArgs: props.numOptionalArgs || 0,\n        infix: !!props.infix,\n        handler: handler\n    };\n    for (var i = 0; i < names.length; ++i) {\n        _functions[names[i]] = data;\n    }\n    if (type) {\n        if (htmlBuilder) {\n            __WEBPACK_IMPORTED_MODULE_0__buildHTML__[\"d\" /* groupTypes */][type] = htmlBuilder;\n        }\n        if (mathmlBuilder) {\n            __WEBPACK_IMPORTED_MODULE_1__buildMathML__[\"d\" /* groupTypes */][type] = mathmlBuilder;\n        }\n    }\n}\n\n// Since the corresponding buildHTML/buildMathML function expects a\n// list of elements, we normalize for different kinds of arguments\nvar ordargument = function ordargument(arg) {\n    if (arg.type === \"ordgroup\") {\n        return arg.value;\n    } else {\n        return [arg];\n    }\n};\n\n/***/ }),\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return buildExpression; });\n/* unused harmony export getTypeOfDomTree */\n/* unused harmony export isLeftTight */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return makeNullDelimiter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return groupTypes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return buildGroup; });\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = buildHTML;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify__ = __webpack_require__(77);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_toConsumableArray__ = __webpack_require__(35);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_toConsumableArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_toConsumableArray__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ParseError__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Style__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__domTree__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__units__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__stretchy__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__spacingData__ = __webpack_require__(112);\n\n\n/**\n * WARNING: New methods on groupTypes should be added to src/functions.\n *\n * This file does the main work of building a domTree structure from a parse\n * tree. The entry point is the `buildHTML` function, which takes a parse tree.\n * Then, the buildExpression, buildGroup, and various groupTypes functions are\n * called, to produce a final HTML tree.\n */\n\n\n\n\n\n\n\n\n\n\n\nvar makeSpan = __WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].makeSpan;\n\n// Binary atoms (first class `mbin`) change into ordinary atoms (`mord`)\n// depending on their surroundings. See TeXbook pg. 442-446, Rules 5 and 6,\n// and the text before Rule 19.\nvar isBinLeftCanceller = function isBinLeftCanceller(node, isRealGroup) {\n    // TODO: This code assumes that a node's math class is the first element\n    // of its `classes` array. A later cleanup should ensure this, for\n    // instance by changing the signature of `makeSpan`.\n    if (node) {\n        return __WEBPACK_IMPORTED_MODULE_7__utils__[\"a\" /* default */].contains([\"mbin\", \"mopen\", \"mrel\", \"mop\", \"mpunct\"], getTypeOfDomTree(node, \"right\"));\n    } else {\n        return isRealGroup;\n    }\n};\n\nvar isBinRightCanceller = function isBinRightCanceller(node, isRealGroup) {\n    if (node) {\n        return __WEBPACK_IMPORTED_MODULE_7__utils__[\"a\" /* default */].contains([\"mrel\", \"mclose\", \"mpunct\"], getTypeOfDomTree(node, \"left\"));\n    } else {\n        return isRealGroup;\n    }\n};\n\nvar styleMap = {\n    \"display\": __WEBPACK_IMPORTED_MODULE_3__Style__[\"a\" /* default */].DISPLAY,\n    \"text\": __WEBPACK_IMPORTED_MODULE_3__Style__[\"a\" /* default */].TEXT,\n    \"script\": __WEBPACK_IMPORTED_MODULE_3__Style__[\"a\" /* default */].SCRIPT,\n    \"scriptscript\": __WEBPACK_IMPORTED_MODULE_3__Style__[\"a\" /* default */].SCRIPTSCRIPT\n};\n\n/**\n * Take a list of nodes, build them in order, and return a list of the built\n * nodes. documentFragments are flattened into their contents, so the\n * returned list contains no fragments. `isRealGroup` is true if `expression`\n * is a real group (no atoms will be added on either side), as opposed to\n * a partial group (e.g. one created by \\color). `surrounding` is an array\n * consisting type of nodes that will be added to the left and right.\n */\nvar buildExpression = function buildExpression(expression, options, isRealGroup) {\n    var surrounding = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [null, null];\n\n    // Parse expressions into `groups`.\n    var rawGroups = [];\n    for (var i = 0; i < expression.length; i++) {\n        var group = expression[i];\n        var output = buildGroup(group, options);\n        if (output instanceof __WEBPACK_IMPORTED_MODULE_5__domTree__[\"a\" /* default */].documentFragment) {\n            rawGroups.push.apply(rawGroups, __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_toConsumableArray___default()(output.children));\n        } else {\n            rawGroups.push(output);\n        }\n    }\n    // At this point `rawGroups` consists entirely of `symbolNode`s and `span`s.\n\n    // Ignore explicit spaces (e.g., \\;, \\,) when determining what implicit\n    // spacing should go between atoms of different classes, and add dummy\n    // spans for determining spacings between surrounding atoms\n    var nonSpaces = [surrounding[0] && makeSpan([surrounding[0]], [], options)].concat(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_toConsumableArray___default()(rawGroups.filter(function (group) {\n        return group && group.classes[0] !== \"mspace\";\n    })), [surrounding[1] && makeSpan([surrounding[1]], [], options)]);\n\n    // Before determining what spaces to insert, perform bin cancellation.\n    // Binary operators change to ordinary symbols in some contexts.\n    for (var _i = 1; _i < nonSpaces.length - 1; _i++) {\n        var left = getOutermostNode(nonSpaces[_i], \"left\");\n        if (left.classes[0] === \"mbin\" && isBinLeftCanceller(nonSpaces[_i - 1], isRealGroup)) {\n            left.classes[0] = \"mord\";\n        }\n\n        var right = getOutermostNode(nonSpaces[_i], \"right\");\n        if (right.classes[0] === \"mbin\" && isBinRightCanceller(nonSpaces[_i + 1], isRealGroup)) {\n            right.classes[0] = \"mord\";\n        }\n    }\n\n    var groups = [];\n    var j = 0;\n    for (var _i2 = 0; _i2 < rawGroups.length; _i2++) {\n        groups.push(rawGroups[_i2]);\n\n        // For any group that is not a space, get the next non-space.  Then\n        // lookup what implicit space should be placed between those atoms and\n        // add it to groups.\n        if (rawGroups[_i2].classes[0] !== \"mspace\" && j < nonSpaces.length - 1) {\n            // if current non-space node is left dummy span, add a glue before\n            // first real non-space node\n            if (j === 0) {\n                groups.pop();\n                _i2--;\n            }\n\n            // Get the type of the current non-space node.  If it's a document\n            // fragment, get the type of the rightmost node in the fragment.\n            var _left = getTypeOfDomTree(nonSpaces[j], \"right\");\n\n            // Get the type of the next non-space node.  If it's a document\n            // fragment, get the type of the leftmost node in the fragment.\n            var _right = getTypeOfDomTree(nonSpaces[j + 1], \"left\");\n\n            // We use buildExpression inside of sizingGroup, but it returns a\n            // document fragment of elements.  sizingGroup sets `isRealGroup`\n            // to false to avoid processing spans multiple times.\n            if (_left && _right && isRealGroup) {\n                var space = isLeftTight(nonSpaces[j + 1]) ? __WEBPACK_IMPORTED_MODULE_9__spacingData__[\"b\" /* tightSpacings */][_left][_right] : __WEBPACK_IMPORTED_MODULE_9__spacingData__[\"a\" /* spacings */][_left][_right];\n\n                if (space) {\n                    var glueOptions = options;\n\n                    if (expression.length === 1) {\n                        if (expression[0].type === \"sizing\") {\n                            glueOptions = options.havingSize(expression[0].value.size);\n                        } else if (expression[0].type === \"styling\") {\n                            glueOptions = options.havingStyle(styleMap[expression[0].value.style]);\n                        }\n                    }\n\n                    groups.push(__WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].makeGlue(space, glueOptions));\n                }\n            }\n            j++;\n        }\n    }\n\n    // Process \\\\not commands within the group.\n    for (var _i3 = 0; _i3 < groups.length; _i3++) {\n        if (groups[_i3].value === \"\\u0338\") {\n            groups[_i3].style.position = \"absolute\";\n            // TODO(kevinb) fix this for Safari by switching to a non-combining\n            // character for \\not.\n            // This value was determined empirically.\n            // TODO(kevinb) figure out the real math for this value.\n            groups[_i3].style.paddingLeft = \"0.8em\";\n        }\n    }\n\n    return groups;\n};\n\n// Return the outermost node of a domTree.\nvar getOutermostNode = function getOutermostNode(node) {\n    var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"right\";\n\n    if (node instanceof __WEBPACK_IMPORTED_MODULE_5__domTree__[\"a\" /* default */].documentFragment || node instanceof __WEBPACK_IMPORTED_MODULE_5__domTree__[\"a\" /* default */].anchor) {\n        if (node.children.length) {\n            if (side === \"right\") {\n                return getOutermostNode(node.children[node.children.length - 1]);\n            } else if (side === \"left\") {\n                return getOutermostNode(node.children[0]);\n            }\n        }\n    }\n    return node;\n};\n\n// Return math atom class (mclass) of a domTree.\nvar getTypeOfDomTree = function getTypeOfDomTree(node) {\n    var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"right\";\n\n    if (!node) {\n        return null;\n    }\n\n    node = getOutermostNode(node, side);\n    // This makes a lot of assumptions as to where the type of atom\n    // appears.  We should do a better job of enforcing this.\n    if (__WEBPACK_IMPORTED_MODULE_7__utils__[\"a\" /* default */].contains([\"mord\", \"mop\", \"mbin\", \"mrel\", \"mopen\", \"mclose\", \"mpunct\", \"minner\"], node.classes[0])) {\n        return node.classes[0];\n    }\n    return null;\n};\n\n// If `node` is an atom return whether it's been assigned the mtight class.\n// If `node` is a document fragment, return the value of isLeftTight() for the\n// leftmost node in the fragment.\n// 'mtight' indicates that the node is script or scriptscript style.\nvar isLeftTight = function isLeftTight(node) {\n    node = getOutermostNode(node, \"left\");\n    return __WEBPACK_IMPORTED_MODULE_7__utils__[\"a\" /* default */].contains(node.classes, \"mtight\");\n};\n\n/**\n * Sometimes, groups perform special rules when they have superscripts or\n * subscripts attached to them. This function lets the `supsub` group know that\n * its inner element should handle the superscripts and subscripts instead of\n * handling them itself.\n */\nvar shouldHandleSupSub = function shouldHandleSupSub(group, options) {\n    if (!group.value.base) {\n        return false;\n    } else {\n        var base = group.value.base;\n        if (base.type === \"op\") {\n            // Operators handle supsubs differently when they have limits\n            // (e.g. `\\displaystyle\\sum_2^3`)\n            return base.value.limits && (options.style.size === __WEBPACK_IMPORTED_MODULE_3__Style__[\"a\" /* default */].DISPLAY.size || base.value.alwaysHandleSupSub);\n        } else if (base.type === \"accent\") {\n            return __WEBPACK_IMPORTED_MODULE_7__utils__[\"a\" /* default */].isCharacterBox(base.value.base);\n        } else if (base.type === \"horizBrace\") {\n            var isSup = group.value.sub ? false : true;\n            return isSup === base.value.isOver;\n        } else {\n            return null;\n        }\n    }\n};\n\nvar makeNullDelimiter = function makeNullDelimiter(options, classes) {\n    var moreClasses = [\"nulldelimiter\"].concat(options.baseSizingClasses());\n    return makeSpan(classes.concat(moreClasses));\n};\n\n/**\n * This is a map of group types to the function used to handle that type.\n * Simpler types come at the beginning, while complicated types come afterwards.\n */\nvar groupTypes = {};\n\ngroupTypes.mathord = function (group, options) {\n    return __WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].makeOrd(group, options, \"mathord\");\n};\n\ngroupTypes.textord = function (group, options) {\n    return __WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].makeOrd(group, options, \"textord\");\n};\n\ngroupTypes.bin = function (group, options) {\n    return __WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].mathsym(group.value, group.mode, options, [\"mbin\"]);\n};\n\ngroupTypes.rel = function (group, options) {\n    return __WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].mathsym(group.value, group.mode, options, [\"mrel\"]);\n};\n\ngroupTypes.open = function (group, options) {\n    return __WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].mathsym(group.value, group.mode, options, [\"mopen\"]);\n};\n\ngroupTypes.close = function (group, options) {\n    return __WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].mathsym(group.value, group.mode, options, [\"mclose\"]);\n};\n\ngroupTypes.inner = function (group, options) {\n    return __WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].mathsym(group.value, group.mode, options, [\"minner\"]);\n};\n\ngroupTypes.punct = function (group, options) {\n    return __WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].mathsym(group.value, group.mode, options, [\"mpunct\"]);\n};\n\ngroupTypes.ordgroup = function (group, options) {\n    return makeSpan([\"mord\"], buildExpression(group.value, options, true), options);\n};\n\ngroupTypes.supsub = function (group, options) {\n    // Superscript and subscripts are handled in the TeXbook on page\n    // 445-446, rules 18(a-f).\n\n    // Here is where we defer to the inner group if it should handle\n    // superscripts and subscripts itself.\n    if (shouldHandleSupSub(group, options)) {\n        return groupTypes[group.value.base.type](group, options);\n    }\n\n    var base = buildGroup(group.value.base, options);\n    var supm = void 0;\n    var subm = void 0;\n\n    var metrics = options.fontMetrics();\n    var newOptions = void 0;\n\n    // Rule 18a\n    var supShift = 0;\n    var subShift = 0;\n\n    if (group.value.sup) {\n        newOptions = options.havingStyle(options.style.sup());\n        supm = buildGroup(group.value.sup, newOptions, options);\n        if (!__WEBPACK_IMPORTED_MODULE_7__utils__[\"a\" /* default */].isCharacterBox(group.value.base)) {\n            supShift = base.height - newOptions.fontMetrics().supDrop * newOptions.sizeMultiplier / options.sizeMultiplier;\n        }\n    }\n\n    if (group.value.sub) {\n        newOptions = options.havingStyle(options.style.sub());\n        subm = buildGroup(group.value.sub, newOptions, options);\n        if (!__WEBPACK_IMPORTED_MODULE_7__utils__[\"a\" /* default */].isCharacterBox(group.value.base)) {\n            subShift = base.depth + newOptions.fontMetrics().subDrop * newOptions.sizeMultiplier / options.sizeMultiplier;\n        }\n    }\n\n    // Rule 18c\n    var minSupShift = void 0;\n    if (options.style === __WEBPACK_IMPORTED_MODULE_3__Style__[\"a\" /* default */].DISPLAY) {\n        minSupShift = metrics.sup1;\n    } else if (options.style.cramped) {\n        minSupShift = metrics.sup3;\n    } else {\n        minSupShift = metrics.sup2;\n    }\n\n    // scriptspace is a font-size-independent size, so scale it\n    // appropriately\n    var multiplier = options.sizeMultiplier;\n    var scriptspace = 0.5 / metrics.ptPerEm / multiplier + \"em\";\n\n    var supsub = void 0;\n    if (!group.value.sup) {\n        // Rule 18b\n        subShift = Math.max(subShift, metrics.sub1, subm.height - 0.8 * metrics.xHeight);\n\n        var vlistElem = [{ type: \"elem\", elem: subm, marginRight: scriptspace }];\n        // Subscripts shouldn't be shifted by the base's italic correction.\n        // Account for that by shifting the subscript back the appropriate\n        // amount. Note we only do this when the base is a single symbol.\n        if (base instanceof __WEBPACK_IMPORTED_MODULE_5__domTree__[\"a\" /* default */].symbolNode) {\n            vlistElem[0].marginLeft = -base.italic + \"em\";\n        }\n\n        supsub = __WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].makeVList({\n            positionType: \"shift\",\n            positionData: subShift,\n            children: vlistElem\n        }, options);\n    } else if (!group.value.sub) {\n        // Rule 18c, d\n        supShift = Math.max(supShift, minSupShift, supm.depth + 0.25 * metrics.xHeight);\n\n        supsub = __WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].makeVList({\n            positionType: \"shift\",\n            positionData: -supShift,\n            children: [{ type: \"elem\", elem: supm, marginRight: scriptspace }]\n        }, options);\n    } else {\n        supShift = Math.max(supShift, minSupShift, supm.depth + 0.25 * metrics.xHeight);\n        subShift = Math.max(subShift, metrics.sub2);\n\n        var ruleWidth = metrics.defaultRuleThickness;\n\n        // Rule 18e\n        if (supShift - supm.depth - (subm.height - subShift) < 4 * ruleWidth) {\n            subShift = 4 * ruleWidth - (supShift - supm.depth) + subm.height;\n            var psi = 0.8 * metrics.xHeight - (supShift - supm.depth);\n            if (psi > 0) {\n                supShift += psi;\n                subShift -= psi;\n            }\n        }\n\n        var _vlistElem = [{ type: \"elem\", elem: subm, shift: subShift, marginRight: scriptspace }, { type: \"elem\", elem: supm, shift: -supShift, marginRight: scriptspace }];\n        // See comment above about subscripts not being shifted\n        if (base instanceof __WEBPACK_IMPORTED_MODULE_5__domTree__[\"a\" /* default */].symbolNode) {\n            _vlistElem[0].marginLeft = -base.italic + \"em\";\n        }\n\n        supsub = __WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].makeVList({\n            positionType: \"individualShift\",\n            children: _vlistElem\n        }, options);\n    }\n\n    // We ensure to wrap the supsub vlist in a span.msupsub to reset text-align\n    var mclass = getTypeOfDomTree(base) || \"mord\";\n    return makeSpan([mclass], [base, makeSpan([\"msupsub\"], [supsub])], options);\n};\n\ngroupTypes.spacing = function (group, options) {\n    if (group.value === \"\\\\ \" || group.value === \"\\\\space\" || group.value === \" \" || group.value === \"~\") {\n        // Spaces are generated by adding an actual space. Each of these\n        // things has an entry in the symbols table, so these will be turned\n        // into appropriate outputs.\n        if (group.mode === \"text\") {\n            return __WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].makeOrd(group, options, \"textord\");\n        } else {\n            return makeSpan([\"mspace\"], [__WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].mathsym(group.value, group.mode, options)], options);\n        }\n    } else {\n        // Other kinds of spaces are of arbitrary width. We use CSS to\n        // generate these.\n        return makeSpan([\"mspace\", __WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].spacingFunctions[group.value].className], [], options);\n    }\n};\n\ngroupTypes.horizBrace = function (group, options) {\n    var style = options.style;\n\n    var hasSupSub = group.type === \"supsub\";\n    var supSubGroup = void 0;\n    var newOptions = void 0;\n    if (hasSupSub) {\n        // Ref: LaTeX source2e: }}}}\\limits}\n        // i.e. LaTeX treats the brace similar to an op and passes it\n        // with \\limits, so we need to assign supsub style.\n        if (group.value.sup) {\n            newOptions = options.havingStyle(style.sup());\n            supSubGroup = buildGroup(group.value.sup, newOptions, options);\n        } else {\n            newOptions = options.havingStyle(style.sub());\n            supSubGroup = buildGroup(group.value.sub, newOptions, options);\n        }\n        group = group.value.base;\n    }\n\n    // Build the base group\n    var body = buildGroup(group.value.base, options.havingBaseStyle(__WEBPACK_IMPORTED_MODULE_3__Style__[\"a\" /* default */].DISPLAY));\n\n    // Create the stretchy element\n    var braceBody = __WEBPACK_IMPORTED_MODULE_8__stretchy__[\"a\" /* default */].svgSpan(group, options);\n\n    // Generate the vlist, with the appropriate kerns               ┏━━━━━━━━┓\n    // This first vlist contains the subject matter and the brace:   equation\n    var vlist = void 0;\n    if (group.value.isOver) {\n        vlist = __WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].makeVList({\n            positionType: \"firstBaseline\",\n            children: [{ type: \"elem\", elem: body }, { type: \"kern\", size: 0.1 }, { type: \"elem\", elem: braceBody }]\n        }, options);\n        vlist.children[0].children[0].children[1].classes.push(\"svg-align\");\n    } else {\n        vlist = __WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].makeVList({\n            positionType: \"bottom\",\n            positionData: body.depth + 0.1 + braceBody.height,\n            children: [{ type: \"elem\", elem: braceBody }, { type: \"kern\", size: 0.1 }, { type: \"elem\", elem: body }]\n        }, options);\n        vlist.children[0].children[0].children[0].classes.push(\"svg-align\");\n    }\n\n    if (hasSupSub) {\n        // In order to write the supsub, wrap the first vlist in another vlist:\n        // They can't all go in the same vlist, because the note might be wider\n        // than the equation. We want the equation to control the brace width.\n\n        //      note          long note           long note\n        //   ┏━━━━━━━━┓   or    ┏━━━┓     not    ┏━━━━━━━━━┓\n        //    equation           eqn                 eqn\n\n        var vSpan = makeSpan([\"mord\", group.value.isOver ? \"mover\" : \"munder\"], [vlist], options);\n\n        if (group.value.isOver) {\n            vlist = __WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].makeVList({\n                positionType: \"firstBaseline\",\n                children: [{ type: \"elem\", elem: vSpan }, { type: \"kern\", size: 0.2 }, { type: \"elem\", elem: supSubGroup }]\n            }, options);\n        } else {\n            vlist = __WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].makeVList({\n                positionType: \"bottom\",\n                positionData: vSpan.depth + 0.2 + supSubGroup.height,\n                children: [{ type: \"elem\", elem: supSubGroup }, { type: \"kern\", size: 0.2 }, { type: \"elem\", elem: vSpan }]\n            }, options);\n        }\n    }\n\n    return makeSpan([\"mord\", group.value.isOver ? \"mover\" : \"munder\"], [vlist], options);\n};\n\ngroupTypes.xArrow = function (group, options) {\n    var style = options.style;\n\n    // Build the argument groups in the appropriate style.\n    // Ref: amsmath.dtx:   \\hbox{$\\scriptstyle\\mkern#3mu{#6}\\mkern#4mu$}%\n\n    var newOptions = options.havingStyle(style.sup());\n    var upperGroup = buildGroup(group.value.body, newOptions, options);\n    upperGroup.classes.push(\"x-arrow-pad\");\n\n    var lowerGroup = void 0;\n    if (group.value.below) {\n        // Build the lower group\n        newOptions = options.havingStyle(style.sub());\n        lowerGroup = buildGroup(group.value.below, newOptions, options);\n        lowerGroup.classes.push(\"x-arrow-pad\");\n    }\n\n    var arrowBody = __WEBPACK_IMPORTED_MODULE_8__stretchy__[\"a\" /* default */].svgSpan(group, options);\n\n    // Re shift: Note that stretchy.svgSpan returned arrowBody.depth = 0.\n    // The point we want on the math axis is at 0.5 * arrowBody.height.\n    var arrowShift = -options.fontMetrics().axisHeight + 0.5 * arrowBody.height;\n    // 2 mu kern. Ref: amsmath.dtx: #7\\if0#2\\else\\mkern#2mu\\fi\n    var upperShift = -options.fontMetrics().axisHeight - 0.5 * arrowBody.height - 0.111;\n    if (group.value.label === \"\\\\xleftequilibrium\") {\n        upperShift -= upperGroup.depth;\n    }\n\n    // Generate the vlist\n    var vlist = void 0;\n    if (group.value.below) {\n        var lowerShift = -options.fontMetrics().axisHeight + lowerGroup.height + 0.5 * arrowBody.height + 0.111;\n        vlist = __WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].makeVList({\n            positionType: \"individualShift\",\n            children: [{ type: \"elem\", elem: upperGroup, shift: upperShift }, { type: \"elem\", elem: arrowBody, shift: arrowShift }, { type: \"elem\", elem: lowerGroup, shift: lowerShift }]\n        }, options);\n    } else {\n        vlist = __WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].makeVList({\n            positionType: \"individualShift\",\n            children: [{ type: \"elem\", elem: upperGroup, shift: upperShift }, { type: \"elem\", elem: arrowBody, shift: arrowShift }]\n        }, options);\n    }\n\n    vlist.children[0].children[0].children[1].classes.push(\"svg-align\");\n\n    return makeSpan([\"mrel\", \"x-arrow\"], [vlist], options);\n};\n\ngroupTypes.mclass = function (group, options) {\n    var elements = buildExpression(group.value.value, options, true);\n\n    return makeSpan([group.value.mclass], elements, options);\n};\n\ngroupTypes.raisebox = function (group, options) {\n    var body = groupTypes.sizing({ value: {\n            value: [{\n                type: \"text\",\n                value: {\n                    body: group.value.value,\n                    font: \"mathrm\" // simulate \\textrm\n                }\n            }],\n            size: 6 // simulate \\normalsize\n        } }, options);\n    var dy = Object(__WEBPACK_IMPORTED_MODULE_6__units__[\"a\" /* calculateSize */])(group.value.dy.value, options);\n    return __WEBPACK_IMPORTED_MODULE_4__buildCommon__[\"a\" /* default */].makeVList({\n        positionType: \"shift\",\n        positionData: -dy,\n        children: [{ type: \"elem\", elem: body }]\n    }, options);\n};\n\n/**\n * buildGroup is the function that takes a group and calls the correct groupType\n * function for it. It also handles the interaction of size and style changes\n * between parents and children.\n */\nvar buildGroup = function buildGroup(group, options, baseOptions) {\n    if (!group) {\n        return makeSpan();\n    }\n\n    if (groupTypes[group.type]) {\n        // Call the groupTypes function\n        var groupNode = groupTypes[group.type](group, options);\n\n        // If the size changed between the parent and the current group, account\n        // for that size difference.\n        if (baseOptions && options.size !== baseOptions.size) {\n            groupNode = makeSpan(options.sizingClasses(baseOptions), [groupNode], options);\n\n            var multiplier = options.sizeMultiplier / baseOptions.sizeMultiplier;\n\n            groupNode.height *= multiplier;\n            groupNode.depth *= multiplier;\n        }\n\n        return groupNode;\n    } else {\n        throw new __WEBPACK_IMPORTED_MODULE_2__ParseError__[\"a\" /* default */](\"Got group of unknown type: '\" + group.type + \"'\");\n    }\n};\n\n/**\n * Take an entire parse tree, and build it into an appropriate set of HTML\n * nodes.\n */\nfunction buildHTML(tree, options) {\n    // buildExpression is destructive, so we need to make a clone\n    // of the incoming tree so that it isn't accidentally changed\n    tree = JSON.parse(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify___default()(tree));\n\n    // Build the expression contained in the tree\n    var expression = buildExpression(tree, options, true);\n    var body = makeSpan([\"base\"], expression, options);\n\n    // Add struts, which ensure that the top of the HTML element falls at the\n    // height of the expression, and the bottom of the HTML element falls at the\n    // depth of the expression.\n    var topStrut = makeSpan([\"strut\"]);\n    var bottomStrut = makeSpan([\"strut\", \"bottom\"]);\n\n    topStrut.style.height = body.height + \"em\";\n    bottomStrut.style.height = body.height + body.depth + \"em\";\n    // We'd like to use `vertical-align: top` but in IE 9 this lowers the\n    // baseline of the box to the bottom of this strut (instead staying in the\n    // normal place) so we use an absolute value for vertical-align instead\n    bottomStrut.style.verticalAlign = -body.depth + \"em\";\n\n    // Wrap the struts and body together\n    var htmlNode = makeSpan([\"katex-html\"], [topStrut, bottomStrut, body]);\n\n    htmlNode.setAttribute(\"aria-hidden\", \"true\");\n\n    return htmlNode;\n}\n\n/***/ }),\n/* 5 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * This file contains a list of utility functions which are useful in other\n * files.\n */\n\n/**\n * Provide an `indexOf` function which works in IE8, but defers to native if\n * possible.\n */\nvar nativeIndexOf = Array.prototype.indexOf;\nvar indexOf = function indexOf(list, elem) {\n    if (list == null) {\n        return -1;\n    }\n    if (nativeIndexOf && list.indexOf === nativeIndexOf) {\n        return list.indexOf(elem);\n    }\n    var l = list.length;\n    for (var i = 0; i < l; i++) {\n        if (list[i] === elem) {\n            return i;\n        }\n    }\n    return -1;\n};\n\n/**\n * Return whether an element is contained in a list\n */\nvar contains = function contains(list, elem) {\n    return indexOf(list, elem) !== -1;\n};\n\n/**\n * Provide a default value if a setting is undefined\n * NOTE: Couldn't use `T` as the output type due to facebook/flow#5022.\n */\nvar deflt = function deflt(setting, defaultIfUndefined) {\n    return setting === undefined ? defaultIfUndefined : setting;\n};\n\n// hyphenate and escape adapted from Facebook's React under Apache 2 license\n\nvar uppercase = /([A-Z])/g;\nvar hyphenate = function hyphenate(str) {\n    return str.replace(uppercase, \"-$1\").toLowerCase();\n};\n\nvar ESCAPE_LOOKUP = {\n    \"&\": \"&amp;\",\n    \">\": \"&gt;\",\n    \"<\": \"&lt;\",\n    \"\\\"\": \"&quot;\",\n    \"'\": \"&#x27;\"\n};\n\nvar ESCAPE_REGEX = /[&><\"']/g;\n\n/**\n * Escapes text to prevent scripting attacks.\n */\nfunction escape(text) {\n    return String(text).replace(ESCAPE_REGEX, function (match) {\n        return ESCAPE_LOOKUP[match];\n    });\n}\n\n/**\n * A function to set the text content of a DOM element in all supported\n * browsers. Note that we don't define this if there is no document.\n */\nvar setTextContent = void 0;\nif (typeof document !== \"undefined\") {\n    var testNode = document.createElement(\"span\");\n    if (\"textContent\" in testNode) {\n        setTextContent = function setTextContent(node, text) {\n            node.textContent = text;\n        };\n    } else {\n        setTextContent = function setTextContent(node, text) {\n            node.innerText = text;\n        };\n    }\n}\n\n/**\n * A function to clear a node.\n */\nfunction clearNode(node) {\n    setTextContent(node, \"\");\n}\n\n/**\n * Sometimes we want to pull out the innermost element of a group. In most\n * cases, this will just be the group itself, but when ordgroups and colors have\n * a single element, we want to pull that out.\n */\nvar getBaseElem = function getBaseElem(group) {\n    if (!group) {\n        return false;\n    } else if (group.type === \"ordgroup\") {\n        if (group.value.length === 1) {\n            return getBaseElem(group.value[0]);\n        } else {\n            return group;\n        }\n    } else if (group.type === \"color\") {\n        if (group.value.value.length === 1) {\n            return getBaseElem(group.value.value[0]);\n        } else {\n            return group;\n        }\n    } else if (group.type === \"font\") {\n        return getBaseElem(group.value.body);\n    } else {\n        return group;\n    }\n};\n\n/**\n * TeXbook algorithms often reference \"character boxes\", which are simply groups\n * with a single character in them. To decide if something is a character box,\n * we find its innermost group, and see if it is a single character.\n */\nvar isCharacterBox = function isCharacterBox(group) {\n    var baseElem = getBaseElem(group);\n\n    // These are all they types of groups which hold single characters\n    return baseElem.type === \"mathord\" || baseElem.type === \"textord\" || baseElem.type === \"bin\" || baseElem.type === \"rel\" || baseElem.type === \"inner\" || baseElem.type === \"open\" || baseElem.type === \"close\" || baseElem.type === \"punct\";\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n    contains: contains,\n    deflt: deflt,\n    escape: escape,\n    hyphenate: hyphenate,\n    indexOf: indexOf,\n    setTextContent: setTextContent,\n    clearNode: clearNode,\n    getBaseElem: getBaseElem,\n    isCharacterBox: isCharacterBox\n});\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ParseNode__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Token__ = __webpack_require__(27);\n\n\n\n\n/**\n * This is the ParseError class, which is the main error thrown by KaTeX\n * functions when something has gone wrong. This is used to distinguish internal\n * errors from errors in the expression that the user provided.\n *\n * If possible, a caller should provide a Token or ParseNode with information\n * about where in the source string the problem occurred.\n */\n\nvar ParseError =\n// Error position based on passed-in Token or ParseNode.\n\nfunction ParseError(message, // The error message\ntoken) // An object providing position information\n{\n    __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, ParseError);\n\n    var error = \"KaTeX parse error: \" + message;\n    var start = void 0;\n\n    var loc = token && token.loc;\n    if (loc && loc.start <= loc.end) {\n        // If we have the input and a position, make the error a bit fancier\n\n        // Get the input\n        var input = loc.lexer.input;\n\n        // Prepend some information\n        start = loc.start;\n        var end = loc.end;\n        if (start === input.length) {\n            error += \" at end of input: \";\n        } else {\n            error += \" at position \" + (start + 1) + \": \";\n        }\n\n        // Underline token in question using combining underscores\n        var underlined = input.slice(start, end).replace(/[^]/g, \"$&\\u0332\");\n\n        // Extract some context from the input and add it to the error\n        var left = void 0;\n        if (start > 15) {\n            left = \"…\" + input.slice(start - 15, start);\n        } else {\n            left = input.slice(0, start);\n        }\n        var right = void 0;\n        if (end + 15 < input.length) {\n            right = input.slice(end, end + 15) + \"…\";\n        } else {\n            right = input.slice(end);\n        }\n        error += left + underlined + right;\n    }\n\n    // Some hackery to make ParseError a prototype of Error\n    // See http://stackoverflow.com/a/8460753\n    var self = new Error(error);\n    self.name = \"ParseError\";\n    // $FlowFixMe\n    self.__proto__ = ParseError.prototype;\n    // $FlowFixMe\n    self.position = start;\n    return self;\n};\n\n// $FlowFixMe More hackery\n\n\nParseError.prototype.__proto__ = Error.prototype;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (ParseError);\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\nvar core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n/***/ }),\n/* 9 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__);\n\n\n\n/**\n * This file contains information and classes for the various kinds of styles\n * used in TeX. It provides a generic `Style` class, which holds information\n * about a specific style. It then provides instances of all the different kinds\n * of styles possible, and provides functions to move between them and get\n * information about them.\n */\n\n/**\n * The main style class. Contains a unique id for the style, a size (which is\n * the same for cramped and uncramped version of a style), and a cramped flag.\n */\nvar Style = function () {\n    function Style(id, size, cramped) {\n        __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, Style);\n\n        this.id = id;\n        this.size = size;\n        this.cramped = cramped;\n    }\n\n    /**\n     * Get the style of a superscript given a base in the current style.\n     */\n\n\n    __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default()(Style, [{\n        key: \"sup\",\n        value: function sup() {\n            return styles[_sup[this.id]];\n        }\n\n        /**\n         * Get the style of a subscript given a base in the current style.\n         */\n\n    }, {\n        key: \"sub\",\n        value: function sub() {\n            return styles[_sub[this.id]];\n        }\n\n        /**\n         * Get the style of a fraction numerator given the fraction in the current\n         * style.\n         */\n\n    }, {\n        key: \"fracNum\",\n        value: function fracNum() {\n            return styles[_fracNum[this.id]];\n        }\n\n        /**\n         * Get the style of a fraction denominator given the fraction in the current\n         * style.\n         */\n\n    }, {\n        key: \"fracDen\",\n        value: function fracDen() {\n            return styles[_fracDen[this.id]];\n        }\n\n        /**\n         * Get the cramped version of a style (in particular, cramping a cramped style\n         * doesn't change the style).\n         */\n\n    }, {\n        key: \"cramp\",\n        value: function cramp() {\n            return styles[_cramp[this.id]];\n        }\n\n        /**\n         * Get a text or display version of this style.\n         */\n\n    }, {\n        key: \"text\",\n        value: function text() {\n            return styles[_text[this.id]];\n        }\n\n        /**\n         * Return true if this style is tightly spaced (scriptstyle/scriptscriptstyle)\n         */\n\n    }, {\n        key: \"isTight\",\n        value: function isTight() {\n            return this.size >= 2;\n        }\n    }]);\n\n    return Style;\n}();\n\n// Export an interface for type checking, but don't expose the implementation.\n// This way, no more styles can be generated.\n\n\n// IDs of the different styles\nvar D = 0;\nvar Dc = 1;\nvar T = 2;\nvar Tc = 3;\nvar S = 4;\nvar Sc = 5;\nvar SS = 6;\nvar SSc = 7;\n\n// Instances of the different styles\nvar styles = [new Style(D, 0, false), new Style(Dc, 0, true), new Style(T, 1, false), new Style(Tc, 1, true), new Style(S, 2, false), new Style(Sc, 2, true), new Style(SS, 3, false), new Style(SSc, 3, true)];\n\n// Lookup tables for switching from one style to another\nvar _sup = [S, Sc, S, Sc, SS, SSc, SS, SSc];\nvar _sub = [Sc, Sc, Sc, Sc, SSc, SSc, SSc, SSc];\nvar _fracNum = [T, Tc, S, Sc, SS, SSc, SS, SSc];\nvar _fracDen = [Tc, Tc, Sc, Sc, SSc, SSc, SSc, SSc];\nvar _cramp = [Dc, Dc, Tc, Tc, Sc, Sc, SSc, SSc];\nvar _text = [D, Dc, T, Tc, T, Tc, T, Tc];\n\n// We only export some of the styles.\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n    DISPLAY: styles[D],\n    TEXT: styles[T],\n    SCRIPT: styles[S],\n    SCRIPTSCRIPT: styles[SS]\n});\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _defineProperty = __webpack_require__(73);\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = 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      (0, _defineProperty2.default)(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\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store      = __webpack_require__(52)('wks')\n  , uid        = __webpack_require__(32)\n  , Symbol     = __webpack_require__(16).Symbol\n  , USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function(name){\n  return store[name] || (store[name] =\n    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_get_iterator__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_get_iterator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_get_iterator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_assign__ = __webpack_require__(105);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_assign___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_assign__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__unicodeScripts__ = __webpack_require__(42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__svgGeometry__ = __webpack_require__(111);\n\n\n\n\n\n/**\n * These objects store the data about the DOM nodes we create, as well as some\n * extra data. They can then be transformed into real DOM nodes with the\n * `toNode` function or HTML markup using `toMarkup`. They are useful for both\n * storing extra properties on the nodes, as well as providing a way to easily\n * work with the DOM.\n *\n * Similar functions for working with MathML nodes exist in mathMLTree.js.\n */\n\n\n\n\n\n/**\n * Create an HTML className based on a list of classes. In addition to joining\n * with spaces, we also remove null or empty classes.\n */\nvar createClass = function createClass(classes) {\n    classes = classes.slice();\n    for (var i = classes.length - 1; i >= 0; i--) {\n        if (!classes[i]) {\n            classes.splice(i, 1);\n        }\n    }\n\n    return classes.join(\" \");\n};\n\n// To ensure that all nodes have compatible signatures for these methods.\n\n\n/**\n * All `DomChildNode`s MUST have `height`, `depth`, and `maxFontSize` numeric\n * fields.\n *\n * `DomChildNode` is not defined as an interface since `documentFragment` also\n * has these fields but should not be considered a `DomChildNode`.\n */\n\n/**\n * This node represents a span node, with a className, a list of children, and\n * an inline style. It also contains information about its height, depth, and\n * maxFontSize.\n */\nvar span = function () {\n    function span(classes, children, options, style) {\n        __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default()(this, span);\n\n        this.classes = classes || [];\n        this.children = children || [];\n        this.height = 0;\n        this.depth = 0;\n        this.maxFontSize = 0;\n        this.style = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_assign___default()({}, style);\n        this.attributes = {};\n        if (options) {\n            if (options.style.isTight()) {\n                this.classes.push(\"mtight\");\n            }\n            var color = options.getColor();\n            if (color) {\n                this.style.color = color;\n            }\n        }\n    }\n\n    /**\n     * Sets an arbitrary attribute on the span. Warning: use this wisely. Not all\n     * browsers support attributes the same, and having too many custom attributes\n     * is probably bad.\n     */\n\n\n    __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass___default()(span, [{\n        key: \"setAttribute\",\n        value: function setAttribute(attribute, value) {\n            this.attributes[attribute] = value;\n        }\n    }, {\n        key: \"tryCombine\",\n        value: function tryCombine(sibling) {\n            return false;\n        }\n\n        /**\n         * Convert the span into an HTML node\n         */\n\n    }, {\n        key: \"toNode\",\n        value: function toNode() {\n            var span = document.createElement(\"span\");\n\n            // Apply the class\n            span.className = createClass(this.classes);\n\n            // Apply inline styles\n            for (var style in this.style) {\n                if (Object.prototype.hasOwnProperty.call(this.style, style)) {\n                    // $FlowFixMe Flow doesn't seem to understand span.style's type.\n                    span.style[style] = this.style[style];\n                }\n            }\n\n            // Apply attributes\n            for (var attr in this.attributes) {\n                if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n                    span.setAttribute(attr, this.attributes[attr]);\n                }\n            }\n\n            // Append the children, also as HTML nodes\n            for (var i = 0; i < this.children.length; i++) {\n                span.appendChild(this.children[i].toNode());\n            }\n\n            return span;\n        }\n\n        /**\n         * Convert the span into an HTML markup string\n         */\n\n    }, {\n        key: \"toMarkup\",\n        value: function toMarkup() {\n            var markup = \"<span\";\n\n            // Add the class\n            if (this.classes.length) {\n                markup += \" class=\\\"\";\n                markup += __WEBPACK_IMPORTED_MODULE_5__utils__[\"a\" /* default */].escape(createClass(this.classes));\n                markup += \"\\\"\";\n            }\n\n            var styles = \"\";\n\n            // Add the styles, after hyphenation\n            for (var style in this.style) {\n                if (this.style.hasOwnProperty(style)) {\n                    styles += __WEBPACK_IMPORTED_MODULE_5__utils__[\"a\" /* default */].hyphenate(style) + \":\" + this.style[style] + \";\";\n                }\n            }\n\n            if (styles) {\n                markup += \" style=\\\"\" + __WEBPACK_IMPORTED_MODULE_5__utils__[\"a\" /* default */].escape(styles) + \"\\\"\";\n            }\n\n            // Add the attributes\n            for (var attr in this.attributes) {\n                if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n                    markup += \" \" + attr + \"=\\\"\";\n                    markup += __WEBPACK_IMPORTED_MODULE_5__utils__[\"a\" /* default */].escape(this.attributes[attr]);\n                    markup += \"\\\"\";\n                }\n            }\n\n            markup += \">\";\n\n            // Add the markup of the children, also as markup\n            for (var i = 0; i < this.children.length; i++) {\n                markup += this.children[i].toMarkup();\n            }\n\n            markup += \"</span>\";\n\n            return markup;\n        }\n    }]);\n\n    return span;\n}();\n\n/**\n * This node represents an anchor (<a>) element with a hyperlink, a list of classes,\n * a list of children, and an inline style. It also contains information about its\n * height, depth, and maxFontSize.\n */\n\n\nvar anchor = function () {\n    function anchor(href, classes, children, options) {\n        __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default()(this, anchor);\n\n        this.href = href;\n        this.classes = classes;\n        this.children = children;\n        this.height = 0;\n        this.depth = 0;\n        this.maxFontSize = 0;\n        this.style = {};\n        this.attributes = {};\n        if (options.style.isTight()) {\n            this.classes.push(\"mtight\");\n        }\n        var color = options.getColor();\n        if (color) {\n            this.style.color = color;\n        }\n    }\n\n    /**\n     * Sets an arbitrary attribute on the anchor. Warning: use this wisely. Not all\n     * browsers support attributes the same, and having too many custom attributes\n     * is probably bad.\n     */\n\n\n    __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass___default()(anchor, [{\n        key: \"setAttribute\",\n        value: function setAttribute(attribute, value) {\n            this.attributes[attribute] = value;\n        }\n    }, {\n        key: \"tryCombine\",\n        value: function tryCombine(sibling) {\n            return false;\n        }\n\n        /**\n         * Convert the anchor into an HTML node\n         */\n\n    }, {\n        key: \"toNode\",\n        value: function toNode() {\n            var a = document.createElement(\"a\");\n\n            // Apply the href\n            a.setAttribute('href', this.href);\n\n            // Apply the class\n            if (this.classes.length) {\n                a.className = createClass(this.classes);\n            }\n\n            // Apply inline styles\n            for (var style in this.style) {\n                if (Object.prototype.hasOwnProperty.call(this.style, style)) {\n                    // $FlowFixMe Flow doesn't seem to understand a.style's type.\n                    a.style[style] = this.style[style];\n                }\n            }\n\n            // Apply attributes\n            for (var attr in this.attributes) {\n                if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n                    a.setAttribute(attr, this.attributes[attr]);\n                }\n            }\n\n            // Append the children, also as HTML nodes\n            for (var i = 0; i < this.children.length; i++) {\n                a.appendChild(this.children[i].toNode());\n            }\n\n            return a;\n        }\n\n        /**\n         * Convert the a into an HTML markup string\n         */\n\n    }, {\n        key: \"toMarkup\",\n        value: function toMarkup() {\n            var markup = \"<a\";\n\n            // Add the href\n            markup += \"href=\\\"\" + (markup += __WEBPACK_IMPORTED_MODULE_5__utils__[\"a\" /* default */].escape(this.href)) + \"\\\"\";\n            // Add the class\n            if (this.classes.length) {\n                markup += \" class=\\\"\" + __WEBPACK_IMPORTED_MODULE_5__utils__[\"a\" /* default */].escape(createClass(this.classes)) + \"\\\"\";\n            }\n\n            var styles = \"\";\n\n            // Add the styles, after hyphenation\n            for (var style in this.style) {\n                if (this.style.hasOwnProperty(style)) {\n                    styles += __WEBPACK_IMPORTED_MODULE_5__utils__[\"a\" /* default */].hyphenate(style) + \":\" + this.style[style] + \";\";\n                }\n            }\n\n            if (styles) {\n                markup += \" style=\\\"\" + __WEBPACK_IMPORTED_MODULE_5__utils__[\"a\" /* default */].escape(styles) + \"\\\"\";\n            }\n\n            // Add the attributes\n            for (var attr in this.attributes) {\n                if (attr !== \"href\" && Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n                    markup += \" \" + attr + \"=\\\"\" + __WEBPACK_IMPORTED_MODULE_5__utils__[\"a\" /* default */].escape(this.attributes[attr]) + \"\\\"\";\n                }\n            }\n\n            markup += \">\";\n\n            // Add the markup of the children, also as markup\n            var _iteratorNormalCompletion = true;\n            var _didIteratorError = false;\n            var _iteratorError = undefined;\n\n            try {\n                for (var _iterator = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_get_iterator___default()(this.children), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n                    var child = _step.value;\n\n                    markup += child.toMarkup();\n                }\n            } catch (err) {\n                _didIteratorError = true;\n                _iteratorError = err;\n            } finally {\n                try {\n                    if (!_iteratorNormalCompletion && _iterator.return) {\n                        _iterator.return();\n                    }\n                } finally {\n                    if (_didIteratorError) {\n                        throw _iteratorError;\n                    }\n                }\n            }\n\n            markup += \"</a>\";\n\n            return markup;\n        }\n    }]);\n\n    return anchor;\n}();\n\n/**\n * This node represents a document fragment, which contains elements, but when\n * placed into the DOM doesn't have any representation itself. Thus, it only\n * contains children and doesn't have any HTML properties. It also keeps track\n * of a height, depth, and maxFontSize.\n */\n\n\nvar documentFragment = function () {\n    function documentFragment(children) {\n        __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default()(this, documentFragment);\n\n        this.children = children || [];\n        this.height = 0;\n        this.depth = 0;\n        this.maxFontSize = 0;\n    }\n\n    /**\n     * Convert the fragment into a node\n     */\n\n\n    __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass___default()(documentFragment, [{\n        key: \"toNode\",\n        value: function toNode() {\n            // Create a fragment\n            var frag = document.createDocumentFragment();\n\n            // Append the children\n            for (var i = 0; i < this.children.length; i++) {\n                frag.appendChild(this.children[i].toNode());\n            }\n\n            return frag;\n        }\n\n        /**\n         * Convert the fragment into HTML markup\n         */\n\n    }, {\n        key: \"toMarkup\",\n        value: function toMarkup() {\n            var markup = \"\";\n\n            // Simply concatenate the markup for the children together\n            for (var i = 0; i < this.children.length; i++) {\n                markup += this.children[i].toMarkup();\n            }\n\n            return markup;\n        }\n    }]);\n\n    return documentFragment;\n}();\n\nvar iCombinations = {\n    'î': \"\\u0131\\u0302\",\n    'ï': \"\\u0131\\u0308\",\n    'í': \"\\u0131\\u0301\",\n    // 'ī': '\\u0131\\u0304', // enable when we add Extended Latin\n    'ì': \"\\u0131\\u0300\"\n};\n\n/**\n * A symbol node contains information about a single symbol. It either renders\n * to a single text node, or a span with a single text node in it, depending on\n * whether it has CSS classes, styles, or needs italic correction.\n */\n\nvar symbolNode = function () {\n    function symbolNode(value, height, depth, italic, skew, width, classes, style) {\n        __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default()(this, symbolNode);\n\n        this.value = value;\n        this.height = height || 0;\n        this.depth = depth || 0;\n        this.italic = italic || 0;\n        this.skew = skew || 0;\n        this.width = width || 0;\n        this.classes = classes || [];\n        this.style = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_assign___default()({}, style);\n        this.maxFontSize = 0;\n\n        // Mark text from non-Latin scripts with specific classes so that we\n        // can specify which fonts to use.  This allows us to render these\n        // characters with a serif font in situations where the browser would\n        // either default to a sans serif or render a placeholder character.\n        // We use CSS class names like cjk_fallback, hangul_fallback and\n        // brahmic_fallback. See ./unicodeScripts.js for the set of possible\n        // script names\n        var script = Object(__WEBPACK_IMPORTED_MODULE_4__unicodeScripts__[\"a\" /* scriptFromCodepoint */])(this.value.charCodeAt(0));\n        if (script) {\n            this.classes.push(script + \"_fallback\");\n        }\n\n        if (/[îïíì]/.test(this.value)) {\n            // add ī when we add Extended Latin\n            this.value = iCombinations[this.value];\n        }\n    }\n\n    __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass___default()(symbolNode, [{\n        key: \"tryCombine\",\n        value: function tryCombine(sibling) {\n            if (!sibling || !(sibling instanceof symbolNode) || this.italic > 0 || createClass(this.classes) !== createClass(sibling.classes) || this.skew !== sibling.skew || this.maxFontSize !== sibling.maxFontSize) {\n                return false;\n            }\n            for (var style in this.style) {\n                if (this.style.hasOwnProperty(style) && this.style[style] !== sibling.style[style]) {\n                    return false;\n                }\n            }\n            for (var _style in sibling.style) {\n                if (sibling.style.hasOwnProperty(_style) && this.style[_style] !== sibling.style[_style]) {\n                    return false;\n                }\n            }\n            this.value += sibling.value;\n            this.height = Math.max(this.height, sibling.height);\n            this.depth = Math.max(this.depth, sibling.depth);\n            this.italic = sibling.italic;\n            return true;\n        }\n\n        /**\n         * Creates a text node or span from a symbol node. Note that a span is only\n         * created if it is needed.\n         */\n\n    }, {\n        key: \"toNode\",\n        value: function toNode() {\n            var node = document.createTextNode(this.value);\n            var span = null;\n\n            if (this.italic > 0) {\n                span = document.createElement(\"span\");\n                span.style.marginRight = this.italic + \"em\";\n            }\n\n            if (this.classes.length > 0) {\n                span = span || document.createElement(\"span\");\n                span.className = createClass(this.classes);\n            }\n\n            for (var style in this.style) {\n                if (this.style.hasOwnProperty(style)) {\n                    span = span || document.createElement(\"span\");\n                    // $FlowFixMe Flow doesn't seem to understand span.style's type.\n                    span.style[style] = this.style[style];\n                }\n            }\n\n            if (span) {\n                span.appendChild(node);\n                return span;\n            } else {\n                return node;\n            }\n        }\n\n        /**\n         * Creates markup for a symbol node.\n         */\n\n    }, {\n        key: \"toMarkup\",\n        value: function toMarkup() {\n            // TODO(alpert): More duplication than I'd like from\n            // span.prototype.toMarkup and symbolNode.prototype.toNode...\n            var needsSpan = false;\n\n            var markup = \"<span\";\n\n            if (this.classes.length) {\n                needsSpan = true;\n                markup += \" class=\\\"\";\n                markup += __WEBPACK_IMPORTED_MODULE_5__utils__[\"a\" /* default */].escape(createClass(this.classes));\n                markup += \"\\\"\";\n            }\n\n            var styles = \"\";\n\n            if (this.italic > 0) {\n                styles += \"margin-right:\" + this.italic + \"em;\";\n            }\n            for (var style in this.style) {\n                if (this.style.hasOwnProperty(style)) {\n                    styles += __WEBPACK_IMPORTED_MODULE_5__utils__[\"a\" /* default */].hyphenate(style) + \":\" + this.style[style] + \";\";\n                }\n            }\n\n            if (styles) {\n                needsSpan = true;\n                markup += \" style=\\\"\" + __WEBPACK_IMPORTED_MODULE_5__utils__[\"a\" /* default */].escape(styles) + \"\\\"\";\n            }\n\n            var escaped = __WEBPACK_IMPORTED_MODULE_5__utils__[\"a\" /* default */].escape(this.value);\n            if (needsSpan) {\n                markup += \">\";\n                markup += escaped;\n                markup += \"</span>\";\n                return markup;\n            } else {\n                return escaped;\n            }\n        }\n    }]);\n\n    return symbolNode;\n}();\n\n/**\n * SVG nodes are used to render stretchy wide elements.\n */\n\n\nvar svgNode = function () {\n    function svgNode(children, attributes) {\n        __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default()(this, svgNode);\n\n        this.children = children || [];\n        this.attributes = attributes || {};\n        this.height = 0;\n        this.depth = 0;\n        this.maxFontSize = 0;\n    }\n    // Required for all `DomChildNode`s. Are always 0 for svgNode.\n\n\n    __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass___default()(svgNode, [{\n        key: \"toNode\",\n        value: function toNode() {\n            var svgNS = \"http://www.w3.org/2000/svg\";\n            var node = document.createElementNS(svgNS, \"svg\");\n\n            // Apply attributes\n            for (var attr in this.attributes) {\n                if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n                    node.setAttribute(attr, this.attributes[attr]);\n                }\n            }\n\n            for (var i = 0; i < this.children.length; i++) {\n                node.appendChild(this.children[i].toNode());\n            }\n            return node;\n        }\n    }, {\n        key: \"toMarkup\",\n        value: function toMarkup() {\n            var markup = \"<svg\";\n\n            // Apply attributes\n            for (var attr in this.attributes) {\n                if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n                    markup += \" \" + attr + \"='\" + this.attributes[attr] + \"'\";\n                }\n            }\n\n            markup += \">\";\n\n            for (var i = 0; i < this.children.length; i++) {\n                markup += this.children[i].toMarkup();\n            }\n\n            markup += \"</svg>\";\n\n            return markup;\n        }\n    }]);\n\n    return svgNode;\n}();\n\nvar pathNode = function () {\n    function pathNode(pathName, alternate) {\n        __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default()(this, pathNode);\n\n        this.pathName = pathName;\n        this.alternate = alternate; // Used only for tall \\sqrt\n    }\n\n    __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass___default()(pathNode, [{\n        key: \"toNode\",\n        value: function toNode() {\n            var svgNS = \"http://www.w3.org/2000/svg\";\n            var node = document.createElementNS(svgNS, \"path\");\n\n            if (this.alternate) {\n                node.setAttribute(\"d\", this.alternate);\n            } else {\n                node.setAttribute(\"d\", __WEBPACK_IMPORTED_MODULE_6__svgGeometry__[\"a\" /* default */].path[this.pathName]);\n            }\n\n            return node;\n        }\n    }, {\n        key: \"toMarkup\",\n        value: function toMarkup() {\n            if (this.alternate) {\n                return \"<path d='\" + this.alternate + \"'/>\";\n            } else {\n                return \"<path d='\" + __WEBPACK_IMPORTED_MODULE_6__svgGeometry__[\"a\" /* default */].path[this.pathName] + \"'/>\";\n            }\n        }\n    }]);\n\n    return pathNode;\n}();\n\nvar lineNode = function () {\n    function lineNode(attributes) {\n        __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default()(this, lineNode);\n\n        this.attributes = attributes || {};\n    }\n\n    __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass___default()(lineNode, [{\n        key: \"toNode\",\n        value: function toNode() {\n            var svgNS = \"http://www.w3.org/2000/svg\";\n            var node = document.createElementNS(svgNS, \"line\");\n\n            // Apply attributes\n            for (var attr in this.attributes) {\n                if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n                    node.setAttribute(attr, this.attributes[attr]);\n                }\n            }\n\n            return node;\n        }\n    }, {\n        key: \"toMarkup\",\n        value: function toMarkup() {\n            var markup = \"<line\";\n\n            for (var attr in this.attributes) {\n                if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n                    markup += \" \" + attr + \"='\" + this.attributes[attr] + \"'\";\n                }\n            }\n\n            markup += \"/>\";\n\n            return markup;\n        }\n    }]);\n\n    return lineNode;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n    span: span,\n    anchor: anchor,\n    documentFragment: documentFragment,\n    symbolNode: symbolNode,\n    svgNode: svgNode,\n    pathNode: pathNode,\n    lineNode: lineNode\n});\n\n/***/ }),\n/* 13 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_slicedToArray__ = __webpack_require__(57);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_slicedToArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_slicedToArray__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__domTree__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils__ = __webpack_require__(5);\n\n\n/**\n * This file provides support to buildMathML.js and buildHTML.js\n * for stretchy wide elements rendered from SVG files\n * and other CSS trickery.\n */\n\n\n\n\n\n\nvar stretchyCodePoint = {\n    widehat: \"^\",\n    widetilde: \"~\",\n    utilde: \"~\",\n    overleftarrow: \"\\u2190\",\n    underleftarrow: \"\\u2190\",\n    xleftarrow: \"\\u2190\",\n    overrightarrow: \"\\u2192\",\n    underrightarrow: \"\\u2192\",\n    xrightarrow: \"\\u2192\",\n    underbrace: \"\\u23B5\",\n    overbrace: \"\\u23DE\",\n    overleftrightarrow: \"\\u2194\",\n    underleftrightarrow: \"\\u2194\",\n    xleftrightarrow: \"\\u2194\",\n    Overrightarrow: \"\\u21D2\",\n    xRightarrow: \"\\u21D2\",\n    overleftharpoon: \"\\u21BC\",\n    xleftharpoonup: \"\\u21BC\",\n    overrightharpoon: \"\\u21C0\",\n    xrightharpoonup: \"\\u21C0\",\n    xLeftarrow: \"\\u21D0\",\n    xLeftrightarrow: \"\\u21D4\",\n    xhookleftarrow: \"\\u21A9\",\n    xhookrightarrow: \"\\u21AA\",\n    xmapsto: \"\\u21A6\",\n    xrightharpoondown: \"\\u21C1\",\n    xleftharpoondown: \"\\u21BD\",\n    xrightleftharpoons: \"\\u21CC\",\n    xleftrightharpoons: \"\\u21CB\",\n    xtwoheadleftarrow: \"\\u219E\",\n    xtwoheadrightarrow: \"\\u21A0\",\n    xlongequal: \"=\",\n    xtofrom: \"\\u21C4\",\n    xrightleftarrows: \"\\u21C4\",\n    xrightequilibrium: \"\\u21CC\", // Not a perfect match.\n    xleftequilibrium: \"\\u21CB\" // None better available.\n};\n\nvar mathMLnode = function mathMLnode(label) {\n    var node = new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].TextNode(stretchyCodePoint[label.substr(1)])]);\n    node.setAttribute(\"stretchy\", \"true\");\n    return node;\n};\n\n// Many of the KaTeX SVG images have been adapted from glyphs in KaTeX fonts.\n// Copyright (c) 2009-2010, Design Science, Inc. (<www.mathjax.org>)\n// Copyright (c) 2014-2017 Khan Academy (<www.khanacademy.org>)\n// Licensed under the SIL Open Font License, Version 1.1.\n// See \\nhttp://scripts.sil.org/OFL\n\n// Very Long SVGs\n//    Many of the KaTeX stretchy wide elements use a long SVG image and an\n//    overflow: hidden tactic to achieve a stretchy image while avoiding\n//    distortion of arrowheads or brace corners.\n\n//    The SVG typically contains a very long (400 em) arrow.\n\n//    The SVG is in a container span that has overflow: hidden, so the span\n//    acts like a window that exposes only part of the  SVG.\n\n//    The SVG always has a longer, thinner aspect ratio than the container span.\n//    After the SVG fills 100% of the height of the container span,\n//    there is a long arrow shaft left over. That left-over shaft is not shown.\n//    Instead, it is sliced off because the span's CSS has overflow: hidden.\n\n//    Thus, the reader sees an arrow that matches the subject matter width\n//    without distortion.\n\n//    Some functions, such as \\cancel, need to vary their aspect ratio. These\n//    functions do not get the overflow SVG treatment.\n\n// Second Brush Stroke\n//    Low resolution monitors struggle to display images in fine detail.\n//    So browsers apply anti-aliasing. A long straight arrow shaft therefore\n//    will sometimes appear as if it has a blurred edge.\n\n//    To mitigate this, these SVG files contain a second \"brush-stroke\" on the\n//    arrow shafts. That is, a second long thin rectangular SVG path has been\n//    written directly on top of each arrow shaft. This reinforcement causes\n//    some of the screen pixels to display as black instead of the anti-aliased\n//    gray pixel that a  single path would generate. So we get arrow shafts\n//    whose edges appear to be sharper.\n\n// In the katexImagesData object just below, the dimensions all\n// correspond to path geometry inside the relevant SVG.\n// For example, \\overrightarrow uses the same arrowhead as glyph U+2192\n// from the KaTeX Main font. The scaling factor is 1000.\n// That is, inside the font, that arrowhead is 522 units tall, which\n// corresponds to 0.522 em inside the document.\n\nvar katexImagesData = {\n    //   path(s), minWidth, height, align\n    overrightarrow: [[\"rightarrow\"], 0.888, 522, \"xMaxYMin\"],\n    overleftarrow: [[\"leftarrow\"], 0.888, 522, \"xMinYMin\"],\n    underrightarrow: [[\"rightarrow\"], 0.888, 522, \"xMaxYMin\"],\n    underleftarrow: [[\"leftarrow\"], 0.888, 522, \"xMinYMin\"],\n    xrightarrow: [[\"rightarrow\"], 1.469, 522, \"xMaxYMin\"],\n    xleftarrow: [[\"leftarrow\"], 1.469, 522, \"xMinYMin\"],\n    Overrightarrow: [[\"doublerightarrow\"], 0.888, 560, \"xMaxYMin\"],\n    xRightarrow: [[\"doublerightarrow\"], 1.526, 560, \"xMaxYMin\"],\n    xLeftarrow: [[\"doubleleftarrow\"], 1.526, 560, \"xMinYMin\"],\n    overleftharpoon: [[\"leftharpoon\"], 0.888, 522, \"xMinYMin\"],\n    xleftharpoonup: [[\"leftharpoon\"], 0.888, 522, \"xMinYMin\"],\n    xleftharpoondown: [[\"leftharpoondown\"], 0.888, 522, \"xMinYMin\"],\n    overrightharpoon: [[\"rightharpoon\"], 0.888, 522, \"xMaxYMin\"],\n    xrightharpoonup: [[\"rightharpoon\"], 0.888, 522, \"xMaxYMin\"],\n    xrightharpoondown: [[\"rightharpoondown\"], 0.888, 522, \"xMaxYMin\"],\n    xlongequal: [[\"longequal\"], 0.888, 334, \"xMinYMin\"],\n    xtwoheadleftarrow: [[\"twoheadleftarrow\"], 0.888, 334, \"xMinYMin\"],\n    xtwoheadrightarrow: [[\"twoheadrightarrow\"], 0.888, 334, \"xMaxYMin\"],\n\n    overleftrightarrow: [[\"leftarrow\", \"rightarrow\"], 0.888, 522],\n    overbrace: [[\"leftbrace\", \"midbrace\", \"rightbrace\"], 1.6, 548],\n    underbrace: [[\"leftbraceunder\", \"midbraceunder\", \"rightbraceunder\"], 1.6, 548],\n    underleftrightarrow: [[\"leftarrow\", \"rightarrow\"], 0.888, 522],\n    xleftrightarrow: [[\"leftarrow\", \"rightarrow\"], 1.75, 522],\n    xLeftrightarrow: [[\"doubleleftarrow\", \"doublerightarrow\"], 1.75, 560],\n    xrightleftharpoons: [[\"leftharpoondownplus\", \"rightharpoonplus\"], 1.75, 716],\n    xleftrightharpoons: [[\"leftharpoonplus\", \"rightharpoondownplus\"], 1.75, 716],\n    xhookleftarrow: [[\"leftarrow\", \"righthook\"], 1.08, 522],\n    xhookrightarrow: [[\"lefthook\", \"rightarrow\"], 1.08, 522],\n    overlinesegment: [[\"leftlinesegment\", \"rightlinesegment\"], 0.888, 522],\n    underlinesegment: [[\"leftlinesegment\", \"rightlinesegment\"], 0.888, 522],\n    overgroup: [[\"leftgroup\", \"rightgroup\"], 0.888, 342],\n    undergroup: [[\"leftgroupunder\", \"rightgroupunder\"], 0.888, 342],\n    xmapsto: [[\"leftmapsto\", \"rightarrow\"], 1.5, 522],\n    xtofrom: [[\"leftToFrom\", \"rightToFrom\"], 1.75, 528],\n\n    // The next three arrows are from the mhchem package.\n    // In mhchem.sty, min-length is 2.0em. But these arrows might appear in the\n    // document as \\xrightarrow or \\xrightleftharpoons. Those have\n    // min-length = 1.75em, so we set min-length on these next three to match.\n    xrightleftarrows: [[\"baraboveleftarrow\", \"rightarrowabovebar\"], 1.75, 667],\n    xrightequilibrium: [[\"baraboveshortleftharpoon\", \"rightharpoonaboveshortbar\"], 1.75, 716],\n    xleftequilibrium: [[\"shortbaraboveleftharpoon\", \"shortrightharpoonabovebar\"], 1.75, 716]\n};\n\nvar groupLength = function groupLength(arg) {\n    if (arg.type === \"ordgroup\") {\n        return arg.value.length;\n    } else {\n        return 1;\n    }\n};\n\nvar svgSpan = function svgSpan(group, options) {\n    // Create a span with inline SVG for the element.\n    function buildSvgSpan_() {\n        var viewBoxWidth = 400000; // default\n        var label = group.value.label.substr(1);\n        if (__WEBPACK_IMPORTED_MODULE_4__utils__[\"a\" /* default */].contains([\"widehat\", \"widetilde\", \"utilde\"], label)) {\n            // There are four SVG images available for each function.\n            // Choose a taller image when there are more characters.\n            var numChars = groupLength(group.value.base);\n            var viewBoxHeight = void 0;\n            var pathName = void 0;\n            var _height = void 0;\n\n            if (numChars > 5) {\n                viewBoxHeight = label === \"widehat\" ? 420 : 312;\n                viewBoxWidth = label === \"widehat\" ? 2364 : 2340;\n                // Next get the span height, in 1000 ems\n                _height = label === \"widehat\" ? 0.42 : 0.34;\n                pathName = (label === \"widehat\" ? \"widehat\" : \"tilde\") + \"4\";\n            } else {\n                var imgIndex = [1, 1, 2, 2, 3, 3][numChars];\n                if (label === \"widehat\") {\n                    viewBoxWidth = [0, 1062, 2364, 2364, 2364][imgIndex];\n                    viewBoxHeight = [0, 239, 300, 360, 420][imgIndex];\n                    _height = [0, 0.24, 0.3, 0.3, 0.36, 0.42][imgIndex];\n                    pathName = \"widehat\" + imgIndex;\n                } else {\n                    viewBoxWidth = [0, 600, 1033, 2339, 2340][imgIndex];\n                    viewBoxHeight = [0, 260, 286, 306, 312][imgIndex];\n                    _height = [0, 0.26, 0.286, 0.3, 0.306, 0.34][imgIndex];\n                    pathName = \"tilde\" + imgIndex;\n                }\n            }\n            var path = new __WEBPACK_IMPORTED_MODULE_1__domTree__[\"a\" /* default */].pathNode(pathName);\n            var svgNode = new __WEBPACK_IMPORTED_MODULE_1__domTree__[\"a\" /* default */].svgNode([path], {\n                \"width\": \"100%\",\n                \"height\": _height + \"em\",\n                \"viewBox\": \"0 0 \" + viewBoxWidth + \" \" + viewBoxHeight,\n                \"preserveAspectRatio\": \"none\"\n            });\n            return {\n                span: __WEBPACK_IMPORTED_MODULE_2__buildCommon__[\"a\" /* default */].makeSpan([], [svgNode], options),\n                minWidth: 0,\n                height: _height\n            };\n        } else {\n            var spans = [];\n\n            var _katexImagesData$labe = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_slicedToArray___default()(katexImagesData[label], 4),\n                paths = _katexImagesData$labe[0],\n                _minWidth = _katexImagesData$labe[1],\n                _viewBoxHeight = _katexImagesData$labe[2],\n                align1 = _katexImagesData$labe[3];\n\n            var _height2 = _viewBoxHeight / 1000;\n\n            var numSvgChildren = paths.length;\n            var widthClasses = void 0;\n            var aligns = void 0;\n            if (numSvgChildren === 1) {\n                widthClasses = [\"hide-tail\"];\n                aligns = [align1];\n            } else if (numSvgChildren === 2) {\n                widthClasses = [\"halfarrow-left\", \"halfarrow-right\"];\n                aligns = [\"xMinYMin\", \"xMaxYMin\"];\n            } else if (numSvgChildren === 3) {\n                widthClasses = [\"brace-left\", \"brace-center\", \"brace-right\"];\n                aligns = [\"xMinYMin\", \"xMidYMin\", \"xMaxYMin\"];\n            } else {\n                throw new Error(\"Correct katexImagesData or update code here to support\\n                    \" + numSvgChildren + \" children.\");\n            }\n\n            for (var i = 0; i < numSvgChildren; i++) {\n                var _path = new __WEBPACK_IMPORTED_MODULE_1__domTree__[\"a\" /* default */].pathNode(paths[i]);\n\n                var _svgNode = new __WEBPACK_IMPORTED_MODULE_1__domTree__[\"a\" /* default */].svgNode([_path], {\n                    \"width\": \"400em\",\n                    \"height\": _height2 + \"em\",\n                    \"viewBox\": \"0 0 \" + viewBoxWidth + \" \" + _viewBoxHeight,\n                    \"preserveAspectRatio\": aligns[i] + \" slice\"\n                });\n\n                var _span = __WEBPACK_IMPORTED_MODULE_2__buildCommon__[\"a\" /* default */].makeSpan([widthClasses[i]], [_svgNode], options);\n                if (numSvgChildren === 1) {\n                    return { span: _span, minWidth: _minWidth, height: _height2 };\n                } else {\n                    _span.style.height = _height2 + \"em\";\n                    spans.push(_span);\n                }\n            }\n\n            return {\n                span: __WEBPACK_IMPORTED_MODULE_2__buildCommon__[\"a\" /* default */].makeSpan([\"stretchy\"], spans, options),\n                minWidth: _minWidth,\n                height: _height2\n            };\n        }\n    } // buildSvgSpan_()\n\n    var _buildSvgSpan_ = buildSvgSpan_(),\n        span = _buildSvgSpan_.span,\n        minWidth = _buildSvgSpan_.minWidth,\n        height = _buildSvgSpan_.height;\n\n    // Note that we are returning span.depth = 0.\n    // Any adjustments relative to the baseline must be done in buildHTML.\n\n\n    span.height = height;\n    span.style.height = height + \"em\";\n    if (minWidth > 0) {\n        span.style.minWidth = minWidth + \"em\";\n    }\n\n    return span;\n};\n\nvar encloseSpan = function encloseSpan(inner, label, pad, options) {\n    // Return an image span for \\cancel, \\bcancel, \\xcancel, or \\fbox\n    var img = void 0;\n    var totalHeight = inner.height + inner.depth + 2 * pad;\n\n    if (/fbox|color/.test(label)) {\n        img = __WEBPACK_IMPORTED_MODULE_2__buildCommon__[\"a\" /* default */].makeSpan([\"stretchy\", label], [], options);\n\n        if (label === \"fbox\") {\n            var color = options.color && options.getColor();\n            if (color) {\n                img.style.borderColor = color;\n            }\n        }\n    } else {\n        // \\cancel, \\bcancel, or \\xcancel\n        // Since \\cancel's SVG is inline and it omits the viewBox attribute,\n        // its stroke-width will not vary with span area.\n\n        var lines = [];\n        if (/^[bx]cancel$/.test(label)) {\n            lines.push(new __WEBPACK_IMPORTED_MODULE_1__domTree__[\"a\" /* default */].lineNode({\n                \"x1\": \"0\",\n                \"y1\": \"0\",\n                \"x2\": \"100%\",\n                \"y2\": \"100%\",\n                \"stroke-width\": \"0.046em\"\n            }));\n        }\n\n        if (/^x?cancel$/.test(label)) {\n            lines.push(new __WEBPACK_IMPORTED_MODULE_1__domTree__[\"a\" /* default */].lineNode({\n                \"x1\": \"0\",\n                \"y1\": \"100%\",\n                \"x2\": \"100%\",\n                \"y2\": \"0\",\n                \"stroke-width\": \"0.046em\"\n            }));\n        }\n\n        var svgNode = new __WEBPACK_IMPORTED_MODULE_1__domTree__[\"a\" /* default */].svgNode(lines, {\n            \"width\": \"100%\",\n            \"height\": totalHeight + \"em\"\n        });\n\n        img = __WEBPACK_IMPORTED_MODULE_2__buildCommon__[\"a\" /* default */].makeSpan([], [svgNode], options);\n    }\n\n    img.height = totalHeight;\n    img.style.height = totalHeight + \"em\";\n\n    return img;\n};\n\nvar ruleSpan = function ruleSpan(className, lineThickness, options) {\n\n    // Get a span with an SVG path that fills the middle fifth of the span.\n    // We're using an extra wide span so Chrome won't round it down to zero.\n\n    var path = void 0;\n    var svgNode = void 0;\n    var parentClass = \"stretchy\"; // default\n\n    if (className === \"vertical-separator\") {\n        path = new __WEBPACK_IMPORTED_MODULE_1__domTree__[\"a\" /* default */].pathNode(\"vertSeparator\");\n        svgNode = new __WEBPACK_IMPORTED_MODULE_1__domTree__[\"a\" /* default */].svgNode([path], {\n            \"width\": \"0.25em\", // contains a path that is 0.05 ems wide.\n            \"height\": \"400em\",\n            \"viewBox\": \"0 0 250 400000\",\n            \"preserveAspectRatio\": \"xMinYMin slice\"\n        });\n        parentClass = \"vertical-separator\";\n    } else {\n        // The next two lines are the only place in KaTeX where SVG paths are\n        // put into a viewBox that is not always exactly a 1000:1 scale to the\n        // document em size. Instead, the path is a horizontal line set to\n        // take up the middle fifth of the viewBox and span. If the context is\n        // normalsize/textstyle then the line will be 0.04em and the usual\n        // 1000:1 ratio holds. But if the context is scriptstyle, then\n        // lineThickness > 0.04em and we have a ratio somewhat different than\n        // 1000:1.\n\n        path = new __WEBPACK_IMPORTED_MODULE_1__domTree__[\"a\" /* default */].pathNode(\"stdHorizRule\");\n        svgNode = new __WEBPACK_IMPORTED_MODULE_1__domTree__[\"a\" /* default */].svgNode([path], {\n            \"width\": \"400em\",\n            \"height\": 5 * lineThickness + \"em\",\n            \"viewBox\": \"0 0 400000 200\",\n            \"preserveAspectRatio\": \"xMinYMin slice\"\n        });\n    }\n\n    return __WEBPACK_IMPORTED_MODULE_2__buildCommon__[\"a\" /* default */].makeSpan([parentClass], [svgNode], options);\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n    encloseSpan: encloseSpan,\n    mathMLnode: mathMLnode,\n    ruleSpan: ruleSpan,\n    svgSpan: svgSpan\n});\n\n/***/ }),\n/* 14 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__SourceLocation__ = __webpack_require__(31);\n\n\n\n/**\n * The resulting parse tree nodes of the parse tree.\n *\n * It is possible to provide position information, so that a `ParseNode` can\n * fulfill a role similar to a `Token` in error reporting.\n * For details on the corresponding properties see `Token` constructor.\n * Providing such information can lead to better error reporting.\n */\nvar ParseNode = function ParseNode(type, // type of node, like e.g. \"ordgroup\"\nvalue, // type-specific representation of the node\nmode, // parse mode in action for this node, \"math\" or \"text\"\nfirst, // first token or node of the input for\nlast) // last token or node of the input for this\n// node, will default to firstToken if unset\n{\n    __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, ParseNode);\n\n    this.type = type;\n    this.value = value;\n    this.mode = mode;\n    this.loc = __WEBPACK_IMPORTED_MODULE_1__SourceLocation__[\"a\" /* default */].range(first, last);\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (ParseNode);\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject       = __webpack_require__(22)\n  , IE8_DOM_DEFINE = __webpack_require__(70)\n  , toPrimitive    = __webpack_require__(71)\n  , dP             = Object.defineProperty;\n\nexports.f = __webpack_require__(23) ? Object.defineProperty : function defineProperty(O, P, Attributes){\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if(IE8_DOM_DEFINE)try {\n    return dP(O, P, Attributes);\n  } catch(e){ /* empty */ }\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};\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n  ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(103), __esModule: true };\n\n/***/ }),\n/* 19 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return validUnit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return calculateSize; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ParseError__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Options__ = __webpack_require__(43);\n\n\n/**\n * This file does conversion between units.  In particular, it provides\n * calculateSize to convert other units into ems.\n */\n\n\n\n\n// This table gives the number of TeX pts in one of each *absolute* TeX unit.\n// Thus, multiplying a length by this number converts the length from units\n// into pts.  Dividing the result by ptPerEm gives the number of ems\n// *assuming* a font size of ptPerEm (normal size, normal style).\nvar ptPerUnit = {\n    // https://en.wikibooks.org/wiki/LaTeX/Lengths and\n    // https://tex.stackexchange.com/a/8263\n    \"pt\": 1, // TeX point\n    \"mm\": 7227 / 2540, // millimeter\n    \"cm\": 7227 / 254, // centimeter\n    \"in\": 72.27, // inch\n    \"bp\": 803 / 800, // big (PostScript) points\n    \"pc\": 12, // pica\n    \"dd\": 1238 / 1157, // didot\n    \"cc\": 14856 / 1157, // cicero (12 didot)\n    \"nd\": 685 / 642, // new didot\n    \"nc\": 1370 / 107, // new cicero (12 new didot)\n    \"sp\": 1 / 65536, // scaled point (TeX's internal smallest unit)\n    // https://tex.stackexchange.com/a/41371\n    \"px\": 803 / 800 // \\pdfpxdimen defaults to 1 bp in pdfTeX and LuaTeX\n};\n\n// Dictionary of relative units, for fast validity testing.\nvar relativeUnit = {\n    \"ex\": true,\n    \"em\": true,\n    \"mu\": true\n};\n\n/**\n * Determine whether the specified unit (either a string defining the unit\n * or a \"size\" parse node containing a unit field) is valid.\n */\nvar validUnit = function validUnit(unit) {\n    if (typeof unit !== \"string\") {\n        unit = unit.unit;\n    }\n    return unit in ptPerUnit || unit in relativeUnit || unit === \"ex\";\n};\n\n/*\n * Convert a \"size\" parse node (with numeric \"number\" and string \"unit\" fields,\n * as parsed by functions.js argType \"size\") into a CSS em value for the\n * current style/scale.  `options` gives the current options.\n */\nvar calculateSize = function calculateSize(sizeValue, options) {\n    var scale = void 0;\n    if (sizeValue.unit in ptPerUnit) {\n        // Absolute units\n        scale = ptPerUnit[sizeValue.unit] // Convert unit to pt\n        / options.fontMetrics().ptPerEm // Convert pt to CSS em\n        / options.sizeMultiplier; // Unscale to make absolute units\n    } else if (sizeValue.unit === \"mu\") {\n        // `mu` units scale with scriptstyle/scriptscriptstyle.\n        scale = options.fontMetrics().cssEmPerMu;\n    } else {\n        // Other relative units always refer to the *textstyle* font\n        // in the current size.\n        var unitOptions = void 0;\n        if (options.style.isTight()) {\n            // isTight() means current style is script/scriptscript.\n            unitOptions = options.havingStyle(options.style.text());\n        } else {\n            unitOptions = options;\n        }\n        // TODO: In TeX these units are relative to the quad of the current\n        // *text* font, e.g. cmr10. KaTeX instead uses values from the\n        // comparably-sized *Computer Modern symbol* font. At 10pt, these\n        // match. At 7pt and 5pt, they differ: cmr7=1.138894, cmsy7=1.170641;\n        // cmr5=1.361133, cmsy5=1.472241. Consider $\\scriptsize a\\kern1emb$.\n        // TeX \\showlists shows a kern of 1.13889 * fontsize;\n        // KaTeX shows a kern of 1.171 * fontsize.\n        if (sizeValue.unit === \"ex\") {\n            scale = unitOptions.fontMetrics().xHeight;\n        } else if (sizeValue.unit === \"em\") {\n            scale = unitOptions.fontMetrics().quad;\n        } else {\n            throw new __WEBPACK_IMPORTED_MODULE_0__ParseError__[\"a\" /* default */](\"Invalid unit: '\" + sizeValue.unit + \"'\");\n        }\n        if (unitOptions !== options) {\n            scale *= unitOptions.sizeMultiplier / options.sizeMultiplier;\n        }\n    }\n    return Math.min(sizeValue.number * scale, options.maxSize);\n};\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(it){\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n  return hasOwnProperty.call(it, key);\n};\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(20);\nmodule.exports = function(it){\n  if(!isObject(it))throw TypeError(it + ' is not an object!');\n  return it;\n};\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(24)(function(){\n  return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(exec){\n  try {\n    return !!exec();\n  } catch(e){\n    return true;\n  }\n};\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global    = __webpack_require__(16)\n  , core      = __webpack_require__(8)\n  , ctx       = __webpack_require__(47)\n  , hide      = __webpack_require__(26)\n  , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n  var IS_FORCED = type & $export.F\n    , IS_GLOBAL = type & $export.G\n    , IS_STATIC = type & $export.S\n    , IS_PROTO  = type & $export.P\n    , IS_BIND   = type & $export.B\n    , IS_WRAP   = type & $export.W\n    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})\n    , expProto  = exports[PROTOTYPE]\n    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n    , key, own, out;\n  if(IS_GLOBAL)source = name;\n  for(key in source){\n    // contains in native\n    own = !IS_FORCED && target && target[key] !== undefined;\n    if(own && key in exports)continue;\n    // export native or passed\n    out = own ? target[key] : source[key];\n    // prevent global pollution for namespaces\n    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n    // bind timers to global for call from export context\n    : IS_BIND && own ? ctx(out, global)\n    // wrap global constructors for prevent change them in library\n    : IS_WRAP && target[key] == out ? (function(C){\n      var F = function(a, b, c){\n        if(this instanceof C){\n          switch(arguments.length){\n            case 0: return new C;\n            case 1: return new C(a);\n            case 2: return new C(a, b);\n          } return new C(a, b, c);\n        } return C.apply(this, arguments);\n      };\n      F[PROTOTYPE] = C[PROTOTYPE];\n      return F;\n    // make static versions for prototype methods\n    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n    if(IS_PROTO){\n      (exports.virtual || (exports.virtual = {}))[key] = out;\n      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n      if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);\n    }\n  }\n};\n// type bitmap\n$export.F = 1;   // forced\n$export.G = 2;   // global\n$export.S = 4;   // static\n$export.P = 8;   // proto\n$export.B = 16;  // bind\n$export.W = 32;  // wrap\n$export.U = 64;  // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP         = __webpack_require__(15)\n  , createDesc = __webpack_require__(33);\nmodule.exports = __webpack_require__(23) ? function(object, key, value){\n  return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n  object[key] = value;\n  return object;\n};\n\n/***/ }),\n/* 27 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Token; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__SourceLocation__ = __webpack_require__(31);\n\n\n\n\n/**\n * Interface required to break circular dependency between Token, Lexer, and\n * ParseError.\n */\n\n\n/**\n * The resulting token returned from `lex`.\n *\n * It consists of the token text plus some position information.\n * The position information is essentially a range in an input string,\n * but instead of referencing the bare input string, we refer to the lexer.\n * That way it is possible to attach extra metadata to the input string,\n * like for example a file name or similar.\n *\n * The position information is optional, so it is OK to construct synthetic\n * tokens if appropriate. Not providing available position information may\n * lead to degraded error reporting, though.\n */\nvar Token = function () {\n    function Token(text, // the text of this token\n    loc) {\n        __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, Token);\n\n        this.text = text;\n        this.loc = loc;\n    }\n\n    /**\n     * Given a pair of tokens (this and endToken), compute a `Token` encompassing\n     * the whole input range enclosed by these two.\n     */\n\n\n    __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default()(Token, [{\n        key: \"range\",\n        value: function range(endToken, // last token of the range, inclusive\n        text) // the text of the newly constructed token\n        {\n            return new Token(text, __WEBPACK_IMPORTED_MODULE_2__SourceLocation__[\"a\" /* default */].range(this, endToken));\n        }\n    }]);\n\n    return Token;\n}();\n\n/***/ }),\n/* 28 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * This file holds a list of all no-argument functions and single-character\n * symbols (like 'a' or ';').\n *\n * For each of the symbols, there are three properties they can have:\n * - font (required): the font to be used for this symbol. Either \"main\" (the\n     normal font), or \"ams\" (the ams fonts).\n * - group (required): the ParseNode group type the symbol should have (i.e.\n     \"textord\", \"mathord\", etc).\n     See https://github.com/Khan/KaTeX/wiki/Examining-TeX#group-types\n * - replace: the character that this symbol or function should be\n *   replaced with (i.e. \"\\phi\" has a replace value of \"\\u03d5\", the phi\n *   character in the main font).\n *\n * The outermost map in the table indicates what mode the symbols should be\n * accepted in (e.g. \"math\" or \"text\").\n */\n\nvar symbols = {\n    \"math\": {},\n    \"text\": {}\n};\n/* harmony default export */ __webpack_exports__[\"a\"] = (symbols);\n\n/** `acceptUnicodeChar = true` is only applicable if `replace` is set. */\nfunction defineSymbol(mode, font, group, replace, name, acceptUnicodeChar) {\n    symbols[mode][name] = { font: font, group: group, replace: replace };\n\n    if (acceptUnicodeChar && replace) {\n        symbols[mode][replace] = symbols[mode][name];\n    }\n}\n\n// Some abbreviations for commonly used strings.\n// This helps minify the code, and also spotting typos using jshint.\n\n// modes:\nvar math = \"math\";\nvar text = \"text\";\n\n// fonts:\nvar main = \"main\";\nvar ams = \"ams\";\n\n// groups:\nvar accent = \"accent\";\nvar bin = \"bin\";\nvar close = \"close\";\nvar inner = \"inner\";\nvar mathord = \"mathord\";\nvar op = \"op\";\nvar open = \"open\";\nvar punct = \"punct\";\nvar rel = \"rel\";\nvar spacing = \"spacing\";\nvar textord = \"textord\";\n\n// Now comes the symbol table\n\n// Relation Symbols\ndefineSymbol(math, main, rel, \"\\u2261\", \"\\\\equiv\", true);\ndefineSymbol(math, main, rel, \"\\u227A\", \"\\\\prec\", true);\ndefineSymbol(math, main, rel, \"\\u227B\", \"\\\\succ\", true);\ndefineSymbol(math, main, rel, \"\\u223C\", \"\\\\sim\", true);\ndefineSymbol(math, main, rel, \"\\u22A5\", \"\\\\perp\");\ndefineSymbol(math, main, rel, \"\\u2AAF\", \"\\\\preceq\", true);\ndefineSymbol(math, main, rel, \"\\u2AB0\", \"\\\\succeq\", true);\ndefineSymbol(math, main, rel, \"\\u2243\", \"\\\\simeq\", true);\ndefineSymbol(math, main, rel, \"\\u2223\", \"\\\\mid\", true);\ndefineSymbol(math, main, rel, \"\\u226A\", \"\\\\ll\");\ndefineSymbol(math, main, rel, \"\\u226B\", \"\\\\gg\", true);\ndefineSymbol(math, main, rel, \"\\u224D\", \"\\\\asymp\", true);\ndefineSymbol(math, main, rel, \"\\u2225\", \"\\\\parallel\");\ndefineSymbol(math, main, rel, \"\\u22C8\", \"\\\\bowtie\", true);\ndefineSymbol(math, main, rel, \"\\u2323\", \"\\\\smile\", true);\ndefineSymbol(math, main, rel, \"\\u2291\", \"\\\\sqsubseteq\", true);\ndefineSymbol(math, main, rel, \"\\u2292\", \"\\\\sqsupseteq\", true);\ndefineSymbol(math, main, rel, \"\\u2250\", \"\\\\doteq\", true);\ndefineSymbol(math, main, rel, \"\\u2322\", \"\\\\frown\", true);\ndefineSymbol(math, main, rel, \"\\u220B\", \"\\\\ni\", true);\ndefineSymbol(math, main, rel, \"\\u221D\", \"\\\\propto\", true);\ndefineSymbol(math, main, rel, \"\\u22A2\", \"\\\\vdash\", true);\ndefineSymbol(math, main, rel, \"\\u22A3\", \"\\\\dashv\", true);\ndefineSymbol(math, main, rel, \"\\u220B\", \"\\\\owns\");\n\n// Punctuation\ndefineSymbol(math, main, punct, \".\", \"\\\\ldotp\");\ndefineSymbol(math, main, punct, \"\\u22C5\", \"\\\\cdotp\");\n\n// Misc Symbols\ndefineSymbol(math, main, textord, \"#\", \"\\\\#\");\ndefineSymbol(text, main, textord, \"#\", \"\\\\#\");\ndefineSymbol(math, main, textord, \"&\", \"\\\\&\");\ndefineSymbol(text, main, textord, \"&\", \"\\\\&\");\ndefineSymbol(math, main, textord, \"\\u2135\", \"\\\\aleph\", true);\ndefineSymbol(math, main, textord, \"\\u2200\", \"\\\\forall\", true);\ndefineSymbol(math, main, textord, \"\\u210F\", \"\\\\hbar\");\ndefineSymbol(math, main, textord, \"\\u2203\", \"\\\\exists\", true);\ndefineSymbol(math, main, textord, \"\\u2207\", \"\\\\nabla\", true);\ndefineSymbol(math, main, textord, \"\\u266D\", \"\\\\flat\", true);\ndefineSymbol(math, main, textord, \"\\u2113\", \"\\\\ell\", true);\ndefineSymbol(math, main, textord, \"\\u266E\", \"\\\\natural\", true);\ndefineSymbol(math, main, textord, \"\\u2663\", \"\\\\clubsuit\", true);\ndefineSymbol(math, main, textord, \"\\u2118\", \"\\\\wp\", true);\ndefineSymbol(math, main, textord, \"\\u266F\", \"\\\\sharp\", true);\ndefineSymbol(math, main, textord, \"\\u2662\", \"\\\\diamondsuit\", true);\ndefineSymbol(math, main, textord, \"\\u211C\", \"\\\\Re\", true);\ndefineSymbol(math, main, textord, \"\\u2661\", \"\\\\heartsuit\", true);\ndefineSymbol(math, main, textord, \"\\u2111\", \"\\\\Im\", true);\ndefineSymbol(math, main, textord, \"\\u2660\", \"\\\\spadesuit\", true);\ndefineSymbol(text, main, textord, \"\\xA7\", \"\\\\S\", true);\ndefineSymbol(text, main, textord, \"\\xB6\", \"\\\\P\", true);\n\n// Math and Text\ndefineSymbol(math, main, textord, \"\\u2020\", \"\\\\dag\");\ndefineSymbol(text, main, textord, \"\\u2020\", \"\\\\dag\");\ndefineSymbol(text, main, textord, \"\\u2020\", \"\\\\textdagger\");\ndefineSymbol(math, main, textord, \"\\u2021\", \"\\\\ddag\");\ndefineSymbol(text, main, textord, \"\\u2021\", \"\\\\ddag\");\ndefineSymbol(text, main, textord, \"\\u2020\", \"\\\\textdaggerdbl\");\n\n// Large Delimiters\ndefineSymbol(math, main, close, \"\\u23B1\", \"\\\\rmoustache\");\ndefineSymbol(math, main, open, \"\\u23B0\", \"\\\\lmoustache\");\ndefineSymbol(math, main, close, \"\\u27EF\", \"\\\\rgroup\");\ndefineSymbol(math, main, open, \"\\u27EE\", \"\\\\lgroup\");\n\n// Binary Operators\ndefineSymbol(math, main, bin, \"\\u2213\", \"\\\\mp\", true);\ndefineSymbol(math, main, bin, \"\\u2296\", \"\\\\ominus\", true);\ndefineSymbol(math, main, bin, \"\\u228E\", \"\\\\uplus\", true);\ndefineSymbol(math, main, bin, \"\\u2293\", \"\\\\sqcap\", true);\ndefineSymbol(math, main, bin, \"\\u2217\", \"\\\\ast\");\ndefineSymbol(math, main, bin, \"\\u2294\", \"\\\\sqcup\", true);\ndefineSymbol(math, main, bin, \"\\u25EF\", \"\\\\bigcirc\");\ndefineSymbol(math, main, bin, \"\\u2219\", \"\\\\bullet\");\ndefineSymbol(math, main, bin, \"\\u2021\", \"\\\\ddagger\");\ndefineSymbol(math, main, bin, \"\\u2240\", \"\\\\wr\", true);\ndefineSymbol(math, main, bin, \"\\u2A3F\", \"\\\\amalg\");\ndefineSymbol(math, main, bin, \"&\", \"\\\\And\"); // from amsmath\n\n// Arrow Symbols\ndefineSymbol(math, main, rel, \"\\u27F5\", \"\\\\longleftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21D0\", \"\\\\Leftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27F8\", \"\\\\Longleftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27F6\", \"\\\\longrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21D2\", \"\\\\Rightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27F9\", \"\\\\Longrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2194\", \"\\\\leftrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27F7\", \"\\\\longleftrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21D4\", \"\\\\Leftrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27FA\", \"\\\\Longleftrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21A6\", \"\\\\mapsto\", true);\ndefineSymbol(math, main, rel, \"\\u27FC\", \"\\\\longmapsto\", true);\ndefineSymbol(math, main, rel, \"\\u2197\", \"\\\\nearrow\", true);\ndefineSymbol(math, main, rel, \"\\u21A9\", \"\\\\hookleftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21AA\", \"\\\\hookrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2198\", \"\\\\searrow\", true);\ndefineSymbol(math, main, rel, \"\\u21BC\", \"\\\\leftharpoonup\", true);\ndefineSymbol(math, main, rel, \"\\u21C0\", \"\\\\rightharpoonup\", true);\ndefineSymbol(math, main, rel, \"\\u2199\", \"\\\\swarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21BD\", \"\\\\leftharpoondown\", true);\ndefineSymbol(math, main, rel, \"\\u21C1\", \"\\\\rightharpoondown\", true);\ndefineSymbol(math, main, rel, \"\\u2196\", \"\\\\nwarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21CC\", \"\\\\rightleftharpoons\", true);\n\n// AMS Negated Binary Relations\ndefineSymbol(math, ams, rel, \"\\u226E\", \"\\\\nless\", true);\ndefineSymbol(math, ams, rel, \"\\uE010\", \"\\\\nleqslant\");\ndefineSymbol(math, ams, rel, \"\\uE011\", \"\\\\nleqq\");\ndefineSymbol(math, ams, rel, \"\\u2A87\", \"\\\\lneq\", true);\ndefineSymbol(math, ams, rel, \"\\u2268\", \"\\\\lneqq\", true);\ndefineSymbol(math, ams, rel, \"\\uE00C\", \"\\\\lvertneqq\");\ndefineSymbol(math, ams, rel, \"\\u22E6\", \"\\\\lnsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2A89\", \"\\\\lnapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u2280\", \"\\\\nprec\", true);\n// unicode-math maps \\u22e0 to \\npreccurlyeq. We'll use the AMS synonym.\ndefineSymbol(math, ams, rel, \"\\u22E0\", \"\\\\npreceq\", true);\ndefineSymbol(math, ams, rel, \"\\u22E8\", \"\\\\precnsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2AB9\", \"\\\\precnapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u2241\", \"\\\\nsim\", true);\ndefineSymbol(math, ams, rel, \"\\uE006\", \"\\\\nshortmid\");\ndefineSymbol(math, ams, rel, \"\\u2224\", \"\\\\nmid\", true);\ndefineSymbol(math, ams, rel, \"\\u22AC\", \"\\\\nvdash\", true);\ndefineSymbol(math, ams, rel, \"\\u22AD\", \"\\\\nvDash\", true);\ndefineSymbol(math, ams, rel, \"\\u22EA\", \"\\\\ntriangleleft\");\ndefineSymbol(math, ams, rel, \"\\u22EC\", \"\\\\ntrianglelefteq\", true);\ndefineSymbol(math, ams, rel, \"\\u228A\", \"\\\\subsetneq\", true);\ndefineSymbol(math, ams, rel, \"\\uE01A\", \"\\\\varsubsetneq\");\ndefineSymbol(math, ams, rel, \"\\u2ACB\", \"\\\\subsetneqq\", true);\ndefineSymbol(math, ams, rel, \"\\uE017\", \"\\\\varsubsetneqq\");\ndefineSymbol(math, ams, rel, \"\\u226F\", \"\\\\ngtr\", true);\ndefineSymbol(math, ams, rel, \"\\uE00F\", \"\\\\ngeqslant\");\ndefineSymbol(math, ams, rel, \"\\uE00E\", \"\\\\ngeqq\");\ndefineSymbol(math, ams, rel, \"\\u2A88\", \"\\\\gneq\", true);\ndefineSymbol(math, ams, rel, \"\\u2269\", \"\\\\gneqq\", true);\ndefineSymbol(math, ams, rel, \"\\uE00D\", \"\\\\gvertneqq\");\ndefineSymbol(math, ams, rel, \"\\u22E7\", \"\\\\gnsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2A8A\", \"\\\\gnapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u2281\", \"\\\\nsucc\", true);\n// unicode-math maps \\u22e1 to \\nsucccurlyeq. We'll use the AMS synonym.\ndefineSymbol(math, ams, rel, \"\\u22E1\", \"\\\\nsucceq\", true);\ndefineSymbol(math, ams, rel, \"\\u22E9\", \"\\\\succnsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2ABA\", \"\\\\succnapprox\", true);\n// unicode-math maps \\u2246 to \\simneqq. We'll use the AMS synonym.\ndefineSymbol(math, ams, rel, \"\\u2246\", \"\\\\ncong\", true);\ndefineSymbol(math, ams, rel, \"\\uE007\", \"\\\\nshortparallel\");\ndefineSymbol(math, ams, rel, \"\\u2226\", \"\\\\nparallel\", true);\ndefineSymbol(math, ams, rel, \"\\u22AF\", \"\\\\nVDash\", true);\ndefineSymbol(math, ams, rel, \"\\u22EB\", \"\\\\ntriangleright\");\ndefineSymbol(math, ams, rel, \"\\u22ED\", \"\\\\ntrianglerighteq\", true);\ndefineSymbol(math, ams, rel, \"\\uE018\", \"\\\\nsupseteqq\");\ndefineSymbol(math, ams, rel, \"\\u228B\", \"\\\\supsetneq\", true);\ndefineSymbol(math, ams, rel, \"\\uE01B\", \"\\\\varsupsetneq\");\ndefineSymbol(math, ams, rel, \"\\u2ACC\", \"\\\\supsetneqq\", true);\ndefineSymbol(math, ams, rel, \"\\uE019\", \"\\\\varsupsetneqq\");\ndefineSymbol(math, ams, rel, \"\\u22AE\", \"\\\\nVdash\", true);\ndefineSymbol(math, ams, rel, \"\\u2AB5\", \"\\\\precneqq\", true);\ndefineSymbol(math, ams, rel, \"\\u2AB6\", \"\\\\succneqq\", true);\ndefineSymbol(math, ams, rel, \"\\uE016\", \"\\\\nsubseteqq\");\ndefineSymbol(math, ams, bin, \"\\u22B4\", \"\\\\unlhd\");\ndefineSymbol(math, ams, bin, \"\\u22B5\", \"\\\\unrhd\");\n\n// AMS Negated Arrows\ndefineSymbol(math, ams, rel, \"\\u219A\", \"\\\\nleftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u219B\", \"\\\\nrightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21CD\", \"\\\\nLeftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21CF\", \"\\\\nRightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21AE\", \"\\\\nleftrightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21CE\", \"\\\\nLeftrightarrow\", true);\n\n// AMS Misc\ndefineSymbol(math, ams, rel, \"\\u25B3\", \"\\\\vartriangle\");\ndefineSymbol(math, ams, textord, \"\\u210F\", \"\\\\hslash\");\ndefineSymbol(math, ams, textord, \"\\u25BD\", \"\\\\triangledown\");\ndefineSymbol(math, ams, textord, \"\\u25CA\", \"\\\\lozenge\");\ndefineSymbol(math, ams, textord, \"\\u24C8\", \"\\\\circledS\");\ndefineSymbol(math, ams, textord, \"\\xAE\", \"\\\\circledR\");\ndefineSymbol(text, ams, textord, \"\\xAE\", \"\\\\circledR\");\ndefineSymbol(math, ams, textord, \"\\u2221\", \"\\\\measuredangle\", true);\ndefineSymbol(math, ams, textord, \"\\u2204\", \"\\\\nexists\");\ndefineSymbol(math, ams, textord, \"\\u2127\", \"\\\\mho\");\ndefineSymbol(math, ams, textord, \"\\u2132\", \"\\\\Finv\", true);\ndefineSymbol(math, ams, textord, \"\\u2141\", \"\\\\Game\", true);\ndefineSymbol(math, ams, textord, \"k\", \"\\\\Bbbk\");\ndefineSymbol(math, ams, textord, \"\\u2035\", \"\\\\backprime\");\ndefineSymbol(math, ams, textord, \"\\u25B2\", \"\\\\blacktriangle\");\ndefineSymbol(math, ams, textord, \"\\u25BC\", \"\\\\blacktriangledown\");\ndefineSymbol(math, ams, textord, \"\\u25A0\", \"\\\\blacksquare\");\ndefineSymbol(math, ams, textord, \"\\u29EB\", \"\\\\blacklozenge\");\ndefineSymbol(math, ams, textord, \"\\u2605\", \"\\\\bigstar\");\ndefineSymbol(math, ams, textord, \"\\u2222\", \"\\\\sphericalangle\", true);\ndefineSymbol(math, ams, textord, \"\\u2201\", \"\\\\complement\", true);\n// unicode-math maps U+F0 (ð) to \\matheth. We map to AMS function \\eth\ndefineSymbol(math, ams, textord, \"\\xF0\", \"\\\\eth\", true);\ndefineSymbol(math, ams, textord, \"\\u2571\", \"\\\\diagup\");\ndefineSymbol(math, ams, textord, \"\\u2572\", \"\\\\diagdown\");\ndefineSymbol(math, ams, textord, \"\\u25A1\", \"\\\\square\");\ndefineSymbol(math, ams, textord, \"\\u25A1\", \"\\\\Box\");\ndefineSymbol(math, ams, textord, \"\\u25CA\", \"\\\\Diamond\");\n// unicode-math maps U+A5 to \\mathyen. We map to AMS function \\yen\ndefineSymbol(math, ams, textord, \"\\xA5\", \"\\\\yen\", true);\ndefineSymbol(math, ams, textord, \"\\u2713\", \"\\\\checkmark\", true);\ndefineSymbol(text, ams, textord, \"\\u2713\", \"\\\\checkmark\");\n\n// AMS Hebrew\ndefineSymbol(math, ams, textord, \"\\u2136\", \"\\\\beth\", true);\ndefineSymbol(math, ams, textord, \"\\u2138\", \"\\\\daleth\", true);\ndefineSymbol(math, ams, textord, \"\\u2137\", \"\\\\gimel\", true);\n\n// AMS Greek\ndefineSymbol(math, ams, textord, \"\\u03DD\", \"\\\\digamma\");\ndefineSymbol(math, ams, textord, \"\\u03F0\", \"\\\\varkappa\");\n\n// AMS Delimiters\ndefineSymbol(math, ams, open, \"\\u250C\", \"\\\\ulcorner\");\ndefineSymbol(math, ams, close, \"\\u2510\", \"\\\\urcorner\");\ndefineSymbol(math, ams, open, \"\\u2514\", \"\\\\llcorner\");\ndefineSymbol(math, ams, close, \"\\u2518\", \"\\\\lrcorner\");\n\n// AMS Binary Relations\ndefineSymbol(math, ams, rel, \"\\u2266\", \"\\\\leqq\", true);\ndefineSymbol(math, ams, rel, \"\\u2A7D\", \"\\\\leqslant\");\ndefineSymbol(math, ams, rel, \"\\u2A95\", \"\\\\eqslantless\", true);\ndefineSymbol(math, ams, rel, \"\\u2272\", \"\\\\lesssim\");\ndefineSymbol(math, ams, rel, \"\\u2A85\", \"\\\\lessapprox\");\ndefineSymbol(math, ams, rel, \"\\u224A\", \"\\\\approxeq\", true);\ndefineSymbol(math, ams, bin, \"\\u22D6\", \"\\\\lessdot\");\ndefineSymbol(math, ams, rel, \"\\u22D8\", \"\\\\lll\");\ndefineSymbol(math, ams, rel, \"\\u2276\", \"\\\\lessgtr\");\ndefineSymbol(math, ams, rel, \"\\u22DA\", \"\\\\lesseqgtr\");\ndefineSymbol(math, ams, rel, \"\\u2A8B\", \"\\\\lesseqqgtr\");\ndefineSymbol(math, ams, rel, \"\\u2251\", \"\\\\doteqdot\");\ndefineSymbol(math, ams, rel, \"\\u2253\", \"\\\\risingdotseq\", true);\ndefineSymbol(math, ams, rel, \"\\u2252\", \"\\\\fallingdotseq\", true);\ndefineSymbol(math, ams, rel, \"\\u223D\", \"\\\\backsim\", true);\ndefineSymbol(math, ams, rel, \"\\u22CD\", \"\\\\backsimeq\", true);\ndefineSymbol(math, ams, rel, \"\\u2AC5\", \"\\\\subseteqq\", true);\ndefineSymbol(math, ams, rel, \"\\u22D0\", \"\\\\Subset\", true);\ndefineSymbol(math, ams, rel, \"\\u228F\", \"\\\\sqsubset\", true);\ndefineSymbol(math, ams, rel, \"\\u227C\", \"\\\\preccurlyeq\", true);\ndefineSymbol(math, ams, rel, \"\\u22DE\", \"\\\\curlyeqprec\", true);\ndefineSymbol(math, ams, rel, \"\\u227E\", \"\\\\precsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2AB7\", \"\\\\precapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u22B2\", \"\\\\vartriangleleft\");\ndefineSymbol(math, ams, rel, \"\\u22B4\", \"\\\\trianglelefteq\");\ndefineSymbol(math, ams, rel, \"\\u22A8\", \"\\\\vDash\");\ndefineSymbol(math, ams, rel, \"\\u22AA\", \"\\\\Vvdash\", true);\ndefineSymbol(math, ams, rel, \"\\u2323\", \"\\\\smallsmile\");\ndefineSymbol(math, ams, rel, \"\\u2322\", \"\\\\smallfrown\");\ndefineSymbol(math, ams, rel, \"\\u224F\", \"\\\\bumpeq\", true);\ndefineSymbol(math, ams, rel, \"\\u224E\", \"\\\\Bumpeq\", true);\ndefineSymbol(math, ams, rel, \"\\u2267\", \"\\\\geqq\", true);\ndefineSymbol(math, ams, rel, \"\\u2A7E\", \"\\\\geqslant\", true);\ndefineSymbol(math, ams, rel, \"\\u2A96\", \"\\\\eqslantgtr\", true);\ndefineSymbol(math, ams, rel, \"\\u2273\", \"\\\\gtrsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2A86\", \"\\\\gtrapprox\", true);\ndefineSymbol(math, ams, bin, \"\\u22D7\", \"\\\\gtrdot\");\ndefineSymbol(math, ams, rel, \"\\u22D9\", \"\\\\ggg\", true);\ndefineSymbol(math, ams, rel, \"\\u2277\", \"\\\\gtrless\", true);\ndefineSymbol(math, ams, rel, \"\\u22DB\", \"\\\\gtreqless\", true);\ndefineSymbol(math, ams, rel, \"\\u2A8C\", \"\\\\gtreqqless\", true);\ndefineSymbol(math, ams, rel, \"\\u2256\", \"\\\\eqcirc\", true);\ndefineSymbol(math, ams, rel, \"\\u2257\", \"\\\\circeq\", true);\ndefineSymbol(math, ams, rel, \"\\u225C\", \"\\\\triangleq\", true);\ndefineSymbol(math, ams, rel, \"\\u223C\", \"\\\\thicksim\");\ndefineSymbol(math, ams, rel, \"\\u2248\", \"\\\\thickapprox\");\ndefineSymbol(math, ams, rel, \"\\u2AC6\", \"\\\\supseteqq\", true);\ndefineSymbol(math, ams, rel, \"\\u22D1\", \"\\\\Supset\", true);\ndefineSymbol(math, ams, rel, \"\\u2290\", \"\\\\sqsupset\", true);\ndefineSymbol(math, ams, rel, \"\\u227D\", \"\\\\succcurlyeq\", true);\ndefineSymbol(math, ams, rel, \"\\u22DF\", \"\\\\curlyeqsucc\", true);\ndefineSymbol(math, ams, rel, \"\\u227F\", \"\\\\succsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2AB8\", \"\\\\succapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u22B3\", \"\\\\vartriangleright\");\ndefineSymbol(math, ams, rel, \"\\u22B5\", \"\\\\trianglerighteq\");\ndefineSymbol(math, ams, rel, \"\\u22A9\", \"\\\\Vdash\", true);\ndefineSymbol(math, ams, rel, \"\\u2223\", \"\\\\shortmid\");\ndefineSymbol(math, ams, rel, \"\\u2225\", \"\\\\shortparallel\");\ndefineSymbol(math, ams, rel, \"\\u226C\", \"\\\\between\", true);\ndefineSymbol(math, ams, rel, \"\\u22D4\", \"\\\\pitchfork\", true);\ndefineSymbol(math, ams, rel, \"\\u221D\", \"\\\\varpropto\");\ndefineSymbol(math, ams, rel, \"\\u25C0\", \"\\\\blacktriangleleft\");\n// unicode-math says that \\therefore is a mathord atom.\n// We kept the amssymb atom type, which is rel.\ndefineSymbol(math, ams, rel, \"\\u2234\", \"\\\\therefore\", true);\ndefineSymbol(math, ams, rel, \"\\u220D\", \"\\\\backepsilon\");\ndefineSymbol(math, ams, rel, \"\\u25B6\", \"\\\\blacktriangleright\");\n// unicode-math says that \\because is a mathord atom.\n// We kept the amssymb atom type, which is rel.\ndefineSymbol(math, ams, rel, \"\\u2235\", \"\\\\because\", true);\ndefineSymbol(math, ams, rel, \"\\u22D8\", \"\\\\llless\");\ndefineSymbol(math, ams, rel, \"\\u22D9\", \"\\\\gggtr\");\ndefineSymbol(math, ams, bin, \"\\u22B2\", \"\\\\lhd\");\ndefineSymbol(math, ams, bin, \"\\u22B3\", \"\\\\rhd\");\ndefineSymbol(math, ams, rel, \"\\u2242\", \"\\\\eqsim\", true);\ndefineSymbol(math, main, rel, \"\\u22C8\", \"\\\\Join\");\ndefineSymbol(math, ams, rel, \"\\u2251\", \"\\\\Doteq\", true);\n\n// AMS Binary Operators\ndefineSymbol(math, ams, bin, \"\\u2214\", \"\\\\dotplus\", true);\ndefineSymbol(math, ams, bin, \"\\u2216\", \"\\\\smallsetminus\");\ndefineSymbol(math, ams, bin, \"\\u22D2\", \"\\\\Cap\", true);\ndefineSymbol(math, ams, bin, \"\\u22D3\", \"\\\\Cup\", true);\ndefineSymbol(math, ams, bin, \"\\u2A5E\", \"\\\\doublebarwedge\", true);\ndefineSymbol(math, ams, bin, \"\\u229F\", \"\\\\boxminus\", true);\ndefineSymbol(math, ams, bin, \"\\u229E\", \"\\\\boxplus\", true);\ndefineSymbol(math, ams, bin, \"\\u22C7\", \"\\\\divideontimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22C9\", \"\\\\ltimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22CA\", \"\\\\rtimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22CB\", \"\\\\leftthreetimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22CC\", \"\\\\rightthreetimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22CF\", \"\\\\curlywedge\", true);\ndefineSymbol(math, ams, bin, \"\\u22CE\", \"\\\\curlyvee\", true);\ndefineSymbol(math, ams, bin, \"\\u229D\", \"\\\\circleddash\", true);\ndefineSymbol(math, ams, bin, \"\\u229B\", \"\\\\circledast\", true);\ndefineSymbol(math, ams, bin, \"\\u22C5\", \"\\\\centerdot\");\ndefineSymbol(math, ams, bin, \"\\u22BA\", \"\\\\intercal\", true);\ndefineSymbol(math, ams, bin, \"\\u22D2\", \"\\\\doublecap\");\ndefineSymbol(math, ams, bin, \"\\u22D3\", \"\\\\doublecup\");\ndefineSymbol(math, ams, bin, \"\\u22A0\", \"\\\\boxtimes\", true);\n\n// AMS Arrows\n// Note: unicode-math maps \\u21e2 to their own function \\rightdasharrow.\n// We'll map it to AMS function \\dashrightarrow. It produces the same atom.\ndefineSymbol(math, ams, rel, \"\\u21E2\", \"\\\\dashrightarrow\", true);\n// unicode-math maps \\u21e0 to \\leftdasharrow. We'll use the AMS synonym.\ndefineSymbol(math, ams, rel, \"\\u21E0\", \"\\\\dashleftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21C7\", \"\\\\leftleftarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21C6\", \"\\\\leftrightarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21DA\", \"\\\\Lleftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u219E\", \"\\\\twoheadleftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21A2\", \"\\\\leftarrowtail\", true);\ndefineSymbol(math, ams, rel, \"\\u21AB\", \"\\\\looparrowleft\", true);\ndefineSymbol(math, ams, rel, \"\\u21CB\", \"\\\\leftrightharpoons\", true);\ndefineSymbol(math, ams, rel, \"\\u21B6\", \"\\\\curvearrowleft\", true);\n// unicode-math maps \\u21ba to \\acwopencirclearrow. We'll use the AMS synonym.\ndefineSymbol(math, ams, rel, \"\\u21BA\", \"\\\\circlearrowleft\", true);\ndefineSymbol(math, ams, rel, \"\\u21B0\", \"\\\\Lsh\", true);\ndefineSymbol(math, ams, rel, \"\\u21C8\", \"\\\\upuparrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21BF\", \"\\\\upharpoonleft\", true);\ndefineSymbol(math, ams, rel, \"\\u21C3\", \"\\\\downharpoonleft\", true);\ndefineSymbol(math, ams, rel, \"\\u22B8\", \"\\\\multimap\", true);\ndefineSymbol(math, ams, rel, \"\\u21AD\", \"\\\\leftrightsquigarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21C9\", \"\\\\rightrightarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21C4\", \"\\\\rightleftarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21A0\", \"\\\\twoheadrightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21A3\", \"\\\\rightarrowtail\", true);\ndefineSymbol(math, ams, rel, \"\\u21AC\", \"\\\\looparrowright\", true);\ndefineSymbol(math, ams, rel, \"\\u21B7\", \"\\\\curvearrowright\", true);\n// unicode-math maps \\u21bb to \\cwopencirclearrow. We'll use the AMS synonym.\ndefineSymbol(math, ams, rel, \"\\u21BB\", \"\\\\circlearrowright\", true);\ndefineSymbol(math, ams, rel, \"\\u21B1\", \"\\\\Rsh\", true);\ndefineSymbol(math, ams, rel, \"\\u21CA\", \"\\\\downdownarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21BE\", \"\\\\upharpoonright\", true);\ndefineSymbol(math, ams, rel, \"\\u21C2\", \"\\\\downharpoonright\", true);\ndefineSymbol(math, ams, rel, \"\\u21DD\", \"\\\\rightsquigarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21DD\", \"\\\\leadsto\");\ndefineSymbol(math, ams, rel, \"\\u21DB\", \"\\\\Rrightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21BE\", \"\\\\restriction\");\n\ndefineSymbol(math, main, textord, \"\\u2018\", \"`\");\ndefineSymbol(math, main, textord, \"$\", \"\\\\$\");\ndefineSymbol(text, main, textord, \"$\", \"\\\\$\");\ndefineSymbol(text, main, textord, \"$\", \"\\\\textdollar\");\ndefineSymbol(math, main, textord, \"%\", \"\\\\%\");\ndefineSymbol(text, main, textord, \"%\", \"\\\\%\");\ndefineSymbol(math, main, textord, \"_\", \"\\\\_\");\ndefineSymbol(text, main, textord, \"_\", \"\\\\_\");\ndefineSymbol(text, main, textord, \"_\", \"\\\\textunderscore\");\ndefineSymbol(math, main, textord, \"\\u2220\", \"\\\\angle\", true);\ndefineSymbol(math, main, textord, \"\\u221E\", \"\\\\infty\", true);\ndefineSymbol(math, main, textord, \"\\u2032\", \"\\\\prime\");\ndefineSymbol(math, main, textord, \"\\u25B3\", \"\\\\triangle\");\ndefineSymbol(math, main, textord, \"\\u0393\", \"\\\\Gamma\", true);\ndefineSymbol(math, main, textord, \"\\u0394\", \"\\\\Delta\", true);\ndefineSymbol(math, main, textord, \"\\u0398\", \"\\\\Theta\", true);\ndefineSymbol(math, main, textord, \"\\u039B\", \"\\\\Lambda\", true);\ndefineSymbol(math, main, textord, \"\\u039E\", \"\\\\Xi\", true);\ndefineSymbol(math, main, textord, \"\\u03A0\", \"\\\\Pi\", true);\ndefineSymbol(math, main, textord, \"\\u03A3\", \"\\\\Sigma\", true);\ndefineSymbol(math, main, textord, \"\\u03A5\", \"\\\\Upsilon\", true);\ndefineSymbol(math, main, textord, \"\\u03A6\", \"\\\\Phi\", true);\ndefineSymbol(math, main, textord, \"\\u03A8\", \"\\\\Psi\", true);\ndefineSymbol(math, main, textord, \"\\u03A9\", \"\\\\Omega\", true);\ndefineSymbol(math, main, textord, \"\\xAC\", \"\\\\neg\");\ndefineSymbol(math, main, textord, \"\\xAC\", \"\\\\lnot\");\ndefineSymbol(math, main, textord, \"\\u22A4\", \"\\\\top\");\ndefineSymbol(math, main, textord, \"\\u22A5\", \"\\\\bot\");\ndefineSymbol(math, main, textord, \"\\u2205\", \"\\\\emptyset\");\ndefineSymbol(math, ams, textord, \"\\u2205\", \"\\\\varnothing\");\ndefineSymbol(math, main, mathord, \"\\u03B1\", \"\\\\alpha\", true);\ndefineSymbol(math, main, mathord, \"\\u03B2\", \"\\\\beta\", true);\ndefineSymbol(math, main, mathord, \"\\u03B3\", \"\\\\gamma\", true);\ndefineSymbol(math, main, mathord, \"\\u03B4\", \"\\\\delta\", true);\ndefineSymbol(math, main, mathord, \"\\u03F5\", \"\\\\epsilon\", true);\ndefineSymbol(math, main, mathord, \"\\u03B6\", \"\\\\zeta\", true);\ndefineSymbol(math, main, mathord, \"\\u03B7\", \"\\\\eta\", true);\ndefineSymbol(math, main, mathord, \"\\u03B8\", \"\\\\theta\", true);\ndefineSymbol(math, main, mathord, \"\\u03B9\", \"\\\\iota\", true);\ndefineSymbol(math, main, mathord, \"\\u03BA\", \"\\\\kappa\", true);\ndefineSymbol(math, main, mathord, \"\\u03BB\", \"\\\\lambda\", true);\ndefineSymbol(math, main, mathord, \"\\u03BC\", \"\\\\mu\", true);\ndefineSymbol(math, main, mathord, \"\\u03BD\", \"\\\\nu\", true);\ndefineSymbol(math, main, mathord, \"\\u03BE\", \"\\\\xi\", true);\ndefineSymbol(math, main, mathord, \"\\u03BF\", \"\\\\omicron\", true);\ndefineSymbol(math, main, mathord, \"\\u03C0\", \"\\\\pi\", true);\ndefineSymbol(math, main, mathord, \"\\u03C1\", \"\\\\rho\", true);\ndefineSymbol(math, main, mathord, \"\\u03C3\", \"\\\\sigma\", true);\ndefineSymbol(math, main, mathord, \"\\u03C4\", \"\\\\tau\", true);\ndefineSymbol(math, main, mathord, \"\\u03C5\", \"\\\\upsilon\", true);\ndefineSymbol(math, main, mathord, \"\\u03D5\", \"\\\\phi\", true);\ndefineSymbol(math, main, mathord, \"\\u03C7\", \"\\\\chi\", true);\ndefineSymbol(math, main, mathord, \"\\u03C8\", \"\\\\psi\", true);\ndefineSymbol(math, main, mathord, \"\\u03C9\", \"\\\\omega\", true);\ndefineSymbol(math, main, mathord, \"\\u03B5\", \"\\\\varepsilon\", true);\ndefineSymbol(math, main, mathord, \"\\u03D1\", \"\\\\vartheta\", true);\ndefineSymbol(math, main, mathord, \"\\u03D6\", \"\\\\varpi\", true);\ndefineSymbol(math, main, mathord, \"\\u03F1\", \"\\\\varrho\", true);\ndefineSymbol(math, main, mathord, \"\\u03C2\", \"\\\\varsigma\", true);\ndefineSymbol(math, main, mathord, \"\\u03C6\", \"\\\\varphi\", true);\ndefineSymbol(math, main, bin, \"\\u2217\", \"*\");\ndefineSymbol(math, main, bin, \"+\", \"+\");\ndefineSymbol(math, main, bin, \"\\u2212\", \"-\");\ndefineSymbol(math, main, bin, \"\\u22C5\", \"\\\\cdot\", true);\ndefineSymbol(math, main, bin, \"\\u2218\", \"\\\\circ\");\ndefineSymbol(math, main, bin, \"\\xF7\", \"\\\\div\", true);\ndefineSymbol(math, main, bin, \"\\xB1\", \"\\\\pm\", true);\ndefineSymbol(math, main, bin, \"\\xD7\", \"\\\\times\", true);\ndefineSymbol(math, main, bin, \"\\u2229\", \"\\\\cap\", true);\ndefineSymbol(math, main, bin, \"\\u222A\", \"\\\\cup\", true);\ndefineSymbol(math, main, bin, \"\\u2216\", \"\\\\setminus\");\ndefineSymbol(math, main, bin, \"\\u2227\", \"\\\\land\");\ndefineSymbol(math, main, bin, \"\\u2228\", \"\\\\lor\");\ndefineSymbol(math, main, bin, \"\\u2227\", \"\\\\wedge\", true);\ndefineSymbol(math, main, bin, \"\\u2228\", \"\\\\vee\", true);\ndefineSymbol(math, main, textord, \"\\u221A\", \"\\\\surd\");\ndefineSymbol(math, main, open, \"(\", \"(\");\ndefineSymbol(math, main, open, \"[\", \"[\");\ndefineSymbol(math, main, open, \"\\u27E8\", \"\\\\langle\", true);\ndefineSymbol(math, main, open, \"\\u2223\", \"\\\\lvert\");\ndefineSymbol(math, main, open, \"\\u2225\", \"\\\\lVert\");\ndefineSymbol(math, main, close, \")\", \")\");\ndefineSymbol(math, main, close, \"]\", \"]\");\ndefineSymbol(math, main, close, \"?\", \"?\");\ndefineSymbol(math, main, close, \"!\", \"!\");\ndefineSymbol(math, main, close, \"\\u27E9\", \"\\\\rangle\", true);\ndefineSymbol(math, main, close, \"\\u2223\", \"\\\\rvert\");\ndefineSymbol(math, main, close, \"\\u2225\", \"\\\\rVert\");\ndefineSymbol(math, main, rel, \"=\", \"=\");\ndefineSymbol(math, main, rel, \"<\", \"<\");\ndefineSymbol(math, main, rel, \">\", \">\");\ndefineSymbol(math, main, rel, \":\", \":\");\ndefineSymbol(math, main, rel, \"\\u2248\", \"\\\\approx\", true);\ndefineSymbol(math, main, rel, \"\\u2245\", \"\\\\cong\", true);\ndefineSymbol(math, main, rel, \"\\u2265\", \"\\\\ge\");\ndefineSymbol(math, main, rel, \"\\u2265\", \"\\\\geq\", true);\ndefineSymbol(math, main, rel, \"\\u2190\", \"\\\\gets\");\ndefineSymbol(math, main, rel, \">\", \"\\\\gt\");\ndefineSymbol(math, main, rel, \"\\u2208\", \"\\\\in\", true);\ndefineSymbol(math, main, rel, \"\\u2209\", \"\\\\notin\", true);\ndefineSymbol(math, main, rel, \"\\u0338\", \"\\\\not\");\ndefineSymbol(math, main, rel, \"\\u2282\", \"\\\\subset\", true);\ndefineSymbol(math, main, rel, \"\\u2283\", \"\\\\supset\", true);\ndefineSymbol(math, main, rel, \"\\u2286\", \"\\\\subseteq\", true);\ndefineSymbol(math, main, rel, \"\\u2287\", \"\\\\supseteq\", true);\ndefineSymbol(math, ams, rel, \"\\u2288\", \"\\\\nsubseteq\", true);\ndefineSymbol(math, ams, rel, \"\\u2289\", \"\\\\nsupseteq\", true);\ndefineSymbol(math, main, rel, \"\\u22A8\", \"\\\\models\");\ndefineSymbol(math, main, rel, \"\\u2190\", \"\\\\leftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2264\", \"\\\\le\");\ndefineSymbol(math, main, rel, \"\\u2264\", \"\\\\leq\", true);\ndefineSymbol(math, main, rel, \"<\", \"\\\\lt\");\ndefineSymbol(math, main, rel, \"\\u2260\", \"\\\\ne\", true);\ndefineSymbol(math, main, rel, \"\\u2260\", \"\\\\neq\");\ndefineSymbol(math, main, rel, \"\\u2192\", \"\\\\rightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2192\", \"\\\\to\");\ndefineSymbol(math, ams, rel, \"\\u2271\", \"\\\\ngeq\", true);\ndefineSymbol(math, ams, rel, \"\\u2270\", \"\\\\nleq\", true);\ndefineSymbol(math, main, spacing, null, \"\\\\!\");\ndefineSymbol(math, main, spacing, \"\\xA0\", \"\\\\ \");\ndefineSymbol(math, main, spacing, \"\\xA0\", \"~\");\ndefineSymbol(math, main, spacing, null, \"\\\\,\");\ndefineSymbol(math, main, spacing, null, \"\\\\:\");\ndefineSymbol(math, main, spacing, null, \"\\\\;\");\ndefineSymbol(math, main, spacing, null, \"\\\\enspace\");\ndefineSymbol(math, main, spacing, null, \"\\\\qquad\");\ndefineSymbol(math, main, spacing, null, \"\\\\quad\");\ndefineSymbol(math, main, spacing, \"\\xA0\", \"\\\\space\");\n// Ref: LaTeX Source 2e: \\DeclareRobustCommand{\\nobreakspace}{%\ndefineSymbol(math, main, spacing, \"\\xA0\", \"\\\\nobreakspace\");\ndefineSymbol(text, main, spacing, null, \"\\\\!\");\ndefineSymbol(text, main, spacing, \"\\xA0\", \"\\\\ \");\ndefineSymbol(text, main, spacing, \"\\xA0\", \"~\");\ndefineSymbol(text, main, spacing, null, \"\\\\,\");\ndefineSymbol(text, main, spacing, null, \"\\\\:\");\ndefineSymbol(text, main, spacing, null, \"\\\\;\");\ndefineSymbol(text, main, spacing, null, \"\\\\enspace\");\ndefineSymbol(text, main, spacing, null, \"\\\\qquad\");\ndefineSymbol(text, main, spacing, null, \"\\\\quad\");\ndefineSymbol(text, main, spacing, \"\\xA0\", \"\\\\space\");\ndefineSymbol(text, main, spacing, \"\\xA0\", \"\\\\nobreakspace\");\ndefineSymbol(math, main, punct, \",\", \",\");\ndefineSymbol(math, main, punct, \";\", \";\");\ndefineSymbol(math, main, punct, \":\", \"\\\\colon\");\ndefineSymbol(math, ams, bin, \"\\u22BC\", \"\\\\barwedge\", true);\ndefineSymbol(math, ams, bin, \"\\u22BB\", \"\\\\veebar\", true);\ndefineSymbol(math, main, bin, \"\\u2299\", \"\\\\odot\", true);\ndefineSymbol(math, main, bin, \"\\u2295\", \"\\\\oplus\", true);\ndefineSymbol(math, main, bin, \"\\u2297\", \"\\\\otimes\", true);\ndefineSymbol(math, main, textord, \"\\u2202\", \"\\\\partial\", true);\ndefineSymbol(math, main, bin, \"\\u2298\", \"\\\\oslash\", true);\ndefineSymbol(math, ams, bin, \"\\u229A\", \"\\\\circledcirc\", true);\ndefineSymbol(math, ams, bin, \"\\u22A1\", \"\\\\boxdot\", true);\ndefineSymbol(math, main, bin, \"\\u25B3\", \"\\\\bigtriangleup\");\ndefineSymbol(math, main, bin, \"\\u25BD\", \"\\\\bigtriangledown\");\ndefineSymbol(math, main, bin, \"\\u2020\", \"\\\\dagger\");\ndefineSymbol(math, main, bin, \"\\u22C4\", \"\\\\diamond\");\ndefineSymbol(math, main, bin, \"\\u22C6\", \"\\\\star\");\ndefineSymbol(math, main, bin, \"\\u25C3\", \"\\\\triangleleft\");\ndefineSymbol(math, main, bin, \"\\u25B9\", \"\\\\triangleright\");\ndefineSymbol(math, main, open, \"{\", \"\\\\{\");\ndefineSymbol(text, main, textord, \"{\", \"\\\\{\");\ndefineSymbol(text, main, textord, \"{\", \"\\\\textbraceleft\");\ndefineSymbol(math, main, close, \"}\", \"\\\\}\");\ndefineSymbol(text, main, textord, \"}\", \"\\\\}\");\ndefineSymbol(text, main, textord, \"}\", \"\\\\textbraceright\");\ndefineSymbol(math, main, open, \"{\", \"\\\\lbrace\");\ndefineSymbol(math, main, close, \"}\", \"\\\\rbrace\");\ndefineSymbol(math, main, open, \"[\", \"\\\\lbrack\");\ndefineSymbol(math, main, close, \"]\", \"\\\\rbrack\");\ndefineSymbol(text, main, textord, \"<\", \"\\\\textless\"); // in T1 fontenc\ndefineSymbol(text, main, textord, \">\", \"\\\\textgreater\"); // in T1 fontenc\ndefineSymbol(math, main, open, \"\\u230A\", \"\\\\lfloor\");\ndefineSymbol(math, main, close, \"\\u230B\", \"\\\\rfloor\");\ndefineSymbol(math, main, open, \"\\u2308\", \"\\\\lceil\");\ndefineSymbol(math, main, close, \"\\u2309\", \"\\\\rceil\");\ndefineSymbol(math, main, textord, \"\\\\\", \"\\\\backslash\");\ndefineSymbol(math, main, textord, \"\\u2223\", \"|\");\ndefineSymbol(math, main, textord, \"\\u2223\", \"\\\\vert\");\ndefineSymbol(text, main, textord, \"|\", \"\\\\textbar\"); // in T1 fontenc\ndefineSymbol(math, main, textord, \"\\u2225\", \"\\\\|\");\ndefineSymbol(math, main, textord, \"\\u2225\", \"\\\\Vert\");\ndefineSymbol(text, main, textord, \"\\u2225\", \"\\\\textbardbl\");\ndefineSymbol(math, main, rel, \"\\u2191\", \"\\\\uparrow\", true);\ndefineSymbol(math, main, rel, \"\\u21D1\", \"\\\\Uparrow\", true);\ndefineSymbol(math, main, rel, \"\\u2193\", \"\\\\downarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21D3\", \"\\\\Downarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2195\", \"\\\\updownarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21D5\", \"\\\\Updownarrow\", true);\ndefineSymbol(math, main, op, \"\\u2210\", \"\\\\coprod\");\ndefineSymbol(math, main, op, \"\\u22C1\", \"\\\\bigvee\");\ndefineSymbol(math, main, op, \"\\u22C0\", \"\\\\bigwedge\");\ndefineSymbol(math, main, op, \"\\u2A04\", \"\\\\biguplus\");\ndefineSymbol(math, main, op, \"\\u22C2\", \"\\\\bigcap\");\ndefineSymbol(math, main, op, \"\\u22C3\", \"\\\\bigcup\");\ndefineSymbol(math, main, op, \"\\u222B\", \"\\\\int\");\ndefineSymbol(math, main, op, \"\\u222B\", \"\\\\intop\");\ndefineSymbol(math, main, op, \"\\u222C\", \"\\\\iint\");\ndefineSymbol(math, main, op, \"\\u222D\", \"\\\\iiint\");\ndefineSymbol(math, main, op, \"\\u220F\", \"\\\\prod\");\ndefineSymbol(math, main, op, \"\\u2211\", \"\\\\sum\");\ndefineSymbol(math, main, op, \"\\u2A02\", \"\\\\bigotimes\");\ndefineSymbol(math, main, op, \"\\u2A01\", \"\\\\bigoplus\");\ndefineSymbol(math, main, op, \"\\u2A00\", \"\\\\bigodot\");\ndefineSymbol(math, main, op, \"\\u222E\", \"\\\\oint\");\ndefineSymbol(math, main, op, \"\\u2A06\", \"\\\\bigsqcup\");\ndefineSymbol(math, main, op, \"\\u222B\", \"\\\\smallint\");\ndefineSymbol(text, main, inner, \"\\u2026\", \"\\\\textellipsis\");\ndefineSymbol(math, main, inner, \"\\u2026\", \"\\\\mathellipsis\");\ndefineSymbol(text, main, inner, \"\\u2026\", \"\\\\ldots\", true);\ndefineSymbol(math, main, inner, \"\\u2026\", \"\\\\ldots\", true);\ndefineSymbol(math, main, inner, \"\\u22EF\", \"\\\\@cdots\", true);\ndefineSymbol(math, main, inner, \"\\u22F1\", \"\\\\ddots\", true);\ndefineSymbol(math, main, textord, \"\\u22EE\", \"\\\\vdots\", true);\ndefineSymbol(math, main, accent, \"\\u02CA\", \"\\\\acute\");\ndefineSymbol(math, main, accent, \"\\u02CB\", \"\\\\grave\");\ndefineSymbol(math, main, accent, \"\\xA8\", \"\\\\ddot\");\ndefineSymbol(math, main, accent, \"~\", \"\\\\tilde\");\ndefineSymbol(math, main, accent, \"\\u02C9\", \"\\\\bar\");\ndefineSymbol(math, main, accent, \"\\u02D8\", \"\\\\breve\");\ndefineSymbol(math, main, accent, \"\\u02C7\", \"\\\\check\");\ndefineSymbol(math, main, accent, \"^\", \"\\\\hat\");\ndefineSymbol(math, main, accent, \"\\u20D7\", \"\\\\vec\");\ndefineSymbol(math, main, accent, \"\\u02D9\", \"\\\\dot\");\ndefineSymbol(math, main, accent, \"\\u02DA\", \"\\\\mathring\");\ndefineSymbol(math, main, mathord, \"\\u0131\", \"\\\\imath\", true);\ndefineSymbol(math, main, mathord, \"\\u0237\", \"\\\\jmath\", true);\ndefineSymbol(text, main, textord, \"\\u0131\", \"\\\\i\", true);\ndefineSymbol(text, main, textord, \"\\u0237\", \"\\\\j\", true);\ndefineSymbol(text, main, textord, \"\\xDF\", \"\\\\ss\", true);\ndefineSymbol(text, main, textord, \"\\xE6\", \"\\\\ae\", true);\ndefineSymbol(text, main, textord, \"\\xE6\", \"\\\\ae\", true);\ndefineSymbol(text, main, textord, \"\\u0153\", \"\\\\oe\", true);\ndefineSymbol(text, main, textord, \"\\xF8\", \"\\\\o\", true);\ndefineSymbol(text, main, textord, \"\\xC6\", \"\\\\AE\", true);\ndefineSymbol(text, main, textord, \"\\u0152\", \"\\\\OE\", true);\ndefineSymbol(text, main, textord, \"\\xD8\", \"\\\\O\", true);\ndefineSymbol(text, main, accent, \"\\u02CA\", \"\\\\'\"); // acute\ndefineSymbol(text, main, accent, \"\\u02CB\", \"\\\\`\"); // grave\ndefineSymbol(text, main, accent, \"\\u02C6\", \"\\\\^\"); // circumflex\ndefineSymbol(text, main, accent, \"\\u02DC\", \"\\\\~\"); // tilde\ndefineSymbol(text, main, accent, \"\\u02C9\", \"\\\\=\"); // macron\ndefineSymbol(text, main, accent, \"\\u02D8\", \"\\\\u\"); // breve\ndefineSymbol(text, main, accent, \"\\u02D9\", \"\\\\.\"); // dot above\ndefineSymbol(text, main, accent, \"\\u02DA\", \"\\\\r\"); // ring above\ndefineSymbol(text, main, accent, \"\\u02C7\", \"\\\\v\"); // caron\ndefineSymbol(text, main, accent, \"\\xA8\", '\\\\\"'); // diaresis\ndefineSymbol(text, main, accent, \"\\u02DD\", \"\\\\H\"); // double acute\n\ndefineSymbol(text, main, textord, \"\\u2013\", \"--\");\ndefineSymbol(text, main, textord, \"\\u2013\", \"\\\\textendash\");\ndefineSymbol(text, main, textord, \"\\u2014\", \"---\");\ndefineSymbol(text, main, textord, \"\\u2014\", \"\\\\textemdash\");\ndefineSymbol(text, main, textord, \"\\u2018\", \"`\");\ndefineSymbol(text, main, textord, \"\\u2018\", \"\\\\textquoteleft\");\ndefineSymbol(text, main, textord, \"\\u2019\", \"'\");\ndefineSymbol(text, main, textord, \"\\u2019\", \"\\\\textquoteright\");\ndefineSymbol(text, main, textord, \"\\u201C\", \"``\");\ndefineSymbol(text, main, textord, \"\\u201C\", \"\\\\textquotedblleft\");\ndefineSymbol(text, main, textord, \"\\u201D\", \"''\");\ndefineSymbol(text, main, textord, \"\\u201D\", \"\\\\textquotedblright\");\ndefineSymbol(math, main, textord, \"\\xB0\", \"\\\\degree\");\ndefineSymbol(text, main, textord, \"\\xB0\", \"\\\\degree\");\n// TODO: In LaTeX, \\pounds can generate a different character in text and math\n// mode, but among our fonts, only Main-Italic defines this character \"163\".\ndefineSymbol(math, main, mathord, \"\\xA3\", \"\\\\pounds\");\ndefineSymbol(math, main, mathord, \"\\xA3\", \"\\\\mathsterling\", true);\ndefineSymbol(text, main, mathord, \"\\xA3\", \"\\\\pounds\");\ndefineSymbol(text, main, mathord, \"\\xA3\", \"\\\\textsterling\", true);\ndefineSymbol(math, ams, textord, \"\\u2720\", \"\\\\maltese\");\ndefineSymbol(text, ams, textord, \"\\u2720\", \"\\\\maltese\");\n\ndefineSymbol(text, main, spacing, \"\\xA0\", \"\\\\ \");\ndefineSymbol(text, main, spacing, \"\\xA0\", \" \");\ndefineSymbol(text, main, spacing, \"\\xA0\", \"~\");\n\n// There are lots of symbols which are the same, so we add them in afterwards.\n\n// All of these are textords in math mode\nvar mathTextSymbols = \"0123456789/@.\\\"\";\nfor (var i = 0; i < mathTextSymbols.length; i++) {\n    var ch = mathTextSymbols.charAt(i);\n    defineSymbol(math, main, textord, ch, ch);\n}\n\n// All of these are textords in text mode\nvar textSymbols = \"0123456789!@*()-=+[]<>|\\\";:?/.,\";\nfor (var _i = 0; _i < textSymbols.length; _i++) {\n    var _ch = textSymbols.charAt(_i);\n    defineSymbol(text, main, textord, _ch, _ch);\n}\n\n// All of these are textords in text mode, and mathords in math mode\nvar letters = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\";\nfor (var _i2 = 0; _i2 < letters.length; _i2++) {\n    var _ch2 = letters.charAt(_i2);\n    defineSymbol(math, main, mathord, _ch2, _ch2);\n    defineSymbol(text, main, textord, _ch2, _ch2);\n}\n\n// We add these Latin-1 letters as symbols for backwards-compatibility,\n// but they are not actually in the font, nor are they supported by the\n// Unicode accent mechanism, so they fall back to Times font and look ugly.\n// TODO(edemaine): Fix this.\nvar extraLatin = \"ÇÐÞçþ\";\nfor (var _i3 = 0; _i3 < extraLatin.length; _i3++) {\n    var _ch3 = extraLatin.charAt(_i3);\n    defineSymbol(math, main, mathord, _ch3, _ch3);\n    defineSymbol(text, main, textord, _ch3, _ch3);\n}\ndefineSymbol(text, main, textord, \"ð\", \"ð\");\n\n// Unicode versions of existing characters\ndefineSymbol(text, main, textord, \"\\u2013\", \"–\");\ndefineSymbol(text, main, textord, \"\\u2014\", \"—\");\ndefineSymbol(text, main, textord, \"\\u2018\", \"‘\");\ndefineSymbol(text, main, textord, \"\\u2019\", \"’\");\ndefineSymbol(text, main, textord, \"\\u201C\", \"“\");\ndefineSymbol(text, main, textord, \"\\u201D\", \"”\");\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(38);\nmodule.exports = function(it){\n  return Object(defined(it));\n};\n\n/***/ }),\n/* 30 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__unicodeScripts__ = __webpack_require__(42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__submodules_katex_fonts_fontMetricsData__ = __webpack_require__(59);\n\n\n/**\n * This file contains metrics regarding fonts and individual symbols. The sigma\n * and xi variables, as well as the metricMap map contain data extracted from\n * TeX, TeX font metrics, and the TTF files. These data are then exposed via the\n * `metrics` variable and the getCharacterMetrics function.\n */\n\n// In TeX, there are actually three sets of dimensions, one for each of\n// textstyle (size index 5 and higher: >=9pt), scriptstyle (size index 3 and 4:\n// 7-8pt), and scriptscriptstyle (size index 1 and 2: 5-6pt).  These are\n// provided in the the arrays below, in that order.\n//\n// The font metrics are stored in fonts cmsy10, cmsy7, and cmsy5 respsectively.\n// This was determined by running the following script:\n//\n//     latex -interaction=nonstopmode \\\n//     '\\documentclass{article}\\usepackage{amsmath}\\begin{document}' \\\n//     '$a$ \\expandafter\\show\\the\\textfont2' \\\n//     '\\expandafter\\show\\the\\scriptfont2' \\\n//     '\\expandafter\\show\\the\\scriptscriptfont2' \\\n//     '\\stop'\n//\n// The metrics themselves were retreived using the following commands:\n//\n//     tftopl cmsy10\n//     tftopl cmsy7\n//     tftopl cmsy5\n//\n// The output of each of these commands is quite lengthy.  The only part we\n// care about is the FONTDIMEN section. Each value is measured in EMs.\nvar sigmasAndXis = {\n    slant: [0.250, 0.250, 0.250], // sigma1\n    space: [0.000, 0.000, 0.000], // sigma2\n    stretch: [0.000, 0.000, 0.000], // sigma3\n    shrink: [0.000, 0.000, 0.000], // sigma4\n    xHeight: [0.431, 0.431, 0.431], // sigma5\n    quad: [1.000, 1.171, 1.472], // sigma6\n    extraSpace: [0.000, 0.000, 0.000], // sigma7\n    num1: [0.677, 0.732, 0.925], // sigma8\n    num2: [0.394, 0.384, 0.387], // sigma9\n    num3: [0.444, 0.471, 0.504], // sigma10\n    denom1: [0.686, 0.752, 1.025], // sigma11\n    denom2: [0.345, 0.344, 0.532], // sigma12\n    sup1: [0.413, 0.503, 0.504], // sigma13\n    sup2: [0.363, 0.431, 0.404], // sigma14\n    sup3: [0.289, 0.286, 0.294], // sigma15\n    sub1: [0.150, 0.143, 0.200], // sigma16\n    sub2: [0.247, 0.286, 0.400], // sigma17\n    supDrop: [0.386, 0.353, 0.494], // sigma18\n    subDrop: [0.050, 0.071, 0.100], // sigma19\n    delim1: [2.390, 1.700, 1.980], // sigma20\n    delim2: [1.010, 1.157, 1.420], // sigma21\n    axisHeight: [0.250, 0.250, 0.250], // sigma22\n\n    // These font metrics are extracted from TeX by using tftopl on cmex10.tfm;\n    // they correspond to the font parameters of the extension fonts (family 3).\n    // See the TeXbook, page 441. In AMSTeX, the extension fonts scale; to\n    // match cmex7, we'd use cmex7.tfm values for script and scriptscript\n    // values.\n    defaultRuleThickness: [0.04, 0.049, 0.049], // xi8; cmex7: 0.049\n    bigOpSpacing1: [0.111, 0.111, 0.111], // xi9\n    bigOpSpacing2: [0.166, 0.166, 0.166], // xi10\n    bigOpSpacing3: [0.2, 0.2, 0.2], // xi11\n    bigOpSpacing4: [0.6, 0.611, 0.611], // xi12; cmex7: 0.611\n    bigOpSpacing5: [0.1, 0.143, 0.143], // xi13; cmex7: 0.143\n\n    // The \\sqrt rule width is taken from the height of the surd character.\n    // Since we use the same font at all sizes, this thickness doesn't scale.\n    sqrtRuleThickness: [0.04, 0.04, 0.04],\n\n    // This value determines how large a pt is, for metrics which are defined\n    // in terms of pts.\n    // This value is also used in katex.less; if you change it make sure the\n    // values match.\n    ptPerEm: [10.0, 10.0, 10.0],\n\n    // The space between adjacent `|` columns in an array definition. From\n    // `\\showthe\\doublerulesep` in LaTeX. Equals 2.0 / ptPerEm.\n    doubleRuleSep: [0.2, 0.2, 0.2]\n};\n\n// This map contains a mapping from font name and character code to character\n// metrics, including height, depth, italic correction, and skew (kern from the\n// character to the corresponding \\skewchar)\n// This map is generated via `make metrics`. It should not be changed manually.\n\n\n// These are very rough approximations.  We default to Times New Roman which\n// should have Latin-1 and Cyrillic characters, but may not depending on the\n// operating system.  The metrics do not account for extra height from the\n// accents.  In the case of Cyrillic characters which have both ascenders and\n// descenders we prefer approximations with ascenders, primarily to prevent\n// the fraction bar or root line from intersecting the glyph.\n// TODO(kevinb) allow union of multiple glyph metrics for better accuracy.\nvar extraCharacterMap = {\n    // Latin-1\n    'Å': 'A',\n    'Ç': 'C',\n    'Ð': 'D',\n    'Þ': 'o',\n    'å': 'a',\n    'ç': 'c',\n    'ð': 'd',\n    'þ': 'o',\n\n    // Cyrillic\n    'А': 'A',\n    'Б': 'B',\n    'В': 'B',\n    'Г': 'F',\n    'Д': 'A',\n    'Е': 'E',\n    'Ж': 'K',\n    'З': '3',\n    'И': 'N',\n    'Й': 'N',\n    'К': 'K',\n    'Л': 'N',\n    'М': 'M',\n    'Н': 'H',\n    'О': 'O',\n    'П': 'N',\n    'Р': 'P',\n    'С': 'C',\n    'Т': 'T',\n    'У': 'y',\n    'Ф': 'O',\n    'Х': 'X',\n    'Ц': 'U',\n    'Ч': 'h',\n    'Ш': 'W',\n    'Щ': 'W',\n    'Ъ': 'B',\n    'Ы': 'X',\n    'Ь': 'B',\n    'Э': '3',\n    'Ю': 'X',\n    'Я': 'R',\n    'а': 'a',\n    'б': 'b',\n    'в': 'a',\n    'г': 'r',\n    'д': 'y',\n    'е': 'e',\n    'ж': 'm',\n    'з': 'e',\n    'и': 'n',\n    'й': 'n',\n    'к': 'n',\n    'л': 'n',\n    'м': 'm',\n    'н': 'n',\n    'о': 'o',\n    'п': 'n',\n    'р': 'p',\n    'с': 'c',\n    'т': 'o',\n    'у': 'y',\n    'ф': 'b',\n    'х': 'x',\n    'ц': 'n',\n    'ч': 'n',\n    'ш': 'w',\n    'щ': 'w',\n    'ъ': 'a',\n    'ы': 'm',\n    'ь': 'a',\n    'э': 'e',\n    'ю': 'm',\n    'я': 'r'\n};\n\n/**\n * This function is a convenience function for looking up information in the\n * metricMap table. It takes a character as a string, and a font.\n *\n * Note: the `width` property may be undefined if fontMetricsData.js wasn't\n * built using `Make extended_metrics`.\n */\nvar getCharacterMetrics = function getCharacterMetrics(character, font, mode) {\n    if (!__WEBPACK_IMPORTED_MODULE_1__submodules_katex_fonts_fontMetricsData__[\"a\" /* default */][font]) {\n        throw new Error(\"Font metrics not found for font: \" + font + \".\");\n    }\n    var ch = character.charCodeAt(0);\n    if (character[0] in extraCharacterMap) {\n        ch = extraCharacterMap[character[0]].charCodeAt(0);\n    }\n    var metrics = __WEBPACK_IMPORTED_MODULE_1__submodules_katex_fonts_fontMetricsData__[\"a\" /* default */][font][ch];\n\n    if (!metrics && mode === 'text') {\n        // We don't typically have font metrics for Asian scripts.\n        // But since we support them in text mode, we need to return\n        // some sort of metrics.\n        // So if the character is in a script we support but we\n        // don't have metrics for it, just use the metrics for\n        // the Latin capital letter M. This is close enough because\n        // we (currently) only care about the height of the glpyh\n        // not its width.\n        if (Object(__WEBPACK_IMPORTED_MODULE_0__unicodeScripts__[\"b\" /* supportedCodepoint */])(ch)) {\n            metrics = __WEBPACK_IMPORTED_MODULE_1__submodules_katex_fonts_fontMetricsData__[\"a\" /* default */][font][77]; // 77 is the charcode for 'M'\n        }\n    }\n\n    if (metrics) {\n        return {\n            depth: metrics[0],\n            height: metrics[1],\n            italic: metrics[2],\n            skew: metrics[3],\n            width: metrics[4]\n        };\n    }\n};\n\nvar fontMetricsBySizeIndex = {};\n\n/**\n * Get the font metrics for a given size.\n */\nvar getFontMetrics = function getFontMetrics(size) {\n    var sizeIndex = void 0;\n    if (size >= 5) {\n        sizeIndex = 0;\n    } else if (size >= 3) {\n        sizeIndex = 1;\n    } else {\n        sizeIndex = 2;\n    }\n    if (!fontMetricsBySizeIndex[sizeIndex]) {\n        var metrics = fontMetricsBySizeIndex[sizeIndex] = {\n            cssEmPerMu: sigmasAndXis.quad[sizeIndex] / 18\n        };\n        for (var key in sigmasAndXis) {\n            if (sigmasAndXis.hasOwnProperty(key)) {\n                metrics[key] = sigmasAndXis[key][sizeIndex];\n            }\n        }\n    }\n    return fontMetricsBySizeIndex[sizeIndex];\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n    getFontMetrics: getFontMetrics,\n    getCharacterMetrics: getCharacterMetrics\n});\n\n/***/ }),\n/* 31 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_freeze__ = __webpack_require__(66);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_freeze___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_freeze__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__);\n\n\n\n\n/**\n * Lexing or parsing positional information for error reporting.\n * This object is immutable.\n */\nvar SourceLocation = function () {\n    // End offset, zero-based exclusive.\n\n    // Lexer holding the input string.\n    function SourceLocation(lexer, start, end) {\n        __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, SourceLocation);\n\n        this.lexer = lexer;\n        this.start = start;\n        this.end = end;\n        __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_freeze___default()(this); // Immutable to allow sharing in range().\n    }\n\n    /**\n     * Merges two `SourceLocation`s from location providers, given they are\n     * provided in order of appearance.\n     * - Returns the first one's location if only the first is provided.\n     * - Returns a merged range of the first and the last if both are provided\n     *   and their lexers match.\n     * - Otherwise, returns null.\n     */\n    // Start offset, zero-based inclusive.\n\n\n    __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default()(SourceLocation, null, [{\n        key: \"range\",\n        value: function range(first, second) {\n            if (!second) {\n                return first && first.loc;\n            } else if (!first || !first.loc || !second.loc || first.loc.lexer !== second.loc.lexer) {\n                return null;\n            } else {\n                return new SourceLocation(first.loc.lexer, first.loc.start, second.loc.end);\n            }\n        }\n    }]);\n\n    return SourceLocation;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (SourceLocation);\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports) {\n\nvar id = 0\n  , px = Math.random();\nmodule.exports = function(key){\n  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(bitmap, value){\n  return {\n    enumerable  : !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable    : !(bitmap & 4),\n    value       : value\n  };\n};\n\n/***/ }),\n/* 34 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils__ = __webpack_require__(5);\n\n\n/**\n * This is a module for storing settings passed into KaTeX. It correctly handles\n * default settings.\n */\n\n\n\n/**\n * The main Settings object\n *\n * The current options stored are:\n *  - displayMode: Whether the expression should be typeset as inline math\n *                 (false, the default), meaning that the math starts in\n *                 \\textstyle and is placed in an inline-block); or as display\n *                 math (true), meaning that the math starts in \\displaystyle\n *                 and is placed in a block with vertical margin.\n */\nvar Settings = function Settings(options) {\n    __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, Settings);\n\n    // allow null options\n    options = options || {};\n    this.displayMode = __WEBPACK_IMPORTED_MODULE_1__utils__[\"a\" /* default */].deflt(options.displayMode, false);\n    this.throwOnError = __WEBPACK_IMPORTED_MODULE_1__utils__[\"a\" /* default */].deflt(options.throwOnError, true);\n    this.errorColor = __WEBPACK_IMPORTED_MODULE_1__utils__[\"a\" /* default */].deflt(options.errorColor, \"#cc0000\");\n    this.macros = options.macros || {};\n    this.colorIsTextColor = __WEBPACK_IMPORTED_MODULE_1__utils__[\"a\" /* default */].deflt(options.colorIsTextColor, false);\n    this.maxSize = Math.max(0, __WEBPACK_IMPORTED_MODULE_1__utils__[\"a\" /* default */].deflt(options.maxSize, Infinity));\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Settings);\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _from = __webpack_require__(79);\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n      arr2[i] = arr[i];\n    }\n\n    return arr2;\n  } else {\n    return (0, _from2.default)(arr);\n  }\n};\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $at  = __webpack_require__(81)(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\n__webpack_require__(48)(String, 'String', function(iterated){\n  this._t = String(iterated); // target\n  this._i = 0;                // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function(){\n  var O     = this._t\n    , index = this._i\n    , point;\n  if(index >= O.length)return {value: undefined, done: true};\n  point = $at(O, index);\n  this._i += point.length;\n  return {value: point, done: false};\n});\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil  = Math.ceil\n  , floor = Math.floor;\nmodule.exports = function(it){\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n  if(it == undefined)throw TypeError(\"Can't call method on  \" + it);\n  return it;\n};\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys       = __webpack_require__(87)\n  , enumBugKeys = __webpack_require__(53);\n\nmodule.exports = Object.keys || function keys(O){\n  return $keys(O, enumBugKeys);\n};\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(49)\n  , defined = __webpack_require__(38);\nmodule.exports = function(it){\n  return IObject(defined(it));\n};\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(52)('keys')\n  , uid    = __webpack_require__(32);\nmodule.exports = function(key){\n  return shared[key] || (shared[key] = uid(key));\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = scriptFromCodepoint;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = supportedCodepoint;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toConsumableArray__ = __webpack_require__(35);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toConsumableArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toConsumableArray__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_get_iterator__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_get_iterator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_get_iterator__);\n\n\n\n\n/**\n * Unicode block data for the families of scripts we support in \\text{}.\n * Scripts only need to appear here if they do not have font metrics.\n */\nvar scriptData = [{\n    // Latin characters beyond the Latin-1 characters we have metrics for.\n    // Needed for Czech, Hungarian and Turkish text, for example.\n    name: 'latin',\n    blocks: [[0x0100, 0x024f], // Latin Extended-A and Latin Extended-B\n    [0x0300, 0x036f]]\n}, {\n    // The Cyrillic script used by Russian and related languages.\n    // A Cyrillic subset used to be supported as explicitly defined\n    // symbols in symbols.js\n    name: 'cyrillic',\n    blocks: [[0x0400, 0x04ff]]\n}, {\n    // The Brahmic scripts of South and Southeast Asia\n    // Devanagari (0900–097F)\n    // Bengali (0980–09FF)\n    // Gurmukhi (0A00–0A7F)\n    // Gujarati (0A80–0AFF)\n    // Oriya (0B00–0B7F)\n    // Tamil (0B80–0BFF)\n    // Telugu (0C00–0C7F)\n    // Kannada (0C80–0CFF)\n    // Malayalam (0D00–0D7F)\n    // Sinhala (0D80–0DFF)\n    // Thai (0E00–0E7F)\n    // Lao (0E80–0EFF)\n    // Tibetan (0F00–0FFF)\n    // Myanmar (1000–109F)\n    name: 'brahmic',\n    blocks: [[0x0900, 0x109F]]\n}, {\n    name: 'georgian',\n    blocks: [[0x10A0, 0x10ff]]\n}, {\n    // Chinese and Japanese.\n    // The \"k\" in cjk is for Korean, but we've separated Korean out\n    name: \"cjk\",\n    blocks: [[0x3000, 0x30FF], // CJK symbols and punctuation, Hiragana, Katakana\n    [0x4E00, 0x9FAF], // CJK ideograms\n    [0xFF00, 0xFF60]]\n}, {\n    // Korean\n    name: 'hangul',\n    blocks: [[0xAC00, 0xD7AF]]\n}];\n\n/**\n * Given a codepoint, return the name of the script or script family\n * it is from, or null if it is not part of a known block\n */\n\n\n/*\n * This file defines the Unicode scripts and script families that we\n * support. To add new scripts or families, just add a new entry to the\n * scriptData array below. Adding scripts to the scriptData array allows\n * characters from that script to appear in \\text{} environments.\n */\n\n/**\n * Each script or script family has a name and an array of blocks.\n * Each block is an array of two numbers which specify the start and\n * end points (inclusive) of a block of Unicode codepoints.\n */\nfunction scriptFromCodepoint(codepoint) {\n    var _iteratorNormalCompletion = true;\n    var _didIteratorError = false;\n    var _iteratorError = undefined;\n\n    try {\n        for (var _iterator = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_get_iterator___default()(scriptData), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n            var script = _step.value;\n            var _iteratorNormalCompletion2 = true;\n            var _didIteratorError2 = false;\n            var _iteratorError2 = undefined;\n\n            try {\n                for (var _iterator2 = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_get_iterator___default()(script.blocks), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n                    var block = _step2.value;\n\n                    if (codepoint >= block[0] && codepoint <= block[1]) {\n                        return script.name;\n                    }\n                }\n            } catch (err) {\n                _didIteratorError2 = true;\n                _iteratorError2 = err;\n            } finally {\n                try {\n                    if (!_iteratorNormalCompletion2 && _iterator2.return) {\n                        _iterator2.return();\n                    }\n                } finally {\n                    if (_didIteratorError2) {\n                        throw _iteratorError2;\n                    }\n                }\n            }\n        }\n    } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n    } finally {\n        try {\n            if (!_iteratorNormalCompletion && _iterator.return) {\n                _iterator.return();\n            }\n        } finally {\n            if (_didIteratorError) {\n                throw _iteratorError;\n            }\n        }\n    }\n\n    return null;\n}\n\n/**\n * A flattened version of all the supported blocks in a single array.\n * This is an optimization to make supportedCodepoint() fast.\n */\nvar allBlocks = [];\nscriptData.forEach(function (s) {\n    return s.blocks.forEach(function (b) {\n        return allBlocks.push.apply(allBlocks, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toConsumableArray___default()(b));\n    });\n});\n\n/**\n * Given a codepoint, return true if it falls within one of the\n * scripts or script families defined above and false otherwise.\n *\n * Micro benchmarks shows that this is faster than\n * /[\\u3000-\\u30FF\\u4E00-\\u9FAF\\uFF00-\\uFF60\\uAC00-\\uD7AF\\u0900-\\u109F]/.test()\n * in Firefox, Chrome and Node.\n */\nfunction supportedCodepoint(codepoint) {\n    for (var i = 0; i < allBlocks.length; i += 2) {\n        if (codepoint >= allBlocks[i] && codepoint <= allBlocks[i + 1]) {\n            return true;\n        }\n    }\n    return false;\n}\n\n/***/ }),\n/* 43 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__fontMetrics__ = __webpack_require__(30);\n\n\n\n/**\n * This file contains information about the options that the Parser carries\n * around with it while parsing. Data is held in an `Options` object, and when\n * recursing, a new `Options` object can be created with the `.with*` and\n * `.reset` functions.\n */\n\n\n\n\nvar sizeStyleMap = [\n// Each element contains [textsize, scriptsize, scriptscriptsize].\n// The size mappings are taken from TeX with \\normalsize=10pt.\n[1, 1, 1], // size1: [5, 5, 5]              \\tiny\n[2, 1, 1], // size2: [6, 5, 5]\n[3, 1, 1], // size3: [7, 5, 5]              \\scriptsize\n[4, 2, 1], // size4: [8, 6, 5]              \\footnotesize\n[5, 2, 1], // size5: [9, 6, 5]              \\small\n[6, 3, 1], // size6: [10, 7, 5]             \\normalsize\n[7, 4, 2], // size7: [12, 8, 6]             \\large\n[8, 6, 3], // size8: [14.4, 10, 7]          \\Large\n[9, 7, 6], // size9: [17.28, 12, 10]        \\LARGE\n[10, 8, 7], // size10: [20.74, 14.4, 12]     \\huge\n[11, 10, 9]];\n\nvar sizeMultipliers = [\n// fontMetrics.js:getFontMetrics also uses size indexes, so if\n// you change size indexes, change that function.\n0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.2, 1.44, 1.728, 2.074, 2.488];\n\nvar sizeAtStyle = function sizeAtStyle(size, style) {\n    return style.size < 2 ? size : sizeStyleMap[size - 1][style.size - 1];\n};\n\n/**\n * This is the main options class. It contains the current style, size, color,\n * and font.\n *\n * Options objects should not be modified. To create a new Options with\n * different properties, call a `.having*` method.\n */\nvar Options = function () {\n    function Options(data) {\n        __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, Options);\n\n        this.style = data.style;\n        this.color = data.color;\n        this.size = data.size || Options.BASESIZE;\n        this.textSize = data.textSize || this.size;\n        this.phantom = !!data.phantom;\n        this.fontFamily = data.fontFamily;\n        this.fontWeight = data.fontWeight || '';\n        this.fontShape = data.fontShape || '';\n        this.sizeMultiplier = sizeMultipliers[this.size - 1];\n        this.maxSize = data.maxSize;\n        this._fontMetrics = undefined;\n    }\n\n    /**\n     * Returns a new options object with the same properties as \"this\".  Properties\n     * from \"extension\" will be copied to the new options object.\n     */\n\n\n    /**\n     * The base size index.\n     */\n\n\n    __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default()(Options, [{\n        key: \"extend\",\n        value: function extend(extension) {\n            var data = {\n                style: this.style,\n                size: this.size,\n                textSize: this.textSize,\n                color: this.color,\n                phantom: this.phantom,\n                fontFamily: this.fontFamily,\n                fontWeight: this.fontWeight,\n                fontShape: this.fontShape,\n                maxSize: this.maxSize\n            };\n\n            for (var key in extension) {\n                if (extension.hasOwnProperty(key)) {\n                    data[key] = extension[key];\n                }\n            }\n\n            return new Options(data);\n        }\n\n        /**\n         * Return an options object with the given style. If `this.style === style`,\n         * returns `this`.\n         */\n\n    }, {\n        key: \"havingStyle\",\n        value: function havingStyle(style) {\n            if (this.style === style) {\n                return this;\n            } else {\n                return this.extend({\n                    style: style,\n                    size: sizeAtStyle(this.textSize, style)\n                });\n            }\n        }\n\n        /**\n         * Return an options object with a cramped version of the current style. If\n         * the current style is cramped, returns `this`.\n         */\n\n    }, {\n        key: \"havingCrampedStyle\",\n        value: function havingCrampedStyle() {\n            return this.havingStyle(this.style.cramp());\n        }\n\n        /**\n         * Return an options object with the given size and in at least `\\textstyle`.\n         * Returns `this` if appropriate.\n         */\n\n    }, {\n        key: \"havingSize\",\n        value: function havingSize(size) {\n            if (this.size === size && this.textSize === size) {\n                return this;\n            } else {\n                return this.extend({\n                    style: this.style.text(),\n                    size: size,\n                    textSize: size,\n                    sizeMultiplier: sizeMultipliers[size - 1]\n                });\n            }\n        }\n\n        /**\n         * Like `this.havingSize(BASESIZE).havingStyle(style)`. If `style` is omitted,\n         * changes to at least `\\textstyle`.\n         */\n\n    }, {\n        key: \"havingBaseStyle\",\n        value: function havingBaseStyle(style) {\n            style = style || this.style.text();\n            var wantSize = sizeAtStyle(Options.BASESIZE, style);\n            if (this.size === wantSize && this.textSize === Options.BASESIZE && this.style === style) {\n                return this;\n            } else {\n                return this.extend({\n                    style: style,\n                    size: wantSize\n                });\n            }\n        }\n\n        /**\n         * Create a new options object with the given color.\n         */\n\n    }, {\n        key: \"withColor\",\n        value: function withColor(color) {\n            return this.extend({\n                color: color\n            });\n        }\n\n        /**\n         * Create a new options object with \"phantom\" set to true.\n         */\n\n    }, {\n        key: \"withPhantom\",\n        value: function withPhantom() {\n            return this.extend({\n                phantom: true\n            });\n        }\n\n        /**\n         * Create a new options objects with the give font.\n         */\n\n    }, {\n        key: \"withFontFamily\",\n        value: function withFontFamily(fontFamily) {\n            return this.extend({\n                fontFamily: fontFamily || this.fontFamily\n            });\n        }\n\n        /**\n         * Creates a new options object with the given font weight\n         */\n\n    }, {\n        key: \"withFontWeight\",\n        value: function withFontWeight(fontWeight) {\n            return this.extend({\n                fontWeight: fontWeight\n            });\n        }\n\n        /**\n         * Creates a new options object with the given font weight\n         */\n\n    }, {\n        key: \"withFontShape\",\n        value: function withFontShape(fontShape) {\n            return this.extend({\n                fontShape: fontShape\n            });\n        }\n\n        /**\n         * Return the CSS sizing classes required to switch from enclosing options\n         * `oldOptions` to `this`. Returns an array of classes.\n         */\n\n    }, {\n        key: \"sizingClasses\",\n        value: function sizingClasses(oldOptions) {\n            if (oldOptions.size !== this.size) {\n                return [\"sizing\", \"reset-size\" + oldOptions.size, \"size\" + this.size];\n            } else {\n                return [];\n            }\n        }\n\n        /**\n         * Return the CSS sizing classes required to switch to the base size. Like\n         * `this.havingSize(BASESIZE).sizingClasses(this)`.\n         */\n\n    }, {\n        key: \"baseSizingClasses\",\n        value: function baseSizingClasses() {\n            if (this.size !== Options.BASESIZE) {\n                return [\"sizing\", \"reset-size\" + this.size, \"size\" + Options.BASESIZE];\n            } else {\n                return [];\n            }\n        }\n\n        /**\n         * Return the font metrics for this size.\n         */\n\n    }, {\n        key: \"fontMetrics\",\n        value: function fontMetrics() {\n            if (!this._fontMetrics) {\n                this._fontMetrics = __WEBPACK_IMPORTED_MODULE_2__fontMetrics__[\"a\" /* default */].getFontMetrics(this.size);\n            }\n            return this._fontMetrics;\n        }\n\n        /**\n         * A map of color names to CSS colors.\n         * TODO(emily): Remove this when we have real macros\n         */\n\n    }, {\n        key: \"getColor\",\n\n\n        /**\n         * Gets the CSS color of the current options object, accounting for the\n         * `colorMap`.\n         */\n        value: function getColor() {\n            if (this.phantom) {\n                return \"transparent\";\n            } else if (this.color != null && Options.colorMap.hasOwnProperty(this.color)) {\n                return Options.colorMap[this.color];\n            } else {\n                return this.color;\n            }\n        }\n    }]);\n\n    return Options;\n}();\n\nOptions.BASESIZE = 6;\nOptions.colorMap = {\n    \"katex-blue\": \"#6495ed\",\n    \"katex-orange\": \"#ffa500\",\n    \"katex-pink\": \"#ff00af\",\n    \"katex-red\": \"#df0030\",\n    \"katex-green\": \"#28ae7b\",\n    \"katex-gray\": \"gray\",\n    \"katex-purple\": \"#9d38bd\",\n    \"katex-blueA\": \"#ccfaff\",\n    \"katex-blueB\": \"#80f6ff\",\n    \"katex-blueC\": \"#63d9ea\",\n    \"katex-blueD\": \"#11accd\",\n    \"katex-blueE\": \"#0c7f99\",\n    \"katex-tealA\": \"#94fff5\",\n    \"katex-tealB\": \"#26edd5\",\n    \"katex-tealC\": \"#01d1c1\",\n    \"katex-tealD\": \"#01a995\",\n    \"katex-tealE\": \"#208170\",\n    \"katex-greenA\": \"#b6ffb0\",\n    \"katex-greenB\": \"#8af281\",\n    \"katex-greenC\": \"#74cf70\",\n    \"katex-greenD\": \"#1fab54\",\n    \"katex-greenE\": \"#0d923f\",\n    \"katex-goldA\": \"#ffd0a9\",\n    \"katex-goldB\": \"#ffbb71\",\n    \"katex-goldC\": \"#ff9c39\",\n    \"katex-goldD\": \"#e07d10\",\n    \"katex-goldE\": \"#a75a05\",\n    \"katex-redA\": \"#fca9a9\",\n    \"katex-redB\": \"#ff8482\",\n    \"katex-redC\": \"#f9685d\",\n    \"katex-redD\": \"#e84d39\",\n    \"katex-redE\": \"#bc2612\",\n    \"katex-maroonA\": \"#ffbde0\",\n    \"katex-maroonB\": \"#ff92c6\",\n    \"katex-maroonC\": \"#ed5fa6\",\n    \"katex-maroonD\": \"#ca337c\",\n    \"katex-maroonE\": \"#9e034e\",\n    \"katex-purpleA\": \"#ddd7ff\",\n    \"katex-purpleB\": \"#c6b9fc\",\n    \"katex-purpleC\": \"#aa87ff\",\n    \"katex-purpleD\": \"#7854ab\",\n    \"katex-purpleE\": \"#543b78\",\n    \"katex-mintA\": \"#f5f9e8\",\n    \"katex-mintB\": \"#edf2df\",\n    \"katex-mintC\": \"#e0e5cc\",\n    \"katex-grayA\": \"#f6f7f7\",\n    \"katex-grayB\": \"#f0f1f2\",\n    \"katex-grayC\": \"#e3e5e6\",\n    \"katex-grayD\": \"#d6d8da\",\n    \"katex-grayE\": \"#babec2\",\n    \"katex-grayF\": \"#888d93\",\n    \"katex-grayG\": \"#626569\",\n    \"katex-grayH\": \"#3b3e40\",\n    \"katex-grayI\": \"#21242c\",\n    \"katex-kaBlue\": \"#314453\",\n    \"katex-kaGreen\": \"#71B307\"\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Options);\n\n/***/ }),\n/* 44 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ParseError__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Style__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__domTree__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__fontMetrics__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__symbols__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils__ = __webpack_require__(5);\n/**\n * This file deals with creating delimiters of various sizes. The TeXbook\n * discusses these routines on page 441-442, in the \"Another subroutine sets box\n * x to a specified variable delimiter\" paragraph.\n *\n * There are three main routines here. `makeSmallDelim` makes a delimiter in the\n * normal font, but in either text, script, or scriptscript style.\n * `makeLargeDelim` makes a delimiter in textstyle, but in one of the Size1,\n * Size2, Size3, or Size4 fonts. `makeStackedDelim` makes a delimiter out of\n * smaller pieces that are stacked on top of one another.\n *\n * The functions take a parameter `center`, which determines if the delimiter\n * should be centered around the axis.\n *\n * Then, there are three exposed functions. `sizedDelim` makes a delimiter in\n * one of the given sizes. This is used for things like `\\bigl`.\n * `customSizedDelim` makes a delimiter with a given total height+depth. It is\n * called in places like `\\sqrt`. `leftRightDelim` makes an appropriate\n * delimiter which surrounds an expression of a given height an depth. It is\n * used in `\\left` and `\\right`.\n */\n\n\n\n\n\n\n\n\n\n\n/**\n * Get the metrics for a given symbol and font, after transformation (i.e.\n * after following replacement from symbols.js)\n */\nvar getMetrics = function getMetrics(symbol, font, mode) {\n    if (__WEBPACK_IMPORTED_MODULE_5__symbols__[\"a\" /* default */].math[symbol] && __WEBPACK_IMPORTED_MODULE_5__symbols__[\"a\" /* default */].math[symbol].replace) {\n        return __WEBPACK_IMPORTED_MODULE_4__fontMetrics__[\"a\" /* default */].getCharacterMetrics(__WEBPACK_IMPORTED_MODULE_5__symbols__[\"a\" /* default */].math[symbol].replace, font, mode);\n    } else {\n        return __WEBPACK_IMPORTED_MODULE_4__fontMetrics__[\"a\" /* default */].getCharacterMetrics(symbol, font, mode);\n    }\n};\n\n/**\n * Puts a delimiter span in a given style, and adds appropriate height, depth,\n * and maxFontSizes.\n */\nvar styleWrap = function styleWrap(delim, toStyle, options, classes) {\n    var newOptions = options.havingBaseStyle(toStyle);\n\n    var span = __WEBPACK_IMPORTED_MODULE_3__buildCommon__[\"a\" /* default */].makeSpan((classes || []).concat(newOptions.sizingClasses(options)), [delim], options);\n\n    span.delimSizeMultiplier = newOptions.sizeMultiplier / options.sizeMultiplier;\n    span.height *= span.delimSizeMultiplier;\n    span.depth *= span.delimSizeMultiplier;\n    span.maxFontSize = newOptions.sizeMultiplier;\n\n    return span;\n};\n\nvar centerSpan = function centerSpan(span, options, style) {\n    var newOptions = options.havingBaseStyle(style);\n    var shift = (1 - options.sizeMultiplier / newOptions.sizeMultiplier) * options.fontMetrics().axisHeight;\n\n    span.classes.push(\"delimcenter\");\n    span.style.top = shift + \"em\";\n    span.height -= shift;\n    span.depth += shift;\n};\n\n/**\n * Makes a small delimiter. This is a delimiter that comes in the Main-Regular\n * font, but is restyled to either be in textstyle, scriptstyle, or\n * scriptscriptstyle.\n */\nvar makeSmallDelim = function makeSmallDelim(delim, style, center, options, mode, classes) {\n    var text = __WEBPACK_IMPORTED_MODULE_3__buildCommon__[\"a\" /* default */].makeSymbol(delim, \"Main-Regular\", mode, options);\n    var span = styleWrap(text, style, options, classes);\n    if (center) {\n        centerSpan(span, options, style);\n    }\n    return span;\n};\n\n/**\n * Builds a symbol in the given font size (note size is an integer)\n */\nvar mathrmSize = function mathrmSize(value, size, mode, options) {\n    return __WEBPACK_IMPORTED_MODULE_3__buildCommon__[\"a\" /* default */].makeSymbol(value, \"Size\" + size + \"-Regular\", mode, options);\n};\n\n/**\n * Makes a large delimiter. This is a delimiter that comes in the Size1, Size2,\n * Size3, or Size4 fonts. It is always rendered in textstyle.\n */\nvar makeLargeDelim = function makeLargeDelim(delim, size, center, options, mode, classes) {\n    var inner = mathrmSize(delim, size, mode, options);\n    var span = styleWrap(__WEBPACK_IMPORTED_MODULE_3__buildCommon__[\"a\" /* default */].makeSpan([\"delimsizing\", \"size\" + size], [inner], options), __WEBPACK_IMPORTED_MODULE_1__Style__[\"a\" /* default */].TEXT, options, classes);\n    if (center) {\n        centerSpan(span, options, __WEBPACK_IMPORTED_MODULE_1__Style__[\"a\" /* default */].TEXT);\n    }\n    return span;\n};\n\n/**\n * Make an inner span with the given offset and in the given font. This is used\n * in `makeStackedDelim` to make the stacking pieces for the delimiter.\n */\nvar makeInner = function makeInner(symbol, font, mode) {\n    var sizeClass = void 0;\n    // Apply the correct CSS class to choose the right font.\n    if (font === \"Size1-Regular\") {\n        sizeClass = \"delim-size1\";\n    } else if (font === \"Size4-Regular\") {\n        sizeClass = \"delim-size4\";\n    }\n\n    var inner = __WEBPACK_IMPORTED_MODULE_3__buildCommon__[\"a\" /* default */].makeSpan([\"delimsizinginner\", sizeClass], [__WEBPACK_IMPORTED_MODULE_3__buildCommon__[\"a\" /* default */].makeSpan([], [__WEBPACK_IMPORTED_MODULE_3__buildCommon__[\"a\" /* default */].makeSymbol(symbol, font, mode)])]);\n\n    // Since this will be passed into `makeVList` in the end, wrap the element\n    // in the appropriate tag that VList uses.\n    return { type: \"elem\", elem: inner };\n};\n\n/**\n * Make a stacked delimiter out of a given delimiter, with the total height at\n * least `heightTotal`. This routine is mentioned on page 442 of the TeXbook.\n */\nvar makeStackedDelim = function makeStackedDelim(delim, heightTotal, center, options, mode, classes) {\n    // There are four parts, the top, an optional middle, a repeated part, and a\n    // bottom.\n    var top = void 0;\n    var middle = void 0;\n    var repeat = void 0;\n    var bottom = void 0;\n    top = repeat = bottom = delim;\n    middle = null;\n    // Also keep track of what font the delimiters are in\n    var font = \"Size1-Regular\";\n\n    // We set the parts and font based on the symbol. Note that we use\n    // '\\u23d0' instead of '|' and '\\u2016' instead of '\\\\|' for the\n    // repeats of the arrows\n    if (delim === \"\\\\uparrow\") {\n        repeat = bottom = \"\\u23D0\";\n    } else if (delim === \"\\\\Uparrow\") {\n        repeat = bottom = \"\\u2016\";\n    } else if (delim === \"\\\\downarrow\") {\n        top = repeat = \"\\u23D0\";\n    } else if (delim === \"\\\\Downarrow\") {\n        top = repeat = \"\\u2016\";\n    } else if (delim === \"\\\\updownarrow\") {\n        top = \"\\\\uparrow\";\n        repeat = \"\\u23D0\";\n        bottom = \"\\\\downarrow\";\n    } else if (delim === \"\\\\Updownarrow\") {\n        top = \"\\\\Uparrow\";\n        repeat = \"\\u2016\";\n        bottom = \"\\\\Downarrow\";\n    } else if (delim === \"[\" || delim === \"\\\\lbrack\") {\n        top = \"\\u23A1\";\n        repeat = \"\\u23A2\";\n        bottom = \"\\u23A3\";\n        font = \"Size4-Regular\";\n    } else if (delim === \"]\" || delim === \"\\\\rbrack\") {\n        top = \"\\u23A4\";\n        repeat = \"\\u23A5\";\n        bottom = \"\\u23A6\";\n        font = \"Size4-Regular\";\n    } else if (delim === \"\\\\lfloor\") {\n        repeat = top = \"\\u23A2\";\n        bottom = \"\\u23A3\";\n        font = \"Size4-Regular\";\n    } else if (delim === \"\\\\lceil\") {\n        top = \"\\u23A1\";\n        repeat = bottom = \"\\u23A2\";\n        font = \"Size4-Regular\";\n    } else if (delim === \"\\\\rfloor\") {\n        repeat = top = \"\\u23A5\";\n        bottom = \"\\u23A6\";\n        font = \"Size4-Regular\";\n    } else if (delim === \"\\\\rceil\") {\n        top = \"\\u23A4\";\n        repeat = bottom = \"\\u23A5\";\n        font = \"Size4-Regular\";\n    } else if (delim === \"(\") {\n        top = \"\\u239B\";\n        repeat = \"\\u239C\";\n        bottom = \"\\u239D\";\n        font = \"Size4-Regular\";\n    } else if (delim === \")\") {\n        top = \"\\u239E\";\n        repeat = \"\\u239F\";\n        bottom = \"\\u23A0\";\n        font = \"Size4-Regular\";\n    } else if (delim === \"\\\\{\" || delim === \"\\\\lbrace\") {\n        top = \"\\u23A7\";\n        middle = \"\\u23A8\";\n        bottom = \"\\u23A9\";\n        repeat = \"\\u23AA\";\n        font = \"Size4-Regular\";\n    } else if (delim === \"\\\\}\" || delim === \"\\\\rbrace\") {\n        top = \"\\u23AB\";\n        middle = \"\\u23AC\";\n        bottom = \"\\u23AD\";\n        repeat = \"\\u23AA\";\n        font = \"Size4-Regular\";\n    } else if (delim === \"\\\\lgroup\") {\n        top = \"\\u23A7\";\n        bottom = \"\\u23A9\";\n        repeat = \"\\u23AA\";\n        font = \"Size4-Regular\";\n    } else if (delim === \"\\\\rgroup\") {\n        top = \"\\u23AB\";\n        bottom = \"\\u23AD\";\n        repeat = \"\\u23AA\";\n        font = \"Size4-Regular\";\n    } else if (delim === \"\\\\lmoustache\") {\n        top = \"\\u23A7\";\n        bottom = \"\\u23AD\";\n        repeat = \"\\u23AA\";\n        font = \"Size4-Regular\";\n    } else if (delim === \"\\\\rmoustache\") {\n        top = \"\\u23AB\";\n        bottom = \"\\u23A9\";\n        repeat = \"\\u23AA\";\n        font = \"Size4-Regular\";\n    }\n\n    // Get the metrics of the four sections\n    var topMetrics = getMetrics(top, font, mode);\n    var topHeightTotal = topMetrics.height + topMetrics.depth;\n    var repeatMetrics = getMetrics(repeat, font, mode);\n    var repeatHeightTotal = repeatMetrics.height + repeatMetrics.depth;\n    var bottomMetrics = getMetrics(bottom, font, mode);\n    var bottomHeightTotal = bottomMetrics.height + bottomMetrics.depth;\n    var middleHeightTotal = 0;\n    var middleFactor = 1;\n    if (middle !== null) {\n        var middleMetrics = getMetrics(middle, font, mode);\n        middleHeightTotal = middleMetrics.height + middleMetrics.depth;\n        middleFactor = 2; // repeat symmetrically above and below middle\n    }\n\n    // Calcuate the minimal height that the delimiter can have.\n    // It is at least the size of the top, bottom, and optional middle combined.\n    var minHeight = topHeightTotal + bottomHeightTotal + middleHeightTotal;\n\n    // Compute the number of copies of the repeat symbol we will need\n    var repeatCount = Math.ceil((heightTotal - minHeight) / (middleFactor * repeatHeightTotal));\n\n    // Compute the total height of the delimiter including all the symbols\n    var realHeightTotal = minHeight + repeatCount * middleFactor * repeatHeightTotal;\n\n    // The center of the delimiter is placed at the center of the axis. Note\n    // that in this context, \"center\" means that the delimiter should be\n    // centered around the axis in the current style, while normally it is\n    // centered around the axis in textstyle.\n    var axisHeight = options.fontMetrics().axisHeight;\n    if (center) {\n        axisHeight *= options.sizeMultiplier;\n    }\n    // Calculate the depth\n    var depth = realHeightTotal / 2 - axisHeight;\n\n    // Now, we start building the pieces that will go into the vlist\n\n    // Keep a list of the inner pieces\n    var inners = [];\n\n    // Add the bottom symbol\n    inners.push(makeInner(bottom, font, mode));\n\n    if (middle === null) {\n        // Add that many symbols\n        for (var i = 0; i < repeatCount; i++) {\n            inners.push(makeInner(repeat, font, mode));\n        }\n    } else {\n        // When there is a middle bit, we need the middle part and two repeated\n        // sections\n        for (var _i = 0; _i < repeatCount; _i++) {\n            inners.push(makeInner(repeat, font, mode));\n        }\n        inners.push(makeInner(middle, font, mode));\n        for (var _i2 = 0; _i2 < repeatCount; _i2++) {\n            inners.push(makeInner(repeat, font, mode));\n        }\n    }\n\n    // Add the top symbol\n    inners.push(makeInner(top, font, mode));\n\n    // Finally, build the vlist\n    var newOptions = options.havingBaseStyle(__WEBPACK_IMPORTED_MODULE_1__Style__[\"a\" /* default */].TEXT);\n    var inner = __WEBPACK_IMPORTED_MODULE_3__buildCommon__[\"a\" /* default */].makeVList({\n        positionType: \"bottom\",\n        positionData: depth,\n        children: inners\n    }, newOptions);\n\n    return styleWrap(__WEBPACK_IMPORTED_MODULE_3__buildCommon__[\"a\" /* default */].makeSpan([\"delimsizing\", \"mult\"], [inner], newOptions), __WEBPACK_IMPORTED_MODULE_1__Style__[\"a\" /* default */].TEXT, options, classes);\n};\n\n// All surds have 0.08em padding above the viniculum inside the SVG.\n// That keeps browser span height rounding error from pinching the line.\nvar vbPad = 80; // padding above the surd, measured inside the viewBox.\nvar emPad = 0.08; // padding, in ems, measured in the document.\n\nvar sqrtSvg = function sqrtSvg(sqrtName, height, viewBoxHeight, options) {\n    var alternate = void 0;\n    if (sqrtName === \"sqrtTall\") {\n        // sqrtTall is from glyph U23B7 in the font KaTeX_Size4-Regular\n        // One path edge has a variable length. It runs from the viniculumn\n        // to a point near (14 units) the bottom of the surd. The viniculum\n        // is 40 units thick. So the length of the line in question is:\n        var vertSegment = viewBoxHeight - 54 - vbPad;\n        alternate = \"M702 \" + vbPad + \"H400000v40H742v\" + vertSegment + \"l-4 4-4 4c-.667.7\\n-2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1h-12l-28-84c-16.667-52-96.667\\n-294.333-240-727l-212 -643 -85 170c-4-3.333-8.333-7.667-13 -13l-13-13l77-155\\n 77-156c66 199.333 139 419.667 219 661 l218 661zM702 \" + vbPad + \"H400000v40H742z\";\n    }\n    var pathNode = new __WEBPACK_IMPORTED_MODULE_2__domTree__[\"a\" /* default */].pathNode(sqrtName, alternate);\n\n    var svg = new __WEBPACK_IMPORTED_MODULE_2__domTree__[\"a\" /* default */].svgNode([pathNode], {\n        // Note: 1000:1 ratio of viewBox to document em width.\n        \"width\": \"400em\",\n        \"height\": height + \"em\",\n        \"viewBox\": \"0 0 400000 \" + viewBoxHeight,\n        \"preserveAspectRatio\": \"xMinYMin slice\"\n    });\n\n    return __WEBPACK_IMPORTED_MODULE_3__buildCommon__[\"a\" /* default */].makeSpan([\"hide-tail\"], [svg], options);\n};\n\n/**\n * Make a sqrt image of the given height,\n */\nvar makeSqrtImage = function makeSqrtImage(height, options) {\n    var delim = traverseSequence(\"\\\\surd\", height, stackLargeDelimiterSequence, options);\n\n    // Create a span containing an SVG image of a sqrt symbol.\n    var span = void 0;\n    var sizeMultiplier = options.sizeMultiplier; // default\n    var spanHeight = 0;\n    var texHeight = 0;\n    var viewBoxHeight = 0;\n\n    // We create viewBoxes with 80 units of \"padding\" above each surd.\n    // Then browser rounding error on the parent span height will not\n    // encroach on the ink of the viniculum. But that padding is not\n    // included in the TeX-like `height` used for calculation of\n    // vertical alignment. So texHeight = span.height < span.style.height.\n\n    if (delim.type === \"small\") {\n        // Get an SVG that is derived from glyph U+221A in font KaTeX-Main.\n        viewBoxHeight = 1000 + vbPad; // 1000 unit glyph height.\n        var newOptions = options.havingBaseStyle(delim.style);\n        sizeMultiplier = newOptions.sizeMultiplier / options.sizeMultiplier;\n        spanHeight = (1.0 + emPad) * sizeMultiplier;\n        texHeight = 1.00 * sizeMultiplier;\n        span = sqrtSvg(\"sqrtMain\", spanHeight, viewBoxHeight, options);\n        span.style.minWidth = \"0.853em\";\n        span.advanceWidth = 0.833 * sizeMultiplier; // from the font.\n    } else if (delim.type === \"large\") {\n        // These SVGs come from fonts: KaTeX_Size1, _Size2, etc.\n        viewBoxHeight = (1000 + vbPad) * sizeToMaxHeight[delim.size];\n        texHeight = sizeToMaxHeight[delim.size] / sizeMultiplier;\n        spanHeight = (sizeToMaxHeight[delim.size] + emPad) / sizeMultiplier;\n        span = sqrtSvg(\"sqrtSize\" + delim.size, spanHeight, viewBoxHeight, options);\n        span.style.minWidth = \"1.02em\";\n        span.advanceWidth = 1.0 / sizeMultiplier; // from the font\n    } else {\n        // Tall sqrt. In TeX, this would be stacked using multiple glyphs.\n        // We'll use a single SVG to accomplish the same thing.\n        spanHeight = height / sizeMultiplier + emPad;\n        texHeight = height / sizeMultiplier;\n        viewBoxHeight = Math.floor(1000 * height) + vbPad;\n        span = sqrtSvg(\"sqrtTall\", spanHeight, viewBoxHeight, options);\n        span.style.minWidth = \"0.742em\";\n        span.advanceWidth = 1.056 / sizeMultiplier;\n    }\n\n    span.height = texHeight;\n    span.style.height = spanHeight + \"em\";\n\n    return {\n        span: span,\n        // Calculate the actual line width.\n        // This actually should depend on the chosen font -- e.g. \\boldmath\n        // should use the thicker surd symbols from e.g. KaTeX_Main-Bold, and\n        // have thicker rules.\n        ruleWidth: options.fontMetrics().sqrtRuleThickness * sizeMultiplier\n    };\n};\n\n// There are three kinds of delimiters, delimiters that stack when they become\n// too large\nvar stackLargeDelimiters = [\"(\", \")\", \"[\", \"\\\\lbrack\", \"]\", \"\\\\rbrack\", \"\\\\{\", \"\\\\lbrace\", \"\\\\}\", \"\\\\rbrace\", \"\\\\lfloor\", \"\\\\rfloor\", \"\\\\lceil\", \"\\\\rceil\", \"\\\\surd\"];\n\n// delimiters that always stack\nvar stackAlwaysDelimiters = [\"\\\\uparrow\", \"\\\\downarrow\", \"\\\\updownarrow\", \"\\\\Uparrow\", \"\\\\Downarrow\", \"\\\\Updownarrow\", \"|\", \"\\\\|\", \"\\\\vert\", \"\\\\Vert\", \"\\\\lvert\", \"\\\\rvert\", \"\\\\lVert\", \"\\\\rVert\", \"\\\\lgroup\", \"\\\\rgroup\", \"\\\\lmoustache\", \"\\\\rmoustache\"];\n\n// and delimiters that never stack\nvar stackNeverDelimiters = [\"<\", \">\", \"\\\\langle\", \"\\\\rangle\", \"/\", \"\\\\backslash\", \"\\\\lt\", \"\\\\gt\"];\n\n// Metrics of the different sizes. Found by looking at TeX's output of\n// $\\bigl| // \\Bigl| \\biggl| \\Biggl| \\showlists$\n// Used to create stacked delimiters of appropriate sizes in makeSizedDelim.\nvar sizeToMaxHeight = [0, 1.2, 1.8, 2.4, 3.0];\n\n/**\n * Used to create a delimiter of a specific size, where `size` is 1, 2, 3, or 4.\n */\nvar makeSizedDelim = function makeSizedDelim(delim, size, options, mode, classes) {\n    // < and > turn into \\langle and \\rangle in delimiters\n    if (delim === \"<\" || delim === \"\\\\lt\" || delim === \"\\u27E8\") {\n        delim = \"\\\\langle\";\n    } else if (delim === \">\" || delim === \"\\\\gt\" || delim === \"\\u27E9\") {\n        delim = \"\\\\rangle\";\n    }\n\n    // Sized delimiters are never centered.\n    if (__WEBPACK_IMPORTED_MODULE_6__utils__[\"a\" /* default */].contains(stackLargeDelimiters, delim) || __WEBPACK_IMPORTED_MODULE_6__utils__[\"a\" /* default */].contains(stackNeverDelimiters, delim)) {\n        return makeLargeDelim(delim, size, false, options, mode, classes);\n    } else if (__WEBPACK_IMPORTED_MODULE_6__utils__[\"a\" /* default */].contains(stackAlwaysDelimiters, delim)) {\n        return makeStackedDelim(delim, sizeToMaxHeight[size], false, options, mode, classes);\n    } else {\n        throw new __WEBPACK_IMPORTED_MODULE_0__ParseError__[\"a\" /* default */](\"Illegal delimiter: '\" + delim + \"'\");\n    }\n};\n\n/**\n * There are three different sequences of delimiter sizes that the delimiters\n * follow depending on the kind of delimiter. This is used when creating custom\n * sized delimiters to decide whether to create a small, large, or stacked\n * delimiter.\n *\n * In real TeX, these sequences aren't explicitly defined, but are instead\n * defined inside the font metrics. Since there are only three sequences that\n * are possible for the delimiters that TeX defines, it is easier to just encode\n * them explicitly here.\n */\n\n// Delimiters that never stack try small delimiters and large delimiters only\nvar stackNeverDelimiterSequence = [{ type: \"small\", style: __WEBPACK_IMPORTED_MODULE_1__Style__[\"a\" /* default */].SCRIPTSCRIPT }, { type: \"small\", style: __WEBPACK_IMPORTED_MODULE_1__Style__[\"a\" /* default */].SCRIPT }, { type: \"small\", style: __WEBPACK_IMPORTED_MODULE_1__Style__[\"a\" /* default */].TEXT }, { type: \"large\", size: 1 }, { type: \"large\", size: 2 }, { type: \"large\", size: 3 }, { type: \"large\", size: 4 }];\n\n// Delimiters that always stack try the small delimiters first, then stack\nvar stackAlwaysDelimiterSequence = [{ type: \"small\", style: __WEBPACK_IMPORTED_MODULE_1__Style__[\"a\" /* default */].SCRIPTSCRIPT }, { type: \"small\", style: __WEBPACK_IMPORTED_MODULE_1__Style__[\"a\" /* default */].SCRIPT }, { type: \"small\", style: __WEBPACK_IMPORTED_MODULE_1__Style__[\"a\" /* default */].TEXT }, { type: \"stack\" }];\n\n// Delimiters that stack when large try the small and then large delimiters, and\n// stack afterwards\nvar stackLargeDelimiterSequence = [{ type: \"small\", style: __WEBPACK_IMPORTED_MODULE_1__Style__[\"a\" /* default */].SCRIPTSCRIPT }, { type: \"small\", style: __WEBPACK_IMPORTED_MODULE_1__Style__[\"a\" /* default */].SCRIPT }, { type: \"small\", style: __WEBPACK_IMPORTED_MODULE_1__Style__[\"a\" /* default */].TEXT }, { type: \"large\", size: 1 }, { type: \"large\", size: 2 }, { type: \"large\", size: 3 }, { type: \"large\", size: 4 }, { type: \"stack\" }];\n\n/**\n * Get the font used in a delimiter based on what kind of delimiter it is.\n */\nvar delimTypeToFont = function delimTypeToFont(type) {\n    if (type.type === \"small\") {\n        return \"Main-Regular\";\n    } else if (type.type === \"large\") {\n        return \"Size\" + type.size + \"-Regular\";\n    } else if (type.type === \"stack\") {\n        return \"Size4-Regular\";\n    }\n};\n\n/**\n * Traverse a sequence of types of delimiters to decide what kind of delimiter\n * should be used to create a delimiter of the given height+depth.\n */\nvar traverseSequence = function traverseSequence(delim, height, sequence, options) {\n    // Here, we choose the index we should start at in the sequences. In smaller\n    // sizes (which correspond to larger numbers in style.size) we start earlier\n    // in the sequence. Thus, scriptscript starts at index 3-3=0, script starts\n    // at index 3-2=1, text starts at 3-1=2, and display starts at min(2,3-0)=2\n    var start = Math.min(2, 3 - options.style.size);\n    for (var i = start; i < sequence.length; i++) {\n        if (sequence[i].type === \"stack\") {\n            // This is always the last delimiter, so we just break the loop now.\n            break;\n        }\n\n        var metrics = getMetrics(delim, delimTypeToFont(sequence[i]), \"math\");\n        var heightDepth = metrics.height + metrics.depth;\n\n        // Small delimiters are scaled down versions of the same font, so we\n        // account for the style change size.\n\n        if (sequence[i].type === \"small\") {\n            var newOptions = options.havingBaseStyle(sequence[i].style);\n            heightDepth *= newOptions.sizeMultiplier;\n        }\n\n        // Check if the delimiter at this size works for the given height.\n        if (heightDepth > height) {\n            return sequence[i];\n        }\n    }\n\n    // If we reached the end of the sequence, return the last sequence element.\n    return sequence[sequence.length - 1];\n};\n\n/**\n * Make a delimiter of a given height+depth, with optional centering. Here, we\n * traverse the sequences, and create a delimiter that the sequence tells us to.\n */\nvar makeCustomSizedDelim = function makeCustomSizedDelim(delim, height, center, options, mode, classes) {\n    if (delim === \"<\" || delim === \"\\\\lt\" || delim === \"\\u27E8\") {\n        delim = \"\\\\langle\";\n    } else if (delim === \">\" || delim === \"\\\\gt\" || delim === \"\\u27E9\") {\n        delim = \"\\\\rangle\";\n    }\n\n    // Decide what sequence to use\n    var sequence = void 0;\n    if (__WEBPACK_IMPORTED_MODULE_6__utils__[\"a\" /* default */].contains(stackNeverDelimiters, delim)) {\n        sequence = stackNeverDelimiterSequence;\n    } else if (__WEBPACK_IMPORTED_MODULE_6__utils__[\"a\" /* default */].contains(stackLargeDelimiters, delim)) {\n        sequence = stackLargeDelimiterSequence;\n    } else {\n        sequence = stackAlwaysDelimiterSequence;\n    }\n\n    // Look through the sequence\n    var delimType = traverseSequence(delim, height, sequence, options);\n\n    // Get the delimiter from font glyphs.\n    // Depending on the sequence element we decided on, call the\n    // appropriate function.\n    if (delimType.type === \"small\") {\n        return makeSmallDelim(delim, delimType.style, center, options, mode, classes);\n    } else if (delimType.type === \"large\") {\n        return makeLargeDelim(delim, delimType.size, center, options, mode, classes);\n    } else /* if (delimType.type === \"stack\") */{\n            return makeStackedDelim(delim, height, center, options, mode, classes);\n        }\n};\n\n/**\n * Make a delimiter for use with `\\left` and `\\right`, given a height and depth\n * of an expression that the delimiters surround.\n */\nvar makeLeftRightDelim = function makeLeftRightDelim(delim, height, depth, options, mode, classes) {\n    // We always center \\left/\\right delimiters, so the axis is always shifted\n    var axisHeight = options.fontMetrics().axisHeight * options.sizeMultiplier;\n\n    // Taken from TeX source, tex.web, function make_left_right\n    var delimiterFactor = 901;\n    var delimiterExtend = 5.0 / options.fontMetrics().ptPerEm;\n\n    var maxDistFromAxis = Math.max(height - axisHeight, depth + axisHeight);\n\n    var totalHeight = Math.max(\n    // In real TeX, calculations are done using integral values which are\n    // 65536 per pt, or 655360 per em. So, the division here truncates in\n    // TeX but doesn't here, producing different results. If we wanted to\n    // exactly match TeX's calculation, we could do\n    //   Math.floor(655360 * maxDistFromAxis / 500) *\n    //    delimiterFactor / 655360\n    // (To see the difference, compare\n    //    x^{x^{\\left(\\rule{0.1em}{0.68em}\\right)}}\n    // in TeX and KaTeX)\n    maxDistFromAxis / 500 * delimiterFactor, 2 * maxDistFromAxis - delimiterExtend);\n\n    // Finally, we defer to `makeCustomSizedDelim` with our calculated total\n    // height\n    return makeCustomSizedDelim(delim, totalHeight, true, options, mode, classes);\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n    sqrtImage: makeSqrtImage,\n    sizedDelim: makeSizedDelim,\n    customSizedDelim: makeCustomSizedDelim,\n    leftRightDelim: makeLeftRightDelim\n});\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(20)\n  , document = __webpack_require__(16).document\n  // in old IE typeof document.createElement is 'object'\n  , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n  return is ? document.createElement(it) : {};\n};\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(25)\n  , core    = __webpack_require__(8)\n  , fails   = __webpack_require__(24);\nmodule.exports = function(KEY, exec){\n  var fn  = (core.Object || {})[KEY] || Object[KEY]\n    , exp = {};\n  exp[KEY] = exec(fn);\n  $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(72);\nmodule.exports = function(fn, that, length){\n  aFunction(fn);\n  if(that === undefined)return fn;\n  switch(length){\n    case 1: return function(a){\n      return fn.call(that, a);\n    };\n    case 2: return function(a, b){\n      return fn.call(that, a, b);\n    };\n    case 3: return function(a, b, c){\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function(/* ...args */){\n    return fn.apply(that, arguments);\n  };\n};\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY        = __webpack_require__(82)\n  , $export        = __webpack_require__(25)\n  , redefine       = __webpack_require__(83)\n  , hide           = __webpack_require__(26)\n  , has            = __webpack_require__(21)\n  , Iterators      = __webpack_require__(17)\n  , $iterCreate    = __webpack_require__(84)\n  , setToStringTag = __webpack_require__(54)\n  , getPrototypeOf = __webpack_require__(91)\n  , ITERATOR       = __webpack_require__(11)('iterator')\n  , BUGGY          = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n  , FF_ITERATOR    = '@@iterator'\n  , KEYS           = 'keys'\n  , VALUES         = 'values';\n\nvar returnThis = function(){ return this; };\n\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n  $iterCreate(Constructor, NAME, next);\n  var getMethod = function(kind){\n    if(!BUGGY && kind in proto)return proto[kind];\n    switch(kind){\n      case KEYS: return function keys(){ return new Constructor(this, kind); };\n      case VALUES: return function values(){ return new Constructor(this, kind); };\n    } return function entries(){ return new Constructor(this, kind); };\n  };\n  var TAG        = NAME + ' Iterator'\n    , DEF_VALUES = DEFAULT == VALUES\n    , VALUES_BUG = false\n    , proto      = Base.prototype\n    , $native    = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n    , $default   = $native || getMethod(DEFAULT)\n    , $entries   = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined\n    , $anyNative = NAME == 'Array' ? proto.entries || $native : $native\n    , methods, key, IteratorPrototype;\n  // Fix native\n  if($anyNative){\n    IteratorPrototype = getPrototypeOf($anyNative.call(new Base));\n    if(IteratorPrototype !== Object.prototype){\n      // Set @@toStringTag to native iterators\n      setToStringTag(IteratorPrototype, TAG, true);\n      // fix for some old engines\n      if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n    }\n  }\n  // fix Array#{values, @@iterator}.name in V8 / FF\n  if(DEF_VALUES && $native && $native.name !== VALUES){\n    VALUES_BUG = true;\n    $default = function values(){ return $native.call(this); };\n  }\n  // Define iterator\n  if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n    hide(proto, ITERATOR, $default);\n  }\n  // Plug for library\n  Iterators[NAME] = $default;\n  Iterators[TAG]  = returnThis;\n  if(DEFAULT){\n    methods = {\n      values:  DEF_VALUES ? $default : getMethod(VALUES),\n      keys:    IS_SET     ? $default : getMethod(KEYS),\n      entries: $entries\n    };\n    if(FORCED)for(key in methods){\n      if(!(key in proto))redefine(proto, key, methods[key]);\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n  }\n  return methods;\n};\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(50);\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n  return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function(it){\n  return toString.call(it).slice(8, -1);\n};\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(37)\n  , min       = Math.min;\nmodule.exports = function(it){\n  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(16)\n  , SHARED = '__core-js_shared__'\n  , store  = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n  return store[key] || (store[key] = {});\n};\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(15).f\n  , has = __webpack_require__(21)\n  , TAG = __webpack_require__(11)('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n  if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof   = __webpack_require__(56)\n  , ITERATOR  = __webpack_require__(11)('iterator')\n  , Iterators = __webpack_require__(17);\nmodule.exports = __webpack_require__(8).getIteratorMethod = function(it){\n  if(it != undefined)return it[ITERATOR]\n    || it['@@iterator']\n    || Iterators[classof(it)];\n};\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(50)\n  , TAG = __webpack_require__(11)('toStringTag')\n  // ES3 wrong here\n  , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function(it, key){\n  try {\n    return it[key];\n  } catch(e){ /* empty */ }\n};\n\nmodule.exports = function(it){\n  var O, T, B;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n    // builtinTag case\n    : ARG ? cof(O)\n    // ES3 arguments fallback\n    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _isIterable2 = __webpack_require__(97);\n\nvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\nvar _getIterator2 = __webpack_require__(18);\n\nvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n  function sliceIterator(arr, i) {\n    var _arr = [];\n    var _n = true;\n    var _d = false;\n    var _e = undefined;\n\n    try {\n      for (var _i = (0, _getIterator3.default)(arr), _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\"]) _i[\"return\"]();\n      } finally {\n        if (_d) throw _e;\n      }\n    }\n\n    return _arr;\n  }\n\n  return function (arr, i) {\n    if (Array.isArray(arr)) {\n      return arr;\n    } else if ((0, _isIterable3.default)(Object(arr))) {\n      return sliceIterator(arr, i);\n    } else {\n      throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n    }\n  };\n}();\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(99);\nvar global        = __webpack_require__(16)\n  , hide          = __webpack_require__(26)\n  , Iterators     = __webpack_require__(17)\n  , TO_STRING_TAG = __webpack_require__(11)('toStringTag');\n\nfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n  var NAME       = collections[i]\n    , Collection = global[NAME]\n    , proto      = Collection && Collection.prototype;\n  if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n  Iterators[NAME] = Iterators.Array;\n}\n\n/***/ }),\n/* 59 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n    \"AMS-Regular\": {\n        \"65\": [0, 0.68889, 0, 0, 0.72222],\n        \"66\": [0, 0.68889, 0, 0, 0.66667],\n        \"67\": [0, 0.68889, 0, 0, 0.72222],\n        \"68\": [0, 0.68889, 0, 0, 0.72222],\n        \"69\": [0, 0.68889, 0, 0, 0.66667],\n        \"70\": [0, 0.68889, 0, 0, 0.61111],\n        \"71\": [0, 0.68889, 0, 0, 0.77778],\n        \"72\": [0, 0.68889, 0, 0, 0.77778],\n        \"73\": [0, 0.68889, 0, 0, 0.38889],\n        \"74\": [0.16667, 0.68889, 0, 0, 0.5],\n        \"75\": [0, 0.68889, 0, 0, 0.77778],\n        \"76\": [0, 0.68889, 0, 0, 0.66667],\n        \"77\": [0, 0.68889, 0, 0, 0.94445],\n        \"78\": [0, 0.68889, 0, 0, 0.72222],\n        \"79\": [0.16667, 0.68889, 0, 0, 0.77778],\n        \"80\": [0, 0.68889, 0, 0, 0.61111],\n        \"81\": [0.16667, 0.68889, 0, 0, 0.77778],\n        \"82\": [0, 0.68889, 0, 0, 0.72222],\n        \"83\": [0, 0.68889, 0, 0, 0.55556],\n        \"84\": [0, 0.68889, 0, 0, 0.66667],\n        \"85\": [0, 0.68889, 0, 0, 0.72222],\n        \"86\": [0, 0.68889, 0, 0, 0.72222],\n        \"87\": [0, 0.68889, 0, 0, 1.0],\n        \"88\": [0, 0.68889, 0, 0, 0.72222],\n        \"89\": [0, 0.68889, 0, 0, 0.72222],\n        \"90\": [0, 0.68889, 0, 0, 0.66667],\n        \"107\": [0, 0.68889, 0, 0, 0.55556],\n        \"165\": [0, 0.675, 0.025, 0, 0.75],\n        \"174\": [0.15559, 0.69224, 0, 0, 0.94666],\n        \"240\": [0, 0.68889, 0, 0, 0.55556],\n        \"295\": [0, 0.68889, 0, 0, 0.54028],\n        \"710\": [0, 0.825, 0, 0, 2.33334],\n        \"732\": [0, 0.9, 0, 0, 2.33334],\n        \"770\": [0, 0.825, 0, 0, 2.33334],\n        \"771\": [0, 0.9, 0, 0, 2.33334],\n        \"989\": [0.08167, 0.58167, 0, 0, 0.77778],\n        \"1008\": [0, 0.43056, 0.04028, 0, 0.66667],\n        \"8245\": [0, 0.54986, 0, 0, 0.275],\n        \"8463\": [0, 0.68889, 0, 0, 0.54028],\n        \"8487\": [0, 0.68889, 0, 0, 0.72222],\n        \"8498\": [0, 0.68889, 0, 0, 0.55556],\n        \"8502\": [0, 0.68889, 0, 0, 0.66667],\n        \"8503\": [0, 0.68889, 0, 0, 0.44445],\n        \"8504\": [0, 0.68889, 0, 0, 0.66667],\n        \"8513\": [0, 0.68889, 0, 0, 0.63889],\n        \"8592\": [-0.03598, 0.46402, 0, 0, 0.5],\n        \"8594\": [-0.03598, 0.46402, 0, 0, 0.5],\n        \"8602\": [-0.13313, 0.36687, 0, 0, 1.0],\n        \"8603\": [-0.13313, 0.36687, 0, 0, 1.0],\n        \"8606\": [0.01354, 0.52239, 0, 0, 1.0],\n        \"8608\": [0.01354, 0.52239, 0, 0, 1.0],\n        \"8610\": [0.01354, 0.52239, 0, 0, 1.11111],\n        \"8611\": [0.01354, 0.52239, 0, 0, 1.11111],\n        \"8619\": [0, 0.54986, 0, 0, 1.0],\n        \"8620\": [0, 0.54986, 0, 0, 1.0],\n        \"8621\": [-0.13313, 0.37788, 0, 0, 1.38889],\n        \"8622\": [-0.13313, 0.36687, 0, 0, 1.0],\n        \"8624\": [0, 0.69224, 0, 0, 0.5],\n        \"8625\": [0, 0.69224, 0, 0, 0.5],\n        \"8630\": [0, 0.43056, 0, 0, 1.0],\n        \"8631\": [0, 0.43056, 0, 0, 1.0],\n        \"8634\": [0.08198, 0.58198, 0, 0, 0.77778],\n        \"8635\": [0.08198, 0.58198, 0, 0, 0.77778],\n        \"8638\": [0.19444, 0.69224, 0, 0, 0.41667],\n        \"8639\": [0.19444, 0.69224, 0, 0, 0.41667],\n        \"8642\": [0.19444, 0.69224, 0, 0, 0.41667],\n        \"8643\": [0.19444, 0.69224, 0, 0, 0.41667],\n        \"8644\": [0.1808, 0.675, 0, 0, 1.0],\n        \"8646\": [0.1808, 0.675, 0, 0, 1.0],\n        \"8647\": [0.1808, 0.675, 0, 0, 1.0],\n        \"8648\": [0.19444, 0.69224, 0, 0, 0.83334],\n        \"8649\": [0.1808, 0.675, 0, 0, 1.0],\n        \"8650\": [0.19444, 0.69224, 0, 0, 0.83334],\n        \"8651\": [0.01354, 0.52239, 0, 0, 1.0],\n        \"8652\": [0.01354, 0.52239, 0, 0, 1.0],\n        \"8653\": [-0.13313, 0.36687, 0, 0, 1.0],\n        \"8654\": [-0.13313, 0.36687, 0, 0, 1.0],\n        \"8655\": [-0.13313, 0.36687, 0, 0, 1.0],\n        \"8666\": [0.13667, 0.63667, 0, 0, 1.0],\n        \"8667\": [0.13667, 0.63667, 0, 0, 1.0],\n        \"8669\": [-0.13313, 0.37788, 0, 0, 1.0],\n        \"8672\": [-0.064, 0.437, 0, 0, 1187],\n        \"8674\": [-0.064, 0.437, 0, 0, 1167],\n        \"8705\": [0, 0.825, 0, 0, 0.5],\n        \"8708\": [0, 0.68889, 0, 0, 0.55556],\n        \"8709\": [0.08167, 0.58167, 0, 0, 0.77778],\n        \"8717\": [0, 0.43056, 0, 0, 0.42917],\n        \"8722\": [-0.03598, 0.46402, 0, 0, 0.5],\n        \"8724\": [0.08198, 0.69224, 0, 0, 0.77778],\n        \"8726\": [0.08167, 0.58167, 0, 0, 0.77778],\n        \"8733\": [0, 0.69224, 0, 0, 0.77778],\n        \"8736\": [0, 0.69224, 0, 0, 0.72222],\n        \"8737\": [0, 0.69224, 0, 0, 0.72222],\n        \"8738\": [0.03517, 0.52239, 0, 0, 0.72222],\n        \"8739\": [0.08167, 0.58167, 0, 0, 0.22222],\n        \"8740\": [0.25142, 0.74111, 0, 0, 0.27778],\n        \"8741\": [0.08167, 0.58167, 0, 0, 0.38889],\n        \"8742\": [0.25142, 0.74111, 0, 0, 0.5],\n        \"8756\": [0, 0.69224, 0, 0, 0.66667],\n        \"8757\": [0, 0.69224, 0, 0, 0.66667],\n        \"8764\": [-0.13313, 0.36687, 0, 0, 0.77778],\n        \"8765\": [-0.13313, 0.37788, 0, 0, 0.77778],\n        \"8769\": [-0.13313, 0.36687, 0, 0, 0.77778],\n        \"8770\": [-0.03625, 0.46375, 0, 0, 0.77778],\n        \"8774\": [0.30274, 0.79383, 0, 0, 0.77778],\n        \"8776\": [-0.01688, 0.48312, 0, 0, 0.77778],\n        \"8778\": [0.08167, 0.58167, 0, 0, 0.77778],\n        \"8782\": [0.06062, 0.54986, 0, 0, 0.77778],\n        \"8783\": [0.06062, 0.54986, 0, 0, 0.77778],\n        \"8785\": [0.08198, 0.58198, 0, 0, 0.77778],\n        \"8786\": [0.08198, 0.58198, 0, 0, 0.77778],\n        \"8787\": [0.08198, 0.58198, 0, 0, 0.77778],\n        \"8790\": [0, 0.69224, 0, 0, 0.77778],\n        \"8791\": [0.22958, 0.72958, 0, 0, 0.77778],\n        \"8796\": [0.08198, 0.91667, 0, 0, 0.77778],\n        \"8806\": [0.25583, 0.75583, 0, 0, 0.77778],\n        \"8807\": [0.25583, 0.75583, 0, 0, 0.77778],\n        \"8808\": [0.25142, 0.75726, 0, 0, 0.77778],\n        \"8809\": [0.25142, 0.75726, 0, 0, 0.77778],\n        \"8812\": [0.25583, 0.75583, 0, 0, 0.5],\n        \"8814\": [0.20576, 0.70576, 0, 0, 0.77778],\n        \"8815\": [0.20576, 0.70576, 0, 0, 0.77778],\n        \"8816\": [0.30274, 0.79383, 0, 0, 0.77778],\n        \"8817\": [0.30274, 0.79383, 0, 0, 0.77778],\n        \"8818\": [0.22958, 0.72958, 0, 0, 0.77778],\n        \"8819\": [0.22958, 0.72958, 0, 0, 0.77778],\n        \"8822\": [0.1808, 0.675, 0, 0, 0.77778],\n        \"8823\": [0.1808, 0.675, 0, 0, 0.77778],\n        \"8828\": [0.13667, 0.63667, 0, 0, 0.77778],\n        \"8829\": [0.13667, 0.63667, 0, 0, 0.77778],\n        \"8830\": [0.22958, 0.72958, 0, 0, 0.77778],\n        \"8831\": [0.22958, 0.72958, 0, 0, 0.77778],\n        \"8832\": [0.20576, 0.70576, 0, 0, 0.77778],\n        \"8833\": [0.20576, 0.70576, 0, 0, 0.77778],\n        \"8840\": [0.30274, 0.79383, 0, 0, 0.77778],\n        \"8841\": [0.30274, 0.79383, 0, 0, 0.77778],\n        \"8842\": [0.13597, 0.63597, 0, 0, 0.77778],\n        \"8843\": [0.13597, 0.63597, 0, 0, 0.77778],\n        \"8847\": [0.03517, 0.54986, 0, 0, 0.77778],\n        \"8848\": [0.03517, 0.54986, 0, 0, 0.77778],\n        \"8858\": [0.08198, 0.58198, 0, 0, 0.77778],\n        \"8859\": [0.08198, 0.58198, 0, 0, 0.77778],\n        \"8861\": [0.08198, 0.58198, 0, 0, 0.77778],\n        \"8862\": [0, 0.675, 0, 0, 0.77778],\n        \"8863\": [0, 0.675, 0, 0, 0.77778],\n        \"8864\": [0, 0.675, 0, 0, 0.77778],\n        \"8865\": [0, 0.675, 0, 0, 0.77778],\n        \"8872\": [0, 0.69224, 0, 0, 0.61111],\n        \"8873\": [0, 0.69224, 0, 0, 0.72222],\n        \"8874\": [0, 0.69224, 0, 0, 0.88889],\n        \"8876\": [0, 0.68889, 0, 0, 0.61111],\n        \"8877\": [0, 0.68889, 0, 0, 0.61111],\n        \"8878\": [0, 0.68889, 0, 0, 0.72222],\n        \"8879\": [0, 0.68889, 0, 0, 0.72222],\n        \"8882\": [0.03517, 0.54986, 0, 0, 0.77778],\n        \"8883\": [0.03517, 0.54986, 0, 0, 0.77778],\n        \"8884\": [0.13667, 0.63667, 0, 0, 0.77778],\n        \"8885\": [0.13667, 0.63667, 0, 0, 0.77778],\n        \"8888\": [0, 0.54986, 0, 0, 1.11111],\n        \"8890\": [0.19444, 0.43056, 0, 0, 0.55556],\n        \"8891\": [0.19444, 0.69224, 0, 0, 0.61111],\n        \"8892\": [0.19444, 0.69224, 0, 0, 0.61111],\n        \"8901\": [0, 0.54986, 0, 0, 0.27778],\n        \"8903\": [0.08167, 0.58167, 0, 0, 0.77778],\n        \"8905\": [0.08167, 0.58167, 0, 0, 0.77778],\n        \"8906\": [0.08167, 0.58167, 0, 0, 0.77778],\n        \"8907\": [0, 0.69224, 0, 0, 0.77778],\n        \"8908\": [0, 0.69224, 0, 0, 0.77778],\n        \"8909\": [-0.03598, 0.46402, 0, 0, 0.77778],\n        \"8910\": [0, 0.54986, 0, 0, 0.76042],\n        \"8911\": [0, 0.54986, 0, 0, 0.76042],\n        \"8912\": [0.03517, 0.54986, 0, 0, 0.77778],\n        \"8913\": [0.03517, 0.54986, 0, 0, 0.77778],\n        \"8914\": [0, 0.54986, 0, 0, 0.66667],\n        \"8915\": [0, 0.54986, 0, 0, 0.66667],\n        \"8916\": [0, 0.69224, 0, 0, 0.66667],\n        \"8918\": [0.0391, 0.5391, 0, 0, 0.77778],\n        \"8919\": [0.0391, 0.5391, 0, 0, 0.77778],\n        \"8920\": [0.03517, 0.54986, 0, 0, 1.33334],\n        \"8921\": [0.03517, 0.54986, 0, 0, 1.33334],\n        \"8922\": [0.38569, 0.88569, 0, 0, 0.77778],\n        \"8923\": [0.38569, 0.88569, 0, 0, 0.77778],\n        \"8926\": [0.13667, 0.63667, 0, 0, 0.77778],\n        \"8927\": [0.13667, 0.63667, 0, 0, 0.77778],\n        \"8928\": [0.30274, 0.79383, 0, 0, 0.77778],\n        \"8929\": [0.30274, 0.79383, 0, 0, 0.77778],\n        \"8934\": [0.23222, 0.74111, 0, 0, 0.77778],\n        \"8935\": [0.23222, 0.74111, 0, 0, 0.77778],\n        \"8936\": [0.23222, 0.74111, 0, 0, 0.77778],\n        \"8937\": [0.23222, 0.74111, 0, 0, 0.77778],\n        \"8938\": [0.20576, 0.70576, 0, 0, 0.77778],\n        \"8939\": [0.20576, 0.70576, 0, 0, 0.77778],\n        \"8940\": [0.30274, 0.79383, 0, 0, 0.77778],\n        \"8941\": [0.30274, 0.79383, 0, 0, 0.77778],\n        \"8994\": [0.19444, 0.69224, 0, 0, 0.77778],\n        \"8995\": [0.19444, 0.69224, 0, 0, 0.77778],\n        \"9416\": [0.15559, 0.69224, 0, 0, 0.90222],\n        \"9484\": [0, 0.69224, 0, 0, 0.5],\n        \"9488\": [0, 0.69224, 0, 0, 0.5],\n        \"9492\": [0, 0.37788, 0, 0, 0.5],\n        \"9496\": [0, 0.37788, 0, 0, 0.5],\n        \"9585\": [0.19444, 0.68889, 0, 0, 0.88889],\n        \"9586\": [0.19444, 0.74111, 0, 0, 0.88889],\n        \"9632\": [0, 0.675, 0, 0, 0.77778],\n        \"9633\": [0, 0.675, 0, 0, 0.77778],\n        \"9650\": [0, 0.54986, 0, 0, 0.72222],\n        \"9651\": [0, 0.54986, 0, 0, 0.72222],\n        \"9654\": [0.03517, 0.54986, 0, 0, 0.77778],\n        \"9660\": [0, 0.54986, 0, 0, 0.72222],\n        \"9661\": [0, 0.54986, 0, 0, 0.72222],\n        \"9664\": [0.03517, 0.54986, 0, 0, 0.77778],\n        \"9674\": [0.11111, 0.69224, 0, 0, 0.66667],\n        \"9733\": [0.19444, 0.69224, 0, 0, 0.94445],\n        \"10003\": [0, 0.69224, 0, 0, 0.83334],\n        \"10016\": [0, 0.69224, 0, 0, 0.83334],\n        \"10731\": [0.11111, 0.69224, 0, 0, 0.66667],\n        \"10846\": [0.19444, 0.75583, 0, 0, 0.61111],\n        \"10877\": [0.13667, 0.63667, 0, 0, 0.77778],\n        \"10878\": [0.13667, 0.63667, 0, 0, 0.77778],\n        \"10885\": [0.25583, 0.75583, 0, 0, 0.77778],\n        \"10886\": [0.25583, 0.75583, 0, 0, 0.77778],\n        \"10887\": [0.13597, 0.63597, 0, 0, 0.77778],\n        \"10888\": [0.13597, 0.63597, 0, 0, 0.77778],\n        \"10889\": [0.26167, 0.75726, 0, 0, 0.77778],\n        \"10890\": [0.26167, 0.75726, 0, 0, 0.77778],\n        \"10891\": [0.48256, 0.98256, 0, 0, 0.77778],\n        \"10892\": [0.48256, 0.98256, 0, 0, 0.77778],\n        \"10901\": [0.13667, 0.63667, 0, 0, 0.77778],\n        \"10902\": [0.13667, 0.63667, 0, 0, 0.77778],\n        \"10933\": [0.25142, 0.75726, 0, 0, 0.77778],\n        \"10934\": [0.25142, 0.75726, 0, 0, 0.77778],\n        \"10935\": [0.26167, 0.75726, 0, 0, 0.77778],\n        \"10936\": [0.26167, 0.75726, 0, 0, 0.77778],\n        \"10937\": [0.26167, 0.75726, 0, 0, 0.77778],\n        \"10938\": [0.26167, 0.75726, 0, 0, 0.77778],\n        \"10949\": [0.25583, 0.75583, 0, 0, 0.77778],\n        \"10950\": [0.25583, 0.75583, 0, 0, 0.77778],\n        \"10955\": [0.28481, 0.79383, 0, 0, 0.77778],\n        \"10956\": [0.28481, 0.79383, 0, 0, 0.77778],\n        \"57350\": [0.08167, 0.58167, 0, 0, 0.22222],\n        \"57351\": [0.08167, 0.58167, 0, 0, 0.38889],\n        \"57352\": [0.08167, 0.58167, 0, 0, 0.77778],\n        \"57353\": [0, 0.43056, 0.04028, 0, 0.66667],\n        \"57356\": [0.25142, 0.75726, 0, 0, 0.77778],\n        \"57357\": [0.25142, 0.75726, 0, 0, 0.77778],\n        \"57358\": [0.41951, 0.91951, 0, 0, 0.77778],\n        \"57359\": [0.30274, 0.79383, 0, 0, 0.77778],\n        \"57360\": [0.30274, 0.79383, 0, 0, 0.77778],\n        \"57361\": [0.41951, 0.91951, 0, 0, 0.77778],\n        \"57366\": [0.25142, 0.75726, 0, 0, 0.77778],\n        \"57367\": [0.25142, 0.75726, 0, 0, 0.77778],\n        \"57368\": [0.25142, 0.75726, 0, 0, 0.77778],\n        \"57369\": [0.25142, 0.75726, 0, 0, 0.77778],\n        \"57370\": [0.13597, 0.63597, 0, 0, 0.77778],\n        \"57371\": [0.13597, 0.63597, 0, 0, 0.77778]\n    },\n    \"Caligraphic-Regular\": {\n        \"48\": [0, 0.43056, 0, 0, 0.5],\n        \"49\": [0, 0.43056, 0, 0, 0.5],\n        \"50\": [0, 0.43056, 0, 0, 0.5],\n        \"51\": [0.19444, 0.43056, 0, 0, 0.5],\n        \"52\": [0.19444, 0.43056, 0, 0, 0.5],\n        \"53\": [0.19444, 0.43056, 0, 0, 0.5],\n        \"54\": [0, 0.64444, 0, 0, 0.5],\n        \"55\": [0.19444, 0.43056, 0, 0, 0.5],\n        \"56\": [0, 0.64444, 0, 0, 0.5],\n        \"57\": [0.19444, 0.43056, 0, 0, 0.5],\n        \"65\": [0, 0.68333, 0, 0.19445, 0.79847],\n        \"66\": [0, 0.68333, 0.03041, 0.13889, 0.65681],\n        \"67\": [0, 0.68333, 0.05834, 0.13889, 0.52653],\n        \"68\": [0, 0.68333, 0.02778, 0.08334, 0.77139],\n        \"69\": [0, 0.68333, 0.08944, 0.11111, 0.52778],\n        \"70\": [0, 0.68333, 0.09931, 0.11111, 0.71875],\n        \"71\": [0.09722, 0.68333, 0.0593, 0.11111, 0.59487],\n        \"72\": [0, 0.68333, 0.00965, 0.11111, 0.84452],\n        \"73\": [0, 0.68333, 0.07382, 0, 0.54452],\n        \"74\": [0.09722, 0.68333, 0.18472, 0.16667, 0.67778],\n        \"75\": [0, 0.68333, 0.01445, 0.05556, 0.76195],\n        \"76\": [0, 0.68333, 0, 0.13889, 0.68972],\n        \"77\": [0, 0.68333, 0, 0.13889, 1.2009],\n        \"78\": [0, 0.68333, 0.14736, 0.08334, 0.82049],\n        \"79\": [0, 0.68333, 0.02778, 0.11111, 0.79611],\n        \"80\": [0, 0.68333, 0.08222, 0.08334, 0.69556],\n        \"81\": [0.09722, 0.68333, 0, 0.11111, 0.81667],\n        \"82\": [0, 0.68333, 0, 0.08334, 0.8475],\n        \"83\": [0, 0.68333, 0.075, 0.13889, 0.60556],\n        \"84\": [0, 0.68333, 0.25417, 0, 0.54464],\n        \"85\": [0, 0.68333, 0.09931, 0.08334, 0.62583],\n        \"86\": [0, 0.68333, 0.08222, 0, 0.61278],\n        \"87\": [0, 0.68333, 0.08222, 0.08334, 0.98778],\n        \"88\": [0, 0.68333, 0.14643, 0.13889, 0.7133],\n        \"89\": [0.09722, 0.68333, 0.08222, 0.08334, 0.66834],\n        \"90\": [0, 0.68333, 0.07944, 0.13889, 0.72473]\n    },\n    \"Fraktur-Regular\": {\n        \"33\": [0, 0.69141, 0, 0, 0.29574],\n        \"34\": [0, 0.69141, 0, 0, 0.21471],\n        \"38\": [0, 0.69141, 0, 0, 0.73786],\n        \"39\": [0, 0.69141, 0, 0, 0.21201],\n        \"40\": [0.24982, 0.74947, 0, 0, 0.38865],\n        \"41\": [0.24982, 0.74947, 0, 0, 0.38865],\n        \"42\": [0, 0.62119, 0, 0, 0.27764],\n        \"43\": [0.08319, 0.58283, 0, 0, 0.75623],\n        \"44\": [0, 0.10803, 0, 0, 0.27764],\n        \"45\": [0.08319, 0.58283, 0, 0, 0.75623],\n        \"46\": [0, 0.10803, 0, 0, 0.27764],\n        \"47\": [0.24982, 0.74947, 0, 0, 0.50181],\n        \"48\": [0, 0.47534, 0, 0, 0.50181],\n        \"49\": [0, 0.47534, 0, 0, 0.50181],\n        \"50\": [0, 0.47534, 0, 0, 0.50181],\n        \"51\": [0.18906, 0.47534, 0, 0, 0.50181],\n        \"52\": [0.18906, 0.47534, 0, 0, 0.50181],\n        \"53\": [0.18906, 0.47534, 0, 0, 0.50181],\n        \"54\": [0, 0.69141, 0, 0, 0.50181],\n        \"55\": [0.18906, 0.47534, 0, 0, 0.50181],\n        \"56\": [0, 0.69141, 0, 0, 0.50181],\n        \"57\": [0.18906, 0.47534, 0, 0, 0.50181],\n        \"58\": [0, 0.47534, 0, 0, 0.21606],\n        \"59\": [0.12604, 0.47534, 0, 0, 0.21606],\n        \"61\": [-0.13099, 0.36866, 0, 0, 0.75623],\n        \"63\": [0, 0.69141, 0, 0, 0.36245],\n        \"65\": [0, 0.69141, 0, 0, 0.7176],\n        \"66\": [0, 0.69141, 0, 0, 0.88397],\n        \"67\": [0, 0.69141, 0, 0, 0.61254],\n        \"68\": [0, 0.69141, 0, 0, 0.83158],\n        \"69\": [0, 0.69141, 0, 0, 0.66278],\n        \"70\": [0.12604, 0.69141, 0, 0, 0.61119],\n        \"71\": [0, 0.69141, 0, 0, 0.78539],\n        \"72\": [0.06302, 0.69141, 0, 0, 0.7203],\n        \"73\": [0, 0.69141, 0, 0, 0.55448],\n        \"74\": [0.12604, 0.69141, 0, 0, 0.55231],\n        \"75\": [0, 0.69141, 0, 0, 0.66845],\n        \"76\": [0, 0.69141, 0, 0, 0.66602],\n        \"77\": [0, 0.69141, 0, 0, 1.04953],\n        \"78\": [0, 0.69141, 0, 0, 0.83212],\n        \"79\": [0, 0.69141, 0, 0, 0.82699],\n        \"80\": [0.18906, 0.69141, 0, 0, 0.82753],\n        \"81\": [0.03781, 0.69141, 0, 0, 0.82699],\n        \"82\": [0, 0.69141, 0, 0, 0.82807],\n        \"83\": [0, 0.69141, 0, 0, 0.82861],\n        \"84\": [0, 0.69141, 0, 0, 0.66899],\n        \"85\": [0, 0.69141, 0, 0, 0.64576],\n        \"86\": [0, 0.69141, 0, 0, 0.83131],\n        \"87\": [0, 0.69141, 0, 0, 1.04602],\n        \"88\": [0, 0.69141, 0, 0, 0.71922],\n        \"89\": [0.18906, 0.69141, 0, 0, 0.83293],\n        \"90\": [0.12604, 0.69141, 0, 0, 0.60201],\n        \"91\": [0.24982, 0.74947, 0, 0, 0.27764],\n        \"93\": [0.24982, 0.74947, 0, 0, 0.27764],\n        \"94\": [0, 0.69141, 0, 0, 0.49965],\n        \"97\": [0, 0.47534, 0, 0, 0.50046],\n        \"98\": [0, 0.69141, 0, 0, 0.51315],\n        \"99\": [0, 0.47534, 0, 0, 0.38946],\n        \"100\": [0, 0.62119, 0, 0, 0.49857],\n        \"101\": [0, 0.47534, 0, 0, 0.40053],\n        \"102\": [0.18906, 0.69141, 0, 0, 0.32626],\n        \"103\": [0.18906, 0.47534, 0, 0, 0.5037],\n        \"104\": [0.18906, 0.69141, 0, 0, 0.52126],\n        \"105\": [0, 0.69141, 0, 0, 0.27899],\n        \"106\": [0, 0.69141, 0, 0, 0.28088],\n        \"107\": [0, 0.69141, 0, 0, 0.38946],\n        \"108\": [0, 0.69141, 0, 0, 0.27953],\n        \"109\": [0, 0.47534, 0, 0, 0.76676],\n        \"110\": [0, 0.47534, 0, 0, 0.52666],\n        \"111\": [0, 0.47534, 0, 0, 0.48885],\n        \"112\": [0.18906, 0.52396, 0, 0, 0.50046],\n        \"113\": [0.18906, 0.47534, 0, 0, 0.48912],\n        \"114\": [0, 0.47534, 0, 0, 0.38919],\n        \"115\": [0, 0.47534, 0, 0, 0.44266],\n        \"116\": [0, 0.62119, 0, 0, 0.33301],\n        \"117\": [0, 0.47534, 0, 0, 0.5172],\n        \"118\": [0, 0.52396, 0, 0, 0.5118],\n        \"119\": [0, 0.52396, 0, 0, 0.77351],\n        \"120\": [0.18906, 0.47534, 0, 0, 0.38865],\n        \"121\": [0.18906, 0.47534, 0, 0, 0.49884],\n        \"122\": [0.18906, 0.47534, 0, 0, 0.39054],\n        \"8216\": [0, 0.69141, 0, 0, 0.21471],\n        \"8217\": [0, 0.69141, 0, 0, 0.21471],\n        \"58112\": [0, 0.62119, 0, 0, 0.49749],\n        \"58113\": [0, 0.62119, 0, 0, 0.4983],\n        \"58114\": [0.18906, 0.69141, 0, 0, 0.33328],\n        \"58115\": [0.18906, 0.69141, 0, 0, 0.32923],\n        \"58116\": [0.18906, 0.47534, 0, 0, 0.50343],\n        \"58117\": [0, 0.69141, 0, 0, 0.33301],\n        \"58118\": [0, 0.62119, 0, 0, 0.33409],\n        \"58119\": [0, 0.47534, 0, 0, 0.50073]\n    },\n    \"Main-Bold\": {\n        \"33\": [0, 0.69444, 0, 0, 0.35],\n        \"34\": [0, 0.69444, 0, 0, 0.60278],\n        \"35\": [0.19444, 0.69444, 0, 0, 0.95833],\n        \"36\": [0.05556, 0.75, 0, 0, 0.575],\n        \"37\": [0.05556, 0.75, 0, 0, 0.95833],\n        \"38\": [0, 0.69444, 0, 0, 0.89444],\n        \"39\": [0, 0.69444, 0, 0, 0.31944],\n        \"40\": [0.25, 0.75, 0, 0, 0.44722],\n        \"41\": [0.25, 0.75, 0, 0, 0.44722],\n        \"42\": [0, 0.75, 0, 0, 0.575],\n        \"43\": [0.13333, 0.63333, 0, 0, 0.89444],\n        \"44\": [0.19444, 0.15556, 0, 0, 0.31944],\n        \"45\": [0, 0.44444, 0, 0, 0.38333],\n        \"46\": [0, 0.15556, 0, 0, 0.31944],\n        \"47\": [0.25, 0.75, 0, 0, 0.575],\n        \"48\": [0, 0.64444, 0, 0, 0.575],\n        \"49\": [0, 0.64444, 0, 0, 0.575],\n        \"50\": [0, 0.64444, 0, 0, 0.575],\n        \"51\": [0, 0.64444, 0, 0, 0.575],\n        \"52\": [0, 0.64444, 0, 0, 0.575],\n        \"53\": [0, 0.64444, 0, 0, 0.575],\n        \"54\": [0, 0.64444, 0, 0, 0.575],\n        \"55\": [0, 0.64444, 0, 0, 0.575],\n        \"56\": [0, 0.64444, 0, 0, 0.575],\n        \"57\": [0, 0.64444, 0, 0, 0.575],\n        \"58\": [0, 0.44444, 0, 0, 0.31944],\n        \"59\": [0.19444, 0.44444, 0, 0, 0.31944],\n        \"60\": [0.08556, 0.58556, 0, 0, 0.89444],\n        \"61\": [-0.10889, 0.39111, 0, 0, 0.89444],\n        \"62\": [0.08556, 0.58556, 0, 0, 0.89444],\n        \"63\": [0, 0.69444, 0, 0, 0.54305],\n        \"64\": [0, 0.69444, 0, 0, 0.89444],\n        \"65\": [0, 0.68611, 0, 0, 0.86944],\n        \"66\": [0, 0.68611, 0, 0, 0.81805],\n        \"67\": [0, 0.68611, 0, 0, 0.83055],\n        \"68\": [0, 0.68611, 0, 0, 0.88194],\n        \"69\": [0, 0.68611, 0, 0, 0.75555],\n        \"70\": [0, 0.68611, 0, 0, 0.72361],\n        \"71\": [0, 0.68611, 0, 0, 0.90416],\n        \"72\": [0, 0.68611, 0, 0, 0.9],\n        \"73\": [0, 0.68611, 0, 0, 0.43611],\n        \"74\": [0, 0.68611, 0, 0, 0.59444],\n        \"75\": [0, 0.68611, 0, 0, 0.90138],\n        \"76\": [0, 0.68611, 0, 0, 0.69166],\n        \"77\": [0, 0.68611, 0, 0, 1.09166],\n        \"78\": [0, 0.68611, 0, 0, 0.9],\n        \"79\": [0, 0.68611, 0, 0, 0.86388],\n        \"80\": [0, 0.68611, 0, 0, 0.78611],\n        \"81\": [0.19444, 0.68611, 0, 0, 0.86388],\n        \"82\": [0, 0.68611, 0, 0, 0.8625],\n        \"83\": [0, 0.68611, 0, 0, 0.63889],\n        \"84\": [0, 0.68611, 0, 0, 0.8],\n        \"85\": [0, 0.68611, 0, 0, 0.88472],\n        \"86\": [0, 0.68611, 0.01597, 0, 0.86944],\n        \"87\": [0, 0.68611, 0.01597, 0, 1.18888],\n        \"88\": [0, 0.68611, 0, 0, 0.86944],\n        \"89\": [0, 0.68611, 0.02875, 0, 0.86944],\n        \"90\": [0, 0.68611, 0, 0, 0.70277],\n        \"91\": [0.25, 0.75, 0, 0, 0.31944],\n        \"92\": [0.25, 0.75, 0, 0, 0.575],\n        \"93\": [0.25, 0.75, 0, 0, 0.31944],\n        \"94\": [0, 0.69444, 0, 0, 0.575],\n        \"95\": [0.31, 0.13444, 0.03194, 0, 0.575],\n        \"97\": [0, 0.44444, 0, 0, 0.55902],\n        \"98\": [0, 0.69444, 0, 0, 0.63889],\n        \"99\": [0, 0.44444, 0, 0, 0.51111],\n        \"100\": [0, 0.69444, 0, 0, 0.63889],\n        \"101\": [0, 0.44444, 0, 0, 0.52708],\n        \"102\": [0, 0.69444, 0.10903, 0, 0.35139],\n        \"103\": [0.19444, 0.44444, 0.01597, 0, 0.575],\n        \"104\": [0, 0.69444, 0, 0, 0.63889],\n        \"105\": [0, 0.69444, 0, 0, 0.31944],\n        \"106\": [0.19444, 0.69444, 0, 0, 0.35139],\n        \"107\": [0, 0.69444, 0, 0, 0.60694],\n        \"108\": [0, 0.69444, 0, 0, 0.31944],\n        \"109\": [0, 0.44444, 0, 0, 0.95833],\n        \"110\": [0, 0.44444, 0, 0, 0.63889],\n        \"111\": [0, 0.44444, 0, 0, 0.575],\n        \"112\": [0.19444, 0.44444, 0, 0, 0.63889],\n        \"113\": [0.19444, 0.44444, 0, 0, 0.60694],\n        \"114\": [0, 0.44444, 0, 0, 0.47361],\n        \"115\": [0, 0.44444, 0, 0, 0.45361],\n        \"116\": [0, 0.63492, 0, 0, 0.44722],\n        \"117\": [0, 0.44444, 0, 0, 0.63889],\n        \"118\": [0, 0.44444, 0.01597, 0, 0.60694],\n        \"119\": [0, 0.44444, 0.01597, 0, 0.83055],\n        \"120\": [0, 0.44444, 0, 0, 0.60694],\n        \"121\": [0.19444, 0.44444, 0.01597, 0, 0.60694],\n        \"122\": [0, 0.44444, 0, 0, 0.51111],\n        \"123\": [0.25, 0.75, 0, 0, 0.575],\n        \"124\": [0.25, 0.75, 0, 0, 0.31944],\n        \"125\": [0.25, 0.75, 0, 0, 0.575],\n        \"126\": [0.35, 0.34444, 0, 0, 0.575],\n        \"168\": [0, 0.69444, 0, 0, 0.575],\n        \"172\": [0, 0.44444, 0, 0, 0.76666],\n        \"176\": [0, 0.69444, 0, 0, 0.86944],\n        \"177\": [0.13333, 0.63333, 0, 0, 0.89444],\n        \"198\": [0, 0.68611, 0, 0, 1.04166],\n        \"215\": [0.13333, 0.63333, 0, 0, 0.89444],\n        \"216\": [0.04861, 0.73472, 0, 0, 0.89444],\n        \"223\": [0, 0.69444, 0, 0, 0.59722],\n        \"230\": [0, 0.44444, 0, 0, 0.83055],\n        \"247\": [0.13333, 0.63333, 0, 0, 0.89444],\n        \"248\": [0.09722, 0.54167, 0, 0, 0.575],\n        \"305\": [0, 0.44444, 0, 0, 0.31944],\n        \"338\": [0, 0.68611, 0, 0, 1.16944],\n        \"339\": [0, 0.44444, 0, 0, 0.89444],\n        \"567\": [0.19444, 0.44444, 0, 0, 0.35139],\n        \"710\": [0, 0.69444, 0, 0, 0.575],\n        \"711\": [0, 0.63194, 0, 0, 0.575],\n        \"713\": [0, 0.59611, 0, 0, 0.575],\n        \"714\": [0, 0.69444, 0, 0, 0.575],\n        \"715\": [0, 0.69444, 0, 0, 0.575],\n        \"728\": [0, 0.69444, 0, 0, 0.575],\n        \"729\": [0, 0.69444, 0, 0, 0.31944],\n        \"730\": [0, 0.69444, 0, 0, 0.86944],\n        \"732\": [0, 0.69444, 0, 0, 0.575],\n        \"733\": [0, 0.69444, 0, 0, 0.575],\n        \"824\": [0.19444, 0.69444, 0, 0, 0],\n        \"915\": [0, 0.68611, 0, 0, 0.69166],\n        \"916\": [0, 0.68611, 0, 0, 0.95833],\n        \"920\": [0, 0.68611, 0, 0, 0.89444],\n        \"923\": [0, 0.68611, 0, 0, 0.80555],\n        \"926\": [0, 0.68611, 0, 0, 0.76666],\n        \"928\": [0, 0.68611, 0, 0, 0.9],\n        \"931\": [0, 0.68611, 0, 0, 0.83055],\n        \"933\": [0, 0.68611, 0, 0, 0.89444],\n        \"934\": [0, 0.68611, 0, 0, 0.83055],\n        \"936\": [0, 0.68611, 0, 0, 0.89444],\n        \"937\": [0, 0.68611, 0, 0, 0.83055],\n        \"8211\": [0, 0.44444, 0.03194, 0, 0.575],\n        \"8212\": [0, 0.44444, 0.03194, 0, 1.14999],\n        \"8216\": [0, 0.69444, 0, 0, 0.31944],\n        \"8217\": [0, 0.69444, 0, 0, 0.31944],\n        \"8220\": [0, 0.69444, 0, 0, 0.60278],\n        \"8221\": [0, 0.69444, 0, 0, 0.60278],\n        \"8224\": [0.19444, 0.69444, 0, 0, 0.51111],\n        \"8225\": [0.19444, 0.69444, 0, 0, 0.51111],\n        \"8242\": [0, 0.55556, 0, 0, 0.34444],\n        \"8407\": [0, 0.72444, 0.15486, 0, 0.575],\n        \"8463\": [0, 0.69444, 0, 0, 0.66759],\n        \"8465\": [0, 0.69444, 0, 0, 0.83055],\n        \"8467\": [0, 0.69444, 0, 0, 0.47361],\n        \"8472\": [0.19444, 0.44444, 0, 0, 0.74027],\n        \"8476\": [0, 0.69444, 0, 0, 0.83055],\n        \"8501\": [0, 0.69444, 0, 0, 0.70277],\n        \"8592\": [-0.10889, 0.39111, 0, 0, 1.14999],\n        \"8593\": [0.19444, 0.69444, 0, 0, 0.575],\n        \"8594\": [-0.10889, 0.39111, 0, 0, 1.14999],\n        \"8595\": [0.19444, 0.69444, 0, 0, 0.575],\n        \"8596\": [-0.10889, 0.39111, 0, 0, 1.14999],\n        \"8597\": [0.25, 0.75, 0, 0, 0.575],\n        \"8598\": [0.19444, 0.69444, 0, 0, 1.14999],\n        \"8599\": [0.19444, 0.69444, 0, 0, 1.14999],\n        \"8600\": [0.19444, 0.69444, 0, 0, 1.14999],\n        \"8601\": [0.19444, 0.69444, 0, 0, 1.14999],\n        \"8636\": [-0.10889, 0.39111, 0, 0, 1.14999],\n        \"8637\": [-0.10889, 0.39111, 0, 0, 1.14999],\n        \"8640\": [-0.10889, 0.39111, 0, 0, 1.14999],\n        \"8641\": [-0.10889, 0.39111, 0, 0, 1.14999],\n        \"8656\": [-0.10889, 0.39111, 0, 0, 1.14999],\n        \"8657\": [0.19444, 0.69444, 0, 0, 0.70277],\n        \"8658\": [-0.10889, 0.39111, 0, 0, 1.14999],\n        \"8659\": [0.19444, 0.69444, 0, 0, 0.70277],\n        \"8660\": [-0.10889, 0.39111, 0, 0, 1.14999],\n        \"8661\": [0.25, 0.75, 0, 0, 0.70277],\n        \"8704\": [0, 0.69444, 0, 0, 0.63889],\n        \"8706\": [0, 0.69444, 0.06389, 0, 0.62847],\n        \"8707\": [0, 0.69444, 0, 0, 0.63889],\n        \"8709\": [0.05556, 0.75, 0, 0, 0.575],\n        \"8711\": [0, 0.68611, 0, 0, 0.95833],\n        \"8712\": [0.08556, 0.58556, 0, 0, 0.76666],\n        \"8715\": [0.08556, 0.58556, 0, 0, 0.76666],\n        \"8722\": [0.13333, 0.63333, 0, 0, 0.89444],\n        \"8723\": [0.13333, 0.63333, 0, 0, 0.89444],\n        \"8725\": [0.25, 0.75, 0, 0, 0.575],\n        \"8726\": [0.25, 0.75, 0, 0, 0.575],\n        \"8727\": [-0.02778, 0.47222, 0, 0, 0.575],\n        \"8728\": [-0.02639, 0.47361, 0, 0, 0.575],\n        \"8729\": [-0.02639, 0.47361, 0, 0, 0.575],\n        \"8730\": [0.18, 0.82, 0, 0, 0.95833],\n        \"8733\": [0, 0.44444, 0, 0, 0.89444],\n        \"8734\": [0, 0.44444, 0, 0, 1.14999],\n        \"8736\": [0, 0.69224, 0, 0, 0.72222],\n        \"8739\": [0.25, 0.75, 0, 0, 0.31944],\n        \"8741\": [0.25, 0.75, 0, 0, 0.575],\n        \"8743\": [0, 0.55556, 0, 0, 0.76666],\n        \"8744\": [0, 0.55556, 0, 0, 0.76666],\n        \"8745\": [0, 0.55556, 0, 0, 0.76666],\n        \"8746\": [0, 0.55556, 0, 0, 0.76666],\n        \"8747\": [0.19444, 0.69444, 0.12778, 0, 0.56875],\n        \"8764\": [-0.10889, 0.39111, 0, 0, 0.89444],\n        \"8768\": [0.19444, 0.69444, 0, 0, 0.31944],\n        \"8771\": [0.00222, 0.50222, 0, 0, 0.89444],\n        \"8776\": [0.02444, 0.52444, 0, 0, 0.89444],\n        \"8781\": [0.00222, 0.50222, 0, 0, 0.89444],\n        \"8801\": [0.00222, 0.50222, 0, 0, 0.89444],\n        \"8804\": [0.19667, 0.69667, 0, 0, 0.89444],\n        \"8805\": [0.19667, 0.69667, 0, 0, 0.89444],\n        \"8810\": [0.08556, 0.58556, 0, 0, 1.14999],\n        \"8811\": [0.08556, 0.58556, 0, 0, 1.14999],\n        \"8826\": [0.08556, 0.58556, 0, 0, 0.89444],\n        \"8827\": [0.08556, 0.58556, 0, 0, 0.89444],\n        \"8834\": [0.08556, 0.58556, 0, 0, 0.89444],\n        \"8835\": [0.08556, 0.58556, 0, 0, 0.89444],\n        \"8838\": [0.19667, 0.69667, 0, 0, 0.89444],\n        \"8839\": [0.19667, 0.69667, 0, 0, 0.89444],\n        \"8846\": [0, 0.55556, 0, 0, 0.76666],\n        \"8849\": [0.19667, 0.69667, 0, 0, 0.89444],\n        \"8850\": [0.19667, 0.69667, 0, 0, 0.89444],\n        \"8851\": [0, 0.55556, 0, 0, 0.76666],\n        \"8852\": [0, 0.55556, 0, 0, 0.76666],\n        \"8853\": [0.13333, 0.63333, 0, 0, 0.89444],\n        \"8854\": [0.13333, 0.63333, 0, 0, 0.89444],\n        \"8855\": [0.13333, 0.63333, 0, 0, 0.89444],\n        \"8856\": [0.13333, 0.63333, 0, 0, 0.89444],\n        \"8857\": [0.13333, 0.63333, 0, 0, 0.89444],\n        \"8866\": [0, 0.69444, 0, 0, 0.70277],\n        \"8867\": [0, 0.69444, 0, 0, 0.70277],\n        \"8868\": [0, 0.69444, 0, 0, 0.89444],\n        \"8869\": [0, 0.69444, 0, 0, 0.89444],\n        \"8900\": [-0.02639, 0.47361, 0, 0, 0.575],\n        \"8901\": [-0.02639, 0.47361, 0, 0, 0.31944],\n        \"8902\": [-0.02778, 0.47222, 0, 0, 0.575],\n        \"8968\": [0.25, 0.75, 0, 0, 0.51111],\n        \"8969\": [0.25, 0.75, 0, 0, 0.51111],\n        \"8970\": [0.25, 0.75, 0, 0, 0.51111],\n        \"8971\": [0.25, 0.75, 0, 0, 0.51111],\n        \"8994\": [-0.13889, 0.36111, 0, 0, 1.14999],\n        \"8995\": [-0.13889, 0.36111, 0, 0, 1.14999],\n        \"9651\": [0.19444, 0.69444, 0, 0, 1.02222],\n        \"9657\": [-0.02778, 0.47222, 0, 0, 0.575],\n        \"9661\": [0.19444, 0.69444, 0, 0, 1.02222],\n        \"9667\": [-0.02778, 0.47222, 0, 0, 0.575],\n        \"9711\": [0.19444, 0.69444, 0, 0, 1.14999],\n        \"9824\": [0.12963, 0.69444, 0, 0, 0.89444],\n        \"9825\": [0.12963, 0.69444, 0, 0, 0.89444],\n        \"9826\": [0.12963, 0.69444, 0, 0, 0.89444],\n        \"9827\": [0.12963, 0.69444, 0, 0, 0.89444],\n        \"9837\": [0, 0.75, 0, 0, 0.44722],\n        \"9838\": [0.19444, 0.69444, 0, 0, 0.44722],\n        \"9839\": [0.19444, 0.69444, 0, 0, 0.44722],\n        \"10216\": [0.25, 0.75, 0, 0, 0.44722],\n        \"10217\": [0.25, 0.75, 0, 0, 0.44722],\n        \"10815\": [0, 0.68611, 0, 0, 0.9],\n        \"10927\": [0.19667, 0.69667, 0, 0, 0.89444],\n        \"10928\": [0.19667, 0.69667, 0, 0, 0.89444]\n    },\n    \"Main-BoldItalic\": {\n        \"33\": [0, 0.69444, 0.11417, 0, 0.38611],\n        \"34\": [0, 0.69444, 0.07939, 0, 0.62055],\n        \"35\": [0.19444, 0.69444, 0.06833, 0, 0.94444],\n        \"37\": [0.05556, 0.75, 0.12861, 0, 0.94444],\n        \"38\": [0, 0.69444, 0.08528, 0, 0.88555],\n        \"39\": [0, 0.69444, 0.12945, 0, 0.35555],\n        \"40\": [0.25, 0.75, 0.15806, 0, 0.47333],\n        \"41\": [0.25, 0.75, 0.03306, 0, 0.47333],\n        \"42\": [0, 0.75, 0.14333, 0, 0.59111],\n        \"43\": [0.10333, 0.60333, 0.03306, 0, 0.88555],\n        \"44\": [0.19444, 0.14722, 0, 0, 0.35555],\n        \"45\": [0, 0.44444, 0.02611, 0, 0.41444],\n        \"46\": [0, 0.14722, 0, 0, 0.35555],\n        \"47\": [0.25, 0.75, 0.15806, 0, 0.59111],\n        \"48\": [0, 0.64444, 0.13167, 0, 0.59111],\n        \"49\": [0, 0.64444, 0.13167, 0, 0.59111],\n        \"50\": [0, 0.64444, 0.13167, 0, 0.59111],\n        \"51\": [0, 0.64444, 0.13167, 0, 0.59111],\n        \"52\": [0.19444, 0.64444, 0.13167, 0, 0.59111],\n        \"53\": [0, 0.64444, 0.13167, 0, 0.59111],\n        \"54\": [0, 0.64444, 0.13167, 0, 0.59111],\n        \"55\": [0.19444, 0.64444, 0.13167, 0, 0.59111],\n        \"56\": [0, 0.64444, 0.13167, 0, 0.59111],\n        \"57\": [0, 0.64444, 0.13167, 0, 0.59111],\n        \"58\": [0, 0.44444, 0.06695, 0, 0.35555],\n        \"59\": [0.19444, 0.44444, 0.06695, 0, 0.35555],\n        \"61\": [-0.10889, 0.39111, 0.06833, 0, 0.88555],\n        \"63\": [0, 0.69444, 0.11472, 0, 0.59111],\n        \"64\": [0, 0.69444, 0.09208, 0, 0.88555],\n        \"65\": [0, 0.68611, 0, 0, 0.86555],\n        \"66\": [0, 0.68611, 0.0992, 0, 0.81666],\n        \"67\": [0, 0.68611, 0.14208, 0, 0.82666],\n        \"68\": [0, 0.68611, 0.09062, 0, 0.87555],\n        \"69\": [0, 0.68611, 0.11431, 0, 0.75666],\n        \"70\": [0, 0.68611, 0.12903, 0, 0.72722],\n        \"71\": [0, 0.68611, 0.07347, 0, 0.89527],\n        \"72\": [0, 0.68611, 0.17208, 0, 0.8961],\n        \"73\": [0, 0.68611, 0.15681, 0, 0.47166],\n        \"74\": [0, 0.68611, 0.145, 0, 0.61055],\n        \"75\": [0, 0.68611, 0.14208, 0, 0.89499],\n        \"76\": [0, 0.68611, 0, 0, 0.69777],\n        \"77\": [0, 0.68611, 0.17208, 0, 1.07277],\n        \"78\": [0, 0.68611, 0.17208, 0, 0.8961],\n        \"79\": [0, 0.68611, 0.09062, 0, 0.85499],\n        \"80\": [0, 0.68611, 0.0992, 0, 0.78721],\n        \"81\": [0.19444, 0.68611, 0.09062, 0, 0.85499],\n        \"82\": [0, 0.68611, 0.02559, 0, 0.85944],\n        \"83\": [0, 0.68611, 0.11264, 0, 0.64999],\n        \"84\": [0, 0.68611, 0.12903, 0, 0.7961],\n        \"85\": [0, 0.68611, 0.17208, 0, 0.88083],\n        \"86\": [0, 0.68611, 0.18625, 0, 0.86555],\n        \"87\": [0, 0.68611, 0.18625, 0, 1.15999],\n        \"88\": [0, 0.68611, 0.15681, 0, 0.86555],\n        \"89\": [0, 0.68611, 0.19803, 0, 0.86555],\n        \"90\": [0, 0.68611, 0.14208, 0, 0.70888],\n        \"91\": [0.25, 0.75, 0.1875, 0, 0.35611],\n        \"93\": [0.25, 0.75, 0.09972, 0, 0.35611],\n        \"94\": [0, 0.69444, 0.06709, 0, 0.59111],\n        \"95\": [0.31, 0.13444, 0.09811, 0, 0.59111],\n        \"97\": [0, 0.44444, 0.09426, 0, 0.59111],\n        \"98\": [0, 0.69444, 0.07861, 0, 0.53222],\n        \"99\": [0, 0.44444, 0.05222, 0, 0.53222],\n        \"100\": [0, 0.69444, 0.10861, 0, 0.59111],\n        \"101\": [0, 0.44444, 0.085, 0, 0.53222],\n        \"102\": [0.19444, 0.69444, 0.21778, 0, 0.4],\n        \"103\": [0.19444, 0.44444, 0.105, 0, 0.53222],\n        \"104\": [0, 0.69444, 0.09426, 0, 0.59111],\n        \"105\": [0, 0.69326, 0.11387, 0, 0.35555],\n        \"106\": [0.19444, 0.69326, 0.1672, 0, 0.35555],\n        \"107\": [0, 0.69444, 0.11111, 0, 0.53222],\n        \"108\": [0, 0.69444, 0.10861, 0, 0.29666],\n        \"109\": [0, 0.44444, 0.09426, 0, 0.94444],\n        \"110\": [0, 0.44444, 0.09426, 0, 0.64999],\n        \"111\": [0, 0.44444, 0.07861, 0, 0.59111],\n        \"112\": [0.19444, 0.44444, 0.07861, 0, 0.59111],\n        \"113\": [0.19444, 0.44444, 0.105, 0, 0.53222],\n        \"114\": [0, 0.44444, 0.11111, 0, 0.50167],\n        \"115\": [0, 0.44444, 0.08167, 0, 0.48694],\n        \"116\": [0, 0.63492, 0.09639, 0, 0.385],\n        \"117\": [0, 0.44444, 0.09426, 0, 0.62055],\n        \"118\": [0, 0.44444, 0.11111, 0, 0.53222],\n        \"119\": [0, 0.44444, 0.11111, 0, 0.76777],\n        \"120\": [0, 0.44444, 0.12583, 0, 0.56055],\n        \"121\": [0.19444, 0.44444, 0.105, 0, 0.56166],\n        \"122\": [0, 0.44444, 0.13889, 0, 0.49055],\n        \"126\": [0.35, 0.34444, 0.11472, 0, 0.59111],\n        \"163\": [0, 0.69444, 0, 0, 0.86853],\n        \"168\": [0, 0.69444, 0.11473, 0, 0.59111],\n        \"176\": [0, 0.69444, 0, 0, 0.94888],\n        \"198\": [0, 0.68611, 0.11431, 0, 1.02277],\n        \"216\": [0.04861, 0.73472, 0.09062, 0, 0.88555],\n        \"223\": [0.19444, 0.69444, 0.09736, 0, 0.665],\n        \"230\": [0, 0.44444, 0.085, 0, 0.82666],\n        \"248\": [0.09722, 0.54167, 0.09458, 0, 0.59111],\n        \"305\": [0, 0.44444, 0.09426, 0, 0.35555],\n        \"338\": [0, 0.68611, 0.11431, 0, 1.14054],\n        \"339\": [0, 0.44444, 0.085, 0, 0.82666],\n        \"567\": [0.19444, 0.44444, 0.04611, 0, 0.385],\n        \"710\": [0, 0.69444, 0.06709, 0, 0.59111],\n        \"711\": [0, 0.63194, 0.08271, 0, 0.59111],\n        \"713\": [0, 0.59444, 0.10444, 0, 0.59111],\n        \"714\": [0, 0.69444, 0.08528, 0, 0.59111],\n        \"715\": [0, 0.69444, 0, 0, 0.59111],\n        \"728\": [0, 0.69444, 0.10333, 0, 0.59111],\n        \"729\": [0, 0.69444, 0.12945, 0, 0.35555],\n        \"730\": [0, 0.69444, 0, 0, 0.94888],\n        \"732\": [0, 0.69444, 0.11472, 0, 0.59111],\n        \"733\": [0, 0.69444, 0.11472, 0, 0.59111],\n        \"915\": [0, 0.68611, 0.12903, 0, 0.69777],\n        \"916\": [0, 0.68611, 0, 0, 0.94444],\n        \"920\": [0, 0.68611, 0.09062, 0, 0.88555],\n        \"923\": [0, 0.68611, 0, 0, 0.80666],\n        \"926\": [0, 0.68611, 0.15092, 0, 0.76777],\n        \"928\": [0, 0.68611, 0.17208, 0, 0.8961],\n        \"931\": [0, 0.68611, 0.11431, 0, 0.82666],\n        \"933\": [0, 0.68611, 0.10778, 0, 0.88555],\n        \"934\": [0, 0.68611, 0.05632, 0, 0.82666],\n        \"936\": [0, 0.68611, 0.10778, 0, 0.88555],\n        \"937\": [0, 0.68611, 0.0992, 0, 0.82666],\n        \"8211\": [0, 0.44444, 0.09811, 0, 0.59111],\n        \"8212\": [0, 0.44444, 0.09811, 0, 1.18221],\n        \"8216\": [0, 0.69444, 0.12945, 0, 0.35555],\n        \"8217\": [0, 0.69444, 0.12945, 0, 0.35555],\n        \"8220\": [0, 0.69444, 0.16772, 0, 0.62055],\n        \"8221\": [0, 0.69444, 0.07939, 0, 0.62055]\n    },\n    \"Main-Italic\": {\n        \"33\": [0, 0.69444, 0.12417, 0, 0.30667],\n        \"34\": [0, 0.69444, 0.06961, 0, 0.51444],\n        \"35\": [0.19444, 0.69444, 0.06616, 0, 0.81777],\n        \"37\": [0.05556, 0.75, 0.13639, 0, 0.81777],\n        \"38\": [0, 0.69444, 0.09694, 0, 0.76666],\n        \"39\": [0, 0.69444, 0.12417, 0, 0.30667],\n        \"40\": [0.25, 0.75, 0.16194, 0, 0.40889],\n        \"41\": [0.25, 0.75, 0.03694, 0, 0.40889],\n        \"42\": [0, 0.75, 0.14917, 0, 0.51111],\n        \"43\": [0.05667, 0.56167, 0.03694, 0, 0.76666],\n        \"44\": [0.19444, 0.10556, 0, 0, 0.30667],\n        \"45\": [0, 0.43056, 0.02826, 0, 0.35778],\n        \"46\": [0, 0.10556, 0, 0, 0.30667],\n        \"47\": [0.25, 0.75, 0.16194, 0, 0.51111],\n        \"48\": [0, 0.64444, 0.13556, 0, 0.51111],\n        \"49\": [0, 0.64444, 0.13556, 0, 0.51111],\n        \"50\": [0, 0.64444, 0.13556, 0, 0.51111],\n        \"51\": [0, 0.64444, 0.13556, 0, 0.51111],\n        \"52\": [0.19444, 0.64444, 0.13556, 0, 0.51111],\n        \"53\": [0, 0.64444, 0.13556, 0, 0.51111],\n        \"54\": [0, 0.64444, 0.13556, 0, 0.51111],\n        \"55\": [0.19444, 0.64444, 0.13556, 0, 0.51111],\n        \"56\": [0, 0.64444, 0.13556, 0, 0.51111],\n        \"57\": [0, 0.64444, 0.13556, 0, 0.51111],\n        \"58\": [0, 0.43056, 0.0582, 0, 0.30667],\n        \"59\": [0.19444, 0.43056, 0.0582, 0, 0.30667],\n        \"61\": [-0.13313, 0.36687, 0.06616, 0, 0.76666],\n        \"63\": [0, 0.69444, 0.1225, 0, 0.51111],\n        \"64\": [0, 0.69444, 0.09597, 0, 0.76666],\n        \"65\": [0, 0.68333, 0, 0, 0.74333],\n        \"66\": [0, 0.68333, 0.10257, 0, 0.70389],\n        \"67\": [0, 0.68333, 0.14528, 0, 0.71555],\n        \"68\": [0, 0.68333, 0.09403, 0, 0.755],\n        \"69\": [0, 0.68333, 0.12028, 0, 0.67833],\n        \"70\": [0, 0.68333, 0.13305, 0, 0.65277],\n        \"71\": [0, 0.68333, 0.08722, 0, 0.77361],\n        \"72\": [0, 0.68333, 0.16389, 0, 0.74333],\n        \"73\": [0, 0.68333, 0.15806, 0, 0.38555],\n        \"74\": [0, 0.68333, 0.14028, 0, 0.525],\n        \"75\": [0, 0.68333, 0.14528, 0, 0.76888],\n        \"76\": [0, 0.68333, 0, 0, 0.62722],\n        \"77\": [0, 0.68333, 0.16389, 0, 0.89666],\n        \"78\": [0, 0.68333, 0.16389, 0, 0.74333],\n        \"79\": [0, 0.68333, 0.09403, 0, 0.76666],\n        \"80\": [0, 0.68333, 0.10257, 0, 0.67833],\n        \"81\": [0.19444, 0.68333, 0.09403, 0, 0.76666],\n        \"82\": [0, 0.68333, 0.03868, 0, 0.72944],\n        \"83\": [0, 0.68333, 0.11972, 0, 0.56222],\n        \"84\": [0, 0.68333, 0.13305, 0, 0.71555],\n        \"85\": [0, 0.68333, 0.16389, 0, 0.74333],\n        \"86\": [0, 0.68333, 0.18361, 0, 0.74333],\n        \"87\": [0, 0.68333, 0.18361, 0, 0.99888],\n        \"88\": [0, 0.68333, 0.15806, 0, 0.74333],\n        \"89\": [0, 0.68333, 0.19383, 0, 0.74333],\n        \"90\": [0, 0.68333, 0.14528, 0, 0.61333],\n        \"91\": [0.25, 0.75, 0.1875, 0, 0.30667],\n        \"93\": [0.25, 0.75, 0.10528, 0, 0.30667],\n        \"94\": [0, 0.69444, 0.06646, 0, 0.51111],\n        \"95\": [0.31, 0.12056, 0.09208, 0, 0.51111],\n        \"97\": [0, 0.43056, 0.07671, 0, 0.51111],\n        \"98\": [0, 0.69444, 0.06312, 0, 0.46],\n        \"99\": [0, 0.43056, 0.05653, 0, 0.46],\n        \"100\": [0, 0.69444, 0.10333, 0, 0.51111],\n        \"101\": [0, 0.43056, 0.07514, 0, 0.46],\n        \"102\": [0.19444, 0.69444, 0.21194, 0, 0.30667],\n        \"103\": [0.19444, 0.43056, 0.08847, 0, 0.46],\n        \"104\": [0, 0.69444, 0.07671, 0, 0.51111],\n        \"105\": [0, 0.65536, 0.1019, 0, 0.30667],\n        \"106\": [0.19444, 0.65536, 0.14467, 0, 0.30667],\n        \"107\": [0, 0.69444, 0.10764, 0, 0.46],\n        \"108\": [0, 0.69444, 0.10333, 0, 0.25555],\n        \"109\": [0, 0.43056, 0.07671, 0, 0.81777],\n        \"110\": [0, 0.43056, 0.07671, 0, 0.56222],\n        \"111\": [0, 0.43056, 0.06312, 0, 0.51111],\n        \"112\": [0.19444, 0.43056, 0.06312, 0, 0.51111],\n        \"113\": [0.19444, 0.43056, 0.08847, 0, 0.46],\n        \"114\": [0, 0.43056, 0.10764, 0, 0.42166],\n        \"115\": [0, 0.43056, 0.08208, 0, 0.40889],\n        \"116\": [0, 0.61508, 0.09486, 0, 0.33222],\n        \"117\": [0, 0.43056, 0.07671, 0, 0.53666],\n        \"118\": [0, 0.43056, 0.10764, 0, 0.46],\n        \"119\": [0, 0.43056, 0.10764, 0, 0.66444],\n        \"120\": [0, 0.43056, 0.12042, 0, 0.46389],\n        \"121\": [0.19444, 0.43056, 0.08847, 0, 0.48555],\n        \"122\": [0, 0.43056, 0.12292, 0, 0.40889],\n        \"126\": [0.35, 0.31786, 0.11585, 0, 0.51111],\n        \"163\": [0, 0.69444, 0, 0, 0.76909],\n        \"168\": [0, 0.66786, 0.10474, 0, 0.51111],\n        \"176\": [0, 0.69444, 0, 0, 0.83129],\n        \"198\": [0, 0.68333, 0.12028, 0, 0.88277],\n        \"216\": [0.04861, 0.73194, 0.09403, 0, 0.76666],\n        \"223\": [0.19444, 0.69444, 0.10514, 0, 0.53666],\n        \"230\": [0, 0.43056, 0.07514, 0, 0.71555],\n        \"248\": [0.09722, 0.52778, 0.09194, 0, 0.51111],\n        \"305\": [0, 0.43056, 0, 0.02778, 0.32246],\n        \"338\": [0, 0.68333, 0.12028, 0, 0.98499],\n        \"339\": [0, 0.43056, 0.07514, 0, 0.71555],\n        \"567\": [0.19444, 0.43056, 0, 0.08334, 0.38403],\n        \"710\": [0, 0.69444, 0.06646, 0, 0.51111],\n        \"711\": [0, 0.62847, 0.08295, 0, 0.51111],\n        \"713\": [0, 0.56167, 0.10333, 0, 0.51111],\n        \"714\": [0, 0.69444, 0.09694, 0, 0.51111],\n        \"715\": [0, 0.69444, 0, 0, 0.51111],\n        \"728\": [0, 0.69444, 0.10806, 0, 0.51111],\n        \"729\": [0, 0.66786, 0.11752, 0, 0.30667],\n        \"730\": [0, 0.69444, 0, 0, 0.83129],\n        \"732\": [0, 0.66786, 0.11585, 0, 0.51111],\n        \"733\": [0, 0.69444, 0.1225, 0, 0.51111],\n        \"915\": [0, 0.68333, 0.13305, 0, 0.62722],\n        \"916\": [0, 0.68333, 0, 0, 0.81777],\n        \"920\": [0, 0.68333, 0.09403, 0, 0.76666],\n        \"923\": [0, 0.68333, 0, 0, 0.69222],\n        \"926\": [0, 0.68333, 0.15294, 0, 0.66444],\n        \"928\": [0, 0.68333, 0.16389, 0, 0.74333],\n        \"931\": [0, 0.68333, 0.12028, 0, 0.71555],\n        \"933\": [0, 0.68333, 0.11111, 0, 0.76666],\n        \"934\": [0, 0.68333, 0.05986, 0, 0.71555],\n        \"936\": [0, 0.68333, 0.11111, 0, 0.76666],\n        \"937\": [0, 0.68333, 0.10257, 0, 0.71555],\n        \"8211\": [0, 0.43056, 0.09208, 0, 0.51111],\n        \"8212\": [0, 0.43056, 0.09208, 0, 1.02222],\n        \"8216\": [0, 0.69444, 0.12417, 0, 0.30667],\n        \"8217\": [0, 0.69444, 0.12417, 0, 0.30667],\n        \"8220\": [0, 0.69444, 0.1685, 0, 0.51444],\n        \"8221\": [0, 0.69444, 0.06961, 0, 0.51444],\n        \"8463\": [0, 0.68889, 0, 0, 0.54028]\n    },\n    \"Main-Regular\": {\n        \"32\": [0, 0, 0, 0, 0],\n        \"33\": [0, 0.69444, 0, 0, 0.27778],\n        \"34\": [0, 0.69444, 0, 0, 0.5],\n        \"35\": [0.19444, 0.69444, 0, 0, 0.83334],\n        \"36\": [0.05556, 0.75, 0, 0, 0.5],\n        \"37\": [0.05556, 0.75, 0, 0, 0.83334],\n        \"38\": [0, 0.69444, 0, 0, 0.77778],\n        \"39\": [0, 0.69444, 0, 0, 0.27778],\n        \"40\": [0.25, 0.75, 0, 0, 0.38889],\n        \"41\": [0.25, 0.75, 0, 0, 0.38889],\n        \"42\": [0, 0.75, 0, 0, 0.5],\n        \"43\": [0.08333, 0.58333, 0, 0, 0.77778],\n        \"44\": [0.19444, 0.10556, 0, 0, 0.27778],\n        \"45\": [0, 0.43056, 0, 0, 0.33333],\n        \"46\": [0, 0.10556, 0, 0, 0.27778],\n        \"47\": [0.25, 0.75, 0, 0, 0.5],\n        \"48\": [0, 0.64444, 0, 0, 0.5],\n        \"49\": [0, 0.64444, 0, 0, 0.5],\n        \"50\": [0, 0.64444, 0, 0, 0.5],\n        \"51\": [0, 0.64444, 0, 0, 0.5],\n        \"52\": [0, 0.64444, 0, 0, 0.5],\n        \"53\": [0, 0.64444, 0, 0, 0.5],\n        \"54\": [0, 0.64444, 0, 0, 0.5],\n        \"55\": [0, 0.64444, 0, 0, 0.5],\n        \"56\": [0, 0.64444, 0, 0, 0.5],\n        \"57\": [0, 0.64444, 0, 0, 0.5],\n        \"58\": [0, 0.43056, 0, 0, 0.27778],\n        \"59\": [0.19444, 0.43056, 0, 0, 0.27778],\n        \"60\": [0.0391, 0.5391, 0, 0, 0.77778],\n        \"61\": [-0.13313, 0.36687, 0, 0, 0.77778],\n        \"62\": [0.0391, 0.5391, 0, 0, 0.77778],\n        \"63\": [0, 0.69444, 0, 0, 0.47222],\n        \"64\": [0, 0.69444, 0, 0, 0.77778],\n        \"65\": [0, 0.68333, 0, 0, 0.75],\n        \"66\": [0, 0.68333, 0, 0, 0.70834],\n        \"67\": [0, 0.68333, 0, 0, 0.72222],\n        \"68\": [0, 0.68333, 0, 0, 0.76389],\n        \"69\": [0, 0.68333, 0, 0, 0.68056],\n        \"70\": [0, 0.68333, 0, 0, 0.65278],\n        \"71\": [0, 0.68333, 0, 0, 0.78472],\n        \"72\": [0, 0.68333, 0, 0, 0.75],\n        \"73\": [0, 0.68333, 0, 0, 0.36111],\n        \"74\": [0, 0.68333, 0, 0, 0.51389],\n        \"75\": [0, 0.68333, 0, 0, 0.77778],\n        \"76\": [0, 0.68333, 0, 0, 0.625],\n        \"77\": [0, 0.68333, 0, 0, 0.91667],\n        \"78\": [0, 0.68333, 0, 0, 0.75],\n        \"79\": [0, 0.68333, 0, 0, 0.77778],\n        \"80\": [0, 0.68333, 0, 0, 0.68056],\n        \"81\": [0.19444, 0.68333, 0, 0, 0.77778],\n        \"82\": [0, 0.68333, 0, 0, 0.73611],\n        \"83\": [0, 0.68333, 0, 0, 0.55556],\n        \"84\": [0, 0.68333, 0, 0, 0.72222],\n        \"85\": [0, 0.68333, 0, 0, 0.75],\n        \"86\": [0, 0.68333, 0.01389, 0, 0.75],\n        \"87\": [0, 0.68333, 0.01389, 0, 1.02778],\n        \"88\": [0, 0.68333, 0, 0, 0.75],\n        \"89\": [0, 0.68333, 0.025, 0, 0.75],\n        \"90\": [0, 0.68333, 0, 0, 0.61111],\n        \"91\": [0.25, 0.75, 0, 0, 0.27778],\n        \"92\": [0.25, 0.75, 0, 0, 0.5],\n        \"93\": [0.25, 0.75, 0, 0, 0.27778],\n        \"94\": [0, 0.69444, 0, 0, 0.5],\n        \"95\": [0.31, 0.12056, 0.02778, 0, 0.5],\n        \"97\": [0, 0.43056, 0, 0, 0.5],\n        \"98\": [0, 0.69444, 0, 0, 0.55556],\n        \"99\": [0, 0.43056, 0, 0, 0.44445],\n        \"100\": [0, 0.69444, 0, 0, 0.55556],\n        \"101\": [0, 0.43056, 0, 0, 0.44445],\n        \"102\": [0, 0.69444, 0.07778, 0, 0.30556],\n        \"103\": [0.19444, 0.43056, 0.01389, 0, 0.5],\n        \"104\": [0, 0.69444, 0, 0, 0.55556],\n        \"105\": [0, 0.66786, 0, 0, 0.27778],\n        \"106\": [0.19444, 0.66786, 0, 0, 0.30556],\n        \"107\": [0, 0.69444, 0, 0, 0.52778],\n        \"108\": [0, 0.69444, 0, 0, 0.27778],\n        \"109\": [0, 0.43056, 0, 0, 0.83334],\n        \"110\": [0, 0.43056, 0, 0, 0.55556],\n        \"111\": [0, 0.43056, 0, 0, 0.5],\n        \"112\": [0.19444, 0.43056, 0, 0, 0.55556],\n        \"113\": [0.19444, 0.43056, 0, 0, 0.52778],\n        \"114\": [0, 0.43056, 0, 0, 0.39167],\n        \"115\": [0, 0.43056, 0, 0, 0.39445],\n        \"116\": [0, 0.61508, 0, 0, 0.38889],\n        \"117\": [0, 0.43056, 0, 0, 0.55556],\n        \"118\": [0, 0.43056, 0.01389, 0, 0.52778],\n        \"119\": [0, 0.43056, 0.01389, 0, 0.72222],\n        \"120\": [0, 0.43056, 0, 0, 0.52778],\n        \"121\": [0.19444, 0.43056, 0.01389, 0, 0.52778],\n        \"122\": [0, 0.43056, 0, 0, 0.44445],\n        \"123\": [0.25, 0.75, 0, 0, 0.5],\n        \"124\": [0.25, 0.75, 0, 0, 0.27778],\n        \"125\": [0.25, 0.75, 0, 0, 0.5],\n        \"126\": [0.35, 0.31786, 0, 0, 0.5],\n        \"160\": [0, 0, 0, 0, 0],\n        \"168\": [0, 0.66786, 0, 0, 0.5],\n        \"172\": [0, 0.43056, 0, 0, 0.66667],\n        \"176\": [0, 0.69444, 0, 0, 0.75],\n        \"177\": [0.08333, 0.58333, 0, 0, 0.77778],\n        \"198\": [0, 0.68333, 0, 0, 0.90278],\n        \"215\": [0.08333, 0.58333, 0, 0, 0.77778],\n        \"216\": [0.04861, 0.73194, 0, 0, 0.77778],\n        \"223\": [0, 0.69444, 0, 0, 0.5],\n        \"230\": [0, 0.43056, 0, 0, 0.72222],\n        \"247\": [0.08333, 0.58333, 0, 0, 0.77778],\n        \"248\": [0.09722, 0.52778, 0, 0, 0.5],\n        \"305\": [0, 0.43056, 0, 0, 0.27778],\n        \"338\": [0, 0.68333, 0, 0, 1.01389],\n        \"339\": [0, 0.43056, 0, 0, 0.77778],\n        \"567\": [0.19444, 0.43056, 0, 0, 0.30556],\n        \"710\": [0, 0.69444, 0, 0, 0.5],\n        \"711\": [0, 0.62847, 0, 0, 0.5],\n        \"713\": [0, 0.56778, 0, 0, 0.5],\n        \"714\": [0, 0.69444, 0, 0, 0.5],\n        \"715\": [0, 0.69444, 0, 0, 0.5],\n        \"728\": [0, 0.69444, 0, 0, 0.5],\n        \"729\": [0, 0.66786, 0, 0, 0.27778],\n        \"730\": [0, 0.69444, 0, 0, 0.75],\n        \"732\": [0, 0.66786, 0, 0, 0.5],\n        \"733\": [0, 0.69444, 0, 0, 0.5],\n        \"824\": [0.19444, 0.69444, 0, 0, 0],\n        \"915\": [0, 0.68333, 0, 0, 0.625],\n        \"916\": [0, 0.68333, 0, 0, 0.83334],\n        \"920\": [0, 0.68333, 0, 0, 0.77778],\n        \"923\": [0, 0.68333, 0, 0, 0.69445],\n        \"926\": [0, 0.68333, 0, 0, 0.66667],\n        \"928\": [0, 0.68333, 0, 0, 0.75],\n        \"931\": [0, 0.68333, 0, 0, 0.72222],\n        \"933\": [0, 0.68333, 0, 0, 0.77778],\n        \"934\": [0, 0.68333, 0, 0, 0.72222],\n        \"936\": [0, 0.68333, 0, 0, 0.77778],\n        \"937\": [0, 0.68333, 0, 0, 0.72222],\n        \"8211\": [0, 0.43056, 0.02778, 0, 0.5],\n        \"8212\": [0, 0.43056, 0.02778, 0, 1.0],\n        \"8216\": [0, 0.69444, 0, 0, 0.27778],\n        \"8217\": [0, 0.69444, 0, 0, 0.27778],\n        \"8220\": [0, 0.69444, 0, 0, 0.5],\n        \"8221\": [0, 0.69444, 0, 0, 0.5],\n        \"8224\": [0.19444, 0.69444, 0, 0, 0.44445],\n        \"8225\": [0.19444, 0.69444, 0, 0, 0.44445],\n        \"8230\": [0, 0.12, 0, 0, 1015],\n        \"8242\": [0, 0.55556, 0, 0, 0.275],\n        \"8407\": [0, 0.71444, 0.15382, 0, 0.5],\n        \"8463\": [0, 0.68889, 0, 0, 0.54028],\n        \"8465\": [0, 0.69444, 0, 0, 0.72222],\n        \"8467\": [0, 0.69444, 0, 0.11111, 0.41667],\n        \"8472\": [0.19444, 0.43056, 0, 0.11111, 0.63646],\n        \"8476\": [0, 0.69444, 0, 0, 0.72222],\n        \"8501\": [0, 0.69444, 0, 0, 0.61111],\n        \"8592\": [-0.13313, 0.36687, 0, 0, 1.0],\n        \"8593\": [0.19444, 0.69444, 0, 0, 0.5],\n        \"8594\": [-0.13313, 0.36687, 0, 0, 1.0],\n        \"8595\": [0.19444, 0.69444, 0, 0, 0.5],\n        \"8596\": [-0.13313, 0.36687, 0, 0, 1.0],\n        \"8597\": [0.25, 0.75, 0, 0, 0.5],\n        \"8598\": [0.19444, 0.69444, 0, 0, 1.0],\n        \"8599\": [0.19444, 0.69444, 0, 0, 1.0],\n        \"8600\": [0.19444, 0.69444, 0, 0, 1.0],\n        \"8601\": [0.19444, 0.69444, 0, 0, 1.0],\n        \"8614\": [0.011, 0.511, 0, 0, 889],\n        \"8617\": [0.011, 0.511, 0, 0, 1015],\n        \"8618\": [0.011, 0.511, 0, 0, 1015],\n        \"8636\": [-0.13313, 0.36687, 0, 0, 1.0],\n        \"8637\": [-0.13313, 0.36687, 0, 0, 1.0],\n        \"8640\": [-0.13313, 0.36687, 0, 0, 1.0],\n        \"8641\": [-0.13313, 0.36687, 0, 0, 1.0],\n        \"8652\": [0.011, 0.671, 0, 0, 889],\n        \"8656\": [-0.13313, 0.36687, 0, 0, 1.0],\n        \"8657\": [0.19444, 0.69444, 0, 0, 0.61111],\n        \"8658\": [-0.13313, 0.36687, 0, 0, 1.0],\n        \"8659\": [0.19444, 0.69444, 0, 0, 0.61111],\n        \"8660\": [-0.13313, 0.36687, 0, 0, 1.0],\n        \"8661\": [0.25, 0.75, 0, 0, 0.61111],\n        \"8704\": [0, 0.69444, 0, 0, 0.55556],\n        \"8706\": [0, 0.69444, 0.05556, 0.08334, 0.5309],\n        \"8707\": [0, 0.69444, 0, 0, 0.55556],\n        \"8709\": [0.05556, 0.75, 0, 0, 0.5],\n        \"8711\": [0, 0.68333, 0, 0, 0.83334],\n        \"8712\": [0.0391, 0.5391, 0, 0, 0.66667],\n        \"8715\": [0.0391, 0.5391, 0, 0, 0.66667],\n        \"8722\": [0.08333, 0.58333, 0, 0, 0.77778],\n        \"8723\": [0.08333, 0.58333, 0, 0, 0.77778],\n        \"8725\": [0.25, 0.75, 0, 0, 0.5],\n        \"8726\": [0.25, 0.75, 0, 0, 0.5],\n        \"8727\": [-0.03472, 0.46528, 0, 0, 0.5],\n        \"8728\": [-0.05555, 0.44445, 0, 0, 0.5],\n        \"8729\": [-0.05555, 0.44445, 0, 0, 0.5],\n        \"8730\": [0.2, 0.8, 0, 0, 0.83334],\n        \"8733\": [0, 0.43056, 0, 0, 0.77778],\n        \"8734\": [0, 0.43056, 0, 0, 1.0],\n        \"8736\": [0, 0.69224, 0, 0, 0.72222],\n        \"8739\": [0.25, 0.75, 0, 0, 0.27778],\n        \"8741\": [0.25, 0.75, 0, 0, 0.5],\n        \"8743\": [0, 0.55556, 0, 0, 0.66667],\n        \"8744\": [0, 0.55556, 0, 0, 0.66667],\n        \"8745\": [0, 0.55556, 0, 0, 0.66667],\n        \"8746\": [0, 0.55556, 0, 0, 0.66667],\n        \"8747\": [0.19444, 0.69444, 0.11111, 0, 0.41667],\n        \"8764\": [-0.13313, 0.36687, 0, 0, 0.77778],\n        \"8768\": [0.19444, 0.69444, 0, 0, 0.27778],\n        \"8771\": [-0.03625, 0.46375, 0, 0, 0.77778],\n        \"8773\": [-0.022, 0.589, 0, 0, 667],\n        \"8776\": [-0.01688, 0.48312, 0, 0, 0.77778],\n        \"8781\": [-0.03625, 0.46375, 0, 0, 0.77778],\n        \"8784\": [-0.133, 0.67, 0, 0, 666],\n        \"8800\": [0.215, 0.716, 0, 0, 666],\n        \"8801\": [-0.03625, 0.46375, 0, 0, 0.77778],\n        \"8804\": [0.13597, 0.63597, 0, 0, 0.77778],\n        \"8805\": [0.13597, 0.63597, 0, 0, 0.77778],\n        \"8810\": [0.0391, 0.5391, 0, 0, 1.0],\n        \"8811\": [0.0391, 0.5391, 0, 0, 1.0],\n        \"8826\": [0.0391, 0.5391, 0, 0, 0.77778],\n        \"8827\": [0.0391, 0.5391, 0, 0, 0.77778],\n        \"8834\": [0.0391, 0.5391, 0, 0, 0.77778],\n        \"8835\": [0.0391, 0.5391, 0, 0, 0.77778],\n        \"8838\": [0.13597, 0.63597, 0, 0, 0.77778],\n        \"8839\": [0.13597, 0.63597, 0, 0, 0.77778],\n        \"8846\": [0, 0.55556, 0, 0, 0.66667],\n        \"8849\": [0.13597, 0.63597, 0, 0, 0.77778],\n        \"8850\": [0.13597, 0.63597, 0, 0, 0.77778],\n        \"8851\": [0, 0.55556, 0, 0, 0.66667],\n        \"8852\": [0, 0.55556, 0, 0, 0.66667],\n        \"8853\": [0.08333, 0.58333, 0, 0, 0.77778],\n        \"8854\": [0.08333, 0.58333, 0, 0, 0.77778],\n        \"8855\": [0.08333, 0.58333, 0, 0, 0.77778],\n        \"8856\": [0.08333, 0.58333, 0, 0, 0.77778],\n        \"8857\": [0.08333, 0.58333, 0, 0, 0.77778],\n        \"8866\": [0, 0.69444, 0, 0, 0.61111],\n        \"8867\": [0, 0.69444, 0, 0, 0.61111],\n        \"8868\": [0, 0.69444, 0, 0, 0.77778],\n        \"8869\": [0, 0.69444, 0, 0, 0.77778],\n        \"8872\": [0.249, 0.75, 0, 0, 692],\n        \"8900\": [-0.05555, 0.44445, 0, 0, 0.5],\n        \"8901\": [-0.05555, 0.44445, 0, 0, 0.27778],\n        \"8902\": [-0.03472, 0.46528, 0, 0, 0.5],\n        \"8904\": [0.005, 0.505, 0, 0, 847],\n        \"8942\": [0.03, 0.9, 0, 0, 121],\n        \"8943\": [-0.19, 0.31, 0, 0, 1015],\n        \"8945\": [-0.1, 0.82, 0, 0, 1015],\n        \"8968\": [0.25, 0.75, 0, 0, 0.44445],\n        \"8969\": [0.25, 0.75, 0, 0, 0.44445],\n        \"8970\": [0.25, 0.75, 0, 0, 0.44445],\n        \"8971\": [0.25, 0.75, 0, 0, 0.44445],\n        \"8994\": [-0.14236, 0.35764, 0, 0, 1.0],\n        \"8995\": [-0.14236, 0.35764, 0, 0, 1.0],\n        \"9136\": [0.244, 0.744, 0, 0, 301],\n        \"9137\": [0.244, 0.744, 0, 0, 301],\n        \"9651\": [0.19444, 0.69444, 0, 0, 0.88889],\n        \"9657\": [-0.03472, 0.46528, 0, 0, 0.5],\n        \"9661\": [0.19444, 0.69444, 0, 0, 0.88889],\n        \"9667\": [-0.03472, 0.46528, 0, 0, 0.5],\n        \"9711\": [0.19444, 0.69444, 0, 0, 1.0],\n        \"9824\": [0.12963, 0.69444, 0, 0, 0.77778],\n        \"9825\": [0.12963, 0.69444, 0, 0, 0.77778],\n        \"9826\": [0.12963, 0.69444, 0, 0, 0.77778],\n        \"9827\": [0.12963, 0.69444, 0, 0, 0.77778],\n        \"9837\": [0, 0.75, 0, 0, 0.38889],\n        \"9838\": [0.19444, 0.69444, 0, 0, 0.38889],\n        \"9839\": [0.19444, 0.69444, 0, 0, 0.38889],\n        \"10216\": [0.25, 0.75, 0, 0, 0.38889],\n        \"10217\": [0.25, 0.75, 0, 0, 0.38889],\n        \"10222\": [0.244, 0.744, 0, 0, 184],\n        \"10223\": [0.244, 0.744, 0, 0, 184],\n        \"10229\": [0.011, 0.511, 0, 0, 1470],\n        \"10230\": [0.011, 0.511, 0, 0, 1469],\n        \"10231\": [0.011, 0.511, 0, 0, 1748],\n        \"10232\": [0.024, 0.525, 0, 0, 1497],\n        \"10233\": [0.024, 0.525, 0, 0, 1526],\n        \"10234\": [0.024, 0.525, 0, 0, 1746],\n        \"10236\": [0.011, 0.511, 0, 0, 1498],\n        \"10815\": [0, 0.68333, 0, 0, 0.75],\n        \"10927\": [0.13597, 0.63597, 0, 0, 0.77778],\n        \"10928\": [0.13597, 0.63597, 0, 0, 0.77778]\n    },\n    \"Math-BoldItalic\": {\n        \"47\": [0.19444, 0.69444, 0, 0, 0],\n        \"65\": [0, 0.68611, 0, 0, 0.86944],\n        \"66\": [0, 0.68611, 0.04835, 0, 0.8664],\n        \"67\": [0, 0.68611, 0.06979, 0, 0.81694],\n        \"68\": [0, 0.68611, 0.03194, 0, 0.93812],\n        \"69\": [0, 0.68611, 0.05451, 0, 0.81007],\n        \"70\": [0, 0.68611, 0.15972, 0, 0.68889],\n        \"71\": [0, 0.68611, 0, 0, 0.88673],\n        \"72\": [0, 0.68611, 0.08229, 0, 0.98229],\n        \"73\": [0, 0.68611, 0.07778, 0, 0.51111],\n        \"74\": [0, 0.68611, 0.10069, 0, 0.63125],\n        \"75\": [0, 0.68611, 0.06979, 0, 0.97118],\n        \"76\": [0, 0.68611, 0, 0, 0.75555],\n        \"77\": [0, 0.68611, 0.11424, 0, 1.14201],\n        \"78\": [0, 0.68611, 0.11424, 0, 0.95034],\n        \"79\": [0, 0.68611, 0.03194, 0, 0.83666],\n        \"80\": [0, 0.68611, 0.15972, 0, 0.72309],\n        \"81\": [0.19444, 0.68611, 0, 0, 0.86861],\n        \"82\": [0, 0.68611, 0.00421, 0, 0.87235],\n        \"83\": [0, 0.68611, 0.05382, 0, 0.69271],\n        \"84\": [0, 0.68611, 0.15972, 0, 0.63663],\n        \"85\": [0, 0.68611, 0.11424, 0, 0.80027],\n        \"86\": [0, 0.68611, 0.25555, 0, 0.67778],\n        \"87\": [0, 0.68611, 0.15972, 0, 1.09305],\n        \"88\": [0, 0.68611, 0.07778, 0, 0.94722],\n        \"89\": [0, 0.68611, 0.25555, 0, 0.67458],\n        \"90\": [0, 0.68611, 0.06979, 0, 0.77257],\n        \"97\": [0, 0.44444, 0, 0, 0.63287],\n        \"98\": [0, 0.69444, 0, 0, 0.52083],\n        \"99\": [0, 0.44444, 0, 0, 0.51342],\n        \"100\": [0, 0.69444, 0, 0, 0.60972],\n        \"101\": [0, 0.44444, 0, 0, 0.55361],\n        \"102\": [0.19444, 0.69444, 0.11042, 0, 0.56806],\n        \"103\": [0.19444, 0.44444, 0.03704, 0, 0.5449],\n        \"104\": [0, 0.69444, 0, 0, 0.66759],\n        \"105\": [0, 0.69326, 0, 0, 0.4048],\n        \"106\": [0.19444, 0.69326, 0.0622, 0, 0.47083],\n        \"107\": [0, 0.69444, 0.01852, 0, 0.6037],\n        \"108\": [0, 0.69444, 0.0088, 0, 0.34815],\n        \"109\": [0, 0.44444, 0, 0, 1.0324],\n        \"110\": [0, 0.44444, 0, 0, 0.71296],\n        \"111\": [0, 0.44444, 0, 0, 0.58472],\n        \"112\": [0.19444, 0.44444, 0, 0, 0.60092],\n        \"113\": [0.19444, 0.44444, 0.03704, 0, 0.54213],\n        \"114\": [0, 0.44444, 0.03194, 0, 0.5287],\n        \"115\": [0, 0.44444, 0, 0, 0.53125],\n        \"116\": [0, 0.63492, 0, 0, 0.41528],\n        \"117\": [0, 0.44444, 0, 0, 0.68102],\n        \"118\": [0, 0.44444, 0.03704, 0, 0.56666],\n        \"119\": [0, 0.44444, 0.02778, 0, 0.83148],\n        \"120\": [0, 0.44444, 0, 0, 0.65903],\n        \"121\": [0.19444, 0.44444, 0.03704, 0, 0.59028],\n        \"122\": [0, 0.44444, 0.04213, 0, 0.55509],\n        \"915\": [0, 0.68611, 0.15972, 0, 0.65694],\n        \"916\": [0, 0.68611, 0, 0, 0.95833],\n        \"920\": [0, 0.68611, 0.03194, 0, 0.86722],\n        \"923\": [0, 0.68611, 0, 0, 0.80555],\n        \"926\": [0, 0.68611, 0.07458, 0, 0.84125],\n        \"928\": [0, 0.68611, 0.08229, 0, 0.98229],\n        \"931\": [0, 0.68611, 0.05451, 0, 0.88507],\n        \"933\": [0, 0.68611, 0.15972, 0, 0.67083],\n        \"934\": [0, 0.68611, 0, 0, 0.76666],\n        \"936\": [0, 0.68611, 0.11653, 0, 0.71402],\n        \"937\": [0, 0.68611, 0.04835, 0, 0.8789],\n        \"945\": [0, 0.44444, 0, 0, 0.76064],\n        \"946\": [0.19444, 0.69444, 0.03403, 0, 0.65972],\n        \"947\": [0.19444, 0.44444, 0.06389, 0, 0.59003],\n        \"948\": [0, 0.69444, 0.03819, 0, 0.52222],\n        \"949\": [0, 0.44444, 0, 0, 0.52882],\n        \"950\": [0.19444, 0.69444, 0.06215, 0, 0.50833],\n        \"951\": [0.19444, 0.44444, 0.03704, 0, 0.6],\n        \"952\": [0, 0.69444, 0.03194, 0, 0.5618],\n        \"953\": [0, 0.44444, 0, 0, 0.41204],\n        \"954\": [0, 0.44444, 0, 0, 0.66759],\n        \"955\": [0, 0.69444, 0, 0, 0.67083],\n        \"956\": [0.19444, 0.44444, 0, 0, 0.70787],\n        \"957\": [0, 0.44444, 0.06898, 0, 0.57685],\n        \"958\": [0.19444, 0.69444, 0.03021, 0, 0.50833],\n        \"959\": [0, 0.44444, 0, 0, 0.58472],\n        \"960\": [0, 0.44444, 0.03704, 0, 0.68241],\n        \"961\": [0.19444, 0.44444, 0, 0, 0.6118],\n        \"962\": [0.09722, 0.44444, 0.07917, 0, 0.42361],\n        \"963\": [0, 0.44444, 0.03704, 0, 0.68588],\n        \"964\": [0, 0.44444, 0.13472, 0, 0.52083],\n        \"965\": [0, 0.44444, 0.03704, 0, 0.63055],\n        \"966\": [0.19444, 0.44444, 0, 0, 0.74722],\n        \"967\": [0.19444, 0.44444, 0, 0, 0.71805],\n        \"968\": [0.19444, 0.69444, 0.03704, 0, 0.75833],\n        \"969\": [0, 0.44444, 0.03704, 0, 0.71782],\n        \"977\": [0, 0.69444, 0, 0, 0.69155],\n        \"981\": [0.19444, 0.69444, 0, 0, 0.7125],\n        \"982\": [0, 0.44444, 0.03194, 0, 0.975],\n        \"1009\": [0.19444, 0.44444, 0, 0, 0.6118],\n        \"1013\": [0, 0.44444, 0, 0, 0.48333]\n    },\n    \"Math-Italic\": {\n        \"47\": [0.19444, 0.69444, 0, 0, 0],\n        \"65\": [0, 0.68333, 0, 0.13889, 0.75],\n        \"66\": [0, 0.68333, 0.05017, 0.08334, 0.75851],\n        \"67\": [0, 0.68333, 0.07153, 0.08334, 0.71472],\n        \"68\": [0, 0.68333, 0.02778, 0.05556, 0.82792],\n        \"69\": [0, 0.68333, 0.05764, 0.08334, 0.7382],\n        \"70\": [0, 0.68333, 0.13889, 0.08334, 0.64306],\n        \"71\": [0, 0.68333, 0, 0.08334, 0.78625],\n        \"72\": [0, 0.68333, 0.08125, 0.05556, 0.83125],\n        \"73\": [0, 0.68333, 0.07847, 0.11111, 0.43958],\n        \"74\": [0, 0.68333, 0.09618, 0.16667, 0.55451],\n        \"75\": [0, 0.68333, 0.07153, 0.05556, 0.84931],\n        \"76\": [0, 0.68333, 0, 0.02778, 0.68056],\n        \"77\": [0, 0.68333, 0.10903, 0.08334, 0.97014],\n        \"78\": [0, 0.68333, 0.10903, 0.08334, 0.80347],\n        \"79\": [0, 0.68333, 0.02778, 0.08334, 0.76278],\n        \"80\": [0, 0.68333, 0.13889, 0.08334, 0.64201],\n        \"81\": [0.19444, 0.68333, 0, 0.08334, 0.79056],\n        \"82\": [0, 0.68333, 0.00773, 0.08334, 0.75929],\n        \"83\": [0, 0.68333, 0.05764, 0.08334, 0.6132],\n        \"84\": [0, 0.68333, 0.13889, 0.08334, 0.58438],\n        \"85\": [0, 0.68333, 0.10903, 0.02778, 0.68278],\n        \"86\": [0, 0.68333, 0.22222, 0, 0.58333],\n        \"87\": [0, 0.68333, 0.13889, 0, 0.94445],\n        \"88\": [0, 0.68333, 0.07847, 0.08334, 0.82847],\n        \"89\": [0, 0.68333, 0.22222, 0, 0.58056],\n        \"90\": [0, 0.68333, 0.07153, 0.08334, 0.68264],\n        \"97\": [0, 0.43056, 0, 0, 0.52859],\n        \"98\": [0, 0.69444, 0, 0, 0.42917],\n        \"99\": [0, 0.43056, 0, 0.05556, 0.43276],\n        \"100\": [0, 0.69444, 0, 0.16667, 0.52049],\n        \"101\": [0, 0.43056, 0, 0.05556, 0.46563],\n        \"102\": [0.19444, 0.69444, 0.10764, 0.16667, 0.48959],\n        \"103\": [0.19444, 0.43056, 0.03588, 0.02778, 0.47697],\n        \"104\": [0, 0.69444, 0, 0, 0.57616],\n        \"105\": [0, 0.65952, 0, 0, 0.34451],\n        \"106\": [0.19444, 0.65952, 0.05724, 0, 0.41181],\n        \"107\": [0, 0.69444, 0.03148, 0, 0.5206],\n        \"108\": [0, 0.69444, 0.01968, 0.08334, 0.29838],\n        \"109\": [0, 0.43056, 0, 0, 0.87801],\n        \"110\": [0, 0.43056, 0, 0, 0.60023],\n        \"111\": [0, 0.43056, 0, 0.05556, 0.48472],\n        \"112\": [0.19444, 0.43056, 0, 0.08334, 0.50313],\n        \"113\": [0.19444, 0.43056, 0.03588, 0.08334, 0.44641],\n        \"114\": [0, 0.43056, 0.02778, 0.05556, 0.45116],\n        \"115\": [0, 0.43056, 0, 0.05556, 0.46875],\n        \"116\": [0, 0.61508, 0, 0.08334, 0.36111],\n        \"117\": [0, 0.43056, 0, 0.02778, 0.57246],\n        \"118\": [0, 0.43056, 0.03588, 0.02778, 0.48472],\n        \"119\": [0, 0.43056, 0.02691, 0.08334, 0.71592],\n        \"120\": [0, 0.43056, 0, 0.02778, 0.57153],\n        \"121\": [0.19444, 0.43056, 0.03588, 0.05556, 0.49028],\n        \"122\": [0, 0.43056, 0.04398, 0.05556, 0.46505],\n        \"915\": [0, 0.68333, 0.13889, 0.08334, 0.61528],\n        \"916\": [0, 0.68333, 0, 0.16667, 0.83334],\n        \"920\": [0, 0.68333, 0.02778, 0.08334, 0.76278],\n        \"923\": [0, 0.68333, 0, 0.16667, 0.69445],\n        \"926\": [0, 0.68333, 0.07569, 0.08334, 0.74236],\n        \"928\": [0, 0.68333, 0.08125, 0.05556, 0.83125],\n        \"931\": [0, 0.68333, 0.05764, 0.08334, 0.77986],\n        \"933\": [0, 0.68333, 0.13889, 0.05556, 0.58333],\n        \"934\": [0, 0.68333, 0, 0.08334, 0.66667],\n        \"936\": [0, 0.68333, 0.11, 0.05556, 0.61222],\n        \"937\": [0, 0.68333, 0.05017, 0.08334, 0.7724],\n        \"945\": [0, 0.43056, 0.0037, 0.02778, 0.6397],\n        \"946\": [0.19444, 0.69444, 0.05278, 0.08334, 0.56563],\n        \"947\": [0.19444, 0.43056, 0.05556, 0, 0.51773],\n        \"948\": [0, 0.69444, 0.03785, 0.05556, 0.44444],\n        \"949\": [0, 0.43056, 0, 0.08334, 0.46632],\n        \"950\": [0.19444, 0.69444, 0.07378, 0.08334, 0.4375],\n        \"951\": [0.19444, 0.43056, 0.03588, 0.05556, 0.49653],\n        \"952\": [0, 0.69444, 0.02778, 0.08334, 0.46944],\n        \"953\": [0, 0.43056, 0, 0.05556, 0.35394],\n        \"954\": [0, 0.43056, 0, 0, 0.57616],\n        \"955\": [0, 0.69444, 0, 0, 0.58334],\n        \"956\": [0.19444, 0.43056, 0, 0.02778, 0.60255],\n        \"957\": [0, 0.43056, 0.06366, 0.02778, 0.49398],\n        \"958\": [0.19444, 0.69444, 0.04601, 0.11111, 0.4375],\n        \"959\": [0, 0.43056, 0, 0.05556, 0.48472],\n        \"960\": [0, 0.43056, 0.03588, 0, 0.57003],\n        \"961\": [0.19444, 0.43056, 0, 0.08334, 0.51702],\n        \"962\": [0.09722, 0.43056, 0.07986, 0.08334, 0.36285],\n        \"963\": [0, 0.43056, 0.03588, 0, 0.57141],\n        \"964\": [0, 0.43056, 0.1132, 0.02778, 0.43715],\n        \"965\": [0, 0.43056, 0.03588, 0.02778, 0.54028],\n        \"966\": [0.19444, 0.43056, 0, 0.08334, 0.65417],\n        \"967\": [0.19444, 0.43056, 0, 0.05556, 0.62569],\n        \"968\": [0.19444, 0.69444, 0.03588, 0.11111, 0.65139],\n        \"969\": [0, 0.43056, 0.03588, 0, 0.62245],\n        \"977\": [0, 0.69444, 0, 0.08334, 0.59144],\n        \"981\": [0.19444, 0.69444, 0, 0.08334, 0.59583],\n        \"982\": [0, 0.43056, 0.02778, 0, 0.82813],\n        \"1009\": [0.19444, 0.43056, 0, 0.08334, 0.51702],\n        \"1013\": [0, 0.43056, 0, 0.05556, 0.4059]\n    },\n    \"Math-Regular\": {\n        \"65\": [0, 0.68333, 0, 0.13889, 0.75],\n        \"66\": [0, 0.68333, 0.05017, 0.08334, 0.75851],\n        \"67\": [0, 0.68333, 0.07153, 0.08334, 0.71472],\n        \"68\": [0, 0.68333, 0.02778, 0.05556, 0.82792],\n        \"69\": [0, 0.68333, 0.05764, 0.08334, 0.7382],\n        \"70\": [0, 0.68333, 0.13889, 0.08334, 0.64306],\n        \"71\": [0, 0.68333, 0, 0.08334, 0.78625],\n        \"72\": [0, 0.68333, 0.08125, 0.05556, 0.83125],\n        \"73\": [0, 0.68333, 0.07847, 0.11111, 0.43958],\n        \"74\": [0, 0.68333, 0.09618, 0.16667, 0.55451],\n        \"75\": [0, 0.68333, 0.07153, 0.05556, 0.84931],\n        \"76\": [0, 0.68333, 0, 0.02778, 0.68056],\n        \"77\": [0, 0.68333, 0.10903, 0.08334, 0.97014],\n        \"78\": [0, 0.68333, 0.10903, 0.08334, 0.80347],\n        \"79\": [0, 0.68333, 0.02778, 0.08334, 0.76278],\n        \"80\": [0, 0.68333, 0.13889, 0.08334, 0.64201],\n        \"81\": [0.19444, 0.68333, 0, 0.08334, 0.79056],\n        \"82\": [0, 0.68333, 0.00773, 0.08334, 0.75929],\n        \"83\": [0, 0.68333, 0.05764, 0.08334, 0.6132],\n        \"84\": [0, 0.68333, 0.13889, 0.08334, 0.58438],\n        \"85\": [0, 0.68333, 0.10903, 0.02778, 0.68278],\n        \"86\": [0, 0.68333, 0.22222, 0, 0.58333],\n        \"87\": [0, 0.68333, 0.13889, 0, 0.94445],\n        \"88\": [0, 0.68333, 0.07847, 0.08334, 0.82847],\n        \"89\": [0, 0.68333, 0.22222, 0, 0.58056],\n        \"90\": [0, 0.68333, 0.07153, 0.08334, 0.68264],\n        \"97\": [0, 0.43056, 0, 0, 0.52859],\n        \"98\": [0, 0.69444, 0, 0, 0.42917],\n        \"99\": [0, 0.43056, 0, 0.05556, 0.43276],\n        \"100\": [0, 0.69444, 0, 0.16667, 0.52049],\n        \"101\": [0, 0.43056, 0, 0.05556, 0.46563],\n        \"102\": [0.19444, 0.69444, 0.10764, 0.16667, 0.48959],\n        \"103\": [0.19444, 0.43056, 0.03588, 0.02778, 0.47697],\n        \"104\": [0, 0.69444, 0, 0, 0.57616],\n        \"105\": [0, 0.65952, 0, 0, 0.34451],\n        \"106\": [0.19444, 0.65952, 0.05724, 0, 0.41181],\n        \"107\": [0, 0.69444, 0.03148, 0, 0.5206],\n        \"108\": [0, 0.69444, 0.01968, 0.08334, 0.29838],\n        \"109\": [0, 0.43056, 0, 0, 0.87801],\n        \"110\": [0, 0.43056, 0, 0, 0.60023],\n        \"111\": [0, 0.43056, 0, 0.05556, 0.48472],\n        \"112\": [0.19444, 0.43056, 0, 0.08334, 0.50313],\n        \"113\": [0.19444, 0.43056, 0.03588, 0.08334, 0.44641],\n        \"114\": [0, 0.43056, 0.02778, 0.05556, 0.45116],\n        \"115\": [0, 0.43056, 0, 0.05556, 0.46875],\n        \"116\": [0, 0.61508, 0, 0.08334, 0.36111],\n        \"117\": [0, 0.43056, 0, 0.02778, 0.57246],\n        \"118\": [0, 0.43056, 0.03588, 0.02778, 0.48472],\n        \"119\": [0, 0.43056, 0.02691, 0.08334, 0.71592],\n        \"120\": [0, 0.43056, 0, 0.02778, 0.57153],\n        \"121\": [0.19444, 0.43056, 0.03588, 0.05556, 0.49028],\n        \"122\": [0, 0.43056, 0.04398, 0.05556, 0.46505],\n        \"915\": [0, 0.68333, 0.13889, 0.08334, 0.61528],\n        \"916\": [0, 0.68333, 0, 0.16667, 0.83334],\n        \"920\": [0, 0.68333, 0.02778, 0.08334, 0.76278],\n        \"923\": [0, 0.68333, 0, 0.16667, 0.69445],\n        \"926\": [0, 0.68333, 0.07569, 0.08334, 0.74236],\n        \"928\": [0, 0.68333, 0.08125, 0.05556, 0.83125],\n        \"931\": [0, 0.68333, 0.05764, 0.08334, 0.77986],\n        \"933\": [0, 0.68333, 0.13889, 0.05556, 0.58333],\n        \"934\": [0, 0.68333, 0, 0.08334, 0.66667],\n        \"936\": [0, 0.68333, 0.11, 0.05556, 0.61222],\n        \"937\": [0, 0.68333, 0.05017, 0.08334, 0.7724],\n        \"945\": [0, 0.43056, 0.0037, 0.02778, 0.6397],\n        \"946\": [0.19444, 0.69444, 0.05278, 0.08334, 0.56563],\n        \"947\": [0.19444, 0.43056, 0.05556, 0, 0.51773],\n        \"948\": [0, 0.69444, 0.03785, 0.05556, 0.44444],\n        \"949\": [0, 0.43056, 0, 0.08334, 0.46632],\n        \"950\": [0.19444, 0.69444, 0.07378, 0.08334, 0.4375],\n        \"951\": [0.19444, 0.43056, 0.03588, 0.05556, 0.49653],\n        \"952\": [0, 0.69444, 0.02778, 0.08334, 0.46944],\n        \"953\": [0, 0.43056, 0, 0.05556, 0.35394],\n        \"954\": [0, 0.43056, 0, 0, 0.57616],\n        \"955\": [0, 0.69444, 0, 0, 0.58334],\n        \"956\": [0.19444, 0.43056, 0, 0.02778, 0.60255],\n        \"957\": [0, 0.43056, 0.06366, 0.02778, 0.49398],\n        \"958\": [0.19444, 0.69444, 0.04601, 0.11111, 0.4375],\n        \"959\": [0, 0.43056, 0, 0.05556, 0.48472],\n        \"960\": [0, 0.43056, 0.03588, 0, 0.57003],\n        \"961\": [0.19444, 0.43056, 0, 0.08334, 0.51702],\n        \"962\": [0.09722, 0.43056, 0.07986, 0.08334, 0.36285],\n        \"963\": [0, 0.43056, 0.03588, 0, 0.57141],\n        \"964\": [0, 0.43056, 0.1132, 0.02778, 0.43715],\n        \"965\": [0, 0.43056, 0.03588, 0.02778, 0.54028],\n        \"966\": [0.19444, 0.43056, 0, 0.08334, 0.65417],\n        \"967\": [0.19444, 0.43056, 0, 0.05556, 0.62569],\n        \"968\": [0.19444, 0.69444, 0.03588, 0.11111, 0.65139],\n        \"969\": [0, 0.43056, 0.03588, 0, 0.62245],\n        \"977\": [0, 0.69444, 0, 0.08334, 0.59144],\n        \"981\": [0.19444, 0.69444, 0, 0.08334, 0.59583],\n        \"982\": [0, 0.43056, 0.02778, 0, 0.82813],\n        \"1009\": [0.19444, 0.43056, 0, 0.08334, 0.51702],\n        \"1013\": [0, 0.43056, 0, 0.05556, 0.4059]\n    },\n    \"SansSerif-Bold\": {\n        \"33\": [0, 0.69444, 0, 0, 0.36667],\n        \"34\": [0, 0.69444, 0, 0, 0.55834],\n        \"35\": [0.19444, 0.69444, 0, 0, 0.91667],\n        \"36\": [0.05556, 0.75, 0, 0, 0.55],\n        \"37\": [0.05556, 0.75, 0, 0, 1.02912],\n        \"38\": [0, 0.69444, 0, 0, 0.83056],\n        \"39\": [0, 0.69444, 0, 0, 0.30556],\n        \"40\": [0.25, 0.75, 0, 0, 0.42778],\n        \"41\": [0.25, 0.75, 0, 0, 0.42778],\n        \"42\": [0, 0.75, 0, 0, 0.55],\n        \"43\": [0.11667, 0.61667, 0, 0, 0.85556],\n        \"44\": [0.10556, 0.13056, 0, 0, 0.30556],\n        \"45\": [0, 0.45833, 0, 0, 0.36667],\n        \"46\": [0, 0.13056, 0, 0, 0.30556],\n        \"47\": [0.25, 0.75, 0, 0, 0.55],\n        \"48\": [0, 0.69444, 0, 0, 0.55],\n        \"49\": [0, 0.69444, 0, 0, 0.55],\n        \"50\": [0, 0.69444, 0, 0, 0.55],\n        \"51\": [0, 0.69444, 0, 0, 0.55],\n        \"52\": [0, 0.69444, 0, 0, 0.55],\n        \"53\": [0, 0.69444, 0, 0, 0.55],\n        \"54\": [0, 0.69444, 0, 0, 0.55],\n        \"55\": [0, 0.69444, 0, 0, 0.55],\n        \"56\": [0, 0.69444, 0, 0, 0.55],\n        \"57\": [0, 0.69444, 0, 0, 0.55],\n        \"58\": [0, 0.45833, 0, 0, 0.30556],\n        \"59\": [0.10556, 0.45833, 0, 0, 0.30556],\n        \"61\": [-0.09375, 0.40625, 0, 0, 0.85556],\n        \"63\": [0, 0.69444, 0, 0, 0.51945],\n        \"64\": [0, 0.69444, 0, 0, 0.73334],\n        \"65\": [0, 0.69444, 0, 0, 0.73334],\n        \"66\": [0, 0.69444, 0, 0, 0.73334],\n        \"67\": [0, 0.69444, 0, 0, 0.70278],\n        \"68\": [0, 0.69444, 0, 0, 0.79445],\n        \"69\": [0, 0.69444, 0, 0, 0.64167],\n        \"70\": [0, 0.69444, 0, 0, 0.61111],\n        \"71\": [0, 0.69444, 0, 0, 0.73334],\n        \"72\": [0, 0.69444, 0, 0, 0.79445],\n        \"73\": [0, 0.69444, 0, 0, 0.33056],\n        \"74\": [0, 0.69444, 0, 0, 0.51945],\n        \"75\": [0, 0.69444, 0, 0, 0.76389],\n        \"76\": [0, 0.69444, 0, 0, 0.58056],\n        \"77\": [0, 0.69444, 0, 0, 0.97778],\n        \"78\": [0, 0.69444, 0, 0, 0.79445],\n        \"79\": [0, 0.69444, 0, 0, 0.79445],\n        \"80\": [0, 0.69444, 0, 0, 0.70278],\n        \"81\": [0.10556, 0.69444, 0, 0, 0.79445],\n        \"82\": [0, 0.69444, 0, 0, 0.70278],\n        \"83\": [0, 0.69444, 0, 0, 0.61111],\n        \"84\": [0, 0.69444, 0, 0, 0.73334],\n        \"85\": [0, 0.69444, 0, 0, 0.76389],\n        \"86\": [0, 0.69444, 0.01528, 0, 0.73334],\n        \"87\": [0, 0.69444, 0.01528, 0, 1.03889],\n        \"88\": [0, 0.69444, 0, 0, 0.73334],\n        \"89\": [0, 0.69444, 0.0275, 0, 0.73334],\n        \"90\": [0, 0.69444, 0, 0, 0.67223],\n        \"91\": [0.25, 0.75, 0, 0, 0.34306],\n        \"93\": [0.25, 0.75, 0, 0, 0.34306],\n        \"94\": [0, 0.69444, 0, 0, 0.55],\n        \"95\": [0.35, 0.10833, 0.03056, 0, 0.55],\n        \"97\": [0, 0.45833, 0, 0, 0.525],\n        \"98\": [0, 0.69444, 0, 0, 0.56111],\n        \"99\": [0, 0.45833, 0, 0, 0.48889],\n        \"100\": [0, 0.69444, 0, 0, 0.56111],\n        \"101\": [0, 0.45833, 0, 0, 0.51111],\n        \"102\": [0, 0.69444, 0.07639, 0, 0.33611],\n        \"103\": [0.19444, 0.45833, 0.01528, 0, 0.55],\n        \"104\": [0, 0.69444, 0, 0, 0.56111],\n        \"105\": [0, 0.69444, 0, 0, 0.25556],\n        \"106\": [0.19444, 0.69444, 0, 0, 0.28611],\n        \"107\": [0, 0.69444, 0, 0, 0.53056],\n        \"108\": [0, 0.69444, 0, 0, 0.25556],\n        \"109\": [0, 0.45833, 0, 0, 0.86667],\n        \"110\": [0, 0.45833, 0, 0, 0.56111],\n        \"111\": [0, 0.45833, 0, 0, 0.55],\n        \"112\": [0.19444, 0.45833, 0, 0, 0.56111],\n        \"113\": [0.19444, 0.45833, 0, 0, 0.56111],\n        \"114\": [0, 0.45833, 0.01528, 0, 0.37222],\n        \"115\": [0, 0.45833, 0, 0, 0.42167],\n        \"116\": [0, 0.58929, 0, 0, 0.40417],\n        \"117\": [0, 0.45833, 0, 0, 0.56111],\n        \"118\": [0, 0.45833, 0.01528, 0, 0.5],\n        \"119\": [0, 0.45833, 0.01528, 0, 0.74445],\n        \"120\": [0, 0.45833, 0, 0, 0.5],\n        \"121\": [0.19444, 0.45833, 0.01528, 0, 0.5],\n        \"122\": [0, 0.45833, 0, 0, 0.47639],\n        \"126\": [0.35, 0.34444, 0, 0, 0.55],\n        \"168\": [0, 0.69444, 0, 0, 0.55],\n        \"176\": [0, 0.69444, 0, 0, 0.73334],\n        \"180\": [0, 0.69444, 0, 0, 0.55],\n        \"305\": [0, 0.45833, 0, 0, 0.25556],\n        \"567\": [0.19444, 0.45833, 0, 0, 0.28611],\n        \"710\": [0, 0.69444, 0, 0, 0.55],\n        \"711\": [0, 0.63542, 0, 0, 0.55],\n        \"713\": [0, 0.63778, 0, 0, 0.55],\n        \"728\": [0, 0.69444, 0, 0, 0.55],\n        \"729\": [0, 0.69444, 0, 0, 0.30556],\n        \"730\": [0, 0.69444, 0, 0, 0.73334],\n        \"732\": [0, 0.69444, 0, 0, 0.55],\n        \"733\": [0, 0.69444, 0, 0, 0.55],\n        \"915\": [0, 0.69444, 0, 0, 0.58056],\n        \"916\": [0, 0.69444, 0, 0, 0.91667],\n        \"920\": [0, 0.69444, 0, 0, 0.85556],\n        \"923\": [0, 0.69444, 0, 0, 0.67223],\n        \"926\": [0, 0.69444, 0, 0, 0.73334],\n        \"928\": [0, 0.69444, 0, 0, 0.79445],\n        \"931\": [0, 0.69444, 0, 0, 0.79445],\n        \"933\": [0, 0.69444, 0, 0, 0.85556],\n        \"934\": [0, 0.69444, 0, 0, 0.79445],\n        \"936\": [0, 0.69444, 0, 0, 0.85556],\n        \"937\": [0, 0.69444, 0, 0, 0.79445],\n        \"8211\": [0, 0.45833, 0.03056, 0, 0.55],\n        \"8212\": [0, 0.45833, 0.03056, 0, 1.10001],\n        \"8216\": [0, 0.69444, 0, 0, 0.30556],\n        \"8217\": [0, 0.69444, 0, 0, 0.30556],\n        \"8220\": [0, 0.69444, 0, 0, 0.55834],\n        \"8221\": [0, 0.69444, 0, 0, 0.55834]\n    },\n    \"SansSerif-Italic\": {\n        \"33\": [0, 0.69444, 0.05733, 0, 0.31945],\n        \"34\": [0, 0.69444, 0.00316, 0, 0.5],\n        \"35\": [0.19444, 0.69444, 0.05087, 0, 0.83334],\n        \"36\": [0.05556, 0.75, 0.11156, 0, 0.5],\n        \"37\": [0.05556, 0.75, 0.03126, 0, 0.83334],\n        \"38\": [0, 0.69444, 0.03058, 0, 0.75834],\n        \"39\": [0, 0.69444, 0.07816, 0, 0.27778],\n        \"40\": [0.25, 0.75, 0.13164, 0, 0.38889],\n        \"41\": [0.25, 0.75, 0.02536, 0, 0.38889],\n        \"42\": [0, 0.75, 0.11775, 0, 0.5],\n        \"43\": [0.08333, 0.58333, 0.02536, 0, 0.77778],\n        \"44\": [0.125, 0.08333, 0, 0, 0.27778],\n        \"45\": [0, 0.44444, 0.01946, 0, 0.33333],\n        \"46\": [0, 0.08333, 0, 0, 0.27778],\n        \"47\": [0.25, 0.75, 0.13164, 0, 0.5],\n        \"48\": [0, 0.65556, 0.11156, 0, 0.5],\n        \"49\": [0, 0.65556, 0.11156, 0, 0.5],\n        \"50\": [0, 0.65556, 0.11156, 0, 0.5],\n        \"51\": [0, 0.65556, 0.11156, 0, 0.5],\n        \"52\": [0, 0.65556, 0.11156, 0, 0.5],\n        \"53\": [0, 0.65556, 0.11156, 0, 0.5],\n        \"54\": [0, 0.65556, 0.11156, 0, 0.5],\n        \"55\": [0, 0.65556, 0.11156, 0, 0.5],\n        \"56\": [0, 0.65556, 0.11156, 0, 0.5],\n        \"57\": [0, 0.65556, 0.11156, 0, 0.5],\n        \"58\": [0, 0.44444, 0.02502, 0, 0.27778],\n        \"59\": [0.125, 0.44444, 0.02502, 0, 0.27778],\n        \"61\": [-0.13, 0.37, 0.05087, 0, 0.77778],\n        \"63\": [0, 0.69444, 0.11809, 0, 0.47222],\n        \"64\": [0, 0.69444, 0.07555, 0, 0.66667],\n        \"65\": [0, 0.69444, 0, 0, 0.66667],\n        \"66\": [0, 0.69444, 0.08293, 0, 0.66667],\n        \"67\": [0, 0.69444, 0.11983, 0, 0.63889],\n        \"68\": [0, 0.69444, 0.07555, 0, 0.72223],\n        \"69\": [0, 0.69444, 0.11983, 0, 0.59722],\n        \"70\": [0, 0.69444, 0.13372, 0, 0.56945],\n        \"71\": [0, 0.69444, 0.11983, 0, 0.66667],\n        \"72\": [0, 0.69444, 0.08094, 0, 0.70834],\n        \"73\": [0, 0.69444, 0.13372, 0, 0.27778],\n        \"74\": [0, 0.69444, 0.08094, 0, 0.47222],\n        \"75\": [0, 0.69444, 0.11983, 0, 0.69445],\n        \"76\": [0, 0.69444, 0, 0, 0.54167],\n        \"77\": [0, 0.69444, 0.08094, 0, 0.875],\n        \"78\": [0, 0.69444, 0.08094, 0, 0.70834],\n        \"79\": [0, 0.69444, 0.07555, 0, 0.73611],\n        \"80\": [0, 0.69444, 0.08293, 0, 0.63889],\n        \"81\": [0.125, 0.69444, 0.07555, 0, 0.73611],\n        \"82\": [0, 0.69444, 0.08293, 0, 0.64584],\n        \"83\": [0, 0.69444, 0.09205, 0, 0.55556],\n        \"84\": [0, 0.69444, 0.13372, 0, 0.68056],\n        \"85\": [0, 0.69444, 0.08094, 0, 0.6875],\n        \"86\": [0, 0.69444, 0.1615, 0, 0.66667],\n        \"87\": [0, 0.69444, 0.1615, 0, 0.94445],\n        \"88\": [0, 0.69444, 0.13372, 0, 0.66667],\n        \"89\": [0, 0.69444, 0.17261, 0, 0.66667],\n        \"90\": [0, 0.69444, 0.11983, 0, 0.61111],\n        \"91\": [0.25, 0.75, 0.15942, 0, 0.28889],\n        \"93\": [0.25, 0.75, 0.08719, 0, 0.28889],\n        \"94\": [0, 0.69444, 0.0799, 0, 0.5],\n        \"95\": [0.35, 0.09444, 0.08616, 0, 0.5],\n        \"97\": [0, 0.44444, 0.00981, 0, 0.48056],\n        \"98\": [0, 0.69444, 0.03057, 0, 0.51667],\n        \"99\": [0, 0.44444, 0.08336, 0, 0.44445],\n        \"100\": [0, 0.69444, 0.09483, 0, 0.51667],\n        \"101\": [0, 0.44444, 0.06778, 0, 0.44445],\n        \"102\": [0, 0.69444, 0.21705, 0, 0.30556],\n        \"103\": [0.19444, 0.44444, 0.10836, 0, 0.5],\n        \"104\": [0, 0.69444, 0.01778, 0, 0.51667],\n        \"105\": [0, 0.67937, 0.09718, 0, 0.23889],\n        \"106\": [0.19444, 0.67937, 0.09162, 0, 0.26667],\n        \"107\": [0, 0.69444, 0.08336, 0, 0.48889],\n        \"108\": [0, 0.69444, 0.09483, 0, 0.23889],\n        \"109\": [0, 0.44444, 0.01778, 0, 0.79445],\n        \"110\": [0, 0.44444, 0.01778, 0, 0.51667],\n        \"111\": [0, 0.44444, 0.06613, 0, 0.5],\n        \"112\": [0.19444, 0.44444, 0.0389, 0, 0.51667],\n        \"113\": [0.19444, 0.44444, 0.04169, 0, 0.51667],\n        \"114\": [0, 0.44444, 0.10836, 0, 0.34167],\n        \"115\": [0, 0.44444, 0.0778, 0, 0.38333],\n        \"116\": [0, 0.57143, 0.07225, 0, 0.36111],\n        \"117\": [0, 0.44444, 0.04169, 0, 0.51667],\n        \"118\": [0, 0.44444, 0.10836, 0, 0.46111],\n        \"119\": [0, 0.44444, 0.10836, 0, 0.68334],\n        \"120\": [0, 0.44444, 0.09169, 0, 0.46111],\n        \"121\": [0.19444, 0.44444, 0.10836, 0, 0.46111],\n        \"122\": [0, 0.44444, 0.08752, 0, 0.43472],\n        \"126\": [0.35, 0.32659, 0.08826, 0, 0.5],\n        \"168\": [0, 0.67937, 0.06385, 0, 0.5],\n        \"176\": [0, 0.69444, 0, 0, 0.73752],\n        \"305\": [0, 0.44444, 0.04169, 0, 0.23889],\n        \"567\": [0.19444, 0.44444, 0.04169, 0, 0.26667],\n        \"710\": [0, 0.69444, 0.0799, 0, 0.5],\n        \"711\": [0, 0.63194, 0.08432, 0, 0.5],\n        \"713\": [0, 0.60889, 0.08776, 0, 0.5],\n        \"714\": [0, 0.69444, 0.09205, 0, 0.5],\n        \"715\": [0, 0.69444, 0, 0, 0.5],\n        \"728\": [0, 0.69444, 0.09483, 0, 0.5],\n        \"729\": [0, 0.67937, 0.07774, 0, 0.27778],\n        \"730\": [0, 0.69444, 0, 0, 0.73752],\n        \"732\": [0, 0.67659, 0.08826, 0, 0.5],\n        \"733\": [0, 0.69444, 0.09205, 0, 0.5],\n        \"915\": [0, 0.69444, 0.13372, 0, 0.54167],\n        \"916\": [0, 0.69444, 0, 0, 0.83334],\n        \"920\": [0, 0.69444, 0.07555, 0, 0.77778],\n        \"923\": [0, 0.69444, 0, 0, 0.61111],\n        \"926\": [0, 0.69444, 0.12816, 0, 0.66667],\n        \"928\": [0, 0.69444, 0.08094, 0, 0.70834],\n        \"931\": [0, 0.69444, 0.11983, 0, 0.72222],\n        \"933\": [0, 0.69444, 0.09031, 0, 0.77778],\n        \"934\": [0, 0.69444, 0.04603, 0, 0.72222],\n        \"936\": [0, 0.69444, 0.09031, 0, 0.77778],\n        \"937\": [0, 0.69444, 0.08293, 0, 0.72222],\n        \"8211\": [0, 0.44444, 0.08616, 0, 0.5],\n        \"8212\": [0, 0.44444, 0.08616, 0, 1.0],\n        \"8216\": [0, 0.69444, 0.07816, 0, 0.27778],\n        \"8217\": [0, 0.69444, 0.07816, 0, 0.27778],\n        \"8220\": [0, 0.69444, 0.14205, 0, 0.5],\n        \"8221\": [0, 0.69444, 0.00316, 0, 0.5]\n    },\n    \"SansSerif-Regular\": {\n        \"33\": [0, 0.69444, 0, 0, 0.31945],\n        \"34\": [0, 0.69444, 0, 0, 0.5],\n        \"35\": [0.19444, 0.69444, 0, 0, 0.83334],\n        \"36\": [0.05556, 0.75, 0, 0, 0.5],\n        \"37\": [0.05556, 0.75, 0, 0, 0.83334],\n        \"38\": [0, 0.69444, 0, 0, 0.75834],\n        \"39\": [0, 0.69444, 0, 0, 0.27778],\n        \"40\": [0.25, 0.75, 0, 0, 0.38889],\n        \"41\": [0.25, 0.75, 0, 0, 0.38889],\n        \"42\": [0, 0.75, 0, 0, 0.5],\n        \"43\": [0.08333, 0.58333, 0, 0, 0.77778],\n        \"44\": [0.125, 0.08333, 0, 0, 0.27778],\n        \"45\": [0, 0.44444, 0, 0, 0.33333],\n        \"46\": [0, 0.08333, 0, 0, 0.27778],\n        \"47\": [0.25, 0.75, 0, 0, 0.5],\n        \"48\": [0, 0.65556, 0, 0, 0.5],\n        \"49\": [0, 0.65556, 0, 0, 0.5],\n        \"50\": [0, 0.65556, 0, 0, 0.5],\n        \"51\": [0, 0.65556, 0, 0, 0.5],\n        \"52\": [0, 0.65556, 0, 0, 0.5],\n        \"53\": [0, 0.65556, 0, 0, 0.5],\n        \"54\": [0, 0.65556, 0, 0, 0.5],\n        \"55\": [0, 0.65556, 0, 0, 0.5],\n        \"56\": [0, 0.65556, 0, 0, 0.5],\n        \"57\": [0, 0.65556, 0, 0, 0.5],\n        \"58\": [0, 0.44444, 0, 0, 0.27778],\n        \"59\": [0.125, 0.44444, 0, 0, 0.27778],\n        \"61\": [-0.13, 0.37, 0, 0, 0.77778],\n        \"63\": [0, 0.69444, 0, 0, 0.47222],\n        \"64\": [0, 0.69444, 0, 0, 0.66667],\n        \"65\": [0, 0.69444, 0, 0, 0.66667],\n        \"66\": [0, 0.69444, 0, 0, 0.66667],\n        \"67\": [0, 0.69444, 0, 0, 0.63889],\n        \"68\": [0, 0.69444, 0, 0, 0.72223],\n        \"69\": [0, 0.69444, 0, 0, 0.59722],\n        \"70\": [0, 0.69444, 0, 0, 0.56945],\n        \"71\": [0, 0.69444, 0, 0, 0.66667],\n        \"72\": [0, 0.69444, 0, 0, 0.70834],\n        \"73\": [0, 0.69444, 0, 0, 0.27778],\n        \"74\": [0, 0.69444, 0, 0, 0.47222],\n        \"75\": [0, 0.69444, 0, 0, 0.69445],\n        \"76\": [0, 0.69444, 0, 0, 0.54167],\n        \"77\": [0, 0.69444, 0, 0, 0.875],\n        \"78\": [0, 0.69444, 0, 0, 0.70834],\n        \"79\": [0, 0.69444, 0, 0, 0.73611],\n        \"80\": [0, 0.69444, 0, 0, 0.63889],\n        \"81\": [0.125, 0.69444, 0, 0, 0.73611],\n        \"82\": [0, 0.69444, 0, 0, 0.64584],\n        \"83\": [0, 0.69444, 0, 0, 0.55556],\n        \"84\": [0, 0.69444, 0, 0, 0.68056],\n        \"85\": [0, 0.69444, 0, 0, 0.6875],\n        \"86\": [0, 0.69444, 0.01389, 0, 0.66667],\n        \"87\": [0, 0.69444, 0.01389, 0, 0.94445],\n        \"88\": [0, 0.69444, 0, 0, 0.66667],\n        \"89\": [0, 0.69444, 0.025, 0, 0.66667],\n        \"90\": [0, 0.69444, 0, 0, 0.61111],\n        \"91\": [0.25, 0.75, 0, 0, 0.28889],\n        \"93\": [0.25, 0.75, 0, 0, 0.28889],\n        \"94\": [0, 0.69444, 0, 0, 0.5],\n        \"95\": [0.35, 0.09444, 0.02778, 0, 0.5],\n        \"97\": [0, 0.44444, 0, 0, 0.48056],\n        \"98\": [0, 0.69444, 0, 0, 0.51667],\n        \"99\": [0, 0.44444, 0, 0, 0.44445],\n        \"100\": [0, 0.69444, 0, 0, 0.51667],\n        \"101\": [0, 0.44444, 0, 0, 0.44445],\n        \"102\": [0, 0.69444, 0.06944, 0, 0.30556],\n        \"103\": [0.19444, 0.44444, 0.01389, 0, 0.5],\n        \"104\": [0, 0.69444, 0, 0, 0.51667],\n        \"105\": [0, 0.67937, 0, 0, 0.23889],\n        \"106\": [0.19444, 0.67937, 0, 0, 0.26667],\n        \"107\": [0, 0.69444, 0, 0, 0.48889],\n        \"108\": [0, 0.69444, 0, 0, 0.23889],\n        \"109\": [0, 0.44444, 0, 0, 0.79445],\n        \"110\": [0, 0.44444, 0, 0, 0.51667],\n        \"111\": [0, 0.44444, 0, 0, 0.5],\n        \"112\": [0.19444, 0.44444, 0, 0, 0.51667],\n        \"113\": [0.19444, 0.44444, 0, 0, 0.51667],\n        \"114\": [0, 0.44444, 0.01389, 0, 0.34167],\n        \"115\": [0, 0.44444, 0, 0, 0.38333],\n        \"116\": [0, 0.57143, 0, 0, 0.36111],\n        \"117\": [0, 0.44444, 0, 0, 0.51667],\n        \"118\": [0, 0.44444, 0.01389, 0, 0.46111],\n        \"119\": [0, 0.44444, 0.01389, 0, 0.68334],\n        \"120\": [0, 0.44444, 0, 0, 0.46111],\n        \"121\": [0.19444, 0.44444, 0.01389, 0, 0.46111],\n        \"122\": [0, 0.44444, 0, 0, 0.43472],\n        \"126\": [0.35, 0.32659, 0, 0, 0.5],\n        \"176\": [0, 0.69444, 0, 0, 0.66667],\n        \"305\": [0, 0.44444, 0, 0, 0.23889],\n        \"567\": [0.19444, 0.44444, 0, 0, 0.26667],\n        \"710\": [0, 0.69444, 0, 0, 0.5],\n        \"711\": [0, 0.63194, 0, 0, 0.5],\n        \"713\": [0, 0.60889, 0, 0, 0.5],\n        \"714\": [0, 0.69444, 0, 0, 0.5],\n        \"728\": [0, 0.69444, 0, 0, 0.5],\n        \"729\": [0, 0.67937, 0, 0, 0.27778],\n        \"730\": [0, 0.69444, 0, 0, 0.66667],\n        \"733\": [0, 0.69444, 0, 0, 0.5],\n        \"771\": [0, 0.67659, 0, 0, 0.5],\n        \"776\": [0, 0.67937, 0, 0, 0.5],\n        \"915\": [0, 0.69444, 0, 0, 0.54167],\n        \"916\": [0, 0.69444, 0, 0, 0.83334],\n        \"920\": [0, 0.69444, 0, 0, 0.77778],\n        \"923\": [0, 0.69444, 0, 0, 0.61111],\n        \"926\": [0, 0.69444, 0, 0, 0.66667],\n        \"928\": [0, 0.69444, 0, 0, 0.70834],\n        \"931\": [0, 0.69444, 0, 0, 0.72222],\n        \"933\": [0, 0.69444, 0, 0, 0.77778],\n        \"934\": [0, 0.69444, 0, 0, 0.72222],\n        \"936\": [0, 0.69444, 0, 0, 0.77778],\n        \"937\": [0, 0.69444, 0, 0, 0.72222],\n        \"8211\": [0, 0.44444, 0.02778, 0, 0.5],\n        \"8212\": [0, 0.44444, 0.02778, 0, 1.0],\n        \"8216\": [0, 0.69444, 0, 0, 0.27778],\n        \"8217\": [0, 0.69444, 0, 0, 0.27778],\n        \"8220\": [0, 0.69444, 0, 0, 0.5],\n        \"8221\": [0, 0.69444, 0, 0, 0.5]\n    },\n    \"Script-Regular\": {\n        \"65\": [0, 0.7, 0.22925, 0, 0.80253],\n        \"66\": [0, 0.7, 0.04087, 0, 0.90757],\n        \"67\": [0, 0.7, 0.1689, 0, 0.66619],\n        \"68\": [0, 0.7, 0.09371, 0, 0.77443],\n        \"69\": [0, 0.7, 0.18583, 0, 0.56162],\n        \"70\": [0, 0.7, 0.13634, 0, 0.89544],\n        \"71\": [0, 0.7, 0.17322, 0, 0.60961],\n        \"72\": [0, 0.7, 0.29694, 0, 0.96919],\n        \"73\": [0, 0.7, 0.19189, 0, 0.80907],\n        \"74\": [0.27778, 0.7, 0.19189, 0, 1.05159],\n        \"75\": [0, 0.7, 0.31259, 0, 0.91364],\n        \"76\": [0, 0.7, 0.19189, 0, 0.87373],\n        \"77\": [0, 0.7, 0.15981, 0, 1.08031],\n        \"78\": [0, 0.7, 0.3525, 0, 0.9015],\n        \"79\": [0, 0.7, 0.08078, 0, 0.73787],\n        \"80\": [0, 0.7, 0.08078, 0, 1.01262],\n        \"81\": [0, 0.7, 0.03305, 0, 0.88282],\n        \"82\": [0, 0.7, 0.06259, 0, 0.85],\n        \"83\": [0, 0.7, 0.19189, 0, 0.86767],\n        \"84\": [0, 0.7, 0.29087, 0, 0.74697],\n        \"85\": [0, 0.7, 0.25815, 0, 0.79996],\n        \"86\": [0, 0.7, 0.27523, 0, 0.62204],\n        \"87\": [0, 0.7, 0.27523, 0, 0.80532],\n        \"88\": [0, 0.7, 0.26006, 0, 0.94445],\n        \"89\": [0, 0.7, 0.2939, 0, 0.70961],\n        \"90\": [0, 0.7, 0.24037, 0, 0.8212]\n    },\n    \"Size1-Regular\": {\n        \"40\": [0.35001, 0.85, 0, 0, 0.45834],\n        \"41\": [0.35001, 0.85, 0, 0, 0.45834],\n        \"47\": [0.35001, 0.85, 0, 0, 0.57778],\n        \"91\": [0.35001, 0.85, 0, 0, 0.41667],\n        \"92\": [0.35001, 0.85, 0, 0, 0.57778],\n        \"93\": [0.35001, 0.85, 0, 0, 0.41667],\n        \"123\": [0.35001, 0.85, 0, 0, 0.58334],\n        \"125\": [0.35001, 0.85, 0, 0, 0.58334],\n        \"710\": [0, 0.72222, 0, 0, 0.55556],\n        \"732\": [0, 0.72222, 0, 0, 0.55556],\n        \"770\": [0, 0.72222, 0, 0, 0.55556],\n        \"771\": [0, 0.72222, 0, 0, 0.55556],\n        \"8214\": [-0.00099, 0.601, 0, 0, 0.77778],\n        \"8593\": [1e-05, 0.6, 0, 0, 0.66667],\n        \"8595\": [1e-05, 0.6, 0, 0, 0.66667],\n        \"8657\": [1e-05, 0.6, 0, 0, 0.77778],\n        \"8659\": [1e-05, 0.6, 0, 0, 0.77778],\n        \"8719\": [0.25001, 0.75, 0, 0, 0.94445],\n        \"8720\": [0.25001, 0.75, 0, 0, 0.94445],\n        \"8721\": [0.25001, 0.75, 0, 0, 1.05556],\n        \"8730\": [0.35001, 0.85, 0, 0, 1.0],\n        \"8739\": [-0.00599, 0.606, 0, 0, 0.33333],\n        \"8741\": [-0.00599, 0.606, 0, 0, 0.55556],\n        \"8747\": [0.30612, 0.805, 0.19445, 0, 0.47222],\n        \"8748\": [0.306, 0.805, 0.19445, 0, 0.47222],\n        \"8749\": [0.306, 0.805, 0.19445, 0, 0.47222],\n        \"8750\": [0.30612, 0.805, 0.19445, 0, 0.47222],\n        \"8896\": [0.25001, 0.75, 0, 0, 0.83334],\n        \"8897\": [0.25001, 0.75, 0, 0, 0.83334],\n        \"8898\": [0.25001, 0.75, 0, 0, 0.83334],\n        \"8899\": [0.25001, 0.75, 0, 0, 0.83334],\n        \"8968\": [0.35001, 0.85, 0, 0, 0.47222],\n        \"8969\": [0.35001, 0.85, 0, 0, 0.47222],\n        \"8970\": [0.35001, 0.85, 0, 0, 0.47222],\n        \"8971\": [0.35001, 0.85, 0, 0, 0.47222],\n        \"9168\": [-0.00099, 0.601, 0, 0, 0.66667],\n        \"10216\": [0.35001, 0.85, 0, 0, 0.47222],\n        \"10217\": [0.35001, 0.85, 0, 0, 0.47222],\n        \"10752\": [0.25001, 0.75, 0, 0, 1.11111],\n        \"10753\": [0.25001, 0.75, 0, 0, 1.11111],\n        \"10754\": [0.25001, 0.75, 0, 0, 1.11111],\n        \"10756\": [0.25001, 0.75, 0, 0, 0.83334],\n        \"10758\": [0.25001, 0.75, 0, 0, 0.83334]\n    },\n    \"Size2-Regular\": {\n        \"40\": [0.65002, 1.15, 0, 0, 0.59722],\n        \"41\": [0.65002, 1.15, 0, 0, 0.59722],\n        \"47\": [0.65002, 1.15, 0, 0, 0.81111],\n        \"91\": [0.65002, 1.15, 0, 0, 0.47222],\n        \"92\": [0.65002, 1.15, 0, 0, 0.81111],\n        \"93\": [0.65002, 1.15, 0, 0, 0.47222],\n        \"123\": [0.65002, 1.15, 0, 0, 0.66667],\n        \"125\": [0.65002, 1.15, 0, 0, 0.66667],\n        \"710\": [0, 0.75, 0, 0, 1.0],\n        \"732\": [0, 0.75, 0, 0, 1.0],\n        \"770\": [0, 0.75, 0, 0, 1.0],\n        \"771\": [0, 0.75, 0, 0, 1.0],\n        \"8719\": [0.55001, 1.05, 0, 0, 1.27778],\n        \"8720\": [0.55001, 1.05, 0, 0, 1.27778],\n        \"8721\": [0.55001, 1.05, 0, 0, 1.44445],\n        \"8730\": [0.65002, 1.15, 0, 0, 1.0],\n        \"8747\": [0.86225, 1.36, 0.44445, 0, 0.55556],\n        \"8748\": [0.862, 1.36, 0.44445, 0, 0.55556],\n        \"8749\": [0.862, 1.36, 0.44445, 0, 0.55556],\n        \"8750\": [0.86225, 1.36, 0.44445, 0, 0.55556],\n        \"8896\": [0.55001, 1.05, 0, 0, 1.11111],\n        \"8897\": [0.55001, 1.05, 0, 0, 1.11111],\n        \"8898\": [0.55001, 1.05, 0, 0, 1.11111],\n        \"8899\": [0.55001, 1.05, 0, 0, 1.11111],\n        \"8968\": [0.65002, 1.15, 0, 0, 0.52778],\n        \"8969\": [0.65002, 1.15, 0, 0, 0.52778],\n        \"8970\": [0.65002, 1.15, 0, 0, 0.52778],\n        \"8971\": [0.65002, 1.15, 0, 0, 0.52778],\n        \"10216\": [0.65002, 1.15, 0, 0, 0.61111],\n        \"10217\": [0.65002, 1.15, 0, 0, 0.61111],\n        \"10752\": [0.55001, 1.05, 0, 0, 1.51112],\n        \"10753\": [0.55001, 1.05, 0, 0, 1.51112],\n        \"10754\": [0.55001, 1.05, 0, 0, 1.51112],\n        \"10756\": [0.55001, 1.05, 0, 0, 1.11111],\n        \"10758\": [0.55001, 1.05, 0, 0, 1.11111]\n    },\n    \"Size3-Regular\": {\n        \"40\": [0.95003, 1.45, 0, 0, 0.73611],\n        \"41\": [0.95003, 1.45, 0, 0, 0.73611],\n        \"47\": [0.95003, 1.45, 0, 0, 1.04445],\n        \"91\": [0.95003, 1.45, 0, 0, 0.52778],\n        \"92\": [0.95003, 1.45, 0, 0, 1.04445],\n        \"93\": [0.95003, 1.45, 0, 0, 0.52778],\n        \"123\": [0.95003, 1.45, 0, 0, 0.75],\n        \"125\": [0.95003, 1.45, 0, 0, 0.75],\n        \"710\": [0, 0.75, 0, 0, 1.44445],\n        \"732\": [0, 0.75, 0, 0, 1.44445],\n        \"770\": [0, 0.75, 0, 0, 1.44445],\n        \"771\": [0, 0.75, 0, 0, 1.44445],\n        \"8730\": [0.95003, 1.45, 0, 0, 1.0],\n        \"8968\": [0.95003, 1.45, 0, 0, 0.58334],\n        \"8969\": [0.95003, 1.45, 0, 0, 0.58334],\n        \"8970\": [0.95003, 1.45, 0, 0, 0.58334],\n        \"8971\": [0.95003, 1.45, 0, 0, 0.58334],\n        \"10216\": [0.95003, 1.45, 0, 0, 0.75],\n        \"10217\": [0.95003, 1.45, 0, 0, 0.75]\n    },\n    \"Size4-Regular\": {\n        \"40\": [1.25003, 1.75, 0, 0, 0.79167],\n        \"41\": [1.25003, 1.75, 0, 0, 0.79167],\n        \"47\": [1.25003, 1.75, 0, 0, 1.27778],\n        \"91\": [1.25003, 1.75, 0, 0, 0.58334],\n        \"92\": [1.25003, 1.75, 0, 0, 1.27778],\n        \"93\": [1.25003, 1.75, 0, 0, 0.58334],\n        \"123\": [1.25003, 1.75, 0, 0, 0.80556],\n        \"125\": [1.25003, 1.75, 0, 0, 0.80556],\n        \"710\": [0, 0.825, 0, 0, 1.8889],\n        \"732\": [0, 0.825, 0, 0, 1.8889],\n        \"770\": [0, 0.825, 0, 0, 1.8889],\n        \"771\": [0, 0.825, 0, 0, 1.8889],\n        \"8730\": [1.25003, 1.75, 0, 0, 1.0],\n        \"8968\": [1.25003, 1.75, 0, 0, 0.63889],\n        \"8969\": [1.25003, 1.75, 0, 0, 0.63889],\n        \"8970\": [1.25003, 1.75, 0, 0, 0.63889],\n        \"8971\": [1.25003, 1.75, 0, 0, 0.63889],\n        \"9115\": [0.64502, 1.155, 0, 0, 0.875],\n        \"9116\": [1e-05, 0.6, 0, 0, 0.875],\n        \"9117\": [0.64502, 1.155, 0, 0, 0.875],\n        \"9118\": [0.64502, 1.155, 0, 0, 0.875],\n        \"9119\": [1e-05, 0.6, 0, 0, 0.875],\n        \"9120\": [0.64502, 1.155, 0, 0, 0.875],\n        \"9121\": [0.64502, 1.155, 0, 0, 0.66667],\n        \"9122\": [-0.00099, 0.601, 0, 0, 0.66667],\n        \"9123\": [0.64502, 1.155, 0, 0, 0.66667],\n        \"9124\": [0.64502, 1.155, 0, 0, 0.66667],\n        \"9125\": [-0.00099, 0.601, 0, 0, 0.66667],\n        \"9126\": [0.64502, 1.155, 0, 0, 0.66667],\n        \"9127\": [1e-05, 0.9, 0, 0, 0.88889],\n        \"9128\": [0.65002, 1.15, 0, 0, 0.88889],\n        \"9129\": [0.90001, 0, 0, 0, 0.88889],\n        \"9130\": [0, 0.3, 0, 0, 0.88889],\n        \"9131\": [1e-05, 0.9, 0, 0, 0.88889],\n        \"9132\": [0.65002, 1.15, 0, 0, 0.88889],\n        \"9133\": [0.90001, 0, 0, 0, 0.88889],\n        \"9143\": [0.88502, 0.915, 0, 0, 1.05556],\n        \"10216\": [1.25003, 1.75, 0, 0, 0.80556],\n        \"10217\": [1.25003, 1.75, 0, 0, 0.80556],\n        \"57344\": [-0.00499, 0.605, 0, 0, 1.05556],\n        \"57345\": [-0.00499, 0.605, 0, 0, 1.05556],\n        \"57680\": [0, 0.12, 0, 0, 0.45],\n        \"57681\": [0, 0.12, 0, 0, 0.45],\n        \"57682\": [0, 0.12, 0, 0, 0.45],\n        \"57683\": [0, 0.12, 0, 0, 0.45]\n    },\n    \"Typewriter-Regular\": {\n        \"33\": [0, 0.61111, 0, 0, 0.525],\n        \"34\": [0, 0.61111, 0, 0, 0.525],\n        \"35\": [0, 0.61111, 0, 0, 0.525],\n        \"36\": [0.08333, 0.69444, 0, 0, 0.525],\n        \"37\": [0.08333, 0.69444, 0, 0, 0.525],\n        \"38\": [0, 0.61111, 0, 0, 0.525],\n        \"39\": [0, 0.61111, 0, 0, 0.525],\n        \"40\": [0.08333, 0.69444, 0, 0, 0.525],\n        \"41\": [0.08333, 0.69444, 0, 0, 0.525],\n        \"42\": [0, 0.52083, 0, 0, 0.525],\n        \"43\": [-0.08056, 0.53055, 0, 0, 0.525],\n        \"44\": [0.13889, 0.125, 0, 0, 0.525],\n        \"45\": [-0.08056, 0.53055, 0, 0, 0.525],\n        \"46\": [0, 0.125, 0, 0, 0.525],\n        \"47\": [0.08333, 0.69444, 0, 0, 0.525],\n        \"48\": [0, 0.61111, 0, 0, 0.525],\n        \"49\": [0, 0.61111, 0, 0, 0.525],\n        \"50\": [0, 0.61111, 0, 0, 0.525],\n        \"51\": [0, 0.61111, 0, 0, 0.525],\n        \"52\": [0, 0.61111, 0, 0, 0.525],\n        \"53\": [0, 0.61111, 0, 0, 0.525],\n        \"54\": [0, 0.61111, 0, 0, 0.525],\n        \"55\": [0, 0.61111, 0, 0, 0.525],\n        \"56\": [0, 0.61111, 0, 0, 0.525],\n        \"57\": [0, 0.61111, 0, 0, 0.525],\n        \"58\": [0, 0.43056, 0, 0, 0.525],\n        \"59\": [0.13889, 0.43056, 0, 0, 0.525],\n        \"60\": [-0.05556, 0.55556, 0, 0, 0.525],\n        \"61\": [-0.19549, 0.41562, 0, 0, 0.525],\n        \"62\": [-0.05556, 0.55556, 0, 0, 0.525],\n        \"63\": [0, 0.61111, 0, 0, 0.525],\n        \"64\": [0, 0.61111, 0, 0, 0.525],\n        \"65\": [0, 0.61111, 0, 0, 0.525],\n        \"66\": [0, 0.61111, 0, 0, 0.525],\n        \"67\": [0, 0.61111, 0, 0, 0.525],\n        \"68\": [0, 0.61111, 0, 0, 0.525],\n        \"69\": [0, 0.61111, 0, 0, 0.525],\n        \"70\": [0, 0.61111, 0, 0, 0.525],\n        \"71\": [0, 0.61111, 0, 0, 0.525],\n        \"72\": [0, 0.61111, 0, 0, 0.525],\n        \"73\": [0, 0.61111, 0, 0, 0.525],\n        \"74\": [0, 0.61111, 0, 0, 0.525],\n        \"75\": [0, 0.61111, 0, 0, 0.525],\n        \"76\": [0, 0.61111, 0, 0, 0.525],\n        \"77\": [0, 0.61111, 0, 0, 0.525],\n        \"78\": [0, 0.61111, 0, 0, 0.525],\n        \"79\": [0, 0.61111, 0, 0, 0.525],\n        \"80\": [0, 0.61111, 0, 0, 0.525],\n        \"81\": [0.13889, 0.61111, 0, 0, 0.525],\n        \"82\": [0, 0.61111, 0, 0, 0.525],\n        \"83\": [0, 0.61111, 0, 0, 0.525],\n        \"84\": [0, 0.61111, 0, 0, 0.525],\n        \"85\": [0, 0.61111, 0, 0, 0.525],\n        \"86\": [0, 0.61111, 0, 0, 0.525],\n        \"87\": [0, 0.61111, 0, 0, 0.525],\n        \"88\": [0, 0.61111, 0, 0, 0.525],\n        \"89\": [0, 0.61111, 0, 0, 0.525],\n        \"90\": [0, 0.61111, 0, 0, 0.525],\n        \"91\": [0.08333, 0.69444, 0, 0, 0.525],\n        \"92\": [0.08333, 0.69444, 0, 0, 0.525],\n        \"93\": [0.08333, 0.69444, 0, 0, 0.525],\n        \"94\": [0, 0.61111, 0, 0, 0.525],\n        \"95\": [0.09514, 0, 0, 0, 0.525],\n        \"96\": [0, 0.61111, 0, 0, 0.525],\n        \"97\": [0, 0.43056, 0, 0, 0.525],\n        \"98\": [0, 0.61111, 0, 0, 0.525],\n        \"99\": [0, 0.43056, 0, 0, 0.525],\n        \"100\": [0, 0.61111, 0, 0, 0.525],\n        \"101\": [0, 0.43056, 0, 0, 0.525],\n        \"102\": [0, 0.61111, 0, 0, 0.525],\n        \"103\": [0.22222, 0.43056, 0, 0, 0.525],\n        \"104\": [0, 0.61111, 0, 0, 0.525],\n        \"105\": [0, 0.61111, 0, 0, 0.525],\n        \"106\": [0.22222, 0.61111, 0, 0, 0.525],\n        \"107\": [0, 0.61111, 0, 0, 0.525],\n        \"108\": [0, 0.61111, 0, 0, 0.525],\n        \"109\": [0, 0.43056, 0, 0, 0.525],\n        \"110\": [0, 0.43056, 0, 0, 0.525],\n        \"111\": [0, 0.43056, 0, 0, 0.525],\n        \"112\": [0.22222, 0.43056, 0, 0, 0.525],\n        \"113\": [0.22222, 0.43056, 0, 0, 0.525],\n        \"114\": [0, 0.43056, 0, 0, 0.525],\n        \"115\": [0, 0.43056, 0, 0, 0.525],\n        \"116\": [0, 0.55358, 0, 0, 0.525],\n        \"117\": [0, 0.43056, 0, 0, 0.525],\n        \"118\": [0, 0.43056, 0, 0, 0.525],\n        \"119\": [0, 0.43056, 0, 0, 0.525],\n        \"120\": [0, 0.43056, 0, 0, 0.525],\n        \"121\": [0.22222, 0.43056, 0, 0, 0.525],\n        \"122\": [0, 0.43056, 0, 0, 0.525],\n        \"123\": [0.08333, 0.69444, 0, 0, 0.525],\n        \"124\": [0.08333, 0.69444, 0, 0, 0.525],\n        \"125\": [0.08333, 0.69444, 0, 0, 0.525],\n        \"126\": [0, 0.61111, 0, 0, 0.525],\n        \"127\": [0, 0.61111, 0, 0, 0.525],\n        \"176\": [0, 0.61111, 0, 0, 0.525],\n        \"305\": [0, 0.43056, 0, 0, 0.525],\n        \"567\": [0.22222, 0.43056, 0, 0, 0.525],\n        \"711\": [0, 0.56597, 0, 0, 0.525],\n        \"713\": [0, 0.56555, 0, 0, 0.525],\n        \"714\": [0, 0.61111, 0, 0, 0.525],\n        \"715\": [0, 0.61111, 0, 0, 0.525],\n        \"728\": [0, 0.61111, 0, 0, 0.525],\n        \"730\": [0, 0.61111, 0, 0, 0.525],\n        \"770\": [0, 0.61111, 0, 0, 0.525],\n        \"771\": [0, 0.61111, 0, 0, 0.525],\n        \"776\": [0, 0.61111, 0, 0, 0.525],\n        \"915\": [0, 0.61111, 0, 0, 0.525],\n        \"916\": [0, 0.61111, 0, 0, 0.525],\n        \"920\": [0, 0.61111, 0, 0, 0.525],\n        \"923\": [0, 0.61111, 0, 0, 0.525],\n        \"926\": [0, 0.61111, 0, 0, 0.525],\n        \"928\": [0, 0.61111, 0, 0, 0.525],\n        \"931\": [0, 0.61111, 0, 0, 0.525],\n        \"933\": [0, 0.61111, 0, 0, 0.525],\n        \"934\": [0, 0.61111, 0, 0, 0.525],\n        \"936\": [0, 0.61111, 0, 0, 0.525],\n        \"937\": [0, 0.61111, 0, 0, 0.525],\n        \"8216\": [0, 0.61111, 0, 0, 0.525],\n        \"8217\": [0, 0.61111, 0, 0, 0.525],\n        \"8242\": [0, 0.61111, 0, 0, 0.525],\n        \"9251\": [0.11111, 0.21944, 0, 0, 0.525]\n    }\n});\n\n/***/ }),\n/* 60 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = sizingGroup;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__buildMathML__ = __webpack_require__(2);\n\n\n\n\n\n\n\n\nfunction sizingGroup(value, options, baseOptions) {\n    var inner = __WEBPACK_IMPORTED_MODULE_4__buildHTML__[\"a\" /* buildExpression */](value, options, false);\n    var multiplier = options.sizeMultiplier / baseOptions.sizeMultiplier;\n\n    // Add size-resetting classes to the inner list and set maxFontSize\n    // manually. Handle nested size changes.\n    for (var i = 0; i < inner.length; i++) {\n        var pos = __WEBPACK_IMPORTED_MODULE_3__utils__[\"a\" /* default */].indexOf(inner[i].classes, \"sizing\");\n        if (pos < 0) {\n            Array.prototype.push.apply(inner[i].classes, options.sizingClasses(baseOptions));\n        } else if (inner[i].classes[pos + 1] === \"reset-size\" + options.size) {\n            // This is a nested size change: e.g., inner[i] is the \"b\" in\n            // `\\Huge a \\small b`. Override the old size (the `reset-` class)\n            // but not the new size.\n            inner[i].classes[pos + 1] = \"reset-size\" + baseOptions.size;\n        }\n\n        inner[i].height *= multiplier;\n        inner[i].depth *= multiplier;\n    }\n\n    return __WEBPACK_IMPORTED_MODULE_0__buildCommon__[\"a\" /* default */].makeFragment(inner);\n}\n\nvar sizeFuncs = [\"\\\\tiny\", \"\\\\sixptsize\", \"\\\\scriptsize\", \"\\\\footnotesize\", \"\\\\small\", \"\\\\normalsize\", \"\\\\large\", \"\\\\Large\", \"\\\\LARGE\", \"\\\\huge\", \"\\\\Huge\"];\n\nObject(__WEBPACK_IMPORTED_MODULE_1__defineFunction__[\"b\" /* default */])({\n    type: \"sizing\",\n    names: sizeFuncs,\n    props: {\n        numArgs: 0,\n        allowedInText: true\n    },\n    handler: function handler(context, args) {\n        var breakOnTokenText = context.breakOnTokenText,\n            funcName = context.funcName,\n            parser = context.parser;\n\n\n        parser.consumeSpaces();\n        var body = parser.parseExpression(false, breakOnTokenText);\n\n        return {\n            type: \"sizing\",\n            // Figure out what size to use based on the list of functions above\n            size: __WEBPACK_IMPORTED_MODULE_3__utils__[\"a\" /* default */].indexOf(sizeFuncs, funcName) + 1,\n            value: body\n        };\n    },\n    htmlBuilder: function htmlBuilder(group, options) {\n        // Handle sizing operators like \\Huge. Real TeX doesn't actually allow\n        // these functions inside of math expressions, so we do some special\n        // handling.\n        var newOptions = options.havingSize(group.value.size);\n        return sizingGroup(group.value.value, newOptions, options);\n    },\n    mathmlBuilder: function mathmlBuilder(group, options) {\n        var newOptions = options.havingSize(group.value.size);\n        var inner = __WEBPACK_IMPORTED_MODULE_5__buildMathML__[\"a\" /* buildExpression */](group.value.value, newOptions);\n\n        var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mstyle\", inner);\n\n        // TODO(emily): This doesn't produce the correct size for nested size\n        // changes, because we don't keep state of what style we're currently\n        // in, so we can't reset the size to normal before changing it.  Now\n        // that we're passing an options parameter we should be able to fix\n        // this.\n        node.setAttribute(\"mathsize\", newOptions.sizeMultiplier + \"em\");\n\n        return node;\n    }\n});\n\n/***/ }),\n/* 61 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _environments; });\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = defineEnvironment;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__buildMathML__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Options__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ParseNode__ = __webpack_require__(14);\n\n\n\n\n\n\n/**\n * The context contains the following properties:\n *  - mode: current parsing mode.\n *  - envName: the name of the environment, one of the listed names.\n *  - parser: the parser object.\n */\n\n\n/**\n *  - context: information and references provided by the parser\n *  - args: an array of arguments passed to \\begin{name}\n *  - optArgs: an array of optional arguments passed to \\begin{name}\n */\n\n\n/**\n *  - numArgs: (default 0) The number of arguments after the \\begin{name} function.\n *  - argTypes: (optional) Just like for a function\n *  - allowedInText: (default false) Whether or not the environment is allowed\n *                   inside text mode (not enforced yet).\n *  - numOptionalArgs: (default 0) Just like for a function\n */\n\n\n/**\n * Final enviornment spec for use at parse time.\n * This is almost identical to `EnvDefSpec`, except it\n * 1. includes the function handler\n * 2. requires all arguments except argType\n * It is generated by `defineEnvironment()` below.\n */\n\n\n/**\n * All registered environments.\n * `environments.js` exports this same dictionary again and makes it public.\n * `Parser.js` requires this dictionary via `environments.js`.\n */\nvar _environments = {};\n\nfunction defineEnvironment(_ref) {\n    var type = _ref.type,\n        names = _ref.names,\n        props = _ref.props,\n        handler = _ref.handler,\n        htmlBuilder = _ref.htmlBuilder,\n        mathmlBuilder = _ref.mathmlBuilder;\n\n    // Set default values of environments\n    var data = {\n        numArgs: props.numArgs || 0,\n        greediness: 1,\n        allowedInText: false,\n        numOptionalArgs: 0,\n        handler: handler\n    };\n    for (var i = 0; i < names.length; ++i) {\n        _environments[names[i]] = data;\n    }\n    if (htmlBuilder) {\n        __WEBPACK_IMPORTED_MODULE_0__buildHTML__[\"d\" /* groupTypes */][type] = htmlBuilder;\n    }\n    if (mathmlBuilder) {\n        __WEBPACK_IMPORTED_MODULE_1__buildMathML__[\"d\" /* groupTypes */][type] = mathmlBuilder;\n    }\n}\n\n/***/ }),\n/* 62 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return combiningDiacriticalMarksEndRegex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return controlWordRegex; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_match_at__ = __webpack_require__(145);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_match_at___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_match_at__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ParseError__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__SourceLocation__ = __webpack_require__(31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Token__ = __webpack_require__(27);\n\n\n\n/**\n * The Lexer class handles tokenizing the input in various ways. Since our\n * parser expects us to be able to backtrack, the lexer allows lexing from any\n * given starting point.\n *\n * Its main exposed function is the `lex` function, which takes a position to\n * lex from and a type of token to lex. It defers to the appropriate `_innerLex`\n * function.\n *\n * The various `_innerLex` functions perform the actual lexing of different\n * kinds.\n */\n\n\n\n\n\n\n/* The following tokenRegex\n * - matches typical whitespace (but not NBSP etc.) using its first group\n * - matches comments (must have trailing newlines)\n * - does not match any control character \\x00-\\x1f except whitespace\n * - does not match a bare backslash\n * - matches any ASCII character except those just mentioned\n * - does not match the BMP private use area \\uE000-\\uF8FF\n * - does not match bare surrogate code units\n * - matches any BMP character except for those just described\n * - matches any valid Unicode surrogate pair\n * - matches a backslash followed by one or more letters\n * - matches a backslash followed by any BMP character, including newline\n * Just because the Lexer matches something doesn't mean it's valid input:\n * If there is no matching function or symbol definition, the Parser will\n * still reject the input.\n */\nvar commentRegexString = \"%[^\\n]*[\\n]\";\nvar controlWordRegexString = \"\\\\\\\\[a-zA-Z@]+\";\nvar controlSymbolRegexString = \"\\\\\\\\[^\\uD800-\\uDFFF]\";\nvar combiningDiacriticalMarkString = \"[\\u0300-\\u036F]\";\nvar combiningDiacriticalMarksEndRegex = new RegExp(combiningDiacriticalMarkString + \"+$\");\nvar tokenRegex = new RegExp(\"([ \\r\\n\\t]+)|\" + ( // whitespace\n\"(\" + commentRegexString) + // comments\n\"|[!-\\\\[\\\\]-\\u2027\\u202A-\\uD7FF\\uF900-\\uFFFF]\" + ( // single codepoint\ncombiningDiacriticalMarkString + \"*\") + // ...plus accents\n\"|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]\" + ( // surrogate pair\ncombiningDiacriticalMarkString + \"*\") + // ...plus accents\n\"|\\\\\\\\verb\\\\*([^]).*?\\\\3\" + // \\verb*\n\"|\\\\\\\\verb([^*a-zA-Z]).*?\\\\4\" + ( // \\verb unstarred\n\"|\" + controlWordRegexString) + ( // \\macroName\n\"|\" + controlSymbolRegexString) + // \\\\, \\', etc.\n\")\");\n\n// tokenRegex has no ^ marker, as required by matchAt.\n// These regexs are for matching results from tokenRegex,\n// so they do have ^ markers.\nvar controlWordRegex = new RegExp(\"^\" + controlWordRegexString);\nvar commentRegex = new RegExp(\"^\" + commentRegexString);\n\n/** Main Lexer class */\n\nvar Lexer = function () {\n    function Lexer(input) {\n        __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, Lexer);\n\n        // Separate accents from characters\n        this.input = input;\n        this.pos = 0;\n    }\n\n    /**\n     * This function lexes a single token.\n     */\n\n\n    __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default()(Lexer, [{\n        key: \"lex\",\n        value: function lex() {\n            var input = this.input;\n            var pos = this.pos;\n            if (pos === input.length) {\n                return new __WEBPACK_IMPORTED_MODULE_5__Token__[\"a\" /* Token */](\"EOF\", new __WEBPACK_IMPORTED_MODULE_4__SourceLocation__[\"a\" /* default */](this, pos, pos));\n            }\n            var match = __WEBPACK_IMPORTED_MODULE_2_match_at___default()(tokenRegex, input, pos);\n            if (match === null) {\n                throw new __WEBPACK_IMPORTED_MODULE_3__ParseError__[\"a\" /* default */](\"Unexpected character: '\" + input[pos] + \"'\", new __WEBPACK_IMPORTED_MODULE_5__Token__[\"a\" /* Token */](input[pos], new __WEBPACK_IMPORTED_MODULE_4__SourceLocation__[\"a\" /* default */](this, pos, pos + 1)));\n            }\n            var text = match[2] || \" \";\n            var start = this.pos;\n            this.pos += match[0].length;\n            var end = this.pos;\n\n            if (commentRegex.test(text)) {\n                return this.lex();\n            } else {\n                return new __WEBPACK_IMPORTED_MODULE_5__Token__[\"a\" /* Token */](text, new __WEBPACK_IMPORTED_MODULE_4__SourceLocation__[\"a\" /* default */](this, start, end));\n            }\n        }\n    }]);\n\n    return Lexer;\n}();\n\n/* harmony default export */ __webpack_exports__[\"c\"] = (Lexer);\n\n/***/ }),\n/* 63 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_katex_less__ = __webpack_require__(64);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_katex_less___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__src_katex_less__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__katex_js__ = __webpack_require__(65);\n/**\n * This is the webpack entry point for KaTeX. As flow[1] and jest[2] doesn't support\n * CSS modules natively, a separate entry point is used and it is not flowtyped.\n *\n * [1] https://gist.github.com/lambdahands/d19e0da96285b749f0ef\n * [2] https://facebook.github.io/jest/docs/en/webpack.html\n */\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__WEBPACK_IMPORTED_MODULE_1__katex_js__[\"a\" /* default */]);\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 65 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_ParseError__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_Settings__ = __webpack_require__(34);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_buildTree__ = __webpack_require__(76);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_parseTree__ = __webpack_require__(113);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_utils__ = __webpack_require__(5);\n\n/* eslint no-console:0 */\n/**\n * This is the main entry point for KaTeX. Here, we expose functions for\n * rendering expressions either to DOM nodes or to markup strings.\n *\n * We also expose the ParseError class to check if errors thrown from KaTeX are\n * errors in the expression, or errors in javascript handling.\n */\n\n\n\n\n\n\n\n\n/**\n * Parse and build an expression, and place that expression in the DOM node\n * given.\n */\nvar render = function render(expression, baseNode, options) {\n    __WEBPACK_IMPORTED_MODULE_4__src_utils__[\"a\" /* default */].clearNode(baseNode);\n    var node = renderToDomTree(expression, options).toNode();\n    baseNode.appendChild(node);\n};\n\n// KaTeX's styles don't work properly in quirks mode. Print out an error, and\n// disable rendering.\nif (typeof document !== \"undefined\") {\n    if (document.compatMode !== \"CSS1Compat\") {\n        typeof console !== \"undefined\" && console.warn(\"Warning: KaTeX doesn't work in quirks mode. Make sure your \" + \"website has a suitable doctype.\");\n\n        render = function render() {\n            throw new __WEBPACK_IMPORTED_MODULE_0__src_ParseError__[\"a\" /* default */](\"KaTeX doesn't work in quirks mode.\");\n        };\n    }\n}\n\n/**\n * Parse and build an expression, and return the markup for that.\n */\nvar renderToString = function renderToString(expression, options) {\n    var markup = renderToDomTree(expression, options).toMarkup();\n    return markup;\n};\n\n/**\n * Parse an expression and return the parse tree.\n */\nvar generateParseTree = function generateParseTree(expression, options) {\n    var settings = new __WEBPACK_IMPORTED_MODULE_1__src_Settings__[\"a\" /* default */](options);\n    return Object(__WEBPACK_IMPORTED_MODULE_3__src_parseTree__[\"a\" /* default */])(expression, settings);\n};\n\n/**\n * Generates and returns the katex build tree. This is used for advanced\n * use cases (like rendering to custom output).\n */\nvar renderToDomTree = function renderToDomTree(expression, options) {\n    var settings = new __WEBPACK_IMPORTED_MODULE_1__src_Settings__[\"a\" /* default */](options);\n    var tree = Object(__WEBPACK_IMPORTED_MODULE_3__src_parseTree__[\"a\" /* default */])(expression, settings);\n    return Object(__WEBPACK_IMPORTED_MODULE_2__src_buildTree__[\"b\" /* buildTree */])(tree, expression, settings);\n};\n\n/**\n * Generates and returns the katex build tree, with just HTML (no MathML).\n * This is used for advanced use cases (like rendering to custom output).\n */\nvar renderToHTMLTree = function renderToHTMLTree(expression, options) {\n    var settings = new __WEBPACK_IMPORTED_MODULE_1__src_Settings__[\"a\" /* default */](options);\n    var tree = Object(__WEBPACK_IMPORTED_MODULE_3__src_parseTree__[\"a\" /* default */])(expression, settings);\n    return Object(__WEBPACK_IMPORTED_MODULE_2__src_buildTree__[\"a\" /* buildHTMLTree */])(tree, expression, settings);\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n    /**\n     * Renders the given LaTeX into an HTML+MathML combination, and adds\n     * it as a child to the specified DOM node.\n     */\n    render: render,\n    /**\n     * Renders the given LaTeX into an HTML+MathML combination string,\n     * for sending to the client.\n     */\n    renderToString: renderToString,\n    /**\n     * KaTeX error, usually during parsing.\n     */\n    ParseError: __WEBPACK_IMPORTED_MODULE_0__src_ParseError__[\"a\" /* default */],\n    /**\n     * Parses the given LaTeX into KaTeX's internal parse tree structure,\n     * without rendering to HTML or MathML.\n     *\n     * NOTE: This method is not currently recommended for public use.\n     * The internal tree representation is unstable and is very likely\n     * to change. Use at your own risk.\n     */\n    __parse: generateParseTree,\n    /**\n     * Renders the given LaTeX into an HTML+MathML internal DOM tree\n     * representation, without flattening that representation to a string.\n     *\n     * NOTE: This method is not currently recommended for public use.\n     * The internal tree representation is unstable and is very likely\n     * to change. Use at your own risk.\n     */\n    __renderToDomTree: renderToDomTree,\n    /**\n     * Renders the given LaTeX into an HTML internal DOM tree representation,\n     * without MathML and without flattening that representation to a string.\n     *\n     * NOTE: This method is not currently recommended for public use.\n     * The internal tree representation is unstable and is very likely\n     * to change. Use at your own risk.\n     */\n    __renderToHTMLTree: renderToHTMLTree\n});\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(67), __esModule: true };\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(68);\nmodule.exports = __webpack_require__(8).Object.freeze;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.5 Object.freeze(O)\nvar isObject = __webpack_require__(20)\n  , meta     = __webpack_require__(69).onFreeze;\n\n__webpack_require__(46)('freeze', function($freeze){\n  return function freeze(it){\n    return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n  };\n});\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar META     = __webpack_require__(32)('meta')\n  , isObject = __webpack_require__(20)\n  , has      = __webpack_require__(21)\n  , setDesc  = __webpack_require__(15).f\n  , id       = 0;\nvar isExtensible = Object.isExtensible || function(){\n  return true;\n};\nvar FREEZE = !__webpack_require__(24)(function(){\n  return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n  setDesc(it, META, {value: {\n    i: 'O' + ++id, // object ID\n    w: {}          // weak collections IDs\n  }});\n};\nvar fastKey = function(it, create){\n  // return primitive with prefix\n  if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n  if(!has(it, META)){\n    // can't set metadata to uncaught frozen object\n    if(!isExtensible(it))return 'F';\n    // not necessary to add metadata\n    if(!create)return 'E';\n    // add missing metadata\n    setMeta(it);\n  // return object ID\n  } return it[META].i;\n};\nvar getWeak = function(it, create){\n  if(!has(it, META)){\n    // can't set metadata to uncaught frozen object\n    if(!isExtensible(it))return true;\n    // not necessary to add metadata\n    if(!create)return false;\n    // add missing metadata\n    setMeta(it);\n  // return hash weak collections IDs\n  } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n  if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n  return it;\n};\nvar meta = module.exports = {\n  KEY:      META,\n  NEED:     false,\n  fastKey:  fastKey,\n  getWeak:  getWeak,\n  onFreeze: onFreeze\n};\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(23) && !__webpack_require__(24)(function(){\n  return Object.defineProperty(__webpack_require__(45)('div'), 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(20);\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n  if(!isObject(it))return it;\n  var fn, val;\n  if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n  if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n  if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(it){\n  if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n  return it;\n};\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(74), __esModule: true };\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(75);\nvar $Object = __webpack_require__(8).Object;\nmodule.exports = function defineProperty(it, key, desc){\n  return $Object.defineProperty(it, key, desc);\n};\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(25);\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !__webpack_require__(23), 'Object', {defineProperty: __webpack_require__(15).f});\n\n/***/ }),\n/* 76 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return buildTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return buildHTMLTree; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__buildMathML__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Options__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Settings__ = __webpack_require__(34);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Style__ = __webpack_require__(9);\n\n\n\n\n\n\n\nvar optionsFromSettings = function optionsFromSettings(settings) {\n    return new __WEBPACK_IMPORTED_MODULE_3__Options__[\"a\" /* default */]({\n        style: settings.displayMode ? __WEBPACK_IMPORTED_MODULE_5__Style__[\"a\" /* default */].DISPLAY : __WEBPACK_IMPORTED_MODULE_5__Style__[\"a\" /* default */].TEXT,\n        maxSize: settings.maxSize\n    });\n};\n\nvar buildTree = function buildTree(tree, expression, settings) {\n    var options = optionsFromSettings(settings);\n    // `buildHTML` sometimes messes with the parse tree (like turning bins ->\n    // ords), so we build the MathML version first.\n    var mathMLNode = Object(__WEBPACK_IMPORTED_MODULE_1__buildMathML__[\"c\" /* default */])(tree, expression, options);\n    var htmlNode = Object(__WEBPACK_IMPORTED_MODULE_0__buildHTML__[\"c\" /* default */])(tree, options);\n\n    var katexNode = __WEBPACK_IMPORTED_MODULE_2__buildCommon__[\"a\" /* default */].makeSpan([\"katex\"], [mathMLNode, htmlNode]);\n\n    if (settings.displayMode) {\n        return __WEBPACK_IMPORTED_MODULE_2__buildCommon__[\"a\" /* default */].makeSpan([\"katex-display\"], [katexNode]);\n    } else {\n        return katexNode;\n    }\n};\n\nvar buildHTMLTree = function buildHTMLTree(tree, expression, settings) {\n    var options = optionsFromSettings(settings);\n    var htmlNode = Object(__WEBPACK_IMPORTED_MODULE_0__buildHTML__[\"c\" /* default */])(tree, options);\n    var katexNode = __WEBPACK_IMPORTED_MODULE_2__buildCommon__[\"a\" /* default */].makeSpan([\"katex\"], [htmlNode]);\n    if (settings.displayMode) {\n        return __WEBPACK_IMPORTED_MODULE_2__buildCommon__[\"a\" /* default */].makeSpan([\"katex-display\"], [katexNode]);\n    } else {\n        return katexNode;\n    }\n};\n\n/* unused harmony default export */ var _unused_webpack_default_export = (buildTree);\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(78), __esModule: true };\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core  = __webpack_require__(8)\n  , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});\nmodule.exports = function stringify(it){ // eslint-disable-line no-unused-vars\n  return $JSON.stringify.apply($JSON, arguments);\n};\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(80), __esModule: true };\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(36);\n__webpack_require__(92);\nmodule.exports = __webpack_require__(8).Array.from;\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(37)\n  , defined   = __webpack_require__(38);\n// true  -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n  return function(that, pos){\n    var s = String(defined(that))\n      , i = toInteger(pos)\n      , l = s.length\n      , a, b;\n    if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n    a = s.charCodeAt(i);\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n      ? TO_STRING ? s.charAt(i) : a\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n  };\n};\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\nmodule.exports = true;\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(26);\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create         = __webpack_require__(85)\n  , descriptor     = __webpack_require__(33)\n  , setToStringTag = __webpack_require__(54)\n  , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(26)(IteratorPrototype, __webpack_require__(11)('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n  Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n  setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject    = __webpack_require__(22)\n  , dPs         = __webpack_require__(86)\n  , enumBugKeys = __webpack_require__(53)\n  , IE_PROTO    = __webpack_require__(41)('IE_PROTO')\n  , Empty       = function(){ /* empty */ }\n  , PROTOTYPE   = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function(){\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = __webpack_require__(45)('iframe')\n    , i      = enumBugKeys.length\n    , lt     = '<'\n    , gt     = '>'\n    , iframeDocument;\n  iframe.style.display = 'none';\n  __webpack_require__(90).appendChild(iframe);\n  iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n  // createDict = iframe.contentWindow.Object;\n  // html.removeChild(iframe);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n  iframeDocument.close();\n  createDict = iframeDocument.F;\n  while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];\n  return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties){\n  var result;\n  if(O !== null){\n    Empty[PROTOTYPE] = anObject(O);\n    result = new Empty;\n    Empty[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = createDict();\n  return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP       = __webpack_require__(15)\n  , anObject = __webpack_require__(22)\n  , getKeys  = __webpack_require__(39);\n\nmodule.exports = __webpack_require__(23) ? Object.defineProperties : function defineProperties(O, Properties){\n  anObject(O);\n  var keys   = getKeys(Properties)\n    , length = keys.length\n    , i = 0\n    , P;\n  while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n  return O;\n};\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has          = __webpack_require__(21)\n  , toIObject    = __webpack_require__(40)\n  , arrayIndexOf = __webpack_require__(88)(false)\n  , IE_PROTO     = __webpack_require__(41)('IE_PROTO');\n\nmodule.exports = function(object, names){\n  var O      = toIObject(object)\n    , i      = 0\n    , result = []\n    , key;\n  for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while(names.length > i)if(has(O, key = names[i++])){\n    ~arrayIndexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true  -> Array#includes\nvar toIObject = __webpack_require__(40)\n  , toLength  = __webpack_require__(51)\n  , toIndex   = __webpack_require__(89);\nmodule.exports = function(IS_INCLUDES){\n  return function($this, el, fromIndex){\n    var O      = toIObject($this)\n      , length = toLength(O.length)\n      , index  = toIndex(fromIndex, length)\n      , value;\n    // Array#includes uses SameValueZero equality algorithm\n    if(IS_INCLUDES && el != el)while(length > index){\n      value = O[index++];\n      if(value != value)return true;\n    // Array#toIndex ignores holes, Array#includes - not\n    } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n      if(O[index] === el)return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(37)\n  , max       = Math.max\n  , min       = Math.min;\nmodule.exports = function(index, length){\n  index = toInteger(index);\n  return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(16).document && document.documentElement;\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has         = __webpack_require__(21)\n  , toObject    = __webpack_require__(29)\n  , IE_PROTO    = __webpack_require__(41)('IE_PROTO')\n  , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n  O = toObject(O);\n  if(has(O, IE_PROTO))return O[IE_PROTO];\n  if(typeof O.constructor == 'function' && O instanceof O.constructor){\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectProto : null;\n};\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ctx            = __webpack_require__(47)\n  , $export        = __webpack_require__(25)\n  , toObject       = __webpack_require__(29)\n  , call           = __webpack_require__(93)\n  , isArrayIter    = __webpack_require__(94)\n  , toLength       = __webpack_require__(51)\n  , createProperty = __webpack_require__(95)\n  , getIterFn      = __webpack_require__(55);\n\n$export($export.S + $export.F * !__webpack_require__(96)(function(iter){ Array.from(iter); }), 'Array', {\n  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n  from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){\n    var O       = toObject(arrayLike)\n      , C       = typeof this == 'function' ? this : Array\n      , aLen    = arguments.length\n      , mapfn   = aLen > 1 ? arguments[1] : undefined\n      , mapping = mapfn !== undefined\n      , index   = 0\n      , iterFn  = getIterFn(O)\n      , length, result, step, iterator;\n    if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n    // if object isn't iterable or it's array with default iterator - use simple case\n    if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){\n      for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){\n        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n      }\n    } else {\n      length = toLength(O.length);\n      for(result = new C(length); length > index; index++){\n        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n      }\n    }\n    result.length = index;\n    return result;\n  }\n});\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// call something on iterator step with safe closing on error\nvar anObject = __webpack_require__(22);\nmodule.exports = function(iterator, fn, value, entries){\n  try {\n    return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n  // 7.4.6 IteratorClose(iterator, completion)\n  } catch(e){\n    var ret = iterator['return'];\n    if(ret !== undefined)anObject(ret.call(iterator));\n    throw e;\n  }\n};\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// check on default Array iterator\nvar Iterators  = __webpack_require__(17)\n  , ITERATOR   = __webpack_require__(11)('iterator')\n  , ArrayProto = Array.prototype;\n\nmodule.exports = function(it){\n  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $defineProperty = __webpack_require__(15)\n  , createDesc      = __webpack_require__(33);\n\nmodule.exports = function(object, index, value){\n  if(index in object)$defineProperty.f(object, index, createDesc(0, value));\n  else object[index] = value;\n};\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ITERATOR     = __webpack_require__(11)('iterator')\n  , SAFE_CLOSING = false;\n\ntry {\n  var riter = [7][ITERATOR]();\n  riter['return'] = function(){ SAFE_CLOSING = true; };\n  Array.from(riter, function(){ throw 2; });\n} catch(e){ /* empty */ }\n\nmodule.exports = function(exec, skipClosing){\n  if(!skipClosing && !SAFE_CLOSING)return false;\n  var safe = false;\n  try {\n    var arr  = [7]\n      , iter = arr[ITERATOR]();\n    iter.next = function(){ return {done: safe = true}; };\n    arr[ITERATOR] = function(){ return iter; };\n    exec(arr);\n  } catch(e){ /* empty */ }\n  return safe;\n};\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(98), __esModule: true };\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(58);\n__webpack_require__(36);\nmodule.exports = __webpack_require__(102);\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(100)\n  , step             = __webpack_require__(101)\n  , Iterators        = __webpack_require__(17)\n  , toIObject        = __webpack_require__(40);\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(48)(Array, 'Array', function(iterated, kind){\n  this._t = toIObject(iterated); // target\n  this._i = 0;                   // next index\n  this._k = kind;                // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n  var O     = this._t\n    , kind  = this._k\n    , index = this._i++;\n  if(!O || index >= O.length){\n    this._t = undefined;\n    return step(1);\n  }\n  if(kind == 'keys'  )return step(0, index);\n  if(kind == 'values')return step(0, O[index]);\n  return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(){ /* empty */ };\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(done, value){\n  return {value: value, done: !!done};\n};\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof   = __webpack_require__(56)\n  , ITERATOR  = __webpack_require__(11)('iterator')\n  , Iterators = __webpack_require__(17);\nmodule.exports = __webpack_require__(8).isIterable = function(it){\n  var O = Object(it);\n  return O[ITERATOR] !== undefined\n    || '@@iterator' in O\n    || Iterators.hasOwnProperty(classof(O));\n};\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(58);\n__webpack_require__(36);\nmodule.exports = __webpack_require__(104);\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(22)\n  , get      = __webpack_require__(55);\nmodule.exports = __webpack_require__(8).getIterator = function(it){\n  var iterFn = get(it);\n  if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');\n  return anObject(iterFn.call(it));\n};\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(106), __esModule: true };\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(107);\nmodule.exports = __webpack_require__(8).Object.assign;\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(25);\n\n$export($export.S + $export.F, 'Object', {assign: __webpack_require__(108)});\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys  = __webpack_require__(39)\n  , gOPS     = __webpack_require__(109)\n  , pIE      = __webpack_require__(110)\n  , toObject = __webpack_require__(29)\n  , IObject  = __webpack_require__(49)\n  , $assign  = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(24)(function(){\n  var A = {}\n    , B = {}\n    , S = Symbol()\n    , K = 'abcdefghijklmnopqrst';\n  A[S] = 7;\n  K.split('').forEach(function(k){ B[k] = k; });\n  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n  var T     = toObject(target)\n    , aLen  = arguments.length\n    , index = 1\n    , getSymbols = gOPS.f\n    , isEnum     = pIE.f;\n  while(aLen > index){\n    var S      = IObject(arguments[index++])\n      , keys   = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n      , length = keys.length\n      , j      = 0\n      , key;\n    while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n  } return T;\n} : $assign;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n/***/ }),\n/* 111 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * This file provides support to domTree.js\n * It's a storehouse of path geometry for SVG images.\n */\n\n// We do frac-lines, underlines, and overlines with an SVG path and we put that\n// path is into a viewBox that is 5 times as thick as the line. That way,\n// any browser rounding error on the size of the surrounding span will\n// not pinch the ink of the line.  Think of it as padding for the line.\n// As usual, the viewBox-to-em scale is 1000.\n\nvar hLinePad = 80; // padding above and below a std 0.04em horiz rule.\nvar vLinePad = 100; // padding on either side of a std vert 0.05em rule.\n\nvar path = {\n    // stdHorizRule is used for frac-lines, underlines, and overlines.\n    // It is 0.04em thick if the line comes from normalsize/textstyle.\n    stdHorizRule: \"M0 \" + hLinePad + \"H400000 v40H0z M0 \" + hLinePad + \"H400000 v40H0z\",\n\n    // vertSeparator is used in arrays. It is 0.05em wide in a 0.25em viewBox.\n    vertSeparator: \"M\" + vLinePad + \" 0h50V400000h-50zM\" + vLinePad + \" 0h50V400000h-50z\",\n\n    // sqrtMain path geometry is from glyph U221A in the font KaTeX Main\n    // All surds have 80 units padding above the viniculumn.\n    sqrtMain: \"M95,\" + (622 + hLinePad) + \"c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,\\n-10,-9.5,-14c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54c44.2,-33.3,65.8,\\n-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10s173,378,173,378c0.7,0,\\n35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429c69,-144,104.5,-217.7,106.5,\\n-221c5.3,-9.3,12,-14,20,-14H400000v40H845.2724s-225.272,467,-225.272,467\\ns-235,486,-235,486c-2.7,4.7,-9,7,-19,7c-6,0,-10,-1,-12,-3s-194,-422,-194,-422\\ns-65,47,-65,47z M834 \" + hLinePad + \"H400000v40H845z\",\n\n    // size1 is from glyph U221A in the font KaTeX_Size1-Regular\n    sqrtSize1: \"M263,\" + (601 + hLinePad) + \"c0.7,0,18,39.7,52,119c34,79.3,68.167,\\n158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120c340,-704.7,510.7,-1060.3,512,-1067\\nc4.7,-7.3,11,-11,19,-11H40000v40H1012.3s-271.3,567,-271.3,567c-38.7,80.7,-84,\\n175,-136,283c-52,108,-89.167,185.3,-111.5,232c-22.3,46.7,-33.8,70.3,-34.5,71\\nc-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1s-109,-253,-109,-253c-72.7,-168,-109.3,\\n-252,-110,-252c-10.7,8,-22,16.7,-34,26c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26\\ns76,-59,76,-59s76,-60,76,-60z M1001 \" + hLinePad + \"H40000v40H1012z\",\n\n    // size2 is from glyph U221A in the font KaTeX_Size2-Regular\n    // The 80 units padding is most obvious here. Note start node at M1001 80.\n    sqrtSize2: \"M1001,\" + hLinePad + \"H400000v40H1013.1s-83.4,268,-264.1,840c-180.7,\\n572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,\\n-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744c-10,12,-21,25,-33,39s-32,39,-32,39\\nc-6,-5.3,-15,-14,-27,-26s25,-30,25,-30c26.7,-32.7,52,-63,76,-91s52,-60,52,-60\\ns208,722,208,722c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,\\n-658.5c53.7,-170.3,84.5,-266.8,92.5,-289.5c4,-6.7,10,-10,18,-10z\\nM1001 \" + hLinePad + \"H400000v40H1013z\",\n\n    // size3 is from glyph U221A in the font KaTeX_Size3-Regular\n    sqrtSize3: \"M424,\" + (2398 + hLinePad) + \"c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,\\n-342,-109.8,-513.3,-110.5,-514c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,\\n25c-5.7,9.3,-9.8,16,-12.5,20s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,\\n-13s76,-122,76,-122s77,-121,77,-121s209,968,209,968c0,-2,84.7,-361.7,254,-1079\\nc169.3,-717.3,254.7,-1077.7,256,-1081c4,-6.7,10,-10,18,-10H400000v40H1014.6\\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185c-2,6,-10,9,-24,9\\nc-8,0,-12,-0.7,-12,-2z M1001 \" + hLinePad + \"H400000v40H1014z\",\n\n    // size4 is from glyph U221A in the font KaTeX_Size4-Regular\n    sqrtSize4: \"M473,\" + (2713 + hLinePad) + \"c339.3,-1799.3,509.3,-2700,510,-2702\\nc3.3,-7.3,9.3,-11,18,-11H400000v40H1017.7s-90.5,478,-276.2,1466c-185.7,988,\\n-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,\\n-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200c0,-1.3,-5.3,8.7,-16,30c-10.7,\\n21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26s76,-153,76,-153s77,-151,\\n77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,606z\\nM1001 \" + hLinePad + \"H400000v40H1017z\",\n\n    // The doubleleftarrow geometry is from glyph U+21D0 in the font KaTeX Main\n    doubleleftarrow: \"M262 157\\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\\nm8 0v40h399730v-40zm0 194v40h399730v-40z\",\n\n    // doublerightarrow is from glyph U+21D2 in font KaTeX Main\n    doublerightarrow: \"M399738 392l\\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z\",\n\n    // leftarrow is from glyph U+2190 in font KaTeX Main\n    leftarrow: \"M400000 241H110l3-3c68.7-52.7 113.7-120\\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\\n l-3-3h399890zM100 241v40h399900v-40z\",\n\n    // overbrace is from glyphs U+23A9/23A8/23A7 in font KaTeX_Size4-Regular\n    leftbrace: \"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z\",\n\n    leftbraceunder: \"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z\",\n\n    // overgroup is from the MnSymbol package (public domain)\n    leftgroup: \"M400000 80\\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\\n 435 0h399565z\",\n\n    leftgroupunder: \"M400000 262\\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\\n 435 219h399565z\",\n\n    // Harpoons are from glyph U+21BD in font KaTeX Main\n    leftharpoon: \"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z\",\n\n    leftharpoonplus: \"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\\nm0 0v40h400000v-40z\",\n\n    leftharpoondown: \"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z\",\n\n    leftharpoondownplus: \"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z\",\n\n    // hook is from glyph U+21A9 in font KaTeX Main\n    lefthook: \"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\\n 71.5 23h399859zM103 281v-40h399897v40z\",\n\n    leftlinesegment: \"M40 281 V428 H0 V94 H40 V241 H400000 v40z\\nM40 281 V428 H0 V94 H40 V241 H400000 v40z\",\n\n    leftmapsto: \"M40 281 V448H0V74H40V241H400000v40z\\nM40 281 V448H0V74H40V241H400000v40z\",\n\n    // tofrom is from glyph U+21C4 in font KaTeX AMS Regular\n    leftToFrom: \"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z\",\n\n    longequal: \"M0 50 h400000 v40H0z m0 194h40000v40H0z\\nM0 50 h400000 v40H0z m0 194h40000v40H0z\",\n\n    midbrace: \"M200428 334\\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z\",\n\n    midbraceunder: \"M199572 214\\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z\",\n\n    rightarrow: \"M0 241v40h399891c-47.3 35.3-84 78-110 128\\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\\n 151.7 139 205zm0 0v40h399900v-40z\",\n\n    rightbrace: \"M400000 542l\\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z\",\n\n    rightbraceunder: \"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z\",\n\n    rightgroup: \"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\\n 3-1 3-3v-38c-76-158-257-219-435-219H0z\",\n\n    rightgroupunder: \"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z\",\n\n    rightharpoon: \"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\\n 69.2 92 94.5zm0 0v40h399900v-40z\",\n\n    rightharpoonplus: \"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z\",\n\n    rightharpoondown: \"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z\",\n\n    rightharpoondownplus: \"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\\nm0-194v40h400000v-40zm0 0v40h400000v-40z\",\n\n    righthook: \"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z\",\n\n    rightlinesegment: \"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z\",\n\n    rightToFrom: \"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z\",\n\n    // twoheadleftarrow is from glyph U+219E in font KaTeX AMS Regular\n    twoheadleftarrow: \"M0 167c68 40\\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z\",\n\n    twoheadrightarrow: \"M400000 167\\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z\",\n\n    // tilde1 is a modified version of a glyph from the MnSymbol package\n    tilde1: \"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\\n-68.267.847-113-73.952-191-73.952z\",\n\n    // ditto tilde2, tilde3, & tilde4\n    tilde2: \"M344 55.266c-142 0-300.638 81.316-311.5 86.418\\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z\",\n\n    tilde3: \"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\\n -338 0-409-156.573-744-156.573z\",\n\n    tilde4: \"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\\n -175.236-744-175.236z\",\n\n    // vec is from glyph U+20D7 in font KaTeX Main\n    vec: \"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\\nc-16-25.333-24-45-24-59z\",\n\n    // widehat1 is a modified version of a glyph from the MnSymbol package\n    widehat1: \"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z\",\n\n    // ditto widehat2, widehat3, & widehat4\n    widehat2: \"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z\",\n\n    widehat3: \"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z\",\n\n    widehat4: \"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z\",\n\n    // baraboveleftarrow is from glyph U+21C4 in font KaTeX AMS Regular\n    baraboveleftarrow: \"M1 500c30.67-18 59-41.833 85-71.5s45-61.17 57-94.5h23\\nc15.33 0 23 .33 23 1 0 .67-5.33 12.67-16 36-16.67 34.67-39 67.33-67 98l-10 11\\nh39904v40H96l9 10c27.33 30.67 50.67 65 70 103l14 33c0 .67-7.67 1-23 1h-22\\nC116.67 596.33 69 540.67 1 500z M96 480 H400000 v40 H96z\\nM1 147 H399905 v40  H1z M0 147 H399905 v40  H0z\",\n\n    // ditto rightarrowabovebar\n    rightarrowabovebar: \"M400000 167c-70.67 42-118 97.67-142 167h-23c-15.33 0\\n-23-.33-23-1 0-1.33 5.33-13.67 16-37 18-35.33 41.33-69 70-101l7-8h-39905\\nv-40h39905c-389 0 0 0 0 0l-7-8c-28.67-32-52-65.67-70-101-10.67-23.33-16-35.67\\n-16-37 0-.67 7.67-1 23-1h23c11.33 33.33 30 64.833 56 94.5s54.67 53.83 86 72.5z\\nM0 147 H399905 v40  H0z M96 480 H400000 v40 H0z M96 480 H400000 v40 H0z\",\n\n    // The next eight paths support reaction arrows from the mhchem package.\n\n    // The short left harpoon has 0.5em (i.e. 500 units) kern on the left end.\n    // Ref from mhchem.sty: \\rlap{\\raisebox{-.22ex}{$\\kern0.5em\n    baraboveshortleftharpoon: \"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z\",\n\n    rightharpoonaboveshortbar: \"M0,241 l0,40c399126,0,399993,0,399993,0\\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z\",\n\n    shortbaraboveleftharpoon: \"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z\",\n\n    shortrightharpoonabovebar: \"M53,241l0,40c398570,0,399437,0,399437,0\\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z\"\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({ path: path });\n\n/***/ }),\n/* 112 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return spacings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return tightSpacings; });\n/**\n * Describes spaces between different classes of atoms.\n */\n\nvar thinspace = {\n    number: 3,\n    unit: \"mu\"\n};\nvar mediumspace = {\n    number: 4,\n    unit: \"mu\"\n};\nvar thickspace = {\n    number: 5,\n    unit: \"mu\"\n};\n\n// Spacing relationships for display and text styles\nvar spacings = {\n    mord: {\n        mop: thinspace,\n        mbin: mediumspace,\n        mrel: thickspace,\n        minner: thinspace\n    },\n    mop: {\n        mord: thinspace,\n        mop: thinspace,\n        mrel: thickspace,\n        minner: thinspace\n    },\n    mbin: {\n        mord: mediumspace,\n        mop: mediumspace,\n        mopen: mediumspace,\n        minner: mediumspace\n    },\n    mrel: {\n        mord: thickspace,\n        mop: thickspace,\n        mopen: thickspace,\n        minner: thickspace\n    },\n    mopen: {},\n    mclose: {\n        mop: thinspace,\n        mbin: mediumspace,\n        mrel: thickspace,\n        minner: thinspace\n    },\n    mpunct: {\n        mord: thinspace,\n        mop: thinspace,\n        mrel: thickspace,\n        mopen: thinspace,\n        mclose: thinspace,\n        mpunct: thinspace,\n        minner: thinspace\n    },\n    minner: {\n        mord: thinspace,\n        mop: thinspace,\n        mbin: mediumspace,\n        mrel: thickspace,\n        mopen: thinspace,\n        mpunct: thinspace,\n        minner: thinspace\n    }\n};\n\n// Spacing relationships for script and scriptscript styles\nvar tightSpacings = {\n    mord: {\n        mop: thinspace\n    },\n    mop: {\n        mord: thinspace,\n        mop: thinspace\n    },\n    mbin: {},\n    mrel: {},\n    mopen: {},\n    mclose: {\n        mop: thinspace\n    },\n    mpunct: {},\n    minner: {\n        mop: thinspace\n    }\n};\n\n/***/ }),\n/* 113 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Parser__ = __webpack_require__(114);\n\n/**\n * Provides a single function for parsing an expression using a Parser\n * TODO(emily): Remove this\n */\n\n\n\n/**\n * Parses an expression using a Parser, then returns the parsed result.\n */\nvar parseTree = function parseTree(toParse, settings) {\n  if (!(typeof toParse === 'string' || toParse instanceof String)) {\n    throw new TypeError('KaTeX can only parse string typed expression');\n  }\n  var parser = new __WEBPACK_IMPORTED_MODULE_0__Parser__[\"a\" /* default */](toParse, settings);\n\n  return parser.parse();\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (parseTree);\n\n/***/ }),\n/* 114 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__functions__ = __webpack_require__(115);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__environments__ = __webpack_require__(142);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__MacroExpander__ = __webpack_require__(144);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__symbols__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__units__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__unicodeScripts__ = __webpack_require__(42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__unicodeAccents__ = __webpack_require__(148);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__unicodeAccents___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__unicodeAccents__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__unicodeSymbols__ = __webpack_require__(149);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__ParseNode__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__ParseError__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__Lexer_js__ = __webpack_require__(62);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__Settings__ = __webpack_require__(34);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__Token__ = __webpack_require__(27);\n\n\n\n/* eslint no-constant-condition:0 */\n/* eslint no-console:0 */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * This file contains the parser used to parse out a TeX expression from the\n * input. Since TeX isn't context-free, standard parsers don't work particularly\n * well.\n *\n * The strategy of this parser is as such:\n *\n * The main functions (the `.parse...` ones) take a position in the current\n * parse string to parse tokens from. The lexer (found in Lexer.js, stored at\n * this.lexer) also supports pulling out tokens at arbitrary places. When\n * individual tokens are needed at a position, the lexer is called to pull out a\n * token, which is then used.\n *\n * The parser has a property called \"mode\" indicating the mode that\n * the parser is currently in. Currently it has to be one of \"math\" or\n * \"text\", which denotes whether the current environment is a math-y\n * one or a text-y one (e.g. inside \\text). Currently, this serves to\n * limit the functions which can be used in text mode.\n *\n * The main functions then return an object which contains the useful data that\n * was parsed at its given point, and a new position at the end of the parsed\n * data. The main functions can call each other and continue the parsing by\n * using the returned position as a new starting point.\n *\n * There are also extra `.handle...` functions, which pull out some reused\n * functionality into self-contained functions.\n *\n * The earlier functions return ParseNodes.\n * The later functions (which are called deeper in the parse) sometimes return\n * ParsedFuncOrArgOrDollar, which contain a ParseNode as well as some data about\n * whether the parsed object is a function which is missing some arguments, or a\n * standalone object which can be used as an argument to another function.\n */\n\nfunction newArgument(result, token) {\n    return { type: \"arg\", result: result, token: token };\n}\n\nfunction newFunction(token) {\n    return { type: \"fn\", result: token.text, token: token };\n}\n\nfunction newDollar(token) {\n    return { type: \"$\", result: \"$\", token: token };\n}\n\nfunction assertFuncOrArg(parsed) {\n    if (parsed.type === \"$\") {\n        throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Unexpected $\", parsed.token);\n    }\n    return parsed;\n}\n\nvar Parser = function () {\n    function Parser(input, settings) {\n        __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, Parser);\n\n        // Start in math mode\n        this.mode = \"math\";\n        // Create a new macro expander (gullet) and (indirectly via that) also a\n        // new lexer (mouth) for this parser (stomach, in the language of TeX)\n        this.gullet = new __WEBPACK_IMPORTED_MODULE_4__MacroExpander__[\"a\" /* default */](input, settings.macros, this.mode);\n        // Use old \\color behavior (same as LaTeX's \\textcolor) if requested.\n        // We do this after the macros object has been copied by MacroExpander.\n        if (settings.colorIsTextColor) {\n            this.gullet.macros[\"\\\\color\"] = \"\\\\textcolor\";\n        }\n        // Store the settings for use in parsing\n        this.settings = settings;\n        // Count leftright depth (for \\middle errors)\n        this.leftrightDepth = 0;\n    }\n\n    /**\n     * Checks a result to make sure it has the right type, and throws an\n     * appropriate error otherwise.\n     */\n\n\n    __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default()(Parser, [{\n        key: \"expect\",\n        value: function expect(text) {\n            var consume = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n            if (this.nextToken.text !== text) {\n                throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Expected '\" + text + \"', got '\" + this.nextToken.text + \"'\", this.nextToken);\n            }\n            if (consume) {\n                this.consume();\n            }\n        }\n\n        /**\n         * Considers the current look ahead token as consumed,\n         * and fetches the one after that as the new look ahead.\n         */\n\n    }, {\n        key: \"consume\",\n        value: function consume() {\n            this.nextToken = this.gullet.expandNextToken();\n        }\n\n        /**\n         * Switches between \"text\" and \"math\" modes.\n         */\n\n    }, {\n        key: \"switchMode\",\n        value: function switchMode(newMode) {\n            this.mode = newMode;\n            this.gullet.switchMode(newMode);\n        }\n\n        /**\n         * Main parsing function, which parses an entire input.\n         */\n\n    }, {\n        key: \"parse\",\n        value: function parse() {\n            // Try to parse the input\n            this.consume();\n            var parse = this.parseInput();\n            return parse;\n        }\n\n        /**\n         * Parses an entire input tree.\n         */\n\n    }, {\n        key: \"parseInput\",\n        value: function parseInput() {\n            // Parse an expression\n            var expression = this.parseExpression(false);\n            // If we succeeded, make sure there's an EOF at the end\n            this.expect(\"EOF\", false);\n            return expression;\n        }\n    }, {\n        key: \"parseExpression\",\n\n\n        /**\n         * Parses an \"expression\", which is a list of atoms.\n         *\n         * `breakOnInfix`: Should the parsing stop when we hit infix nodes? This\n         *                 happens when functions have higher precendence han infix\n         *                 nodes in implicit parses.\n         *\n         * `breakOnTokenText`: The text of the token that the expression should end\n         *                     with, or `null` if something else should end the\n         *                     expression.\n         */\n        value: function parseExpression(breakOnInfix, breakOnTokenText) {\n            var body = [];\n            // Keep adding atoms to the body until we can't parse any more atoms (either\n            // we reached the end, a }, or a \\right)\n            while (true) {\n                // Ignore spaces in math mode\n                if (this.mode === \"math\") {\n                    this.consumeSpaces();\n                }\n                var lex = this.nextToken;\n                if (Parser.endOfExpression.indexOf(lex.text) !== -1) {\n                    break;\n                }\n                if (breakOnTokenText && lex.text === breakOnTokenText) {\n                    break;\n                }\n                if (breakOnInfix && __WEBPACK_IMPORTED_MODULE_2__functions__[\"a\" /* default */][lex.text] && __WEBPACK_IMPORTED_MODULE_2__functions__[\"a\" /* default */][lex.text].infix) {\n                    break;\n                }\n                var atom = this.parseAtom(breakOnTokenText);\n                if (!atom) {\n                    if (!this.settings.throwOnError && lex.text[0] === \"\\\\\") {\n                        var errorNode = this.handleUnsupportedCmd();\n                        body.push(errorNode);\n                        continue;\n                    }\n\n                    break;\n                }\n                body.push(atom);\n            }\n            return this.handleInfixNodes(body);\n        }\n\n        /**\n         * Rewrites infix operators such as \\over with corresponding commands such\n         * as \\frac.\n         *\n         * There can only be one infix operator per group.  If there's more than one\n         * then the expression is ambiguous.  This can be resolved by adding {}.\n         */\n\n    }, {\n        key: \"handleInfixNodes\",\n        value: function handleInfixNodes(body) {\n            var overIndex = -1;\n            var funcName = void 0;\n\n            for (var i = 0; i < body.length; i++) {\n                var node = body[i];\n                if (node.type === \"infix\") {\n                    if (overIndex !== -1) {\n                        throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"only one infix operator per group\", node.value.token);\n                    }\n                    overIndex = i;\n                    funcName = node.value.replaceWith;\n                }\n            }\n\n            if (overIndex !== -1 && funcName) {\n                var numerNode = void 0;\n                var denomNode = void 0;\n\n                var numerBody = body.slice(0, overIndex);\n                var denomBody = body.slice(overIndex + 1);\n\n                if (numerBody.length === 1 && numerBody[0].type === \"ordgroup\") {\n                    numerNode = numerBody[0];\n                } else {\n                    numerNode = new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](\"ordgroup\", numerBody, this.mode);\n                }\n\n                if (denomBody.length === 1 && denomBody[0].type === \"ordgroup\") {\n                    denomNode = denomBody[0];\n                } else {\n                    denomNode = new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](\"ordgroup\", denomBody, this.mode);\n                }\n\n                var value = this.callFunction(funcName, [numerNode, denomNode], []);\n                return [new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](value.type, value, this.mode)];\n            } else {\n                return body;\n            }\n        }\n\n        // The greediness of a superscript or subscript\n\n    }, {\n        key: \"handleSupSubscript\",\n\n\n        /**\n         * Handle a subscript or superscript with nice errors.\n         */\n        value: function handleSupSubscript(name) {\n            var symbolToken = this.nextToken;\n            var symbol = symbolToken.text;\n            this.consume();\n            this.consumeSpaces(); // ignore spaces before sup/subscript argument\n            var group = this.parseGroup();\n\n            if (!group) {\n                if (!this.settings.throwOnError && this.nextToken.text[0] === \"\\\\\") {\n                    return this.handleUnsupportedCmd();\n                } else {\n                    throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Expected group after '\" + symbol + \"'\", symbolToken);\n                }\n            }\n\n            var arg = assertFuncOrArg(group);\n            if (arg.type === \"fn\") {\n                // ^ and _ have a greediness, so handle interactions with functions'\n                // greediness\n                var funcGreediness = __WEBPACK_IMPORTED_MODULE_2__functions__[\"a\" /* default */][arg.result].greediness;\n                if (funcGreediness > Parser.SUPSUB_GREEDINESS) {\n                    return this.parseGivenFunction(group);\n                } else {\n                    throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Got function '\" + arg.result + \"' with no arguments \" + \"as \" + name, symbolToken);\n                }\n            } else {\n                return arg.result;\n            }\n        }\n\n        /**\n         * Converts the textual input of an unsupported command into a text node\n         * contained within a color node whose color is determined by errorColor\n         */\n\n    }, {\n        key: \"handleUnsupportedCmd\",\n        value: function handleUnsupportedCmd() {\n            var text = this.nextToken.text;\n            var textordArray = [];\n\n            for (var i = 0; i < text.length; i++) {\n                textordArray.push(new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](\"textord\", text[i], \"text\"));\n            }\n\n            var textNode = new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](\"text\", {\n                body: textordArray,\n                type: \"text\"\n            }, this.mode);\n\n            var colorNode = new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](\"color\", {\n                color: this.settings.errorColor,\n                value: [textNode],\n                type: \"color\"\n            }, this.mode);\n\n            this.consume();\n            return colorNode;\n        }\n\n        /**\n         * Parses a group with optional super/subscripts.\n         */\n\n    }, {\n        key: \"parseAtom\",\n        value: function parseAtom(breakOnTokenText) {\n            // The body of an atom is an implicit group, so that things like\n            // \\left(x\\right)^2 work correctly.\n            var base = this.parseImplicitGroup(breakOnTokenText);\n\n            // In text mode, we don't have superscripts or subscripts\n            if (this.mode === \"text\") {\n                return base;\n            }\n\n            // Note that base may be empty (i.e. null) at this point.\n\n            var superscript = void 0;\n            var subscript = void 0;\n            while (true) {\n                // Guaranteed in math mode, so eat any spaces first.\n                this.consumeSpaces();\n\n                // Lex the first token\n                var lex = this.nextToken;\n\n                if (lex.text === \"\\\\limits\" || lex.text === \"\\\\nolimits\") {\n                    // We got a limit control\n                    if (!base || base.type !== \"op\") {\n                        throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Limit controls must follow a math operator\", lex);\n                    } else {\n                        var limits = lex.text === \"\\\\limits\";\n                        base.value.limits = limits;\n                        base.value.alwaysHandleSupSub = true;\n                    }\n                    this.consume();\n                } else if (lex.text === \"^\") {\n                    // We got a superscript start\n                    if (superscript) {\n                        throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Double superscript\", lex);\n                    }\n                    superscript = this.handleSupSubscript(\"superscript\");\n                } else if (lex.text === \"_\") {\n                    // We got a subscript start\n                    if (subscript) {\n                        throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Double subscript\", lex);\n                    }\n                    subscript = this.handleSupSubscript(\"subscript\");\n                } else if (lex.text === \"'\") {\n                    // We got a prime\n                    if (superscript) {\n                        throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Double superscript\", lex);\n                    }\n                    var prime = new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](\"textord\", \"\\\\prime\", this.mode);\n\n                    // Many primes can be grouped together, so we handle this here\n                    var primes = [prime];\n                    this.consume();\n                    // Keep lexing tokens until we get something that's not a prime\n                    while (this.nextToken.text === \"'\") {\n                        // For each one, add another prime to the list\n                        primes.push(prime);\n                        this.consume();\n                    }\n                    // If there's a superscript following the primes, combine that\n                    // superscript in with the primes.\n                    if (this.nextToken.text === \"^\") {\n                        primes.push(this.handleSupSubscript(\"superscript\"));\n                    }\n                    // Put everything into an ordgroup as the superscript\n                    superscript = new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](\"ordgroup\", primes, this.mode);\n                } else {\n                    // If it wasn't ^, _, or ', stop parsing super/subscripts\n                    break;\n                }\n            }\n\n            if (superscript || subscript) {\n                // If we got either a superscript or subscript, create a supsub\n                return new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](\"supsub\", {\n                    base: base,\n                    sup: superscript,\n                    sub: subscript\n                }, this.mode);\n            } else {\n                // Otherwise return the original body\n                return base;\n            }\n        }\n\n        /**\n         * Parses an implicit group, which is a group that starts at the end of a\n         * specified, and ends right before a higher explicit group ends, or at EOL. It\n         * is used for functions that appear to affect the current style, like \\Large or\n         * \\textrm, where instead of keeping a style we just pretend that there is an\n         * implicit grouping after it until the end of the group. E.g.\n         *   small text {\\Large large text} small text again\n         */\n\n    }, {\n        key: \"parseImplicitGroup\",\n        value: function parseImplicitGroup(breakOnTokenText) {\n            var start = this.parseSymbol();\n\n            if (start == null) {\n                // If we didn't get anything we handle, fall back to parseFunction\n                return this.parseFunction();\n            } else if (start.type === \"arg\") {\n                // Defer to parseGivenFunction if it's not a function we handle\n                return this.parseGivenFunction(start);\n            }\n\n            var func = start.result;\n\n            if (func === \"$\") {\n                if (this.mode === \"math\") {\n                    throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"$ within math mode\");\n                }\n                var outerMode = this.mode;\n                this.switchMode(\"math\");\n                // Expand next symbol now that we're in math mode.\n                this.consume();\n                var body = this.parseExpression(false, \"$\");\n                // We can't expand the next symbol after the $ until after\n                // switching modes back.  So don't consume within expect.\n                this.expect(\"$\", false);\n                this.switchMode(outerMode);\n                this.consume();\n                return new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](\"styling\", {\n                    style: \"text\",\n                    value: body\n                }, \"math\");\n            } else if (func === \"\\\\begin\") {\n                // begin...end is similar to left...right\n                var begin = this.parseGivenFunction(start);\n                var envName = begin.value.name;\n                if (!__WEBPACK_IMPORTED_MODULE_3__environments__[\"a\" /* default */].hasOwnProperty(envName)) {\n                    throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"No such environment: \" + envName, begin.value.nameGroup);\n                }\n                // Build the environment object. Arguments and other information will\n                // be made available to the begin and end methods using properties.\n                var env = __WEBPACK_IMPORTED_MODULE_3__environments__[\"a\" /* default */][envName];\n\n                var _parseArguments = this.parseArguments(\"\\\\begin{\" + envName + \"}\", env),\n                    args = _parseArguments.args,\n                    optArgs = _parseArguments.optArgs;\n\n                var context = {\n                    mode: this.mode,\n                    envName: envName,\n                    parser: this\n                };\n                var _result = env.handler(context, args, optArgs);\n                this.expect(\"\\\\end\", false);\n                var endNameToken = this.nextToken;\n                var end = this.parseFunction();\n                if (!end) {\n                    throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"failed to parse function after \\\\end\");\n                } else if (end.value.name !== envName) {\n                    throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Mismatch: \\\\begin{\" + envName + \"} matched \" + \"by \\\\end{\" + end.value.name + \"}\", endNameToken);\n                }\n                return _result;\n            } else {\n                // Defer to parseGivenFunction if it's not a function we handle\n                return this.parseGivenFunction(start, breakOnTokenText);\n            }\n        }\n\n        /**\n         * Parses an entire function, including its base and all of its arguments.\n         * It also handles the case where the parsed node is not a function.\n         */\n\n    }, {\n        key: \"parseFunction\",\n        value: function parseFunction() {\n            var baseGroup = this.parseGroup();\n            return baseGroup ? this.parseGivenFunction(baseGroup) : null;\n        }\n\n        /**\n         * Same as parseFunction(), except that the base is provided, guaranteeing a\n         * non-nullable result.\n         */\n\n    }, {\n        key: \"parseGivenFunction\",\n        value: function parseGivenFunction(baseGroup, breakOnTokenText) {\n            baseGroup = assertFuncOrArg(baseGroup);\n            if (baseGroup.type === \"fn\") {\n                var func = baseGroup.result;\n                var funcData = __WEBPACK_IMPORTED_MODULE_2__functions__[\"a\" /* default */][func];\n                if (this.mode === \"text\" && !funcData.allowedInText) {\n                    throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Can't use function '\" + func + \"' in text mode\", baseGroup.token);\n                } else if (this.mode === \"math\" && funcData.allowedInMath === false) {\n                    throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Can't use function '\" + func + \"' in math mode\", baseGroup.token);\n                }\n\n                var _parseArguments2 = this.parseArguments(func, funcData),\n                    args = _parseArguments2.args,\n                    optArgs = _parseArguments2.optArgs;\n\n                var _token = baseGroup.token;\n                var _result2 = this.callFunction(func, args, optArgs, _token, breakOnTokenText);\n                return new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](_result2.type, _result2, this.mode);\n            } else {\n                return baseGroup.result;\n            }\n        }\n\n        /**\n         * Call a function handler with a suitable context and arguments.\n         */\n\n    }, {\n        key: \"callFunction\",\n        value: function callFunction(name, args, optArgs, token, breakOnTokenText) {\n            var context = {\n                funcName: name,\n                parser: this,\n                token: token,\n                breakOnTokenText: breakOnTokenText\n            };\n            var func = __WEBPACK_IMPORTED_MODULE_2__functions__[\"a\" /* default */][name];\n            if (func && func.handler) {\n                return func.handler(context, args, optArgs);\n            } else {\n                throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"No function handler for \" + name);\n            }\n        }\n\n        /**\n         * Parses the arguments of a function or environment\n         */\n\n    }, {\n        key: \"parseArguments\",\n        value: function parseArguments(func, // Should look like \"\\name\" or \"\\begin{name}\".\n        funcData) {\n            var totalArgs = funcData.numArgs + funcData.numOptionalArgs;\n            if (totalArgs === 0) {\n                return { args: [], optArgs: [] };\n            }\n\n            var baseGreediness = funcData.greediness;\n            var args = [];\n            var optArgs = [];\n\n            for (var i = 0; i < totalArgs; i++) {\n                var argType = funcData.argTypes && funcData.argTypes[i];\n                var isOptional = i < funcData.numOptionalArgs;\n                // Ignore spaces between arguments.  As the TeXbook says:\n                // \"After you have said ‘\\def\\row#1#2{...}’, you are allowed to\n                //  put spaces between the arguments (e.g., ‘\\row x n’), because\n                //  TeX doesn’t use single spaces as undelimited arguments.\"\n                if (i > 0 && !isOptional) {\n                    this.consumeSpaces();\n                }\n                // Also consume leading spaces in math mode, as parseSymbol\n                // won't know what to do with them.  This can only happen with\n                // macros, e.g. \\frac\\foo\\foo where \\foo expands to a space symbol.\n                // In LaTeX, the \\foo's get treated as (blank) arguments).\n                // In KaTeX, for now, both spaces will get consumed.\n                // TODO(edemaine)\n                if (i === 0 && !isOptional && this.mode === \"math\") {\n                    this.consumeSpaces();\n                }\n                var nextToken = this.nextToken;\n                var arg = argType ? this.parseGroupOfType(argType, isOptional) : this.parseGroup(isOptional);\n                if (!arg) {\n                    if (isOptional) {\n                        optArgs.push(null);\n                        continue;\n                    }\n                    if (!this.settings.throwOnError && this.nextToken.text[0] === \"\\\\\") {\n                        arg = newArgument(this.handleUnsupportedCmd(), nextToken);\n                    } else {\n                        throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Expected group after '\" + func + \"'\", nextToken);\n                    }\n                }\n                var argNode = void 0;\n                arg = assertFuncOrArg(arg);\n                if (arg.type === \"fn\") {\n                    var argGreediness = __WEBPACK_IMPORTED_MODULE_2__functions__[\"a\" /* default */][arg.result].greediness;\n                    if (argGreediness > baseGreediness) {\n                        argNode = this.parseGivenFunction(arg);\n                    } else {\n                        throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Got function '\" + arg.result + \"' as \" + \"argument to '\" + func + \"'\", nextToken);\n                    }\n                } else {\n                    argNode = arg.result;\n                }\n                (isOptional ? optArgs : args).push(argNode);\n            }\n\n            return { args: args, optArgs: optArgs };\n        }\n\n        /**\n         * Parses a group when the mode is changing.\n         */\n\n    }, {\n        key: \"parseGroupOfType\",\n        value: function parseGroupOfType(type, // Used to describe the mode in error messages.\n        optional) {\n            // Handle `original` argTypes\n            if (type === \"original\") {\n                type = this.mode;\n            }\n\n            if (type === \"color\") {\n                return this.parseColorGroup(optional);\n            }\n            if (type === \"size\") {\n                return this.parseSizeGroup(optional);\n            }\n            if (type === \"url\") {\n                return this.parseUrlGroup(optional);\n            }\n\n            // By the time we get here, type is one of \"text\" or \"math\".\n            // Specify this as mode to parseGroup.\n            return this.parseGroup(optional, type);\n        }\n    }, {\n        key: \"consumeSpaces\",\n        value: function consumeSpaces() {\n            while (this.nextToken.text === \" \") {\n                this.consume();\n            }\n        }\n\n        /**\n         * Parses a group, essentially returning the string formed by the\n         * brace-enclosed tokens plus some position information.\n         */\n\n    }, {\n        key: \"parseStringGroup\",\n        value: function parseStringGroup(modeName, // Used to describe the mode in error messages.\n        optional) {\n            if (optional && this.nextToken.text !== \"[\") {\n                return null;\n            }\n            var outerMode = this.mode;\n            this.mode = \"text\";\n            this.expect(optional ? \"[\" : \"{\");\n            var str = \"\";\n            var firstToken = this.nextToken;\n            var lastToken = firstToken;\n            while (this.nextToken.text !== (optional ? \"]\" : \"}\")) {\n                if (this.nextToken.text === \"EOF\") {\n                    throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Unexpected end of input in \" + modeName, firstToken.range(this.nextToken, str));\n                }\n                lastToken = this.nextToken;\n                str += lastToken.text;\n                this.consume();\n            }\n            this.mode = outerMode;\n            this.expect(optional ? \"]\" : \"}\");\n            return firstToken.range(lastToken, str);\n        }\n\n        /**\n         * Parses a group, essentially returning the string formed by the\n         * brace-enclosed tokens plus some position information, possibly\n         * with nested braces.\n         */\n\n    }, {\n        key: \"parseStringGroupWithBalancedBraces\",\n        value: function parseStringGroupWithBalancedBraces(modeName, // Used to describe the mode in error messages.\n        optional) {\n            if (optional && this.nextToken.text !== \"[\") {\n                return null;\n            }\n            var outerMode = this.mode;\n            this.mode = \"text\";\n            this.expect(optional ? \"[\" : \"{\");\n            var str = \"\";\n            var nest = 0;\n            var firstToken = this.nextToken;\n            var lastToken = firstToken;\n            while (nest > 0 || this.nextToken.text !== (optional ? \"]\" : \"}\")) {\n                if (this.nextToken.text === \"EOF\") {\n                    throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Unexpected end of input in \" + modeName, firstToken.range(this.nextToken, str));\n                }\n                lastToken = this.nextToken;\n                str += lastToken.text;\n                if (lastToken.text === \"{\") {\n                    nest += 1;\n                } else if (lastToken.text === \"}\") {\n                    if (nest <= 0) {\n                        throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Unbalanced brace of input in \" + modeName, firstToken.range(this.nextToken, str));\n                    } else {\n                        nest -= 1;\n                    }\n                }\n                this.consume();\n            }\n            this.mode = outerMode;\n            this.expect(optional ? \"]\" : \"}\");\n            return firstToken.range(lastToken, str);\n        }\n\n        /**\n         * Parses a regex-delimited group: the largest sequence of tokens\n         * whose concatenated strings match `regex`. Returns the string\n         * formed by the tokens plus some position information.\n         */\n\n    }, {\n        key: \"parseRegexGroup\",\n        value: function parseRegexGroup(regex, modeName) {\n            var outerMode = this.mode;\n            this.mode = \"text\";\n            var firstToken = this.nextToken;\n            var lastToken = firstToken;\n            var str = \"\";\n            while (this.nextToken.text !== \"EOF\" && regex.test(str + this.nextToken.text)) {\n                lastToken = this.nextToken;\n                str += lastToken.text;\n                this.consume();\n            }\n            if (str === \"\") {\n                throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Invalid \" + modeName + \": '\" + firstToken.text + \"'\", firstToken);\n            }\n            this.mode = outerMode;\n            return firstToken.range(lastToken, str);\n        }\n\n        /**\n         * Parses a color description.\n         */\n\n    }, {\n        key: \"parseColorGroup\",\n        value: function parseColorGroup(optional) {\n            var res = this.parseStringGroup(\"color\", optional);\n            if (!res) {\n                return null;\n            }\n            var match = /^(#[a-f0-9]{3}|#[a-f0-9]{6}|[a-z]+)$/i.exec(res.text);\n            if (!match) {\n                throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Invalid color: '\" + res.text + \"'\", res);\n            }\n            return newArgument(new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](\"color\", match[0], this.mode), res);\n        }\n\n        /**\n         * Parses a url string.\n         */\n\n    }, {\n        key: \"parseUrlGroup\",\n        value: function parseUrlGroup(optional) {\n            var res = this.parseStringGroupWithBalancedBraces(\"url\", optional);\n            if (!res) {\n                return null;\n            }\n            var raw = res.text;\n            // hyperref package allows backslashes alone in href, but doesn't generate\n            // valid links in such cases; we interpret this as \"undefiend\" behaviour,\n            // and keep them as-is. Some browser will replace backslashes with\n            // forward slashes.\n            var url = raw.replace(/\\\\([#$%&~_^{}])/g, '$1');\n            return newArgument(new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](\"url\", url, this.mode), res);\n        }\n\n        /**\n         * Parses a size specification, consisting of magnitude and unit.\n         */\n\n    }, {\n        key: \"parseSizeGroup\",\n        value: function parseSizeGroup(optional) {\n            var res = void 0;\n            if (!optional && this.nextToken.text !== \"{\") {\n                res = this.parseRegexGroup(/^[-+]? *(?:$|\\d+|\\d+\\.\\d*|\\.\\d*) *[a-z]{0,2} *$/, \"size\");\n            } else {\n                res = this.parseStringGroup(\"size\", optional);\n            }\n            if (!res) {\n                return null;\n            }\n            var match = /([-+]?) *(\\d+(?:\\.\\d*)?|\\.\\d+) *([a-z]{2})/.exec(res.text);\n            if (!match) {\n                throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Invalid size: '\" + res.text + \"'\", res);\n            }\n            var data = {\n                number: +(match[1] + match[2]), // sign + magnitude, cast to number\n                unit: match[3]\n            };\n            if (!Object(__WEBPACK_IMPORTED_MODULE_6__units__[\"b\" /* validUnit */])(data)) {\n                throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Invalid unit: '\" + data.unit + \"'\", res);\n            }\n            return newArgument(new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](\"size\", data, this.mode), res);\n        }\n\n        /**\n         * If `optional` is false or absent, this parses an ordinary group,\n         * which is either a single nucleus (like \"x\") or an expression\n         * in braces (like \"{x+y}\").\n         * If `optional` is true, it parses either a bracket-delimited expression\n         * (like \"[x+y]\") or returns null to indicate the absence of a\n         * bracket-enclosed group.\n         * If `mode` is present, switches to that mode while parsing the group,\n         * and switches back after.\n         */\n\n    }, {\n        key: \"parseGroup\",\n        value: function parseGroup(optional, mode) {\n            var outerMode = this.mode;\n            var firstToken = this.nextToken;\n            // Try to parse an open brace\n            if (this.nextToken.text === (optional ? \"[\" : \"{\")) {\n                // Switch to specified mode before we expand symbol after brace\n                if (mode) {\n                    this.switchMode(mode);\n                }\n                // If we get a brace, parse an expression\n                this.consume();\n                var expression = this.parseExpression(false, optional ? \"]\" : \"}\");\n                var lastToken = this.nextToken;\n                // Switch mode back before consuming symbol after close brace\n                if (mode) {\n                    this.switchMode(outerMode);\n                }\n                // Make sure we get a close brace\n                this.expect(optional ? \"]\" : \"}\");\n                if (mode === \"text\") {\n                    this.formLigatures(expression);\n                }\n                return newArgument(new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](\"ordgroup\", expression, this.mode, firstToken, lastToken), firstToken.range(lastToken, firstToken.text));\n            } else {\n                // Otherwise, just return a nucleus, or nothing for an optional group\n                if (mode) {\n                    this.switchMode(mode);\n                }\n                var _result3 = optional ? null : this.parseSymbol();\n                if (mode) {\n                    this.switchMode(outerMode);\n                }\n                return _result3;\n            }\n        }\n\n        /**\n         * Form ligature-like combinations of characters for text mode.\n         * This includes inputs like \"--\", \"---\", \"``\" and \"''\".\n         * The result will simply replace multiple textord nodes with a single\n         * character in each value by a single textord node having multiple\n         * characters in its value.  The representation is still ASCII source.\n         * The group will be modified in place.\n         */\n\n    }, {\n        key: \"formLigatures\",\n        value: function formLigatures(group) {\n            var n = group.length - 1;\n            for (var i = 0; i < n; ++i) {\n                var a = group[i];\n                var v = a.value;\n                if (v === \"-\" && group[i + 1].value === \"-\") {\n                    if (i + 1 < n && group[i + 2].value === \"-\") {\n                        group.splice(i, 3, new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](\"textord\", \"---\", \"text\", a, group[i + 2]));\n                        n -= 2;\n                    } else {\n                        group.splice(i, 2, new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](\"textord\", \"--\", \"text\", a, group[i + 1]));\n                        n -= 1;\n                    }\n                }\n                if ((v === \"'\" || v === \"`\") && group[i + 1].value === v) {\n                    group.splice(i, 2, new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](\"textord\", v + v, \"text\", a, group[i + 1]));\n                    n -= 1;\n                }\n            }\n        }\n\n        /**\n         * Parse a single symbol out of the string. Here, we handle both the functions\n         * we have defined, as well as the single character symbols\n         */\n\n    }, {\n        key: \"parseSymbol\",\n        value: function parseSymbol() {\n            var nucleus = this.nextToken;\n            var text = nucleus.text;\n\n            if (__WEBPACK_IMPORTED_MODULE_2__functions__[\"a\" /* default */][text]) {\n                this.consume();\n                // If there exists a function with this name, we return the function and\n                // say that it is a function.\n                return newFunction(nucleus);\n            } else if (/^\\\\verb[^a-zA-Z]/.test(text)) {\n                this.consume();\n                var arg = text.slice(5);\n                var star = arg.charAt(0) === \"*\";\n                if (star) {\n                    arg = arg.slice(1);\n                }\n                // Lexer's tokenRegex is constructed to always have matching\n                // first/last characters.\n                if (arg.length < 2 || arg.charAt(0) !== arg.slice(-1)) {\n                    throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"\\\\verb assertion failed --\\n                    please report what input caused this bug\");\n                }\n                arg = arg.slice(1, -1); // remove first and last char\n                return newArgument(new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](\"verb\", {\n                    body: arg,\n                    star: star\n                }, \"text\"), nucleus);\n            } else if (text === \"$\") {\n                return newDollar(nucleus);\n            }\n            // At this point, we should have a symbol, possibly with accents.\n            // First expand any accented base symbol according to unicodeSymbols.\n            if (__WEBPACK_IMPORTED_MODULE_9__unicodeSymbols__[\"a\" /* default */].hasOwnProperty(text[0]) && !__WEBPACK_IMPORTED_MODULE_5__symbols__[\"a\" /* default */][this.mode][text[0]]) {\n                text = __WEBPACK_IMPORTED_MODULE_9__unicodeSymbols__[\"a\" /* default */][text[0]] + text.substr(1);\n            }\n            // Strip off any combining characters\n            var match = __WEBPACK_IMPORTED_MODULE_12__Lexer_js__[\"a\" /* combiningDiacriticalMarksEndRegex */].exec(text);\n            if (match) {\n                text = text.substring(0, match.index);\n                if (text === 'i') {\n                    text = \"\\u0131\"; // dotless i, in math and text mode\n                } else if (text === 'j') {\n                    text = \"\\u0237\"; // dotless j, in math and text mode\n                }\n            }\n            // Recognize base symbol\n            var symbol = null;\n            if (__WEBPACK_IMPORTED_MODULE_5__symbols__[\"a\" /* default */][this.mode][text]) {\n                symbol = new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](__WEBPACK_IMPORTED_MODULE_5__symbols__[\"a\" /* default */][this.mode][text].group, text, this.mode, nucleus);\n            } else if (this.mode === \"text\" && Object(__WEBPACK_IMPORTED_MODULE_7__unicodeScripts__[\"b\" /* supportedCodepoint */])(text.charCodeAt(0))) {\n                symbol = new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](\"textord\", text, this.mode, nucleus);\n            } else {\n                return null; // EOF, ^, _, {, }, etc.\n            }\n            this.consume();\n            // Transform combining characters into accents\n            if (match) {\n                for (var i = 0; i < match[0].length; i++) {\n                    var accent = match[0][i];\n                    if (!__WEBPACK_IMPORTED_MODULE_8__unicodeAccents___default.a[accent]) {\n                        throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Unknown accent ' \" + accent + \"'\", nucleus);\n                    }\n                    var command = __WEBPACK_IMPORTED_MODULE_8__unicodeAccents___default.a[accent][this.mode];\n                    if (!command) {\n                        throw new __WEBPACK_IMPORTED_MODULE_11__ParseError__[\"a\" /* default */](\"Accent \" + accent + \" unsupported in \" + this.mode + \" mode\", nucleus);\n                    }\n                    symbol = new __WEBPACK_IMPORTED_MODULE_10__ParseNode__[\"a\" /* default */](\"accent\", {\n                        type: \"accent\",\n                        label: command,\n                        isStretchy: false,\n                        isShifty: true,\n                        base: symbol\n                    }, this.mode, nucleus);\n                }\n            }\n            return newArgument(symbol, nucleus);\n        }\n    }]);\n\n    return Parser;\n}();\n\nParser.endOfExpression = [\"}\", \"\\\\end\", \"\\\\right\", \"&\", \"\\\\\\\\\", \"\\\\cr\"];\nParser.SUPSUB_GREEDINESS = 1;\n/* harmony default export */ __webpack_exports__[\"a\"] = (Parser);\n\n/***/ }),\n/* 115 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ParseError__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ParseNode__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__functions_sqrt__ = __webpack_require__(116);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__functions_color__ = __webpack_require__(117);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__functions_text__ = __webpack_require__(118);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__functions_enclose__ = __webpack_require__(119);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__functions_overline__ = __webpack_require__(120);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__functions_underline__ = __webpack_require__(121);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__functions_rule__ = __webpack_require__(122);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__functions_kern__ = __webpack_require__(123);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__functions_phantom__ = __webpack_require__(124);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__functions_mod__ = __webpack_require__(125);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__functions_op__ = __webpack_require__(126);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__functions_operatorname__ = __webpack_require__(127);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__functions_genfrac__ = __webpack_require__(128);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__functions_lap__ = __webpack_require__(129);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__functions_smash__ = __webpack_require__(130);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__functions_delimsizing__ = __webpack_require__(131);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__functions_sizing__ = __webpack_require__(60);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__functions_styling__ = __webpack_require__(132);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__functions_font__ = __webpack_require__(133);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__functions_accent__ = __webpack_require__(137);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__functions_accentunder__ = __webpack_require__(138);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__functions_verb__ = __webpack_require__(139);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__functions_href__ = __webpack_require__(140);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__functions_mathchoice__ = __webpack_require__(141);\n\n/** Include this to ensure that all functions are defined. */\n\n\n\n\n// WARNING: New functions should be added to src/functions and imported here.\n\nvar functions = __WEBPACK_IMPORTED_MODULE_2__defineFunction__[\"a\" /* _functions */];\n/* harmony default export */ __webpack_exports__[\"a\"] = (functions);\n\n// Define a convenience function that mimcs the old semantics of defineFunction\n// to support existing code so that we can migrate it a little bit at a time.\nvar defineFunction = function defineFunction(names, props, handler) // null only if handled in parser\n{\n    Object(__WEBPACK_IMPORTED_MODULE_2__defineFunction__[\"b\" /* default */])({ names: names, props: props, handler: handler });\n};\n\n// TODO(kevinb): have functions return an object and call defineFunction with\n// that object in this file instead of relying on side-effects.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// Math class commands except \\mathop\ndefineFunction([\"\\\\mathord\", \"\\\\mathbin\", \"\\\\mathrel\", \"\\\\mathopen\", \"\\\\mathclose\", \"\\\\mathpunct\", \"\\\\mathinner\"], {\n    numArgs: 1\n}, function (context, args) {\n    var body = args[0];\n    return {\n        type: \"mclass\",\n        mclass: \"m\" + context.funcName.substr(5),\n        value: Object(__WEBPACK_IMPORTED_MODULE_2__defineFunction__[\"c\" /* ordargument */])(body)\n    };\n});\n\n// Build a relation by placing one symbol on top of another\ndefineFunction([\"\\\\stackrel\"], {\n    numArgs: 2\n}, function (context, args) {\n    var top = args[0];\n    var bottom = args[1];\n\n    var bottomop = new __WEBPACK_IMPORTED_MODULE_1__ParseNode__[\"a\" /* default */](\"op\", {\n        type: \"op\",\n        limits: true,\n        alwaysHandleSupSub: true,\n        symbol: false,\n        value: Object(__WEBPACK_IMPORTED_MODULE_2__defineFunction__[\"c\" /* ordargument */])(bottom)\n    }, bottom.mode);\n\n    var supsub = new __WEBPACK_IMPORTED_MODULE_1__ParseNode__[\"a\" /* default */](\"supsub\", {\n        base: bottomop,\n        sup: top,\n        sub: null\n    }, top.mode);\n\n    return {\n        type: \"mclass\",\n        mclass: \"mrel\",\n        value: [supsub]\n    };\n});\n\n\n\nvar singleCharIntegrals = {\n    \"\\u222B\": \"\\\\int\",\n    \"\\u222C\": \"\\\\iint\",\n    \"\\u222D\": \"\\\\iiint\",\n    \"\\u222E\": \"\\\\oint\"\n};\n\n// There are 2 flags for operators; whether they produce limits in\n// displaystyle, and whether they are symbols and should grow in\n// displaystyle. These four groups cover the four possible choices.\n\n// No limits, not symbols\ndefineFunction([\"\\\\arcsin\", \"\\\\arccos\", \"\\\\arctan\", \"\\\\arctg\", \"\\\\arcctg\", \"\\\\arg\", \"\\\\ch\", \"\\\\cos\", \"\\\\cosec\", \"\\\\cosh\", \"\\\\cot\", \"\\\\cotg\", \"\\\\coth\", \"\\\\csc\", \"\\\\ctg\", \"\\\\cth\", \"\\\\deg\", \"\\\\dim\", \"\\\\exp\", \"\\\\hom\", \"\\\\ker\", \"\\\\lg\", \"\\\\ln\", \"\\\\log\", \"\\\\sec\", \"\\\\sin\", \"\\\\sinh\", \"\\\\sh\", \"\\\\tan\", \"\\\\tanh\", \"\\\\tg\", \"\\\\th\"], {\n    numArgs: 0\n}, function (context) {\n    return {\n        type: \"op\",\n        limits: false,\n        symbol: false,\n        body: context.funcName\n    };\n});\n\n// Limits, not symbols\ndefineFunction([\"\\\\det\", \"\\\\gcd\", \"\\\\inf\", \"\\\\lim\", \"\\\\max\", \"\\\\min\", \"\\\\Pr\", \"\\\\sup\"], {\n    numArgs: 0\n}, function (context) {\n    return {\n        type: \"op\",\n        limits: true,\n        symbol: false,\n        body: context.funcName\n    };\n});\n\n// No limits, symbols\ndefineFunction([\"\\\\int\", \"\\\\iint\", \"\\\\iiint\", \"\\\\oint\", \"\\u222B\", \"\\u222C\", \"\\u222D\", \"\\u222E\"], {\n    numArgs: 0\n}, function (context) {\n    var fName = context.funcName;\n    if (fName.length === 1) {\n        fName = singleCharIntegrals[fName];\n    }\n    return {\n        type: \"op\",\n        limits: false,\n        symbol: true,\n        body: fName\n    };\n});\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// Horizontal stretchy braces\ndefineFunction([\"\\\\overbrace\", \"\\\\underbrace\"], {\n    numArgs: 1\n}, function (context, args) {\n    var base = args[0];\n    return {\n        type: \"horizBrace\",\n        label: context.funcName,\n        isOver: /^\\\\over/.test(context.funcName),\n        base: base\n    };\n});\n\n// Stretchy accents under the body\n\n\n// Stretchy arrows with an optional argument\ndefineFunction([\"\\\\xleftarrow\", \"\\\\xrightarrow\", \"\\\\xLeftarrow\", \"\\\\xRightarrow\", \"\\\\xleftrightarrow\", \"\\\\xLeftrightarrow\", \"\\\\xhookleftarrow\", \"\\\\xhookrightarrow\", \"\\\\xmapsto\", \"\\\\xrightharpoondown\", \"\\\\xrightharpoonup\", \"\\\\xleftharpoondown\", \"\\\\xleftharpoonup\", \"\\\\xrightleftharpoons\", \"\\\\xleftrightharpoons\", \"\\\\xlongequal\", \"\\\\xtwoheadrightarrow\", \"\\\\xtwoheadleftarrow\", \"\\\\xtofrom\",\n// The next 3 functions are here to support the mhchem extension.\n// Direct use of these functions is discouraged and may break someday.\n\"\\\\xrightleftarrows\", \"\\\\xrightequilibrium\", \"\\\\xleftequilibrium\"], {\n    numArgs: 1,\n    numOptionalArgs: 1\n}, function (context, args, optArgs) {\n    var below = optArgs[0];\n    var body = args[0];\n    return {\n        type: \"xArrow\", // x for extensible\n        label: context.funcName,\n        body: body,\n        below: below\n    };\n});\n\n// Infix generalized fractions\ndefineFunction([\"\\\\over\", \"\\\\choose\", \"\\\\atop\"], {\n    numArgs: 0,\n    infix: true\n}, function (context) {\n    var replaceWith = void 0;\n    switch (context.funcName) {\n        case \"\\\\over\":\n            replaceWith = \"\\\\frac\";\n            break;\n        case \"\\\\choose\":\n            replaceWith = \"\\\\binom\";\n            break;\n        case \"\\\\atop\":\n            replaceWith = \"\\\\\\\\atopfrac\";\n            break;\n        default:\n            throw new Error(\"Unrecognized infix genfrac command\");\n    }\n    return {\n        type: \"infix\",\n        replaceWith: replaceWith,\n        token: context.token\n    };\n});\n\n// Row breaks for aligned data\ndefineFunction([\"\\\\\\\\\", \"\\\\cr\"], {\n    numArgs: 0,\n    numOptionalArgs: 1,\n    argTypes: [\"size\"]\n}, function (context, args, optArgs) {\n    var size = optArgs[0];\n    return {\n        type: \"cr\",\n        size: size\n    };\n});\n\n// Environment delimiters\ndefineFunction([\"\\\\begin\", \"\\\\end\"], {\n    numArgs: 1,\n    argTypes: [\"text\"]\n}, function (context, args) {\n    var nameGroup = args[0];\n    if (nameGroup.type !== \"ordgroup\") {\n        throw new __WEBPACK_IMPORTED_MODULE_0__ParseError__[\"a\" /* default */](\"Invalid environment name\", nameGroup);\n    }\n    var name = \"\";\n    for (var i = 0; i < nameGroup.value.length; ++i) {\n        name += nameGroup.value[i].value;\n    }\n    return {\n        type: \"environment\",\n        name: name,\n        nameGroup: nameGroup\n    };\n});\n\n// Box manipulation\ndefineFunction([\"\\\\raisebox\"], {\n    numArgs: 2,\n    argTypes: [\"size\", \"text\"],\n    allowedInText: true\n}, function (context, args) {\n    var amount = args[0];\n    var body = args[1];\n    return {\n        type: \"raisebox\",\n        dy: amount,\n        body: body,\n        value: Object(__WEBPACK_IMPORTED_MODULE_2__defineFunction__[\"c\" /* ordargument */])(body)\n    };\n});\n\n\n\n// Hyperlinks\n\n\n// MathChoice\n\n\n/***/ }),\n/* 116 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__domTree__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__delimiter__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Style__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__buildMathML__ = __webpack_require__(2);\n\n\n\n\n\n\n\n\n\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"sqrt\",\n    names: [\"\\\\sqrt\"],\n    props: {\n        numArgs: 1,\n        numOptionalArgs: 1\n    },\n    handler: function handler(context, args, optArgs) {\n        var index = optArgs[0];\n        var body = args[0];\n        return {\n            type: \"sqrt\",\n            body: body,\n            index: index\n        };\n    },\n    htmlBuilder: function htmlBuilder(group, options) {\n        // Square roots are handled in the TeXbook pg. 443, Rule 11.\n\n        // First, we do the same steps as in overline to build the inner group\n        // and line\n        var inner = __WEBPACK_IMPORTED_MODULE_6__buildHTML__[\"b\" /* buildGroup */](group.value.body, options.havingCrampedStyle());\n        if (inner.height === 0) {\n            // Render a small surd.\n            inner.height = options.fontMetrics().xHeight;\n        }\n\n        // Some groups can return document fragments.  Handle those by wrapping\n        // them in a span.\n        if (inner instanceof __WEBPACK_IMPORTED_MODULE_2__domTree__[\"a\" /* default */].documentFragment) {\n            inner = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([], [inner], options);\n        }\n\n        // Calculate the minimum size for the \\surd delimiter\n        var metrics = options.fontMetrics();\n        var theta = metrics.defaultRuleThickness;\n\n        var phi = theta;\n        if (options.style.id < __WEBPACK_IMPORTED_MODULE_5__Style__[\"a\" /* default */].TEXT.id) {\n            phi = options.fontMetrics().xHeight;\n        }\n\n        // Calculate the clearance between the body and line\n        var lineClearance = theta + phi / 4;\n\n        var minDelimiterHeight = (inner.height + inner.depth + lineClearance + theta) * options.sizeMultiplier;\n\n        // Create a sqrt SVG of the required minimum size\n\n        var _delimiter$sqrtImage = __WEBPACK_IMPORTED_MODULE_4__delimiter__[\"a\" /* default */].sqrtImage(minDelimiterHeight, options),\n            img = _delimiter$sqrtImage.span,\n            ruleWidth = _delimiter$sqrtImage.ruleWidth;\n\n        var delimDepth = img.height - ruleWidth;\n\n        // Adjust the clearance based on the delimiter size\n        if (delimDepth > inner.height + inner.depth + lineClearance) {\n            lineClearance = (lineClearance + delimDepth - inner.height - inner.depth) / 2;\n        }\n\n        // Shift the sqrt image\n        var imgShift = img.height - inner.height - lineClearance - ruleWidth;\n\n        inner.style.paddingLeft = img.advanceWidth + \"em\";\n\n        // Overlay the image and the argument.\n        var body = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeVList({\n            positionType: \"firstBaseline\",\n            children: [{ type: \"elem\", elem: inner, wrapperClasses: [\"svg-align\"] }, { type: \"kern\", size: -(inner.height + imgShift) }, { type: \"elem\", elem: img }, { type: \"kern\", size: ruleWidth }]\n        }, options);\n\n        if (!group.value.index) {\n            return __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mord\", \"sqrt\"], [body], options);\n        } else {\n            // Handle the optional root index\n\n            // The index is always in scriptscript style\n            var newOptions = options.havingStyle(__WEBPACK_IMPORTED_MODULE_5__Style__[\"a\" /* default */].SCRIPTSCRIPT);\n            var rootm = __WEBPACK_IMPORTED_MODULE_6__buildHTML__[\"b\" /* buildGroup */](group.value.index, newOptions, options);\n\n            // The amount the index is shifted by. This is taken from the TeX\n            // source, in the definition of `\\r@@t`.\n            var toShift = 0.6 * (body.height - body.depth);\n\n            // Build a VList with the superscript shifted up correctly\n            var rootVList = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeVList({\n                positionType: \"shift\",\n                positionData: -toShift,\n                children: [{ type: \"elem\", elem: rootm }]\n            }, options);\n            // Add a class surrounding it so we can add on the appropriate\n            // kerning\n            var rootVListWrap = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"root\"], [rootVList]);\n\n            return __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mord\", \"sqrt\"], [rootVListWrap, body], options);\n        }\n    },\n    mathmlBuilder: function mathmlBuilder(group, options) {\n        var node = void 0;\n        if (group.value.index) {\n            node = new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].MathNode(\"mroot\", [__WEBPACK_IMPORTED_MODULE_7__buildMathML__[\"b\" /* buildGroup */](group.value.body, options), __WEBPACK_IMPORTED_MODULE_7__buildMathML__[\"b\" /* buildGroup */](group.value.index, options)]);\n        } else {\n            node = new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].MathNode(\"msqrt\", [__WEBPACK_IMPORTED_MODULE_7__buildMathML__[\"b\" /* buildGroup */](group.value.body, options)]);\n        }\n\n        return node;\n    }\n});\n\n/***/ }),\n/* 117 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ParseError__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__buildMathML__ = __webpack_require__(2);\n\n\n\n\n\n\n\n\nvar htmlBuilder = function htmlBuilder(group, options) {\n    var elements = __WEBPACK_IMPORTED_MODULE_4__buildHTML__[\"a\" /* buildExpression */](group.value.value, options.withColor(group.value.color), false);\n\n    // \\color isn't supposed to affect the type of the elements it contains.\n    // To accomplish this, we wrap the results in a fragment, so the inner\n    // elements will be able to directly interact with their neighbors. For\n    // example, `\\color{red}{2 +} 3` has the same spacing as `2 + 3`\n    return new __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeFragment(elements);\n};\n\nvar mathmlBuilder = function mathmlBuilder(group, options) {\n    var inner = __WEBPACK_IMPORTED_MODULE_5__buildMathML__[\"a\" /* buildExpression */](group.value.value, options);\n\n    var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mstyle\", inner);\n\n    node.setAttribute(\"mathcolor\", group.value.color);\n\n    return node;\n};\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"color\",\n    names: [\"\\\\textcolor\"],\n    props: {\n        numArgs: 2,\n        allowedInText: true,\n        greediness: 3,\n        argTypes: [\"color\", \"original\"]\n    },\n    handler: function handler(context, args) {\n        var color = args[0];\n        var body = args[1];\n        return {\n            type: \"color\",\n            color: color.value,\n            value: Object(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"c\" /* ordargument */])(body)\n        };\n    },\n\n    htmlBuilder: htmlBuilder,\n    mathmlBuilder: mathmlBuilder\n});\n\n// TODO(kevinb): define these using macros\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"color\",\n    names: [\"\\\\blue\", \"\\\\orange\", \"\\\\pink\", \"\\\\red\", \"\\\\green\", \"\\\\gray\", \"\\\\purple\", \"\\\\blueA\", \"\\\\blueB\", \"\\\\blueC\", \"\\\\blueD\", \"\\\\blueE\", \"\\\\tealA\", \"\\\\tealB\", \"\\\\tealC\", \"\\\\tealD\", \"\\\\tealE\", \"\\\\greenA\", \"\\\\greenB\", \"\\\\greenC\", \"\\\\greenD\", \"\\\\greenE\", \"\\\\goldA\", \"\\\\goldB\", \"\\\\goldC\", \"\\\\goldD\", \"\\\\goldE\", \"\\\\redA\", \"\\\\redB\", \"\\\\redC\", \"\\\\redD\", \"\\\\redE\", \"\\\\maroonA\", \"\\\\maroonB\", \"\\\\maroonC\", \"\\\\maroonD\", \"\\\\maroonE\", \"\\\\purpleA\", \"\\\\purpleB\", \"\\\\purpleC\", \"\\\\purpleD\", \"\\\\purpleE\", \"\\\\mintA\", \"\\\\mintB\", \"\\\\mintC\", \"\\\\grayA\", \"\\\\grayB\", \"\\\\grayC\", \"\\\\grayD\", \"\\\\grayE\", \"\\\\grayF\", \"\\\\grayG\", \"\\\\grayH\", \"\\\\grayI\", \"\\\\kaBlue\", \"\\\\kaGreen\"],\n    props: {\n        numArgs: 1,\n        allowedInText: true,\n        greediness: 3\n    },\n    handler: function handler(context, args) {\n        var body = args[0];\n        return {\n            type: \"color\",\n            color: \"katex-\" + context.funcName.slice(1),\n            value: Object(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"c\" /* ordargument */])(body)\n        };\n    },\n\n    htmlBuilder: htmlBuilder,\n    mathmlBuilder: mathmlBuilder\n});\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"color\",\n    names: [\"\\\\color\"],\n    props: {\n        numArgs: 1,\n        allowedInText: true,\n        greediness: 3,\n        argTypes: [\"color\"]\n    },\n    handler: function handler(context, args) {\n        var parser = context.parser,\n            breakOnTokenText = context.breakOnTokenText;\n\n\n        var color = args[0];\n        if (!color) {\n            throw new __WEBPACK_IMPORTED_MODULE_3__ParseError__[\"a\" /* default */](\"\\\\color not followed by color\");\n        }\n\n        // If we see a styling function, parse out the implicit body\n        var body = parser.parseExpression(true, breakOnTokenText);\n\n        return {\n            type: \"color\",\n            color: color.value,\n            value: body\n        };\n    },\n\n    htmlBuilder: htmlBuilder,\n    mathmlBuilder: mathmlBuilder\n});\n\n/***/ }),\n/* 118 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__buildMathML__ = __webpack_require__(2);\n\n\n\n\n\n\n\n// Non-mathy text, possibly in a font\nvar textFontFamilies = {\n    \"\\\\text\": undefined, \"\\\\textrm\": \"textrm\", \"\\\\textsf\": \"textsf\",\n    \"\\\\texttt\": \"texttt\", \"\\\\textnormal\": \"textrm\"\n};\n\nvar textFontWeights = {\n    \"\\\\textbf\": \"textbf\"\n};\n\nvar textFontShapes = {\n    \"\\\\textit\": \"textit\"\n};\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"text\",\n    names: [\n    // Font families\n    \"\\\\text\", \"\\\\textrm\", \"\\\\textsf\", \"\\\\texttt\", \"\\\\textnormal\",\n    // Font weights\n    \"\\\\textbf\",\n    // Font Shapes\n    \"\\\\textit\"],\n    props: {\n        numArgs: 1,\n        argTypes: [\"text\"],\n        greediness: 2,\n        allowedInText: true\n    },\n    handler: function handler(context, args) {\n        var body = args[0];\n        return {\n            type: \"text\",\n            body: Object(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"c\" /* ordargument */])(body),\n            font: context.funcName\n        };\n    },\n    htmlBuilder: function htmlBuilder(group, options) {\n        var font = group.value.font;\n        // Checks if the argument is a font family or a font style.\n        var newOptions = void 0;\n        if (textFontFamilies[font]) {\n            newOptions = options.withFontFamily(textFontFamilies[font]);\n        } else if (textFontWeights[font]) {\n            newOptions = options.withFontWeight(textFontWeights[font]);\n        } else {\n            newOptions = options.withFontShape(textFontShapes[font]);\n        }\n        var inner = __WEBPACK_IMPORTED_MODULE_3__buildHTML__[\"a\" /* buildExpression */](group.value.body, newOptions, true);\n        __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].tryCombineChars(inner);\n        return __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mord\", \"text\"], inner, newOptions);\n    },\n    mathmlBuilder: function mathmlBuilder(group, options) {\n        var body = group.value.body;\n\n        // Convert each element of the body into MathML, and combine consecutive\n        // <mtext> outputs into a single <mtext> tag.  In this way, we don't\n        // nest non-text items (e.g., $nested-math$) within an <mtext>.\n        var inner = [];\n        var currentText = null;\n        for (var i = 0; i < body.length; i++) {\n            var _group = __WEBPACK_IMPORTED_MODULE_4__buildMathML__[\"b\" /* buildGroup */](body[i], options);\n            if (_group.type === 'mtext' && currentText != null) {\n                Array.prototype.push.apply(currentText.children, _group.children);\n            } else {\n                inner.push(_group);\n                if (_group.type === 'mtext') {\n                    currentText = _group;\n                }\n            }\n        }\n\n        // If there is a single tag in the end (presumably <mtext>),\n        // just return it.  Otherwise, wrap them in an <mrow>.\n        if (inner.length === 1) {\n            return inner[0];\n        } else {\n            return new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mrow\", inner);\n        }\n    }\n});\n\n/***/ }),\n/* 119 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__stretchy__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__buildMathML__ = __webpack_require__(2);\n\n\n\n\n\n\n\n\n\nvar htmlBuilder = function htmlBuilder(group, options) {\n    // \\cancel, \\bcancel, \\xcancel, \\sout, \\fbox, \\colorbox, \\fcolorbox\n    var inner = __WEBPACK_IMPORTED_MODULE_5__buildHTML__[\"b\" /* buildGroup */](group.value.body, options);\n\n    var label = group.value.label.substr(1);\n    var scale = options.sizeMultiplier;\n    var img = void 0;\n    var imgShift = 0;\n    var isColorbox = /color/.test(label);\n\n    if (label === \"sout\") {\n        img = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"stretchy\", \"sout\"]);\n        img.height = options.fontMetrics().defaultRuleThickness / scale;\n        imgShift = -0.5 * options.fontMetrics().xHeight;\n    } else {\n        // Add horizontal padding\n        inner.classes.push(/cancel/.test(label) ? \"cancel-pad\" : \"boxpad\");\n\n        // Add vertical padding\n        var vertPad = 0;\n        // ref: LaTeX source2e: \\fboxsep = 3pt;  \\fboxrule = .4pt\n        // ref: cancel package: \\advance\\totalheight2\\p@ % \"+2\"\n        if (/box/.test(label)) {\n            vertPad = label === \"colorbox\" ? 0.3 : 0.34;\n        } else {\n            vertPad = __WEBPACK_IMPORTED_MODULE_3__utils__[\"a\" /* default */].isCharacterBox(group.value.body) ? 0.2 : 0;\n        }\n\n        img = __WEBPACK_IMPORTED_MODULE_4__stretchy__[\"a\" /* default */].encloseSpan(inner, label, vertPad, options);\n        imgShift = inner.depth + vertPad;\n\n        if (isColorbox) {\n            img.style.backgroundColor = group.value.backgroundColor.value;\n            if (label === \"fcolorbox\") {\n                img.style.borderColor = group.value.borderColor.value;\n            }\n        }\n    }\n\n    var vlist = void 0;\n    if (isColorbox) {\n        vlist = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeVList({\n            positionType: \"individualShift\",\n            children: [\n            // Put the color background behind inner;\n            { type: \"elem\", elem: img, shift: imgShift }, { type: \"elem\", elem: inner, shift: 0 }]\n        }, options);\n    } else {\n        vlist = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeVList({\n            positionType: \"individualShift\",\n            children: [\n            // Write the \\cancel stroke on top of inner.\n            {\n                type: \"elem\",\n                elem: inner,\n                shift: 0\n            }, {\n                type: \"elem\",\n                elem: img,\n                shift: imgShift,\n                wrapperClasses: /cancel/.test(label) ? [\"svg-align\"] : []\n            }]\n        }, options);\n    }\n\n    if (/cancel/.test(label)) {\n        // cancel does not create horiz space for its line extension.\n        // That is, not when adjacent to a mord.\n        return __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mord\", \"cancel-lap\"], [vlist], options);\n    } else {\n        return __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mord\"], [vlist], options);\n    }\n};\n\nvar mathmlBuilder = function mathmlBuilder(group, options) {\n    var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"menclose\", [__WEBPACK_IMPORTED_MODULE_6__buildMathML__[\"b\" /* buildGroup */](group.value.body, options)]);\n    switch (group.value.label) {\n        case \"\\\\cancel\":\n            node.setAttribute(\"notation\", \"updiagonalstrike\");\n            break;\n        case \"\\\\bcancel\":\n            node.setAttribute(\"notation\", \"downdiagonalstrike\");\n            break;\n        case \"\\\\sout\":\n            node.setAttribute(\"notation\", \"horizontalstrike\");\n            break;\n        case \"\\\\fbox\":\n            node.setAttribute(\"notation\", \"box\");\n            break;\n        case \"\\\\colorbox\":\n            node.setAttribute(\"mathbackground\", group.value.backgroundColor.value);\n            break;\n        case \"\\\\fcolorbox\":\n            node.setAttribute(\"mathbackground\", group.value.backgroundColor.value);\n            // TODO(ron): I don't know any way to set the border color.\n            node.setAttribute(\"notation\", \"box\");\n            break;\n        default:\n            // xcancel\n            node.setAttribute(\"notation\", \"updiagonalstrike downdiagonalstrike\");\n    }\n    return node;\n};\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"enclose\",\n    names: [\"\\\\colorbox\"],\n    props: {\n        numArgs: 2,\n        allowedInText: true,\n        greediness: 3,\n        argTypes: [\"color\", \"text\"]\n    },\n    handler: function handler(context, args, optArgs) {\n        var color = args[0];\n        var body = args[1];\n        return {\n            type: \"enclose\",\n            label: context.funcName,\n            backgroundColor: color,\n            body: body\n        };\n    },\n\n    htmlBuilder: htmlBuilder,\n    mathmlBuilder: mathmlBuilder\n});\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"enclose\",\n    names: [\"\\\\fcolorbox\"],\n    props: {\n        numArgs: 3,\n        allowedInText: true,\n        greediness: 3,\n        argTypes: [\"color\", \"color\", \"text\"]\n    },\n    handler: function handler(context, args, optArgs) {\n        var borderColor = args[0];\n        var backgroundColor = args[1];\n        var body = args[2];\n        return {\n            type: \"enclose\",\n            label: context.funcName,\n            backgroundColor: backgroundColor,\n            borderColor: borderColor,\n            body: body\n        };\n    },\n\n    htmlBuilder: htmlBuilder,\n    mathmlBuilder: mathmlBuilder\n});\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"enclose\",\n    names: [\"\\\\cancel\", \"\\\\bcancel\", \"\\\\xcancel\", \"\\\\sout\", \"\\\\fbox\"],\n    props: {\n        numArgs: 1\n    },\n    handler: function handler(context, args, optArgs) {\n        var body = args[0];\n        return {\n            type: \"enclose\",\n            label: context.funcName,\n            body: body\n        };\n    },\n\n    htmlBuilder: htmlBuilder,\n    mathmlBuilder: mathmlBuilder\n});\n\n/***/ }),\n/* 120 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__buildMathML__ = __webpack_require__(2);\n\n\n\n\n\n\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"overline\",\n    names: [\"\\\\overline\"],\n    props: {\n        numArgs: 1\n    },\n    handler: function handler(context, args) {\n        var body = args[0];\n        return {\n            type: \"overline\",\n            body: body\n        };\n    },\n    htmlBuilder: function htmlBuilder(group, options) {\n        // Overlines are handled in the TeXbook pg 443, Rule 9.\n\n        // Build the inner group in the cramped style.\n        var innerGroup = __WEBPACK_IMPORTED_MODULE_3__buildHTML__[\"b\" /* buildGroup */](group.value.body, options.havingCrampedStyle());\n\n        // Create the line above the body\n        var line = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeLineSpan(\"overline-line\", options);\n\n        // Generate the vlist, with the appropriate kerns\n        var vlist = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeVList({\n            positionType: \"firstBaseline\",\n            children: [{ type: \"elem\", elem: innerGroup },\n            // The kern on the next line would ordinarily be 3 * line.height\n            // But we put the line into a span that is 5 lines tall, to\n            // overcome a Chrome rendering issue. The SVG has a space in\n            // the bottom that is 2 lines high. That and the 1-line-high\n            // kern sum up to the same distance as the old 3 line kern.\n            { type: \"kern\", size: line.height }, { type: \"elem\", elem: line }]\n        }, options);\n\n        return __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mord\", \"overline\"], [vlist], options);\n    },\n    mathmlBuilder: function mathmlBuilder(group, options) {\n        var operator = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].TextNode(\"\\u203E\")]);\n        operator.setAttribute(\"stretchy\", \"true\");\n\n        var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mover\", [__WEBPACK_IMPORTED_MODULE_4__buildMathML__[\"b\" /* buildGroup */](group.value.body, options), operator]);\n        node.setAttribute(\"accent\", \"true\");\n\n        return node;\n    }\n});\n\n/***/ }),\n/* 121 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__buildMathML__ = __webpack_require__(2);\n\n\n\n\n\n\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"underline\",\n    names: [\"\\\\underline\"],\n    props: {\n        numArgs: 1,\n        allowedInText: true\n    },\n    handler: function handler(context, args) {\n        var body = args[0];\n        return {\n            type: \"underline\",\n            body: body\n        };\n    },\n    htmlBuilder: function htmlBuilder(group, options) {\n        // Underlines are handled in the TeXbook pg 443, Rule 10.\n        // Build the inner group.\n        var innerGroup = __WEBPACK_IMPORTED_MODULE_3__buildHTML__[\"b\" /* buildGroup */](group.value.body, options);\n\n        // Create the line to go below the body\n        var line = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeLineSpan(\"underline-line\", options);\n\n        // Generate the vlist, with the appropriate kerns\n        var vlist = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeVList({\n            positionType: \"top\",\n            positionData: innerGroup.height,\n            children: [\n            // The SVG image is 5x as tall as the line.\n            // The bottom 2/5 of the image is blank and acts like a kern.\n            // So we omit the kern that would otherwise go at the bottom.\n            { type: \"elem\", elem: line }, { type: \"kern\", size: 5 * line.height }, { type: \"elem\", elem: innerGroup }]\n        }, options);\n\n        return __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mord\", \"underline\"], [vlist], options);\n    },\n    mathmlBuilder: function mathmlBuilder(group, options) {\n        var operator = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].TextNode(\"\\u203E\")]);\n        operator.setAttribute(\"stretchy\", \"true\");\n\n        var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"munder\", [__WEBPACK_IMPORTED_MODULE_4__buildMathML__[\"b\" /* buildGroup */](group.value.body, options), operator]);\n        node.setAttribute(\"accentunder\", \"true\");\n\n        return node;\n    }\n});\n\n/***/ }),\n/* 122 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__units__ = __webpack_require__(19);\n\n\n\n\n\nObject(__WEBPACK_IMPORTED_MODULE_1__defineFunction__[\"b\" /* default */])({\n    type: \"rule\",\n    names: [\"\\\\rule\"],\n    props: {\n        numArgs: 2,\n        numOptionalArgs: 1,\n        argTypes: [\"size\", \"size\", \"size\"]\n    },\n    handler: function handler(context, args, optArgs) {\n        var shift = optArgs[0];\n        var width = args[0];\n        var height = args[1];\n        return {\n            type: \"rule\",\n            shift: shift && shift.value,\n            width: width.value,\n            height: height.value\n        };\n    },\n    htmlBuilder: function htmlBuilder(group, options) {\n        // Make an empty span for the rule\n        var rule = __WEBPACK_IMPORTED_MODULE_0__buildCommon__[\"a\" /* default */].makeSpan([\"mord\", \"rule\"], [], options);\n\n        // Calculate the shift, width, and height of the rule, and account for units\n        var shift = 0;\n        if (group.value.shift) {\n            shift = Object(__WEBPACK_IMPORTED_MODULE_3__units__[\"a\" /* calculateSize */])(group.value.shift, options);\n        }\n\n        var width = Object(__WEBPACK_IMPORTED_MODULE_3__units__[\"a\" /* calculateSize */])(group.value.width, options);\n        var height = Object(__WEBPACK_IMPORTED_MODULE_3__units__[\"a\" /* calculateSize */])(group.value.height, options);\n\n        // Style the rule to the right size\n        rule.style.borderRightWidth = width + \"em\";\n        rule.style.borderTopWidth = height + \"em\";\n        rule.style.bottom = shift + \"em\";\n\n        // Record the height and width\n        rule.width = width;\n        rule.height = height + shift;\n        rule.depth = -shift;\n        // Font size is the number large enough that the browser will\n        // reserve at least `absHeight` space above the baseline.\n        // The 1.125 factor was empirically determined\n        rule.maxFontSize = height * 1.125 * options.sizeMultiplier;\n\n        return rule;\n    },\n    mathmlBuilder: function mathmlBuilder(group, options) {\n        // TODO(emily): Figure out if there's an actual way to draw black boxes\n        // in MathML.\n        var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mrow\");\n\n        return node;\n    }\n});\n\n/***/ }),\n/* 123 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__units__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__ParseError__ = __webpack_require__(6);\n\n/* eslint no-console:0 */\n// Horizontal spacing commands\n\n\n\n\n\n\n\n// TODO: \\hskip and \\mskip should support plus and minus in lengths\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"kern\",\n    names: [\"\\\\kern\", \"\\\\mkern\", \"\\\\hskip\", \"\\\\mskip\"],\n    props: {\n        numArgs: 1,\n        argTypes: [\"size\"],\n        allowedInText: true\n    },\n    handler: function handler(context, args) {\n        var mathFunction = context.funcName[1] === 'm'; // \\mkern, \\mskip\n        var muUnit = args[0].value.unit === 'mu';\n        if (mathFunction) {\n            if (!muUnit) {\n                typeof console !== \"undefined\" && console.warn(\"In LaTeX, \" + context.funcName + \" supports only mu units, \" + (\"not \" + args[0].value.unit + \" units\"));\n            }\n            if (context.parser.mode !== \"math\") {\n                throw new __WEBPACK_IMPORTED_MODULE_4__ParseError__[\"a\" /* default */](\"Can't use function '\" + context.funcName + \"' in text mode\");\n            }\n        } else {\n            // !mathFunction\n            if (muUnit) {\n                typeof console !== \"undefined\" && console.warn(\"In LaTeX, \" + context.funcName + \" does not support mu units\");\n            }\n        }\n        return {\n            type: \"kern\",\n            dimension: args[0].value\n        };\n    },\n    htmlBuilder: function htmlBuilder(group, options) {\n        return __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeGlue(group.value.dimension, options);\n    },\n    mathmlBuilder: function mathmlBuilder(group, options) {\n        var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mspace\");\n\n        var dimension = Object(__WEBPACK_IMPORTED_MODULE_3__units__[\"a\" /* calculateSize */])(group.value.dimension, options);\n        node.setAttribute(\"width\", dimension + \"em\");\n\n        return node;\n    }\n});\n\n/***/ }),\n/* 124 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__buildMathML__ = __webpack_require__(2);\n\n\n\n\n\n\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"phantom\",\n    names: [\"\\\\phantom\"],\n    props: {\n        numArgs: 1\n    },\n    handler: function handler(context, args) {\n        var body = args[0];\n        return {\n            type: \"phantom\",\n            value: Object(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"c\" /* ordargument */])(body)\n        };\n    },\n    htmlBuilder: function htmlBuilder(group, options) {\n        var elements = __WEBPACK_IMPORTED_MODULE_3__buildHTML__[\"a\" /* buildExpression */](group.value.value, options.withPhantom(), false);\n\n        // \\phantom isn't supposed to affect the elements it contains.\n        // See \"color\" for more details.\n        return new __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeFragment(elements);\n    },\n    mathmlBuilder: function mathmlBuilder(group, options) {\n        var inner = __WEBPACK_IMPORTED_MODULE_4__buildMathML__[\"a\" /* buildExpression */](group.value.value, options);\n        return new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mphantom\", inner);\n    }\n});\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"hphantom\",\n    names: [\"\\\\hphantom\"],\n    props: {\n        numArgs: 1\n    },\n    handler: function handler(context, args) {\n        var body = args[0];\n        return {\n            type: \"hphantom\",\n            value: Object(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"c\" /* ordargument */])(body),\n            body: body\n        };\n    },\n    htmlBuilder: function htmlBuilder(group, options) {\n        var node = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([], [__WEBPACK_IMPORTED_MODULE_3__buildHTML__[\"b\" /* buildGroup */](group.value.body, options.withPhantom())]);\n        node.height = 0;\n        node.depth = 0;\n        if (node.children) {\n            for (var i = 0; i < node.children.length; i++) {\n                node.children[i].height = 0;\n                node.children[i].depth = 0;\n            }\n        }\n\n        // See smash for comment re: use of makeVList\n        node = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeVList({\n            positionType: \"firstBaseline\",\n            children: [{ type: \"elem\", elem: node }]\n        }, options);\n\n        return node;\n    },\n    mathmlBuilder: function mathmlBuilder(group, options) {\n        var inner = __WEBPACK_IMPORTED_MODULE_4__buildMathML__[\"a\" /* buildExpression */](group.value.value, options);\n        var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mphantom\", inner);\n        node.setAttribute(\"height\", \"0px\");\n        return node;\n    }\n});\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"vphantom\",\n    names: [\"\\\\vphantom\"],\n    props: {\n        numArgs: 1\n    },\n    handler: function handler(context, args) {\n        var body = args[0];\n        return {\n            type: \"vphantom\",\n            value: Object(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"c\" /* ordargument */])(body),\n            body: body\n        };\n    },\n    htmlBuilder: function htmlBuilder(group, options) {\n        var inner = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"inner\"], [__WEBPACK_IMPORTED_MODULE_3__buildHTML__[\"b\" /* buildGroup */](group.value.body, options.withPhantom())]);\n        var fix = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"fix\"], []);\n        return __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mord\", \"rlap\"], [inner, fix], options);\n    },\n    mathmlBuilder: function mathmlBuilder(group, options) {\n        var inner = __WEBPACK_IMPORTED_MODULE_4__buildMathML__[\"a\" /* buildExpression */](group.value.value, options);\n        var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mphantom\", inner);\n        node.setAttribute(\"width\", \"0px\");\n        return node;\n    }\n});\n\n/***/ }),\n/* 125 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Style__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__buildMathML__ = __webpack_require__(2);\n\n// \\mod-type functions\n\n\n\n\n\n\n\n\nvar htmlModBuilder = function htmlModBuilder(group, options) {\n    var inner = [];\n\n    if (group.value.modType === \"bmod\") {\n        // “\\nonscript\\mskip-\\medmuskip\\mkern5mu”, where \\medmuskip is\n        // 4mu plus 2mu minus 1mu, translates to 1mu space in\n        // display/textstyle and 5mu space in script/scriptscriptstyle.\n        if (!options.style.isTight()) {\n            inner.push(__WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mspace\", \"muspace\"], [], options));\n        } else {\n            inner.push(__WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mspace\", \"thickspace\"], [], options));\n        }\n    } else if (options.style.size === __WEBPACK_IMPORTED_MODULE_3__Style__[\"a\" /* default */].DISPLAY.size) {\n        inner.push(__WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mspace\", \"quad\"], [], options));\n    } else if (group.value.modType === \"mod\") {\n        inner.push(__WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mspace\", \"twelvemuspace\"], [], options));\n    } else {\n        inner.push(__WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mspace\", \"eightmuspace\"], [], options));\n    }\n\n    if (group.value.modType === \"pod\" || group.value.modType === \"pmod\") {\n        inner.push(__WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].mathsym(\"(\", group.mode));\n    }\n\n    if (group.value.modType !== \"pod\") {\n        var modInner = [__WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].mathsym(\"m\", group.mode), __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].mathsym(\"o\", group.mode), __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].mathsym(\"d\", group.mode)];\n        if (group.value.modType === \"bmod\") {\n            inner.push(__WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mbin\"], modInner, options));\n            // “\\mkern5mu\\nonscript\\mskip-\\medmuskip” as above\n            if (!options.style.isTight()) {\n                inner.push(__WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mspace\", \"muspace\"], [], options));\n            } else {\n                inner.push(__WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mspace\", \"thickspace\"], [], options));\n            }\n        } else {\n            Array.prototype.push.apply(inner, modInner);\n            inner.push(__WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mspace\", \"sixmuspace\"], [], options));\n        }\n    }\n\n    if (group.value.value) {\n        Array.prototype.push.apply(inner, __WEBPACK_IMPORTED_MODULE_4__buildHTML__[\"a\" /* buildExpression */](group.value.value, options, false));\n    }\n\n    if (group.value.modType === \"pod\" || group.value.modType === \"pmod\") {\n        inner.push(__WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].mathsym(\")\", group.mode));\n    }\n\n    return __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeFragment(inner);\n};\n\nvar mmlModBuilder = function mmlModBuilder(group, options) {\n    var inner = [];\n\n    if (group.value.modType === \"pod\" || group.value.modType === \"pmod\") {\n        inner.push(new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [__WEBPACK_IMPORTED_MODULE_5__buildMathML__[\"e\" /* makeText */](\"(\", group.mode)]));\n    }\n    if (group.value.modType !== \"pod\") {\n        inner.push(new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [__WEBPACK_IMPORTED_MODULE_5__buildMathML__[\"e\" /* makeText */](\"mod\", group.mode)]));\n    }\n    if (group.value.value) {\n        var space = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mspace\");\n        space.setAttribute(\"width\", \"0.333333em\");\n        inner.push(space);\n        inner = inner.concat(__WEBPACK_IMPORTED_MODULE_5__buildMathML__[\"a\" /* buildExpression */](group.value.value, options));\n    }\n    if (group.value.modType === \"pod\" || group.value.modType === \"pmod\") {\n        inner.push(new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [__WEBPACK_IMPORTED_MODULE_5__buildMathML__[\"e\" /* makeText */](\")\", group.mode)]));\n    }\n\n    return new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", inner);\n};\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"mod\",\n    names: [\"\\\\bmod\"],\n    props: {\n        numArgs: 0\n    },\n    handler: function handler(context, args) {\n        return {\n            type: \"mod\",\n            modType: \"bmod\",\n            value: null\n        };\n    },\n    htmlBuilder: htmlModBuilder,\n    mathmlBuilder: mmlModBuilder\n});\n\n// Note: calling defineFunction with a type that's already been defined only\n// works because the same htmlBuilder and mathmlBuilder are being used.\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"mod\",\n    names: [\"\\\\pod\", \"\\\\pmod\", \"\\\\mod\"],\n    props: {\n        numArgs: 1\n    },\n    handler: function handler(context, args) {\n        var body = args[0];\n        return {\n            type: \"mod\",\n            modType: context.funcName.substr(1),\n            value: Object(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"c\" /* ordargument */])(body)\n        };\n    },\n    htmlBuilder: htmlModBuilder,\n    mathmlBuilder: mmlModBuilder\n});\n\n/***/ }),\n/* 126 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__domTree__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Style__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__buildMathML__ = __webpack_require__(2);\n\n// Limits, symbols\n\n\n\n\n\n\n\n\n\n\nvar htmlBuilder = function htmlBuilder(group, options) {\n    // Operators are handled in the TeXbook pg. 443-444, rule 13(a).\n    var supGroup = void 0;\n    var subGroup = void 0;\n    var hasLimits = false;\n    if (group.type === \"supsub\") {\n        // If we have limits, supsub will pass us its group to handle. Pull\n        // out the superscript and subscript and set the group to the op in\n        // its base.\n        supGroup = group.value.sup;\n        subGroup = group.value.sub;\n        group = group.value.base;\n        hasLimits = true;\n    }\n\n    var style = options.style;\n\n    // Most operators have a large successor symbol, but these don't.\n    var noSuccessor = [\"\\\\smallint\"];\n\n    var large = false;\n    if (style.size === __WEBPACK_IMPORTED_MODULE_5__Style__[\"a\" /* default */].DISPLAY.size && group.value.symbol && !__WEBPACK_IMPORTED_MODULE_4__utils__[\"a\" /* default */].contains(noSuccessor, group.value.body)) {\n\n        // Most symbol operators get larger in displaystyle (rule 13)\n        large = true;\n    }\n\n    var base = void 0;\n    if (group.value.symbol) {\n        // If this is a symbol, create the symbol.\n        var fontName = large ? \"Size2-Regular\" : \"Size1-Regular\";\n        base = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSymbol(group.value.body, fontName, \"math\", options, [\"mop\", \"op-symbol\", large ? \"large-op\" : \"small-op\"]);\n    } else if (group.value.value) {\n        // If this is a list, compose that list.\n        var inner = __WEBPACK_IMPORTED_MODULE_6__buildHTML__[\"a\" /* buildExpression */](group.value.value, options, true);\n        if (inner.length === 1 && inner[0] instanceof __WEBPACK_IMPORTED_MODULE_2__domTree__[\"a\" /* default */].symbolNode) {\n            base = inner[0];\n            base.classes[0] = \"mop\"; // replace old mclass\n        } else {\n            base = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mop\"], inner, options);\n        }\n    } else {\n        // Otherwise, this is a text operator. Build the text from the\n        // operator's name.\n        // TODO(emily): Add a space in the middle of some of these\n        // operators, like \\limsup\n        var output = [];\n        for (var i = 1; i < group.value.body.length; i++) {\n            output.push(__WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].mathsym(group.value.body[i], group.mode));\n        }\n        base = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mop\"], output, options);\n    }\n\n    // If content of op is a single symbol, shift it vertically.\n    var baseShift = 0;\n    var slant = 0;\n    if (base instanceof __WEBPACK_IMPORTED_MODULE_2__domTree__[\"a\" /* default */].symbolNode) {\n        // Shift the symbol so its center lies on the axis (rule 13). It\n        // appears that our fonts have the centers of the symbols already\n        // almost on the axis, so these numbers are very small. Note we\n        // don't actually apply this here, but instead it is used either in\n        // the vlist creation or separately when there are no limits.\n        baseShift = (base.height - base.depth) / 2 - options.fontMetrics().axisHeight;\n\n        // The slant of the symbol is just its italic correction.\n        slant = base.italic;\n    }\n\n    if (hasLimits) {\n        // IE 8 clips \\int if it is in a display: inline-block. We wrap it\n        // in a new span so it is an inline, and works.\n        base = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([], [base]);\n\n        var sub = void 0;\n        var sup = void 0;\n        // We manually have to handle the superscripts and subscripts. This,\n        // aside from the kern calculations, is copied from supsub.\n        if (supGroup) {\n            var elem = __WEBPACK_IMPORTED_MODULE_6__buildHTML__[\"b\" /* buildGroup */](supGroup, options.havingStyle(style.sup()), options);\n\n            sup = {\n                elem: elem,\n                kern: Math.max(options.fontMetrics().bigOpSpacing1, options.fontMetrics().bigOpSpacing3 - elem.depth)\n            };\n        }\n\n        if (subGroup) {\n            var _elem = __WEBPACK_IMPORTED_MODULE_6__buildHTML__[\"b\" /* buildGroup */](subGroup, options.havingStyle(style.sub()), options);\n\n            sub = {\n                elem: _elem,\n                kern: Math.max(options.fontMetrics().bigOpSpacing2, options.fontMetrics().bigOpSpacing4 - _elem.height)\n            };\n        }\n\n        // Build the final group as a vlist of the possible subscript, base,\n        // and possible superscript.\n        var finalGroup = void 0;\n        if (sup && sub) {\n            var bottom = options.fontMetrics().bigOpSpacing5 + sub.elem.height + sub.elem.depth + sub.kern + base.depth + baseShift;\n\n            finalGroup = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeVList({\n                positionType: \"bottom\",\n                positionData: bottom,\n                children: [{ type: \"kern\", size: options.fontMetrics().bigOpSpacing5 }, { type: \"elem\", elem: sub.elem, marginLeft: -slant + \"em\" }, { type: \"kern\", size: sub.kern }, { type: \"elem\", elem: base }, { type: \"kern\", size: sup.kern }, { type: \"elem\", elem: sup.elem, marginLeft: slant + \"em\" }, { type: \"kern\", size: options.fontMetrics().bigOpSpacing5 }]\n            }, options);\n        } else if (sub) {\n            var top = base.height - baseShift;\n\n            // Shift the limits by the slant of the symbol. Note\n            // that we are supposed to shift the limits by 1/2 of the slant,\n            // but since we are centering the limits adding a full slant of\n            // margin will shift by 1/2 that.\n            finalGroup = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeVList({\n                positionType: \"top\",\n                positionData: top,\n                children: [{ type: \"kern\", size: options.fontMetrics().bigOpSpacing5 }, { type: \"elem\", elem: sub.elem, marginLeft: -slant + \"em\" }, { type: \"kern\", size: sub.kern }, { type: \"elem\", elem: base }]\n            }, options);\n        } else if (sup) {\n            var _bottom = base.depth + baseShift;\n\n            finalGroup = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeVList({\n                positionType: \"bottom\",\n                positionData: _bottom,\n                children: [{ type: \"elem\", elem: base }, { type: \"kern\", size: sup.kern }, { type: \"elem\", elem: sup.elem, marginLeft: slant + \"em\" }, { type: \"kern\", size: options.fontMetrics().bigOpSpacing5 }]\n            }, options);\n        } else {\n            // This case probably shouldn't occur (this would mean the\n            // supsub was sending us a group with no superscript or\n            // subscript) but be safe.\n            return base;\n        }\n\n        return __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mop\", \"op-limits\"], [finalGroup], options);\n    } else {\n        if (baseShift) {\n            base.style.position = \"relative\";\n            base.style.top = baseShift + \"em\";\n        }\n\n        return base;\n    }\n};\n\nvar mathmlBuilder = function mathmlBuilder(group, options) {\n    var node = void 0;\n\n    // TODO(emily): handle big operators using the `largeop` attribute\n\n    if (group.value.symbol) {\n        // This is a symbol. Just add the symbol.\n        node = new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [__WEBPACK_IMPORTED_MODULE_7__buildMathML__[\"e\" /* makeText */](group.value.body, group.mode)]);\n    } else if (group.value.value) {\n        // This is an operator with children. Add them.\n        node = new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", __WEBPACK_IMPORTED_MODULE_7__buildMathML__[\"a\" /* buildExpression */](group.value.value, options));\n    } else {\n        // This is a text operator. Add all of the characters from the\n        // operator's name.\n        // TODO(emily): Add a space in the middle of some of these\n        // operators, like \\limsup.\n        node = new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].MathNode(\"mi\", [new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].TextNode(group.value.body.slice(1))]);\n\n        // Append an <mo>&ApplyFunction;</mo>.\n        // ref: https://www.w3.org/TR/REC-MathML/chap3_2.html#sec3.2.4\n        var operator = new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [__WEBPACK_IMPORTED_MODULE_7__buildMathML__[\"e\" /* makeText */](\"\\u2061\", \"text\")]);\n\n        return new __WEBPACK_IMPORTED_MODULE_2__domTree__[\"a\" /* default */].documentFragment([node, operator]);\n    }\n\n    return node;\n};\n\nvar singleCharBigOps = {\n    \"\\u220F\": \"\\\\prod\",\n    \"\\u2210\": \"\\\\coprod\",\n    \"\\u2211\": \"\\\\sum\",\n    \"\\u22C0\": \"\\\\bigwedge\",\n    \"\\u22C1\": \"\\\\bigvee\",\n    \"\\u22C2\": \"\\\\bigcap\",\n    \"\\u22C3\": \"\\\\bigcap\",\n    \"\\u2A00\": \"\\\\bigodot\",\n    \"\\u2A01\": \"\\\\bigoplus\",\n    \"\\u2A02\": \"\\\\bigotimes\",\n    \"\\u2A04\": \"\\\\biguplus\",\n    \"\\u2A06\": \"\\\\bigsqcup\"\n};\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"op\",\n    names: [\"\\\\coprod\", \"\\\\bigvee\", \"\\\\bigwedge\", \"\\\\biguplus\", \"\\\\bigcap\", \"\\\\bigcup\", \"\\\\intop\", \"\\\\prod\", \"\\\\sum\", \"\\\\bigotimes\", \"\\\\bigoplus\", \"\\\\bigodot\", \"\\\\bigsqcup\", \"\\\\smallint\", \"\\u220F\", \"\\u2210\", \"\\u2211\", \"\\u22C0\", \"\\u22C1\", \"\\u22C2\", \"\\u22C3\", \"\\u2A00\", \"\\u2A01\", \"\\u2A02\", \"\\u2A04\", \"\\u2A06\"],\n    props: {\n        numArgs: 0\n    },\n    handler: function handler(context, args) {\n        var fName = context.funcName;\n        if (fName.length === 1) {\n            fName = singleCharBigOps[fName];\n        }\n        return {\n            type: \"op\",\n            limits: true,\n            symbol: true,\n            body: fName\n        };\n    },\n    htmlBuilder: htmlBuilder,\n    mathmlBuilder: mathmlBuilder\n});\n\n// Note: calling defineFunction with a type that's already been defined only\n// works because the same htmlBuilder and mathmlBuilder are being used.\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"op\",\n    names: [\"\\\\mathop\"],\n    props: {\n        numArgs: 1\n    },\n    handler: function handler(context, args) {\n        var body = args[0];\n        return {\n            type: \"op\",\n            limits: false,\n            symbol: false,\n            value: Object(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"c\" /* ordargument */])(body)\n        };\n    },\n    htmlBuilder: htmlBuilder,\n    mathmlBuilder: mathmlBuilder\n});\n\n/***/ }),\n/* 127 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_get_iterator__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_get_iterator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_get_iterator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__domTree__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__buildMathML__ = __webpack_require__(2);\n\n\n\n\n\n\n\n\n\n// \\operatorname\n// amsopn.dtx: \\mathop{#1\\kern\\z@\\operator@font#3}\\newmcodes@\nObject(__WEBPACK_IMPORTED_MODULE_1__defineFunction__[\"b\" /* default */])({\n    type: \"operatorname\",\n    names: [\"\\\\operatorname\"],\n    props: {\n        numArgs: 1\n    },\n    handler: function handler(context, args) {\n        var body = args[0];\n        return {\n            type: \"operatorname\",\n            value: Object(__WEBPACK_IMPORTED_MODULE_1__defineFunction__[\"c\" /* ordargument */])(body)\n        };\n    },\n\n    htmlBuilder: function htmlBuilder(group, options) {\n        var output = [];\n        if (group.value.value.length > 0) {\n            var letter = \"\";\n            var mode = \"\";\n\n            var _iteratorNormalCompletion = true;\n            var _didIteratorError = false;\n            var _iteratorError = undefined;\n\n            try {\n                for (var _iterator = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_get_iterator___default()(group.value.value), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n                    var child = _step.value;\n\n                    // In the amsopn package, \\newmcodes@ changes four\n                    // characters, *-/:’, from math operators back into text.\n                    if (\"*-/:\".indexOf(child.value) !== -1) {\n                        child.type = \"textord\";\n                    }\n                }\n\n                // Consolidate Greek letter function names into symbol characters.\n            } catch (err) {\n                _didIteratorError = true;\n                _iteratorError = err;\n            } finally {\n                try {\n                    if (!_iteratorNormalCompletion && _iterator.return) {\n                        _iterator.return();\n                    }\n                } finally {\n                    if (_didIteratorError) {\n                        throw _iteratorError;\n                    }\n                }\n            }\n\n            var temp = __WEBPACK_IMPORTED_MODULE_5__buildHTML__[\"a\" /* buildExpression */](group.value.value, options.withFontFamily(\"mathrm\"), true);\n\n            // All we want from temp are the letters. With them, we'll\n            // create a text operator similar to \\tan or \\cos.\n            var _iteratorNormalCompletion2 = true;\n            var _didIteratorError2 = false;\n            var _iteratorError2 = undefined;\n\n            try {\n                for (var _iterator2 = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_get_iterator___default()(temp), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n                    var _child = _step2.value;\n\n                    if (_child instanceof __WEBPACK_IMPORTED_MODULE_4__domTree__[\"a\" /* default */].symbolNode) {\n                        letter = _child.value;\n\n                        // In the amsopn package, \\newmcodes@ changes four\n                        // characters, *-/:’, from math operators back into text.\n                        // Given what is in temp, we have to address two of them.\n                        letter = letter.replace(/\\u2212/, \"-\"); // minus => hyphen\n                        letter = letter.replace(/\\u2217/, \"*\");\n\n                        // Use math mode for Greek letters\n                        mode = /[\\u0391-\\u03D7]/.test(letter) ? \"math\" : \"text\";\n                        output.push(__WEBPACK_IMPORTED_MODULE_2__buildCommon__[\"a\" /* default */].mathsym(letter, mode));\n                    } else {\n                        output.push(_child);\n                    }\n                }\n            } catch (err) {\n                _didIteratorError2 = true;\n                _iteratorError2 = err;\n            } finally {\n                try {\n                    if (!_iteratorNormalCompletion2 && _iterator2.return) {\n                        _iterator2.return();\n                    }\n                } finally {\n                    if (_didIteratorError2) {\n                        throw _iteratorError2;\n                    }\n                }\n            }\n        }\n        return __WEBPACK_IMPORTED_MODULE_2__buildCommon__[\"a\" /* default */].makeSpan([\"mop\"], output, options);\n    },\n\n    mathmlBuilder: function mathmlBuilder(group, options) {\n        // The steps taken here are similar to the html version.\n        var output = [];\n        if (group.value.value.length > 0) {\n            var temp = __WEBPACK_IMPORTED_MODULE_6__buildMathML__[\"a\" /* buildExpression */](group.value.value, options.withFontFamily(\"mathrm\"));\n\n            var word = temp.map(function (node) {\n                return node.toText();\n            }).join(\"\");\n\n            word = word.replace(/\\u2212/g, \"-\");\n            word = word.replace(/\\u2217/g, \"*\");\n            output = [new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].TextNode(word)];\n        }\n        var identifier = new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].MathNode(\"mi\", output);\n        identifier.setAttribute(\"mathvariant\", \"normal\");\n\n        // \\u2061 is the same as &ApplyFunction;\n        // ref: https://www.w3schools.com/charsets/ref_html_entities_a.asp\n        var operator = new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [__WEBPACK_IMPORTED_MODULE_6__buildMathML__[\"e\" /* makeText */](\"\\u2061\", \"text\")]);\n\n        return new __WEBPACK_IMPORTED_MODULE_4__domTree__[\"a\" /* default */].documentFragment([identifier, operator]);\n    }\n});\n\n/***/ }),\n/* 128 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__delimiter__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Style__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__buildMathML__ = __webpack_require__(2);\n\n\n\n\n\n\n\n\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"genfrac\",\n    names: [\"\\\\dfrac\", \"\\\\frac\", \"\\\\tfrac\", \"\\\\dbinom\", \"\\\\binom\", \"\\\\tbinom\", \"\\\\\\\\atopfrac\"],\n    props: {\n        numArgs: 2,\n        greediness: 2\n    },\n    handler: function handler(context, args) {\n        var numer = args[0];\n        var denom = args[1];\n        var hasBarLine = void 0;\n        var leftDelim = null;\n        var rightDelim = null;\n        var size = \"auto\";\n\n        switch (context.funcName) {\n            case \"\\\\dfrac\":\n            case \"\\\\frac\":\n            case \"\\\\tfrac\":\n                hasBarLine = true;\n                break;\n            case \"\\\\\\\\atopfrac\":\n                hasBarLine = false;\n                break;\n            case \"\\\\dbinom\":\n            case \"\\\\binom\":\n            case \"\\\\tbinom\":\n                hasBarLine = false;\n                leftDelim = \"(\";\n                rightDelim = \")\";\n                break;\n            default:\n                throw new Error(\"Unrecognized genfrac command\");\n        }\n\n        switch (context.funcName) {\n            case \"\\\\dfrac\":\n            case \"\\\\dbinom\":\n                size = \"display\";\n                break;\n            case \"\\\\tfrac\":\n            case \"\\\\tbinom\":\n                size = \"text\";\n                break;\n        }\n\n        return {\n            type: \"genfrac\",\n            numer: numer,\n            denom: denom,\n            hasBarLine: hasBarLine,\n            leftDelim: leftDelim,\n            rightDelim: rightDelim,\n            size: size\n        };\n    },\n    htmlBuilder: function htmlBuilder(group, options) {\n        // Fractions are handled in the TeXbook on pages 444-445, rules 15(a-e).\n        // Figure out what style this fraction should be in based on the\n        // function used\n        var style = options.style;\n        if (group.value.size === \"display\") {\n            style = __WEBPACK_IMPORTED_MODULE_4__Style__[\"a\" /* default */].DISPLAY;\n        } else if (group.value.size === \"text\") {\n            style = __WEBPACK_IMPORTED_MODULE_4__Style__[\"a\" /* default */].TEXT;\n        }\n\n        var nstyle = style.fracNum();\n        var dstyle = style.fracDen();\n        var newOptions = void 0;\n\n        newOptions = options.havingStyle(nstyle);\n        var numerm = __WEBPACK_IMPORTED_MODULE_5__buildHTML__[\"b\" /* buildGroup */](group.value.numer, newOptions, options);\n\n        newOptions = options.havingStyle(dstyle);\n        var denomm = __WEBPACK_IMPORTED_MODULE_5__buildHTML__[\"b\" /* buildGroup */](group.value.denom, newOptions, options);\n\n        var rule = void 0;\n        var ruleWidth = void 0;\n        var ruleSpacing = void 0;\n        if (group.value.hasBarLine) {\n            rule = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeLineSpan(\"frac-line\", options);\n            ruleWidth = rule.height;\n            ruleSpacing = rule.height;\n        } else {\n            rule = null;\n            ruleWidth = 0;\n            ruleSpacing = options.fontMetrics().defaultRuleThickness;\n        }\n\n        // Rule 15b\n        var numShift = void 0;\n        var clearance = void 0;\n        var denomShift = void 0;\n        if (style.size === __WEBPACK_IMPORTED_MODULE_4__Style__[\"a\" /* default */].DISPLAY.size) {\n            numShift = options.fontMetrics().num1;\n            if (ruleWidth > 0) {\n                clearance = 3 * ruleSpacing;\n            } else {\n                clearance = 7 * ruleSpacing;\n            }\n            denomShift = options.fontMetrics().denom1;\n        } else {\n            if (ruleWidth > 0) {\n                numShift = options.fontMetrics().num2;\n                clearance = ruleSpacing;\n            } else {\n                numShift = options.fontMetrics().num3;\n                clearance = 3 * ruleSpacing;\n            }\n            denomShift = options.fontMetrics().denom2;\n        }\n\n        var frac = void 0;\n        if (!rule) {\n            // Rule 15c\n            var candidateClearance = numShift - numerm.depth - (denomm.height - denomShift);\n            if (candidateClearance < clearance) {\n                numShift += 0.5 * (clearance - candidateClearance);\n                denomShift += 0.5 * (clearance - candidateClearance);\n            }\n\n            frac = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeVList({\n                positionType: \"individualShift\",\n                children: [{ type: \"elem\", elem: denomm, shift: denomShift }, { type: \"elem\", elem: numerm, shift: -numShift }]\n            }, options);\n        } else {\n            // Rule 15d\n            var axisHeight = options.fontMetrics().axisHeight;\n\n            if (numShift - numerm.depth - (axisHeight + 0.5 * ruleWidth) < clearance) {\n                numShift += clearance - (numShift - numerm.depth - (axisHeight + 0.5 * ruleWidth));\n            }\n\n            if (axisHeight - 0.5 * ruleWidth - (denomm.height - denomShift) < clearance) {\n                denomShift += clearance - (axisHeight - 0.5 * ruleWidth - (denomm.height - denomShift));\n            }\n\n            var midShift = -(axisHeight - 0.5 * ruleWidth);\n\n            frac = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeVList({\n                positionType: \"individualShift\",\n                children: [{ type: \"elem\", elem: denomm, shift: denomShift },\n                // The next line would ordinarily contain \"shift: midShift\".\n                // But we put the rule into a a span that is 5 rules tall,\n                // to overcome a Chrome rendering issue. Put another way,\n                // we've replaced a kern of width = 2 * ruleWidth with a\n                // bottom padding inside the SVG = 2 * ruleWidth.\n                { type: \"elem\", elem: rule, shift: midShift + 2 * ruleWidth }, { type: \"elem\", elem: numerm, shift: -numShift }]\n            }, options);\n        }\n\n        // Since we manually change the style sometimes (with \\dfrac or \\tfrac),\n        // account for the possible size change here.\n        newOptions = options.havingStyle(style);\n        frac.height *= newOptions.sizeMultiplier / options.sizeMultiplier;\n        frac.depth *= newOptions.sizeMultiplier / options.sizeMultiplier;\n\n        // Rule 15e\n        var delimSize = void 0;\n        if (style.size === __WEBPACK_IMPORTED_MODULE_4__Style__[\"a\" /* default */].DISPLAY.size) {\n            delimSize = options.fontMetrics().delim1;\n        } else {\n            delimSize = options.fontMetrics().delim2;\n        }\n\n        var leftDelim = void 0;\n        var rightDelim = void 0;\n        if (group.value.leftDelim == null) {\n            leftDelim = __WEBPACK_IMPORTED_MODULE_5__buildHTML__[\"e\" /* makeNullDelimiter */](options, [\"mopen\"]);\n        } else {\n            leftDelim = __WEBPACK_IMPORTED_MODULE_2__delimiter__[\"a\" /* default */].customSizedDelim(group.value.leftDelim, delimSize, true, options.havingStyle(style), group.mode, [\"mopen\"]);\n        }\n        if (group.value.rightDelim == null) {\n            rightDelim = __WEBPACK_IMPORTED_MODULE_5__buildHTML__[\"e\" /* makeNullDelimiter */](options, [\"mclose\"]);\n        } else {\n            rightDelim = __WEBPACK_IMPORTED_MODULE_2__delimiter__[\"a\" /* default */].customSizedDelim(group.value.rightDelim, delimSize, true, options.havingStyle(style), group.mode, [\"mclose\"]);\n        }\n\n        return __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mord\"].concat(newOptions.sizingClasses(options)), [leftDelim, __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mfrac\"], [frac]), rightDelim], options);\n    },\n    mathmlBuilder: function mathmlBuilder(group, options) {\n        var node = new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].MathNode(\"mfrac\", [__WEBPACK_IMPORTED_MODULE_6__buildMathML__[\"b\" /* buildGroup */](group.value.numer, options), __WEBPACK_IMPORTED_MODULE_6__buildMathML__[\"b\" /* buildGroup */](group.value.denom, options)]);\n\n        if (!group.value.hasBarLine) {\n            node.setAttribute(\"linethickness\", \"0px\");\n        }\n\n        if (group.value.leftDelim != null || group.value.rightDelim != null) {\n            var withDelims = [];\n\n            if (group.value.leftDelim != null) {\n                var leftOp = new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].TextNode(group.value.leftDelim)]);\n\n                leftOp.setAttribute(\"fence\", \"true\");\n\n                withDelims.push(leftOp);\n            }\n\n            withDelims.push(node);\n\n            if (group.value.rightDelim != null) {\n                var rightOp = new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].TextNode(group.value.rightDelim)]);\n\n                rightOp.setAttribute(\"fence\", \"true\");\n\n                withDelims.push(rightOp);\n            }\n\n            var outerNode = new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].MathNode(\"mrow\", withDelims);\n\n            return outerNode;\n        }\n\n        return node;\n    }\n});\n\n/***/ }),\n/* 129 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__buildMathML__ = __webpack_require__(2);\n\n// Horizontal overlap functions\n\n\n\n\n\n\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"lap\",\n    names: [\"\\\\mathllap\", \"\\\\mathrlap\", \"\\\\mathclap\"],\n    props: {\n        numArgs: 1,\n        allowedInText: true\n    },\n    handler: function handler(context, args) {\n        var body = args[0];\n        return {\n            type: \"lap\",\n            alignment: context.funcName.slice(5),\n            body: body\n        };\n    },\n    htmlBuilder: function htmlBuilder(group, options) {\n        // mathllap, mathrlap, mathclap\n        var inner = void 0;\n        if (group.value.alignment === \"clap\") {\n            // ref: https://www.math.lsu.edu/~aperlis/publications/mathclap/\n            inner = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([], [__WEBPACK_IMPORTED_MODULE_3__buildHTML__[\"b\" /* buildGroup */](group.value.body, options)]);\n            // wrap, since CSS will center a .clap > .inner > span\n            inner = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"inner\"], [inner], options);\n        } else {\n            inner = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"inner\"], [__WEBPACK_IMPORTED_MODULE_3__buildHTML__[\"b\" /* buildGroup */](group.value.body, options)]);\n        }\n        var fix = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"fix\"], []);\n        return __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mord\", group.value.alignment], [inner, fix], options);\n    },\n    mathmlBuilder: function mathmlBuilder(group, options) {\n        // mathllap, mathrlap, mathclap\n        var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mpadded\", [__WEBPACK_IMPORTED_MODULE_4__buildMathML__[\"b\" /* buildGroup */](group.value.body, options)]);\n\n        if (group.value.alignment !== \"rlap\") {\n            var offset = group.value.alignment === \"llap\" ? \"-1\" : \"-0.5\";\n            node.setAttribute(\"lspace\", offset + \"width\");\n        }\n        node.setAttribute(\"width\", \"0px\");\n\n        return node;\n    }\n});\n\n/***/ }),\n/* 130 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__buildMathML__ = __webpack_require__(2);\n\n// smash, with optional [tb], as in AMS\n\n\n\n\n\n\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"smash\",\n    names: [\"\\\\smash\"],\n    props: {\n        numArgs: 1,\n        numOptionalArgs: 1,\n        allowedInText: true\n    },\n    handler: function handler(context, args, optArgs) {\n        var smashHeight = false;\n        var smashDepth = false;\n        var tbArg = optArgs[0];\n        if (tbArg) {\n            // Optional [tb] argument is engaged.\n            // ref: amsmath: \\renewcommand{\\smash}[1][tb]{%\n            //               def\\mb@t{\\ht}\\def\\mb@b{\\dp}\\def\\mb@tb{\\ht\\z@\\z@\\dp}%\n            var letter = \"\";\n            for (var i = 0; i < tbArg.value.length; ++i) {\n                letter = tbArg.value[i].value;\n                if (letter === \"t\") {\n                    smashHeight = true;\n                } else if (letter === \"b\") {\n                    smashDepth = true;\n                } else {\n                    smashHeight = false;\n                    smashDepth = false;\n                    break;\n                }\n            }\n        } else {\n            smashHeight = true;\n            smashDepth = true;\n        }\n\n        var body = args[0];\n        return {\n            type: \"smash\",\n            body: body,\n            smashHeight: smashHeight,\n            smashDepth: smashDepth\n        };\n    },\n    htmlBuilder: function htmlBuilder(group, options) {\n        var node = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mord\"], [__WEBPACK_IMPORTED_MODULE_3__buildHTML__[\"b\" /* buildGroup */](group.value.body, options)]);\n\n        if (!group.value.smashHeight && !group.value.smashDepth) {\n            return node;\n        }\n\n        if (group.value.smashHeight) {\n            node.height = 0;\n            // In order to influence makeVList, we have to reset the children.\n            if (node.children) {\n                for (var i = 0; i < node.children.length; i++) {\n                    node.children[i].height = 0;\n                }\n            }\n        }\n\n        if (group.value.smashDepth) {\n            node.depth = 0;\n            if (node.children) {\n                for (var _i = 0; _i < node.children.length; _i++) {\n                    node.children[_i].depth = 0;\n                }\n            }\n        }\n\n        // At this point, we've reset the TeX-like height and depth values.\n        // But the span still has an HTML line height.\n        // makeVList applies \"display: table-cell\", which prevents the browser\n        // from acting on that line height. So we'll call makeVList now.\n\n        return __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeVList({\n            positionType: \"firstBaseline\",\n            children: [{ type: \"elem\", elem: node }]\n        }, options);\n    },\n    mathmlBuilder: function mathmlBuilder(group, options) {\n        var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mpadded\", [__WEBPACK_IMPORTED_MODULE_4__buildMathML__[\"b\" /* buildGroup */](group.value.body, options)]);\n\n        if (group.value.smashHeight) {\n            node.setAttribute(\"height\", \"0px\");\n        }\n\n        if (group.value.smashDepth) {\n            node.setAttribute(\"depth\", \"0px\");\n        }\n\n        return node;\n    }\n});\n\n/***/ }),\n/* 131 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__delimiter__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__ParseError__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__buildMathML__ = __webpack_require__(2);\n\n\n\n\n\n\n\n\n\n\n// Extra data needed for the delimiter handler down below\nvar delimiterSizes = {\n    \"\\\\bigl\": { mclass: \"mopen\", size: 1 },\n    \"\\\\Bigl\": { mclass: \"mopen\", size: 2 },\n    \"\\\\biggl\": { mclass: \"mopen\", size: 3 },\n    \"\\\\Biggl\": { mclass: \"mopen\", size: 4 },\n    \"\\\\bigr\": { mclass: \"mclose\", size: 1 },\n    \"\\\\Bigr\": { mclass: \"mclose\", size: 2 },\n    \"\\\\biggr\": { mclass: \"mclose\", size: 3 },\n    \"\\\\Biggr\": { mclass: \"mclose\", size: 4 },\n    \"\\\\bigm\": { mclass: \"mrel\", size: 1 },\n    \"\\\\Bigm\": { mclass: \"mrel\", size: 2 },\n    \"\\\\biggm\": { mclass: \"mrel\", size: 3 },\n    \"\\\\Biggm\": { mclass: \"mrel\", size: 4 },\n    \"\\\\big\": { mclass: \"mord\", size: 1 },\n    \"\\\\Big\": { mclass: \"mord\", size: 2 },\n    \"\\\\bigg\": { mclass: \"mord\", size: 3 },\n    \"\\\\Bigg\": { mclass: \"mord\", size: 4 }\n};\n\nvar delimiters = [\"(\", \")\", \"[\", \"\\\\lbrack\", \"]\", \"\\\\rbrack\", \"\\\\{\", \"\\\\lbrace\", \"\\\\}\", \"\\\\rbrace\", \"\\\\lfloor\", \"\\\\rfloor\", \"\\\\lceil\", \"\\\\rceil\", \"<\", \">\", \"\\\\langle\", \"\\u27E8\", \"\\\\rangle\", \"\\u27E9\", \"\\\\lt\", \"\\\\gt\", \"\\\\lvert\", \"\\\\rvert\", \"\\\\lVert\", \"\\\\rVert\", \"\\\\lgroup\", \"\\\\rgroup\", \"\\\\lmoustache\", \"\\\\rmoustache\", \"/\", \"\\\\backslash\", \"|\", \"\\\\vert\", \"\\\\|\", \"\\\\Vert\", \"\\\\uparrow\", \"\\\\Uparrow\", \"\\\\downarrow\", \"\\\\Downarrow\", \"\\\\updownarrow\", \"\\\\Updownarrow\", \".\"];\n\n// Delimiter functions\nfunction checkDelimiter(delim, context) {\n    if (__WEBPACK_IMPORTED_MODULE_5__utils__[\"a\" /* default */].contains(delimiters, delim.value)) {\n        return delim;\n    } else {\n        throw new __WEBPACK_IMPORTED_MODULE_4__ParseError__[\"a\" /* default */](\"Invalid delimiter: '\" + delim.value + \"' after '\" + context.funcName + \"'\", delim);\n    }\n}\n\nObject(__WEBPACK_IMPORTED_MODULE_1__defineFunction__[\"b\" /* default */])({\n    type: \"delimsizing\",\n    names: [\"\\\\bigl\", \"\\\\Bigl\", \"\\\\biggl\", \"\\\\Biggl\", \"\\\\bigr\", \"\\\\Bigr\", \"\\\\biggr\", \"\\\\Biggr\", \"\\\\bigm\", \"\\\\Bigm\", \"\\\\biggm\", \"\\\\Biggm\", \"\\\\big\", \"\\\\Big\", \"\\\\bigg\", \"\\\\Bigg\"],\n    props: {\n        numArgs: 1\n    },\n    handler: function handler(context, args) {\n        var delim = checkDelimiter(args[0], context);\n\n        return {\n            type: \"delimsizing\",\n            size: delimiterSizes[context.funcName].size,\n            mclass: delimiterSizes[context.funcName].mclass,\n            value: delim.value\n        };\n    },\n    htmlBuilder: function htmlBuilder(group, options) {\n        var delim = group.value.value;\n\n        if (delim === \".\") {\n            // Empty delimiters still count as elements, even though they don't\n            // show anything.\n            return __WEBPACK_IMPORTED_MODULE_0__buildCommon__[\"a\" /* default */].makeSpan([group.value.mclass]);\n        }\n\n        // Use delimiter.sizedDelim to generate the delimiter.\n        return __WEBPACK_IMPORTED_MODULE_2__delimiter__[\"a\" /* default */].sizedDelim(delim, group.value.size, options, group.mode, [group.value.mclass]);\n    },\n    mathmlBuilder: function mathmlBuilder(group) {\n        var children = [];\n\n        if (group.value.value !== \".\") {\n            children.push(__WEBPACK_IMPORTED_MODULE_7__buildMathML__[\"e\" /* makeText */](group.value.value, group.mode));\n        }\n\n        var node = new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", children);\n\n        if (group.value.mclass === \"mopen\" || group.value.mclass === \"mclose\") {\n            // Only some of the delimsizing functions act as fences, and they\n            // return \"mopen\" or \"mclose\" mclass.\n            node.setAttribute(\"fence\", \"true\");\n        } else {\n            // Explicitly disable fencing if it's not a fence, to override the\n            // defaults.\n            node.setAttribute(\"fence\", \"false\");\n        }\n\n        return node;\n    }\n});\n\nObject(__WEBPACK_IMPORTED_MODULE_1__defineFunction__[\"b\" /* default */])({\n    type: \"leftright\",\n    names: [\"\\\\left\", \"\\\\right\"],\n    props: {\n        numArgs: 1\n    },\n    handler: function handler(context, args) {\n        var delim = checkDelimiter(args[0], context);\n\n        if (context.funcName === \"\\\\left\") {\n            var parser = context.parser;\n            // Parse out the implicit body\n            ++parser.leftrightDepth;\n            // parseExpression stops before '\\\\right'\n            var body = parser.parseExpression(false);\n            --parser.leftrightDepth;\n            // Check the next token\n            parser.expect(\"\\\\right\", false);\n            var right = parser.parseFunction();\n            if (!right) {\n                throw new __WEBPACK_IMPORTED_MODULE_4__ParseError__[\"a\" /* default */]('failed to parse function after \\\\right');\n            }\n            return {\n                type: \"leftright\",\n                body: body,\n                left: delim.value,\n                right: right.value.value\n            };\n        } else {\n            // This is a little weird. We return this object which gets turned\n            // into a ParseNode which gets returned by\n            // `const right = parser.parseFunction();` up above.\n            return {\n                type: \"leftright\",\n                value: delim.value\n            };\n        }\n    },\n    htmlBuilder: function htmlBuilder(group, options) {\n        // Build the inner expression\n        var inner = __WEBPACK_IMPORTED_MODULE_6__buildHTML__[\"a\" /* buildExpression */](group.value.body, options, true, [null, \"mclose\"]);\n\n        var innerHeight = 0;\n        var innerDepth = 0;\n        var hadMiddle = false;\n\n        // Calculate its height and depth\n        for (var i = 0; i < inner.length; i++) {\n            if (inner[i].isMiddle) {\n                hadMiddle = true;\n            } else {\n                innerHeight = Math.max(inner[i].height, innerHeight);\n                innerDepth = Math.max(inner[i].depth, innerDepth);\n            }\n        }\n\n        // The size of delimiters is the same, regardless of what style we are\n        // in. Thus, to correctly calculate the size of delimiter we need around\n        // a group, we scale down the inner size based on the size.\n        innerHeight *= options.sizeMultiplier;\n        innerDepth *= options.sizeMultiplier;\n\n        var leftDelim = void 0;\n        if (group.value.left === \".\") {\n            // Empty delimiters in \\left and \\right make null delimiter spaces.\n            leftDelim = __WEBPACK_IMPORTED_MODULE_6__buildHTML__[\"e\" /* makeNullDelimiter */](options, [\"mopen\"]);\n        } else {\n            // Otherwise, use leftRightDelim to generate the correct sized\n            // delimiter.\n            leftDelim = __WEBPACK_IMPORTED_MODULE_2__delimiter__[\"a\" /* default */].leftRightDelim(group.value.left, innerHeight, innerDepth, options, group.mode, [\"mopen\"]);\n        }\n        // Add it to the beginning of the expression\n        inner.unshift(leftDelim);\n\n        // Handle middle delimiters\n        if (hadMiddle) {\n            for (var _i = 1; _i < inner.length; _i++) {\n                var middleDelim = inner[_i];\n                if (middleDelim.isMiddle) {\n                    // Apply the options that were active when \\middle was called\n                    inner[_i] = __WEBPACK_IMPORTED_MODULE_2__delimiter__[\"a\" /* default */].leftRightDelim(middleDelim.isMiddle.value, innerHeight, innerDepth, middleDelim.isMiddle.options, group.mode, []);\n                }\n            }\n        }\n\n        var rightDelim = void 0;\n        // Same for the right delimiter\n        if (group.value.right === \".\") {\n            rightDelim = __WEBPACK_IMPORTED_MODULE_6__buildHTML__[\"e\" /* makeNullDelimiter */](options, [\"mclose\"]);\n        } else {\n            rightDelim = __WEBPACK_IMPORTED_MODULE_2__delimiter__[\"a\" /* default */].leftRightDelim(group.value.right, innerHeight, innerDepth, options, group.mode, [\"mclose\"]);\n        }\n        // Add it to the end of the expression.\n        inner.push(rightDelim);\n\n        return __WEBPACK_IMPORTED_MODULE_0__buildCommon__[\"a\" /* default */].makeSpan([\"minner\"], inner, options);\n    },\n    mathmlBuilder: function mathmlBuilder(group, options) {\n        var inner = __WEBPACK_IMPORTED_MODULE_7__buildMathML__[\"a\" /* buildExpression */](group.value.body, options);\n\n        if (group.value.left !== \".\") {\n            var leftNode = new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [__WEBPACK_IMPORTED_MODULE_7__buildMathML__[\"e\" /* makeText */](group.value.left, group.mode)]);\n\n            leftNode.setAttribute(\"fence\", \"true\");\n\n            inner.unshift(leftNode);\n        }\n\n        if (group.value.right !== \".\") {\n            var rightNode = new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [__WEBPACK_IMPORTED_MODULE_7__buildMathML__[\"e\" /* makeText */](group.value.right, group.mode)]);\n\n            rightNode.setAttribute(\"fence\", \"true\");\n\n            inner.push(rightNode);\n        }\n\n        var outerNode = new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].MathNode(\"mrow\", inner);\n\n        return outerNode;\n    }\n});\n\nObject(__WEBPACK_IMPORTED_MODULE_1__defineFunction__[\"b\" /* default */])({\n    type: \"middle\",\n    names: [\"\\\\middle\"],\n    props: {\n        numArgs: 1\n    },\n    handler: function handler(context, args) {\n        var delim = checkDelimiter(args[0], context);\n        if (!context.parser.leftrightDepth) {\n            throw new __WEBPACK_IMPORTED_MODULE_4__ParseError__[\"a\" /* default */](\"\\\\middle without preceding \\\\left\", delim);\n        }\n\n        return {\n            type: \"middle\",\n            value: delim.value\n        };\n    },\n    htmlBuilder: function htmlBuilder(group, options) {\n        var middleDelim = void 0;\n        if (group.value.value === \".\") {\n            middleDelim = __WEBPACK_IMPORTED_MODULE_6__buildHTML__[\"e\" /* makeNullDelimiter */](options, []);\n        } else {\n            middleDelim = __WEBPACK_IMPORTED_MODULE_2__delimiter__[\"a\" /* default */].sizedDelim(group.value.value, 1, options, group.mode, []);\n            middleDelim.isMiddle = { value: group.value.value, options: options };\n        }\n        return middleDelim;\n    },\n    mathmlBuilder: function mathmlBuilder(group, options) {\n        var middleNode = new __WEBPACK_IMPORTED_MODULE_3__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [__WEBPACK_IMPORTED_MODULE_7__buildMathML__[\"e\" /* makeText */](group.value.middle, group.mode)]);\n        middleNode.setAttribute(\"fence\", \"true\");\n        return middleNode;\n    }\n});\n\n/***/ }),\n/* 132 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Style__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__sizing__ = __webpack_require__(60);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__buildMathML__ = __webpack_require__(2);\n\n\n\n\n\n\n\nvar styleMap = {\n    \"display\": __WEBPACK_IMPORTED_MODULE_2__Style__[\"a\" /* default */].DISPLAY,\n    \"text\": __WEBPACK_IMPORTED_MODULE_2__Style__[\"a\" /* default */].TEXT,\n    \"script\": __WEBPACK_IMPORTED_MODULE_2__Style__[\"a\" /* default */].SCRIPT,\n    \"scriptscript\": __WEBPACK_IMPORTED_MODULE_2__Style__[\"a\" /* default */].SCRIPTSCRIPT\n};\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"styling\",\n    names: [\"\\\\displaystyle\", \"\\\\textstyle\", \"\\\\scriptstyle\", \"\\\\scriptscriptstyle\"],\n    props: {\n        numArgs: 0,\n        allowedInText: true\n    },\n    handler: function handler(context, args) {\n        var breakOnTokenText = context.breakOnTokenText,\n            funcName = context.funcName,\n            parser = context.parser;\n\n        // parse out the implicit body\n\n        parser.consumeSpaces();\n        var body = parser.parseExpression(true, breakOnTokenText);\n\n        return {\n            type: \"styling\",\n            // Figure out what style to use by pulling out the style from\n            // the function name\n            style: funcName.slice(1, funcName.length - 5),\n            value: body\n        };\n    },\n    htmlBuilder: function htmlBuilder(group, options) {\n        // Style changes are handled in the TeXbook on pg. 442, Rule 3.\n        var newStyle = styleMap[group.value.style];\n        var newOptions = options.havingStyle(newStyle);\n        return Object(__WEBPACK_IMPORTED_MODULE_3__sizing__[\"a\" /* sizingGroup */])(group.value.value, newOptions, options);\n    },\n    mathmlBuilder: function mathmlBuilder(group, options) {\n        // Figure out what style we're changing to.\n        // TODO(kevinb): dedupe this with buildHTML.js\n        // This will be easier of handling of styling nodes is in the same file.\n        var styleMap = {\n            \"display\": __WEBPACK_IMPORTED_MODULE_2__Style__[\"a\" /* default */].DISPLAY,\n            \"text\": __WEBPACK_IMPORTED_MODULE_2__Style__[\"a\" /* default */].TEXT,\n            \"script\": __WEBPACK_IMPORTED_MODULE_2__Style__[\"a\" /* default */].SCRIPT,\n            \"scriptscript\": __WEBPACK_IMPORTED_MODULE_2__Style__[\"a\" /* default */].SCRIPTSCRIPT\n        };\n\n        var newStyle = styleMap[group.value.style];\n        var newOptions = options.havingStyle(newStyle);\n\n        var inner = __WEBPACK_IMPORTED_MODULE_4__buildMathML__[\"a\" /* buildExpression */](group.value.value, newOptions);\n\n        var node = new __WEBPACK_IMPORTED_MODULE_1__mathMLTree__[\"a\" /* default */].MathNode(\"mstyle\", inner);\n\n        var styleAttributes = {\n            \"display\": [\"0\", \"true\"],\n            \"text\": [\"0\", \"false\"],\n            \"script\": [\"1\", \"false\"],\n            \"scriptscript\": [\"2\", \"false\"]\n        };\n\n        var attr = styleAttributes[group.value.style];\n\n        node.setAttribute(\"scriptlevel\", attr[0]);\n        node.setAttribute(\"displaystyle\", attr[1]);\n\n        return node;\n    }\n});\n\n/***/ }),\n/* 133 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__ = __webpack_require__(134);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ParseNode__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__buildMathML__ = __webpack_require__(2);\n\n\n// TODO(kevinb): implement \\\\sl and \\\\sc\n\n\n\n\n\n\n\nvar htmlBuilder = function htmlBuilder(group, options) {\n    var font = group.value.font;\n    return __WEBPACK_IMPORTED_MODULE_3__buildHTML__[\"b\" /* buildGroup */](group.value.body, options.withFontFamily(font));\n};\n\nvar mathmlBuilder = function mathmlBuilder(group, options) {\n    var font = group.value.font;\n    return __WEBPACK_IMPORTED_MODULE_4__buildMathML__[\"b\" /* buildGroup */](group.value.body, options.withFontFamily(font));\n};\n\nvar fontAliases = {\n    \"\\\\Bbb\": \"\\\\mathbb\",\n    \"\\\\bold\": \"\\\\mathbf\",\n    \"\\\\frak\": \"\\\\mathfrak\",\n    \"\\\\bm\": \"\\\\boldsymbol\"\n};\n\nObject(__WEBPACK_IMPORTED_MODULE_1__defineFunction__[\"b\" /* default */])({\n    type: \"font\",\n    names: [\n    // styles\n    \"\\\\mathrm\", \"\\\\mathit\", \"\\\\mathbf\", \"\\\\boldsymbol\",\n\n    // families\n    \"\\\\mathbb\", \"\\\\mathcal\", \"\\\\mathfrak\", \"\\\\mathscr\", \"\\\\mathsf\", \"\\\\mathtt\",\n\n    // aliases\n    \"\\\\Bbb\", \"\\\\bold\", \"\\\\frak\", \"\\\\bm\"],\n    props: {\n        numArgs: 1,\n        greediness: 2\n    },\n    handler: function handler(context, args) {\n        var body = args[0];\n        var func = context.funcName;\n        if (func in fontAliases) {\n            func = fontAliases[func];\n        }\n        return {\n            type: \"font\",\n            font: func.slice(1),\n            body: body\n        };\n    },\n    htmlBuilder: htmlBuilder,\n    mathmlBuilder: mathmlBuilder\n});\n\nvar oldFontFuncsMap = {\n    \"\\\\rm\": \"mathrm\",\n    \"\\\\sf\": \"mathsf\",\n    \"\\\\tt\": \"mathtt\",\n    \"\\\\bf\": \"mathbf\",\n    \"\\\\it\": \"mathit\"\n};\n\n// Old font changing functions\nObject(__WEBPACK_IMPORTED_MODULE_1__defineFunction__[\"b\" /* default */])({\n    type: \"font\",\n    names: __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(oldFontFuncsMap),\n    props: {\n        numArgs: 0,\n        allowedInText: true\n    },\n    handler: function handler(context, args) {\n        var parser = context.parser,\n            funcName = context.funcName,\n            breakOnTokenText = context.breakOnTokenText;\n\n\n        parser.consumeSpaces();\n        var body = parser.parseExpression(true, breakOnTokenText);\n        var style = oldFontFuncsMap[funcName];\n\n        return {\n            type: \"font\",\n            font: style,\n            body: new __WEBPACK_IMPORTED_MODULE_2__ParseNode__[\"a\" /* default */](\"ordgroup\", body, parser.mode)\n        };\n    },\n    htmlBuilder: htmlBuilder,\n    mathmlBuilder: mathmlBuilder\n});\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(135), __esModule: true };\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(136);\nmodule.exports = __webpack_require__(8).Object.keys;\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(29)\n  , $keys    = __webpack_require__(39);\n\n__webpack_require__(46)('keys', function(){\n  return function keys(it){\n    return $keys(toObject(it));\n  };\n});\n\n/***/ }),\n/* 137 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__stretchy__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__buildMathML__ = __webpack_require__(2);\n\n\n\n\n\n\n\n\n\nvar htmlBuilder = function htmlBuilder(group, options) {\n    // Accents are handled in the TeXbook pg. 443, rule 12.\n    var base = group.value.base;\n\n    var supsubGroup = void 0;\n    if (group.type === \"supsub\") {\n        // If our base is a character box, and we have superscripts and\n        // subscripts, the supsub will defer to us. In particular, we want\n        // to attach the superscripts and subscripts to the inner body (so\n        // that the position of the superscripts and subscripts won't be\n        // affected by the height of the accent). We accomplish this by\n        // sticking the base of the accent into the base of the supsub, and\n        // rendering that, while keeping track of where the accent is.\n\n        // The supsub group is the group that was passed in\n        var supsub = group;\n        // The real accent group is the base of the supsub group\n        group = supsub.value.base;\n        // The character box is the base of the accent group\n        base = group.value.base;\n        // Stick the character box into the base of the supsub group\n        supsub.value.base = base;\n\n        // Rerender the supsub group with its new base, and store that\n        // result.\n        supsubGroup = __WEBPACK_IMPORTED_MODULE_5__buildHTML__[\"b\" /* buildGroup */](supsub, options);\n    }\n\n    // Build the base group\n    var body = __WEBPACK_IMPORTED_MODULE_5__buildHTML__[\"b\" /* buildGroup */](base, options.havingCrampedStyle());\n\n    // Does the accent need to shift for the skew of a character?\n    var mustShift = group.value.isShifty && __WEBPACK_IMPORTED_MODULE_3__utils__[\"a\" /* default */].isCharacterBox(base);\n\n    // Calculate the skew of the accent. This is based on the line \"If the\n    // nucleus is not a single character, let s = 0; otherwise set s to the\n    // kern amount for the nucleus followed by the \\skewchar of its font.\"\n    // Note that our skew metrics are just the kern between each character\n    // and the skewchar.\n    var skew = 0;\n    if (mustShift) {\n        // If the base is a character box, then we want the skew of the\n        // innermost character. To do that, we find the innermost character:\n        var baseChar = __WEBPACK_IMPORTED_MODULE_3__utils__[\"a\" /* default */].getBaseElem(base);\n        // Then, we render its group to get the symbol inside it\n        var baseGroup = __WEBPACK_IMPORTED_MODULE_5__buildHTML__[\"b\" /* buildGroup */](baseChar, options.havingCrampedStyle());\n        // Finally, we pull the skew off of the symbol.\n        skew = baseGroup.skew;\n        // Note that we now throw away baseGroup, because the layers we\n        // removed with getBaseElem might contain things like \\color which\n        // we can't get rid of.\n        // TODO(emily): Find a better way to get the skew\n    }\n\n    // calculate the amount of space between the body and the accent\n    var clearance = Math.min(body.height, options.fontMetrics().xHeight);\n\n    // Build the accent\n    var accentBody = void 0;\n    if (!group.value.isStretchy) {\n        var accent = void 0;\n        var width = void 0;\n        if (group.value.label === \"\\\\vec\") {\n            // Before version 0.9, \\vec used the combining font glyph U+20D7.\n            // But browsers, especially Safari, are not consistent in how they\n            // render combining characters when not preceded by a character.\n            // So now we use an SVG.\n            // If Safari reforms, we should consider reverting to the glyph.\n            accent = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].staticSvg(\"vec\", options);\n            width = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].svgData.vec[1];\n        } else {\n            accent = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSymbol(group.value.label, \"Main-Regular\", group.mode, options);\n            // Remove the italic correction of the accent, because it only serves to\n            // shift the accent over to a place we don't want.\n            accent.italic = 0;\n            width = accent.width;\n        }\n\n        accentBody = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"accent-body\"], [accent]);\n\n        // CSS defines `.katex .accent .accent-body { width: 0 }`\n        // so that the accent doesn't contribute to the bounding box.\n        // We need to shift the character by its width (effectively half\n        // its width) to compensate.\n        var left = -width / 2;\n\n        // Shift the accent over by the skew.\n        left += skew;\n\n        accentBody.style.left = left + \"em\";\n\n        accentBody = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeVList({\n            positionType: \"firstBaseline\",\n            children: [{ type: \"elem\", elem: body }, { type: \"kern\", size: -clearance }, { type: \"elem\", elem: accentBody }]\n        }, options);\n    } else {\n        accentBody = __WEBPACK_IMPORTED_MODULE_4__stretchy__[\"a\" /* default */].svgSpan(group, options);\n\n        accentBody = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeVList({\n            positionType: \"firstBaseline\",\n            children: [{ type: \"elem\", elem: body }, {\n                type: \"elem\",\n                elem: accentBody,\n                wrapperClasses: [\"svg-align\"],\n                wrapperStyle: skew > 0 ? {\n                    width: \"calc(100% - \" + 2 * skew + \"em)\",\n                    marginLeft: 2 * skew + \"em\"\n                } : undefined\n            }]\n        }, options);\n    }\n\n    var accentWrap = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mord\", \"accent\"], [accentBody], options);\n\n    if (supsubGroup) {\n        // Here, we replace the \"base\" child of the supsub with our newly\n        // generated accent.\n        supsubGroup.children[0] = accentWrap;\n\n        // Since we don't rerun the height calculation after replacing the\n        // accent, we manually recalculate height.\n        supsubGroup.height = Math.max(accentWrap.height, supsubGroup.height);\n\n        // Accents should always be ords, even when their innards are not.\n        supsubGroup.classes[0] = \"mord\";\n\n        return supsubGroup;\n    } else {\n        return accentWrap;\n    }\n};\n\nvar mathmlBuilder = function mathmlBuilder(group, options) {\n    var accentNode = void 0;\n    if (group.value.isStretchy) {\n        accentNode = __WEBPACK_IMPORTED_MODULE_4__stretchy__[\"a\" /* default */].mathMLnode(group.value.label);\n    } else {\n        accentNode = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mo\", [__WEBPACK_IMPORTED_MODULE_6__buildMathML__[\"e\" /* makeText */](group.value.label, group.mode)]);\n    }\n\n    var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mover\", [__WEBPACK_IMPORTED_MODULE_6__buildMathML__[\"b\" /* buildGroup */](group.value.base, options), accentNode]);\n\n    node.setAttribute(\"accent\", \"true\");\n\n    return node;\n};\n\nvar NON_STRETCHY_ACCENT_REGEX = new RegExp([\"\\\\acute\", \"\\\\grave\", \"\\\\ddot\", \"\\\\tilde\", \"\\\\bar\", \"\\\\breve\", \"\\\\check\", \"\\\\hat\", \"\\\\vec\", \"\\\\dot\", \"\\\\mathring\"].map(function (accent) {\n    return \"\\\\\" + accent;\n}).join(\"|\"));\n\n// Accents\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"accent\",\n    names: [\"\\\\acute\", \"\\\\grave\", \"\\\\ddot\", \"\\\\tilde\", \"\\\\bar\", \"\\\\breve\", \"\\\\check\", \"\\\\hat\", \"\\\\vec\", \"\\\\dot\", \"\\\\mathring\", \"\\\\widehat\", \"\\\\widetilde\", \"\\\\overrightarrow\", \"\\\\overleftarrow\", \"\\\\Overrightarrow\", \"\\\\overleftrightarrow\", \"\\\\overgroup\", \"\\\\overlinesegment\", \"\\\\overleftharpoon\", \"\\\\overrightharpoon\"],\n    props: {\n        numArgs: 1\n    },\n    handler: function handler(context, args) {\n        var base = args[0];\n\n        var isStretchy = !NON_STRETCHY_ACCENT_REGEX.test(context.funcName);\n        var isShifty = !isStretchy || context.funcName === \"\\\\widehat\" || context.funcName === \"\\\\widetilde\";\n\n        return {\n            type: \"accent\",\n            label: context.funcName,\n            isStretchy: isStretchy,\n            isShifty: isShifty,\n            base: base\n        };\n    },\n    htmlBuilder: htmlBuilder,\n    mathmlBuilder: mathmlBuilder\n});\n\n// Text-mode accents\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"accent\",\n    names: [\"\\\\'\", \"\\\\`\", \"\\\\^\", \"\\\\~\", \"\\\\=\", \"\\\\u\", \"\\\\.\", '\\\\\"', \"\\\\r\", \"\\\\H\", \"\\\\v\"],\n    props: {\n        numArgs: 1,\n        allowedInText: true,\n        allowedInMath: false\n    },\n    handler: function handler(context, args) {\n        var base = args[0];\n\n        return {\n            type: \"accent\",\n            label: context.funcName,\n            isStretchy: false,\n            isShifty: true,\n            base: base\n        };\n    },\n    htmlBuilder: htmlBuilder,\n    mathmlBuilder: mathmlBuilder\n});\n\n/***/ }),\n/* 138 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__stretchy__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__buildMathML__ = __webpack_require__(2);\n\n// Horizontal overlap functions\n\n\n\n\n\n\n\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"accentUnder\",\n    names: [\"\\\\underleftarrow\", \"\\\\underrightarrow\", \"\\\\underleftrightarrow\", \"\\\\undergroup\", \"\\\\underlinesegment\", \"\\\\utilde\"],\n    props: {\n        numArgs: 1\n    },\n    handler: function handler(context, args) {\n        var base = args[0];\n        return {\n            type: \"accentUnder\",\n            label: context.funcName,\n            base: base\n        };\n    },\n    htmlBuilder: function htmlBuilder(group, options) {\n        // Treat under accents much like underlines.\n        var innerGroup = __WEBPACK_IMPORTED_MODULE_4__buildHTML__[\"b\" /* buildGroup */](group.value.base, options);\n\n        var accentBody = __WEBPACK_IMPORTED_MODULE_3__stretchy__[\"a\" /* default */].svgSpan(group, options);\n        var kern = group.value.label === \"\\\\utilde\" ? 0.12 : 0;\n\n        // Generate the vlist, with the appropriate kerns\n        var vlist = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeVList({\n            positionType: \"bottom\",\n            positionData: accentBody.height + kern,\n            children: [{ type: \"elem\", elem: accentBody, wrapperClasses: [\"svg-align\"] }, { type: \"kern\", size: kern }, { type: \"elem\", elem: innerGroup }]\n        }, options);\n\n        return __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mord\", \"accentunder\"], [vlist], options);\n    },\n    mathmlBuilder: function mathmlBuilder(group, options) {\n        var accentNode = __WEBPACK_IMPORTED_MODULE_3__stretchy__[\"a\" /* default */].mathMLnode(group.value.label);\n        var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"munder\", [__WEBPACK_IMPORTED_MODULE_5__buildMathML__[\"b\" /* buildGroup */](group.value.body, options), accentNode]);\n        node.setAttribute(\"accentunder\", \"true\");\n        return node;\n    }\n});\n\n/***/ }),\n/* 139 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ParseError__ = __webpack_require__(6);\n\n\n\n\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"verb\",\n    names: [\"\\\\verb\"],\n    props: {\n        numArgs: 0,\n        allowedInText: true\n    },\n    handler: function handler(context, args, optArgs) {\n        // \\verb and \\verb* are dealt with directly in Parser.js.\n        // If we end up here, it's because of a failure to match the two delimiters\n        // in the regex in Lexer.js.  LaTeX raises the following error when \\verb is\n        // terminated by end of line (or file).\n        throw new __WEBPACK_IMPORTED_MODULE_3__ParseError__[\"a\" /* default */](\"\\\\verb ended by end of line instead of matching delimiter\");\n    },\n    htmlBuilder: function htmlBuilder(group, options) {\n        var text = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeVerb(group, options);\n        var body = [];\n        // \\verb enters text mode and therefore is sized like \\textstyle\n        var newOptions = options.havingStyle(options.style.text());\n        for (var i = 0; i < text.length; i++) {\n            if (text[i] === '\\xA0') {\n                // spaces appear as nonbreaking space\n                // The space character isn't in the Typewriter-Regular font,\n                // so we implement it as a kern of the same size as a character.\n                // 0.525 is the width of a texttt character in LaTeX.\n                // It automatically gets scaled by the font size.\n                var rule = __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mord\", \"rule\"], [], newOptions);\n                rule.style.marginLeft = \"0.525em\";\n                body.push(rule);\n            } else {\n                body.push(__WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSymbol(text[i], \"Typewriter-Regular\", group.mode, newOptions, [\"mathtt\"]));\n            }\n        }\n        __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].tryCombineChars(body);\n        return __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeSpan([\"mord\", \"text\"].concat(newOptions.sizingClasses(options)),\n        // tryCombinChars expects CombinableDomNode[] while makeSpan expects\n        // DomChildNode[].\n        // $FlowFixMe: CombinableDomNode[] is not compatible with DomChildNode[]\n        body, newOptions);\n    },\n    mathmlBuilder: function mathmlBuilder(group, options) {\n        var text = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].TextNode(__WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeVerb(group, options));\n        var node = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mtext\", [text]);\n        node.setAttribute(\"mathvariant\", __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].fontMap[\"mathtt\"].variant);\n        return node;\n    }\n});\n\n/***/ }),\n/* 140 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__buildMathML__ = __webpack_require__(2);\n\n\n\n\n\n\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"href\",\n    names: [\"\\\\href\"],\n    props: {\n        numArgs: 2,\n        argTypes: [\"url\", \"original\"]\n    },\n    handler: function handler(context, args) {\n        var body = args[1];\n        var href = args[0].value;\n        return {\n            type: \"href\",\n            href: href,\n            body: Object(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"c\" /* ordargument */])(body)\n        };\n    },\n    htmlBuilder: function htmlBuilder(group, options) {\n        var elements = __WEBPACK_IMPORTED_MODULE_3__buildHTML__[\"a\" /* buildExpression */](group.value.body, options, false);\n\n        var href = group.value.href;\n\n        return new __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeAnchor(href, [], elements, options);\n    },\n    mathmlBuilder: function mathmlBuilder(group, options) {\n        var inner = __WEBPACK_IMPORTED_MODULE_4__buildMathML__[\"a\" /* buildExpression */](group.value.body, options);\n        var math = new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mrow\", inner);\n        math.setAttribute(\"href\", group.value.href);\n        return math;\n    }\n});\n\n/***/ }),\n/* 141 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineFunction__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Style__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__buildMathML__ = __webpack_require__(2);\n\n\n\n\n\n\n\nvar chooseMathStyle = function chooseMathStyle(group, options) {\n    var style = options.style;\n    if (style.size === __WEBPACK_IMPORTED_MODULE_3__Style__[\"a\" /* default */].DISPLAY.size) {\n        return group.value.display;\n    } else if (style.size === __WEBPACK_IMPORTED_MODULE_3__Style__[\"a\" /* default */].TEXT.size) {\n        return group.value.text;\n    } else if (style.size === __WEBPACK_IMPORTED_MODULE_3__Style__[\"a\" /* default */].SCRIPT.size) {\n        return group.value.script;\n    } else if (style.size === __WEBPACK_IMPORTED_MODULE_3__Style__[\"a\" /* default */].SCRIPTSCRIPT.size) {\n        return group.value.scriptscript;\n    }\n    return group.value.text;\n};\n\nObject(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"b\" /* default */])({\n    type: \"mathchoice\",\n    names: [\"\\\\mathchoice\"],\n    props: {\n        numArgs: 4\n    },\n    handler: function handler(context, args) {\n        return {\n            type: \"mathchoice\",\n            display: Object(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"c\" /* ordargument */])(args[0]),\n            text: Object(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"c\" /* ordargument */])(args[1]),\n            script: Object(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"c\" /* ordargument */])(args[2]),\n            scriptscript: Object(__WEBPACK_IMPORTED_MODULE_0__defineFunction__[\"c\" /* ordargument */])(args[3])\n        };\n    },\n    htmlBuilder: function htmlBuilder(group, options) {\n        var body = chooseMathStyle(group, options);\n        var elements = __WEBPACK_IMPORTED_MODULE_4__buildHTML__[\"a\" /* buildExpression */](body, options, false);\n        return new __WEBPACK_IMPORTED_MODULE_1__buildCommon__[\"a\" /* default */].makeFragment(elements);\n    },\n    mathmlBuilder: function mathmlBuilder(group, options) {\n        var body = chooseMathStyle(group, options);\n        var elements = __WEBPACK_IMPORTED_MODULE_5__buildMathML__[\"a\" /* buildExpression */](body, options, false);\n        return new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mrow\", elements);\n    }\n});\n\n/***/ }),\n/* 142 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineEnvironment__ = __webpack_require__(61);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__environments_array_js__ = __webpack_require__(143);\n\n\nvar environments = __WEBPACK_IMPORTED_MODULE_0__defineEnvironment__[\"a\" /* _environments */];\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (environments);\n\n// All environment definitions should be imported below\n\n\n/***/ }),\n/* 143 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__buildCommon__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__defineEnvironment__ = __webpack_require__(61);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mathMLTree__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ParseError__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__ParseNode__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__units__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__stretchy__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__buildHTML__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__buildMathML__ = __webpack_require__(2);\n\n\n\n\n\n\n\n\n\n\n\n\n// Data stored in the ParseNode associated with the environment.\n\n\n/**\n * Parse the body of the environment, with rows delimited by \\\\ and\n * columns delimited by &, and create a nested list in row-major order\n * with one group per cell.  If given an optional argument style\n * (\"text\", \"display\", etc.), then each cell is cast into that style.\n */\nfunction parseArray(parser, result, style) {\n    var row = [];\n    var body = [row];\n    var rowGaps = [];\n    while (true) {\n        // eslint-disable-line no-constant-condition\n        var cell = parser.parseExpression(false, undefined);\n        cell = new __WEBPACK_IMPORTED_MODULE_4__ParseNode__[\"a\" /* default */](\"ordgroup\", cell, parser.mode);\n        if (style) {\n            cell = new __WEBPACK_IMPORTED_MODULE_4__ParseNode__[\"a\" /* default */](\"styling\", {\n                style: style,\n                value: [cell]\n            }, parser.mode);\n        }\n        row.push(cell);\n        var next = parser.nextToken.text;\n        if (next === \"&\") {\n            parser.consume();\n        } else if (next === \"\\\\end\") {\n            // Arrays terminate newlines with `\\crcr` which consumes a `\\cr` if\n            // the last line is empty.\n            var lastRow = body[body.length - 1];\n            if (body.length > 1 && lastRow.length === 1 && lastRow[0].value.value[0].value.length === 0) {\n                body.pop();\n            }\n            break;\n        } else if (next === \"\\\\\\\\\" || next === \"\\\\cr\") {\n            var cr = parser.parseFunction();\n            if (!cr) {\n                throw new __WEBPACK_IMPORTED_MODULE_3__ParseError__[\"a\" /* default */](\"Failed to parse function after \" + next);\n            }\n            rowGaps.push(cr.value.size);\n            row = [];\n            body.push(row);\n        } else {\n            throw new __WEBPACK_IMPORTED_MODULE_3__ParseError__[\"a\" /* default */](\"Expected & or \\\\\\\\ or \\\\end\", parser.nextToken);\n        }\n    }\n    result.body = body;\n    result.rowGaps = rowGaps;\n    return new __WEBPACK_IMPORTED_MODULE_4__ParseNode__[\"a\" /* default */](result.type, result, parser.mode);\n}\n\n// Decides on a style for cells in an array according to whether the given\n// environment name starts with the letter 'd'.\nfunction dCellStyle(envName) {\n    if (envName.substr(0, 1) === \"d\") {\n        return \"display\";\n    } else {\n        return \"text\";\n    }\n}\n\nvar htmlBuilder = function htmlBuilder(group, options) {\n    var r = void 0;\n    var c = void 0;\n    var nr = group.value.body.length;\n    var nc = 0;\n    var body = new Array(nr);\n\n    // Horizontal spacing\n    var pt = 1 / options.fontMetrics().ptPerEm;\n    var arraycolsep = 5 * pt; // \\arraycolsep in article.cls\n\n    // Vertical spacing\n    var baselineskip = 12 * pt; // see size10.clo\n    // Default \\jot from ltmath.dtx\n    // TODO(edemaine): allow overriding \\jot via \\setlength (#687)\n    var jot = 3 * pt;\n    // Default \\arraystretch from lttab.dtx\n    // TODO(gagern): may get redefined once we have user-defined macros\n    var arraystretch = __WEBPACK_IMPORTED_MODULE_6__utils__[\"a\" /* default */].deflt(group.value.arraystretch, 1);\n    var arrayskip = arraystretch * baselineskip;\n    var arstrutHeight = 0.7 * arrayskip; // \\strutbox in ltfsstrc.dtx and\n    var arstrutDepth = 0.3 * arrayskip; // \\@arstrutbox in lttab.dtx\n\n    var totalHeight = 0;\n    for (r = 0; r < group.value.body.length; ++r) {\n        var inrow = group.value.body[r];\n        var _height = arstrutHeight; // \\@array adds an \\@arstrut\n        var _depth = arstrutDepth; // to each tow (via the template)\n\n        if (nc < inrow.length) {\n            nc = inrow.length;\n        }\n\n        var outrow = new Array(inrow.length);\n        for (c = 0; c < inrow.length; ++c) {\n            var elt = __WEBPACK_IMPORTED_MODULE_8__buildHTML__[\"b\" /* buildGroup */](inrow[c], options);\n            if (_depth < elt.depth) {\n                _depth = elt.depth;\n            }\n            if (_height < elt.height) {\n                _height = elt.height;\n            }\n            outrow[c] = elt;\n        }\n\n        var gap = 0;\n        if (group.value.rowGaps[r]) {\n            gap = Object(__WEBPACK_IMPORTED_MODULE_5__units__[\"a\" /* calculateSize */])(group.value.rowGaps[r].value, options);\n            if (gap > 0) {\n                // \\@argarraycr\n                gap += arstrutDepth;\n                if (_depth < gap) {\n                    _depth = gap; // \\@xargarraycr\n                }\n                gap = 0;\n            }\n        }\n        // In AMS multiline environments such as aligned and gathered, rows\n        // correspond to lines that have additional \\jot added to the\n        // \\baselineskip via \\openup.\n        if (group.value.addJot) {\n            _depth += jot;\n        }\n\n        outrow.height = _height;\n        outrow.depth = _depth;\n        totalHeight += _height;\n        outrow.pos = totalHeight;\n        totalHeight += _depth + gap; // \\@yargarraycr\n        body[r] = outrow;\n    }\n\n    var offset = totalHeight / 2 + options.fontMetrics().axisHeight;\n    var colDescriptions = group.value.cols || [];\n    var cols = [];\n    var colSep = void 0;\n    var colDescrNum = void 0;\n    for (c = 0, colDescrNum = 0;\n    // Continue while either there are more columns or more column\n    // descriptions, so trailing separators don't get lost.\n    c < nc || colDescrNum < colDescriptions.length; ++c, ++colDescrNum) {\n\n        var colDescr = colDescriptions[colDescrNum] || {};\n\n        var firstSeparator = true;\n        while (colDescr.type === \"separator\") {\n            // If there is more than one separator in a row, add a space\n            // between them.\n            if (!firstSeparator) {\n                colSep = __WEBPACK_IMPORTED_MODULE_0__buildCommon__[\"a\" /* default */].makeSpan([\"arraycolsep\"], []);\n                colSep.style.width = options.fontMetrics().doubleRuleSep + \"em\";\n                cols.push(colSep);\n            }\n\n            if (colDescr.separator === \"|\") {\n                var _separator = __WEBPACK_IMPORTED_MODULE_7__stretchy__[\"a\" /* default */].ruleSpan(\"vertical-separator\", 0.05, options);\n                _separator.style.height = totalHeight + \"em\";\n                _separator.style.verticalAlign = -(totalHeight - offset) + \"em\";\n\n                cols.push(_separator);\n            } else {\n                throw new __WEBPACK_IMPORTED_MODULE_3__ParseError__[\"a\" /* default */](\"Invalid separator type: \" + colDescr.separator);\n            }\n\n            colDescrNum++;\n            colDescr = colDescriptions[colDescrNum] || {};\n            firstSeparator = false;\n        }\n\n        if (c >= nc) {\n            continue;\n        }\n\n        var sepwidth = void 0;\n        if (c > 0 || group.value.hskipBeforeAndAfter) {\n            sepwidth = __WEBPACK_IMPORTED_MODULE_6__utils__[\"a\" /* default */].deflt(colDescr.pregap, arraycolsep);\n            if (sepwidth !== 0) {\n                colSep = __WEBPACK_IMPORTED_MODULE_0__buildCommon__[\"a\" /* default */].makeSpan([\"arraycolsep\"], []);\n                colSep.style.width = sepwidth + \"em\";\n                cols.push(colSep);\n            }\n        }\n\n        var col = [];\n        for (r = 0; r < nr; ++r) {\n            var row = body[r];\n            var elem = row[c];\n            if (!elem) {\n                continue;\n            }\n            var shift = row.pos - offset;\n            elem.depth = row.depth;\n            elem.height = row.height;\n            col.push({ type: \"elem\", elem: elem, shift: shift });\n        }\n\n        col = __WEBPACK_IMPORTED_MODULE_0__buildCommon__[\"a\" /* default */].makeVList({\n            positionType: \"individualShift\",\n            children: col\n        }, options);\n        col = __WEBPACK_IMPORTED_MODULE_0__buildCommon__[\"a\" /* default */].makeSpan([\"col-align-\" + (colDescr.align || \"c\")], [col]);\n        cols.push(col);\n\n        if (c < nc - 1 || group.value.hskipBeforeAndAfter) {\n            sepwidth = __WEBPACK_IMPORTED_MODULE_6__utils__[\"a\" /* default */].deflt(colDescr.postgap, arraycolsep);\n            if (sepwidth !== 0) {\n                colSep = __WEBPACK_IMPORTED_MODULE_0__buildCommon__[\"a\" /* default */].makeSpan([\"arraycolsep\"], []);\n                colSep.style.width = sepwidth + \"em\";\n                cols.push(colSep);\n            }\n        }\n    }\n    body = __WEBPACK_IMPORTED_MODULE_0__buildCommon__[\"a\" /* default */].makeSpan([\"mtable\"], cols);\n    return __WEBPACK_IMPORTED_MODULE_0__buildCommon__[\"a\" /* default */].makeSpan([\"mord\"], [body], options);\n};\n\nvar mathmlBuilder = function mathmlBuilder(group, options) {\n    return new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mtable\", group.value.body.map(function (row) {\n        return new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mtr\", row.map(function (cell) {\n            return new __WEBPACK_IMPORTED_MODULE_2__mathMLTree__[\"a\" /* default */].MathNode(\"mtd\", [__WEBPACK_IMPORTED_MODULE_9__buildMathML__[\"b\" /* buildGroup */](cell, options)]);\n        }));\n    }));\n};\n\n// Convinient function for aligned and alignedat environments.\nvar alignedHandler = function alignedHandler(context, args) {\n    var res = {\n        type: \"array\",\n        cols: [],\n        addJot: true\n    };\n    res = parseArray(context.parser, res, \"display\");\n\n    // Determining number of columns.\n    // 1. If the first argument is given, we use it as a number of columns,\n    //    and makes sure that each row doesn't exceed that number.\n    // 2. Otherwise, just count number of columns = maximum number\n    //    of cells in each row (\"aligned\" mode -- isAligned will be true).\n    //\n    // At the same time, prepend empty group {} at beginning of every second\n    // cell in each row (starting with second cell) so that operators become\n    // binary.  This behavior is implemented in amsmath's \\start@aligned.\n    var numMaths = void 0;\n    var numCols = 0;\n    var emptyGroup = new __WEBPACK_IMPORTED_MODULE_4__ParseNode__[\"a\" /* default */](\"ordgroup\", [], context.mode);\n    if (args[0] && args[0].value) {\n        var arg0 = \"\";\n        for (var i = 0; i < args[0].value.length; i++) {\n            arg0 += args[0].value[i].value;\n        }\n        numMaths = Number(arg0);\n        numCols = numMaths * 2;\n    }\n    var isAligned = !numCols;\n    res.value.body.forEach(function (row) {\n        for (var _i = 1; _i < row.length; _i += 2) {\n            // Modify ordgroup node within styling node\n            var ordgroup = row[_i].value.value[0];\n            ordgroup.value.unshift(emptyGroup);\n        }\n        if (!isAligned) {\n            // Case 1\n            var curMaths = row.length / 2;\n            if (numMaths < curMaths) {\n                throw new __WEBPACK_IMPORTED_MODULE_3__ParseError__[\"a\" /* default */](\"Too many math in a row: \" + (\"expected \" + numMaths + \", but got \" + curMaths), row);\n            }\n        } else if (numCols < row.length) {\n            // Case 2\n            numCols = row.length;\n        }\n    });\n\n    // Adjusting alignment.\n    // In aligned mode, we add one \\qquad between columns;\n    // otherwise we add nothing.\n    for (var _i2 = 0; _i2 < numCols; ++_i2) {\n        var _align = \"r\";\n        var _pregap = 0;\n        if (_i2 % 2 === 1) {\n            _align = \"l\";\n        } else if (_i2 > 0 && isAligned) {\n            // \"aligned\" mode.\n            _pregap = 1; // add one \\quad\n        }\n        res.value.cols[_i2] = {\n            type: \"align\",\n            align: _align,\n            pregap: _pregap,\n            postgap: 0\n        };\n    }\n    return res;\n};\n\n// Arrays are part of LaTeX, defined in lttab.dtx so its documentation\n// is part of the source2e.pdf file of LaTeX2e source documentation.\n// {darray} is an {array} environment where cells are set in \\displaystyle,\n// as defined in nccmath.sty.\nObject(__WEBPACK_IMPORTED_MODULE_1__defineEnvironment__[\"b\" /* default */])({\n    type: \"array\",\n    names: [\"array\", \"darray\"],\n    props: {\n        numArgs: 1\n    },\n    handler: function handler(context, args) {\n        var colalign = args[0];\n        colalign = colalign.value.map ? colalign.value : [colalign];\n        var cols = colalign.map(function (node) {\n            var ca = node.value;\n            if (\"lcr\".indexOf(ca) !== -1) {\n                return {\n                    type: \"align\",\n                    align: ca\n                };\n            } else if (ca === \"|\") {\n                return {\n                    type: \"separator\",\n                    separator: \"|\"\n                };\n            }\n            throw new __WEBPACK_IMPORTED_MODULE_3__ParseError__[\"a\" /* default */](\"Unknown column alignment: \" + node.value, node);\n        });\n        var res = {\n            type: \"array\",\n            cols: cols,\n            hskipBeforeAndAfter: true // \\@preamble in lttab.dtx\n        };\n        res = parseArray(context.parser, res, dCellStyle(context.envName));\n        return res;\n    },\n    htmlBuilder: htmlBuilder,\n    mathmlBuilder: mathmlBuilder\n});\n\n// The matrix environments of amsmath builds on the array environment\n// of LaTeX, which is discussed above.\nObject(__WEBPACK_IMPORTED_MODULE_1__defineEnvironment__[\"b\" /* default */])({\n    type: \"array\",\n    names: [\"matrix\", \"pmatrix\", \"bmatrix\", \"Bmatrix\", \"vmatrix\", \"Vmatrix\"],\n    props: {\n        numArgs: 0\n    },\n    handler: function handler(context) {\n        var delimiters = {\n            \"matrix\": null,\n            \"pmatrix\": [\"(\", \")\"],\n            \"bmatrix\": [\"[\", \"]\"],\n            \"Bmatrix\": [\"\\\\{\", \"\\\\}\"],\n            \"vmatrix\": [\"|\", \"|\"],\n            \"Vmatrix\": [\"\\\\Vert\", \"\\\\Vert\"]\n        }[context.envName];\n        var res = {\n            type: \"array\",\n            hskipBeforeAndAfter: false // \\hskip -\\arraycolsep in amsmath\n        };\n        res = parseArray(context.parser, res, dCellStyle(context.envName));\n        if (delimiters) {\n            res = new __WEBPACK_IMPORTED_MODULE_4__ParseNode__[\"a\" /* default */](\"leftright\", {\n                body: [res],\n                left: delimiters[0],\n                right: delimiters[1]\n            }, context.mode);\n        }\n        return res;\n    },\n    htmlBuilder: htmlBuilder,\n    mathmlBuilder: mathmlBuilder\n});\n\n// A cases environment (in amsmath.sty) is almost equivalent to\n// \\def\\arraystretch{1.2}%\n// \\left\\{\\begin{array}{@{}l@{\\quad}l@{}} … \\end{array}\\right.\n// {dcases} is a {cases} environment where cells are set in \\displaystyle,\n// as defined in mathtools.sty.\nObject(__WEBPACK_IMPORTED_MODULE_1__defineEnvironment__[\"b\" /* default */])({\n    type: \"array\",\n    names: [\"cases\", \"dcases\"],\n    props: {\n        numArgs: 0\n    },\n    handler: function handler(context) {\n        var res = {\n            type: \"array\",\n            arraystretch: 1.2,\n            cols: [{\n                type: \"align\",\n                align: \"l\",\n                pregap: 0,\n                // TODO(kevinb) get the current style.\n                // For now we use the metrics for TEXT style which is what we were\n                // doing before.  Before attempting to get the current style we\n                // should look at TeX's behavior especially for \\over and matrices.\n                postgap: 1.0 /* 1em quad */\n            }, {\n                type: \"align\",\n                align: \"l\",\n                pregap: 0,\n                postgap: 0\n            }]\n        };\n        res = parseArray(context.parser, res, dCellStyle(context.envName));\n        res = new __WEBPACK_IMPORTED_MODULE_4__ParseNode__[\"a\" /* default */](\"leftright\", {\n            body: [res],\n            left: \"\\\\{\",\n            right: \".\"\n        }, context.mode);\n        return res;\n    },\n    htmlBuilder: htmlBuilder,\n    mathmlBuilder: mathmlBuilder\n});\n\n// An aligned environment is like the align* environment\n// except it operates within math mode.\n// Note that we assume \\nomallineskiplimit to be zero,\n// so that \\strut@ is the same as \\strut.\nObject(__WEBPACK_IMPORTED_MODULE_1__defineEnvironment__[\"b\" /* default */])({\n    type: \"array\",\n    names: [\"aligned\"],\n    props: {\n        numArgs: 0\n    },\n    handler: alignedHandler,\n    htmlBuilder: htmlBuilder,\n    mathmlBuilder: mathmlBuilder\n});\n\n// A gathered environment is like an array environment with one centered\n// column, but where rows are considered lines so get \\jot line spacing\n// and contents are set in \\displaystyle.\nObject(__WEBPACK_IMPORTED_MODULE_1__defineEnvironment__[\"b\" /* default */])({\n    type: \"array\",\n    names: [\"gathered\"],\n    props: {\n        numArgs: 0\n    },\n    handler: function handler(context) {\n        var res = {\n            type: \"array\",\n            cols: [{\n                type: \"align\",\n                align: \"c\"\n            }],\n            addJot: true\n        };\n        res = parseArray(context.parser, res, \"display\");\n        return res;\n    },\n    htmlBuilder: htmlBuilder,\n    mathmlBuilder: mathmlBuilder\n});\n\n// alignat environment is like an align environment, but one must explicitly\n// specify maximum number of columns in each row, and can adjust spacing between\n// each columns.\nObject(__WEBPACK_IMPORTED_MODULE_1__defineEnvironment__[\"b\" /* default */])({\n    type: \"array\",\n    names: [\"alignedat\"],\n    // One for numbered and for unnumbered;\n    // but, KaTeX doesn't supports math numbering yet,\n    // they make no difference for now.\n    props: {\n        numArgs: 1\n    },\n    handler: alignedHandler,\n    htmlBuilder: htmlBuilder,\n    mathmlBuilder: mathmlBuilder\n});\n\n/***/ }),\n/* 144 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toConsumableArray__ = __webpack_require__(35);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toConsumableArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toConsumableArray__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Lexer__ = __webpack_require__(62);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Token__ = __webpack_require__(27);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__macros__ = __webpack_require__(146);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__ParseError__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_object_assign__ = __webpack_require__(147);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_object_assign___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_object_assign__);\n\n\n\n\n/**\n * This file contains the “gullet” where macros are expanded\n * until only non-macro tokens remain.\n */\n\n\n\n\n\n\n\n\nvar MacroExpander = function () {\n    function MacroExpander(input, macros, mode) {\n        __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, MacroExpander);\n\n        this.lexer = new __WEBPACK_IMPORTED_MODULE_3__Lexer__[\"c\" /* default */](input);\n        this.macros = __WEBPACK_IMPORTED_MODULE_7_object_assign___default()({}, __WEBPACK_IMPORTED_MODULE_5__macros__[\"a\" /* default */], macros);\n        this.mode = mode;\n        this.stack = []; // contains tokens in REVERSE order\n    }\n\n    /**\n     * Switches between \"text\" and \"math\" modes.\n     */\n\n\n    __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default()(MacroExpander, [{\n        key: \"switchMode\",\n        value: function switchMode(newMode) {\n            this.mode = newMode;\n        }\n\n        /**\n         * Returns the topmost token on the stack, without expanding it.\n         * Similar in behavior to TeX's `\\futurelet`.\n         */\n\n    }, {\n        key: \"future\",\n        value: function future() {\n            if (this.stack.length === 0) {\n                this.pushToken(this.lexer.lex());\n            }\n            return this.stack[this.stack.length - 1];\n        }\n\n        /**\n         * Remove and return the next unexpanded token.\n         */\n\n    }, {\n        key: \"popToken\",\n        value: function popToken() {\n            this.future(); // ensure non-empty stack\n            return this.stack.pop();\n        }\n\n        /**\n         * Add a given token to the token stack.  In particular, this get be used\n         * to put back a token returned from one of the other methods.\n         */\n\n    }, {\n        key: \"pushToken\",\n        value: function pushToken(token) {\n            this.stack.push(token);\n        }\n\n        /**\n         * Append an array of tokens to the token stack.\n         */\n\n    }, {\n        key: \"pushTokens\",\n        value: function pushTokens(tokens) {\n            var _stack;\n\n            (_stack = this.stack).push.apply(_stack, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toConsumableArray___default()(tokens));\n        }\n\n        /**\n         * Consume all following space tokens, without expansion.\n         */\n\n    }, {\n        key: \"consumeSpaces\",\n        value: function consumeSpaces() {\n            for (;;) {\n                var token = this.future();\n                if (token.text === \" \") {\n                    this.stack.pop();\n                } else {\n                    break;\n                }\n            }\n        }\n\n        /**\n         * Consume the specified number of arguments from the token stream,\n         * and return the resulting array of arguments.\n         */\n\n    }, {\n        key: \"consumeArgs\",\n        value: function consumeArgs(numArgs) {\n            var args = [];\n            // obtain arguments, either single token or balanced {…} group\n            for (var i = 0; i < numArgs; ++i) {\n                this.consumeSpaces(); // ignore spaces before each argument\n                var startOfArg = this.popToken();\n                if (startOfArg.text === \"{\") {\n                    var arg = [];\n                    var depth = 1;\n                    while (depth !== 0) {\n                        var tok = this.popToken();\n                        arg.push(tok);\n                        if (tok.text === \"{\") {\n                            ++depth;\n                        } else if (tok.text === \"}\") {\n                            --depth;\n                        } else if (tok.text === \"EOF\") {\n                            throw new __WEBPACK_IMPORTED_MODULE_6__ParseError__[\"a\" /* default */](\"End of input in macro argument\", startOfArg);\n                        }\n                    }\n                    arg.pop(); // remove last }\n                    arg.reverse(); // like above, to fit in with stack order\n                    args[i] = arg;\n                } else if (startOfArg.text === \"EOF\") {\n                    throw new __WEBPACK_IMPORTED_MODULE_6__ParseError__[\"a\" /* default */](\"End of input expecting macro argument\");\n                } else {\n                    args[i] = [startOfArg];\n                }\n            }\n            return args;\n        }\n\n        /**\n         * Expand the next token only once if possible.\n         *\n         * If the token is expanded, the resulting tokens will be pushed onto\n         * the stack in reverse order and will be returned as an array,\n         * also in reverse order.\n         *\n         * If not, the next token will be returned without removing it\n         * from the stack.  This case can be detected by a `Token` return value\n         * instead of an `Array` return value.\n         *\n         * In either case, the next token will be on the top of the stack,\n         * or the stack will be empty.\n         *\n         * Used to implement `expandAfterFuture` and `expandNextToken`.\n         *\n         * At the moment, macro expansion doesn't handle delimited macros,\n         * i.e. things like those defined by \\def\\foo#1\\end{…}.\n         * See the TeX book page 202ff. for details on how those should behave.\n         */\n\n    }, {\n        key: \"expandOnce\",\n        value: function expandOnce() {\n            var topToken = this.popToken();\n            var name = topToken.text;\n            var isMacro = name.charAt(0) === \"\\\\\";\n            if (isMacro && __WEBPACK_IMPORTED_MODULE_3__Lexer__[\"b\" /* controlWordRegex */].test(name)) {\n                // Consume all spaces after \\macro (but not \\\\, \\', etc.)\n                this.consumeSpaces();\n            }\n            if (!this.macros.hasOwnProperty(name)) {\n                // Fully expanded\n                this.pushToken(topToken);\n                return topToken;\n            }\n\n            var _getExpansion2 = this._getExpansion(name),\n                tokens = _getExpansion2.tokens,\n                numArgs = _getExpansion2.numArgs;\n\n            var expansion = tokens;\n            if (numArgs) {\n                var args = this.consumeArgs(numArgs);\n                // paste arguments in place of the placeholders\n                expansion = expansion.slice(); // make a shallow copy\n                for (var i = expansion.length - 1; i >= 0; --i) {\n                    var tok = expansion[i];\n                    if (tok.text === \"#\") {\n                        if (i === 0) {\n                            throw new __WEBPACK_IMPORTED_MODULE_6__ParseError__[\"a\" /* default */](\"Incomplete placeholder at end of macro body\", tok);\n                        }\n                        tok = expansion[--i]; // next token on stack\n                        if (tok.text === \"#\") {\n                            // ## → #\n                            expansion.splice(i + 1, 1); // drop first #\n                        } else if (/^[1-9]$/.test(tok.text)) {\n                            var _expansion;\n\n                            // replace the placeholder with the indicated argument\n                            (_expansion = expansion).splice.apply(_expansion, [i, 2].concat(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toConsumableArray___default()(args[+tok.text - 1])));\n                        } else {\n                            throw new __WEBPACK_IMPORTED_MODULE_6__ParseError__[\"a\" /* default */](\"Not a valid argument number\", tok);\n                        }\n                    }\n                }\n            }\n            // Concatenate expansion onto top of stack.\n            this.pushTokens(expansion);\n            return expansion;\n        }\n\n        /**\n         * Expand the next token only once (if possible), and return the resulting\n         * top token on the stack (without removing anything from the stack).\n         * Similar in behavior to TeX's `\\expandafter\\futurelet`.\n         * Equivalent to expandOnce() followed by future().\n         */\n\n    }, {\n        key: \"expandAfterFuture\",\n        value: function expandAfterFuture() {\n            this.expandOnce();\n            return this.future();\n        }\n\n        /**\n         * Recursively expand first token, then return first non-expandable token.\n         */\n\n    }, {\n        key: \"expandNextToken\",\n        value: function expandNextToken() {\n            for (;;) {\n                var expanded = this.expandOnce();\n                // expandOnce returns Token if and only if it's fully expanded.\n                if (expanded instanceof __WEBPACK_IMPORTED_MODULE_4__Token__[\"a\" /* Token */]) {\n                    // \\relax stops the expansion, but shouldn't get returned (a\n                    // null return value couldn't get implemented as a function).\n                    if (expanded.text === \"\\\\relax\") {\n                        this.stack.pop();\n                    } else {\n                        return this.stack.pop(); // === expanded\n                    }\n                }\n            }\n\n            // Flow unable to figure out that this pathway is impossible.\n            // https://github.com/facebook/flow/issues/4808\n            throw new Error(); // eslint-disable-line no-unreachable\n        }\n\n        /**\n         * Returns the expanded macro as a reversed array of tokens and a macro\n         * argument count.\n         * Caches macro expansions for those that were defined simple TeX strings.\n         */\n\n    }, {\n        key: \"_getExpansion\",\n        value: function _getExpansion(name) {\n            var definition = this.macros[name];\n            var expansion = typeof definition === \"function\" ? definition(this) : definition;\n            if (typeof expansion === \"string\") {\n                var numArgs = 0;\n                if (expansion.indexOf(\"#\") !== -1) {\n                    var stripped = expansion.replace(/##/g, \"\");\n                    while (stripped.indexOf(\"#\" + (numArgs + 1)) !== -1) {\n                        ++numArgs;\n                    }\n                }\n                var bodyLexer = new __WEBPACK_IMPORTED_MODULE_3__Lexer__[\"c\" /* default */](expansion);\n                var tokens = [];\n                var tok = bodyLexer.lex();\n                while (tok.text !== \"EOF\") {\n                    tokens.push(tok);\n                    tok = bodyLexer.lex();\n                }\n                tokens.reverse(); // to fit in with stack using push and pop\n                var expanded = { tokens: tokens, numArgs: numArgs };\n                // Cannot cache a macro defined using a function since it relies on\n                // parser context.\n                if (typeof definition !== \"function\") {\n                    this.macros[name] = expanded;\n                }\n                return expanded;\n            }\n\n            return expansion;\n        }\n    }]);\n\n    return MacroExpander;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (MacroExpander);\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports) {\n\nfunction getRelocatable(re) {\n  // In the future, this could use a WeakMap instead of an expando.\n  if (!re.__matchAtRelocatable) {\n    // Disjunctions are the lowest-precedence operator, so we can make any\n    // pattern match the empty string by appending `|()` to it:\n    // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-patterns\n    var source = re.source + '|()';\n\n    // We always make the new regex global.\n    var flags = 'g' + (re.ignoreCase ? 'i' : '') + (re.multiline ? 'm' : '') + (re.unicode ? 'u' : '')\n    // sticky (/.../y) doesn't make sense in conjunction with our relocation\n    // logic, so we ignore it here.\n    ;\n\n    re.__matchAtRelocatable = new RegExp(source, flags);\n  }\n  return re.__matchAtRelocatable;\n}\n\nfunction matchAt(re, str, pos) {\n  if (re.global || re.sticky) {\n    throw new Error('matchAt(...): Only non-global regexes are supported');\n  }\n  var reloc = getRelocatable(re);\n  reloc.lastIndex = pos;\n  var match = reloc.exec(str);\n  // Last capturing group is our sentinel that indicates whether the regex\n  // matched at the given location.\n  if (match[match.length - 1] == null) {\n    // Original regex matched.\n    match.length = match.length - 1;\n    return match;\n  } else {\n    return null;\n  }\n}\n\nmodule.exports = matchAt;\n\n/***/ }),\n/* 146 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export defineMacro */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__submodules_katex_fonts_fontMetricsData__ = __webpack_require__(59);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__symbols__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Token__ = __webpack_require__(27);\n\n/**\n * Predefined macros for KaTeX.\n * This can be used to define some commands in terms of others.\n */\n\n\n\n\n\n\n/**\n * Provides context to macros defined by functions. Implemented by\n * MacroExpander.\n */\n\n\n/** Macro tokens (in reverse order). */\n\n\nvar builtinMacros = {};\n/* harmony default export */ __webpack_exports__[\"a\"] = (builtinMacros);\n\n// This function might one day accept an additional argument and do more things.\nfunction defineMacro(name, body) {\n    builtinMacros[name] = body;\n}\n\n//////////////////////////////////////////////////////////////////////\n// macro tools\n\n// LaTeX's \\@firstoftwo{#1}{#2} expands to #1, skipping #2\n// TeX source: \\long\\def\\@firstoftwo#1#2{#1}\ndefineMacro(\"\\\\@firstoftwo\", function (context) {\n    var args = context.consumeArgs(2);\n    return { tokens: args[0], numArgs: 0 };\n});\n\n// LaTeX's \\@secondoftwo{#1}{#2} expands to #2, skipping #1\n// TeX source: \\long\\def\\@secondoftwo#1#2{#2}\ndefineMacro(\"\\\\@secondoftwo\", function (context) {\n    var args = context.consumeArgs(2);\n    return { tokens: args[1], numArgs: 0 };\n});\n\n// LaTeX's \\@ifnextchar{#1}{#2}{#3} looks ahead to the next (unexpanded)\n// symbol.  If it matches #1, then the macro expands to #2; otherwise, #3.\n// Note, however, that it does not consume the next symbol in either case.\ndefineMacro(\"\\\\@ifnextchar\", function (context) {\n    var args = context.consumeArgs(3); // symbol, if, else\n    var nextToken = context.future();\n    if (args[0].length === 1 && args[0][0].text === nextToken.text) {\n        return { tokens: args[1], numArgs: 0 };\n    } else {\n        return { tokens: args[2], numArgs: 0 };\n    }\n});\n\n// LaTeX's \\@ifstar{#1}{#2} looks ahead to the next (unexpanded) symbol.\n// If it is `*`, then it consumes the symbol, and the macro expands to #1;\n// otherwise, the macro expands to #2 (without consuming the symbol).\n// TeX source: \\def\\@ifstar#1{\\@ifnextchar *{\\@firstoftwo{#1}}}\ndefineMacro(\"\\\\@ifstar\", \"\\\\@ifnextchar *{\\\\@firstoftwo{#1}}\");\n\n// LaTeX's \\TextOrMath{#1}{#2} expands to #1 in text mode, #2 in math mode\ndefineMacro(\"\\\\TextOrMath\", function (context) {\n    var args = context.consumeArgs(2);\n    if (context.mode === 'text') {\n        return { tokens: args[0], numArgs: 0 };\n    } else {\n        return { tokens: args[1], numArgs: 0 };\n    }\n});\n\n//////////////////////////////////////////////////////////////////////\n// Grouping\n// \\let\\bgroup={ \\let\\egroup=}\ndefineMacro(\"\\\\bgroup\", \"{\");\ndefineMacro(\"\\\\egroup\", \"}\");\ndefineMacro(\"\\\\begingroup\", \"{\");\ndefineMacro(\"\\\\endgroup\", \"}\");\n\n// Symbols from latex.ltx:\n// \\def\\lq{`}\n// \\def\\rq{'}\n// \\def\\lbrack{[}\n// \\def\\rbrack{]}\n// \\def \\aa {\\r a}\n// \\def \\AA {\\r A}\ndefineMacro(\"\\\\lq\", \"`\");\ndefineMacro(\"\\\\rq\", \"'\");\ndefineMacro(\"\\\\lbrack\", \"[\");\ndefineMacro(\"\\\\rbrack\", \"]\");\ndefineMacro(\"\\\\aa\", \"\\\\r a\");\ndefineMacro(\"\\\\AA\", \"\\\\r A\");\n\n// Unicode double-struck letters\ndefineMacro(\"\\u2102\", \"\\\\mathbb{C}\");\ndefineMacro(\"\\u210D\", \"\\\\mathbb{H}\");\ndefineMacro(\"\\u2115\", \"\\\\mathbb{N}\");\ndefineMacro(\"\\u2119\", \"\\\\mathbb{P}\");\ndefineMacro(\"\\u211A\", \"\\\\mathbb{Q}\");\ndefineMacro(\"\\u211D\", \"\\\\mathbb{R}\");\ndefineMacro(\"\\u2124\", \"\\\\mathbb{Z}\");\n\n// Unicode middle dot\n// The KaTeX fonts do not contain U+00B7. Instead, \\cdotp displays\n// the dot at U+22C5 and gives it punct spacing.\ndefineMacro(\"\\xB7\", \"\\\\cdotp\");\n\n// \\llap and \\rlap render their contents in text mode\ndefineMacro(\"\\\\llap\", \"\\\\mathllap{\\\\textrm{#1}}\");\ndefineMacro(\"\\\\rlap\", \"\\\\mathrlap{\\\\textrm{#1}}\");\ndefineMacro(\"\\\\clap\", \"\\\\mathclap{\\\\textrm{#1}}\");\n\n//////////////////////////////////////////////////////////////////////\n// amsmath.sty\n// http://mirrors.concertpass.com/tex-archive/macros/latex/required/amsmath/amsmath.pdf\n\n// Italic Greek capital letters.  AMS defines these with \\DeclareMathSymbol,\n// but they are equivalent to \\mathit{\\Letter}.\ndefineMacro(\"\\\\varGamma\", \"\\\\mathit{\\\\Gamma}\");\ndefineMacro(\"\\\\varDelta\", \"\\\\mathit{\\\\Delta}\");\ndefineMacro(\"\\\\varTheta\", \"\\\\mathit{\\\\Theta}\");\ndefineMacro(\"\\\\varLambda\", \"\\\\mathit{\\\\Lambda}\");\ndefineMacro(\"\\\\varXi\", \"\\\\mathit{\\\\Xi}\");\ndefineMacro(\"\\\\varPi\", \"\\\\mathit{\\\\Pi}\");\ndefineMacro(\"\\\\varSigma\", \"\\\\mathit{\\\\Sigma}\");\ndefineMacro(\"\\\\varUpsilon\", \"\\\\mathit{\\\\Upsilon}\");\ndefineMacro(\"\\\\varPhi\", \"\\\\mathit{\\\\Phi}\");\ndefineMacro(\"\\\\varPsi\", \"\\\\mathit{\\\\Psi}\");\ndefineMacro(\"\\\\varOmega\", \"\\\\mathit{\\\\Omega}\");\n\n// \\def\\overset#1#2{\\binrel@{#2}\\binrel@@{\\mathop{\\kern\\z@#2}\\limits^{#1}}}\ndefineMacro(\"\\\\overset\", \"\\\\mathop{#2}\\\\limits^{#1}\");\ndefineMacro(\"\\\\underset\", \"\\\\mathop{#2}\\\\limits_{#1}\");\n\n// \\newcommand{\\boxed}[1]{\\fbox{\\m@th$\\displaystyle#1$}}\ndefineMacro(\"\\\\boxed\", \"\\\\fbox{\\\\displaystyle{#1}}\");\n\n// \\def\\iff{\\DOTSB\\;\\Longleftrightarrow\\;}\n// \\def\\implies{\\DOTSB\\;\\Longrightarrow\\;}\n// \\def\\impliedby{\\DOTSB\\;\\Longleftarrow\\;}\ndefineMacro(\"\\\\iff\", \"\\\\DOTSB\\\\;\\\\Longleftrightarrow\\\\;\");\ndefineMacro(\"\\\\implies\", \"\\\\DOTSB\\\\;\\\\Longrightarrow\\\\;\");\ndefineMacro(\"\\\\impliedby\", \"\\\\DOTSB\\\\;\\\\Longleftarrow\\\\;\");\n\n// AMSMath's automatic \\dots, based on \\mdots@@ macro.\nvar dotsByToken = {\n    ',': '\\\\dotsc',\n    '\\\\not': '\\\\dotsb',\n    // \\keybin@ checks for the following:\n    '+': '\\\\dotsb',\n    '=': '\\\\dotsb',\n    '<': '\\\\dotsb',\n    '>': '\\\\dotsb',\n    '-': '\\\\dotsb',\n    '*': '\\\\dotsb',\n    ':': '\\\\dotsb',\n    // Symbols whose definition starts with \\DOTSB:\n    '\\\\DOTSB': '\\\\dotsb',\n    '\\\\coprod': '\\\\dotsb',\n    '\\\\bigvee': '\\\\dotsb',\n    '\\\\bigwedge': '\\\\dotsb',\n    '\\\\biguplus': '\\\\dotsb',\n    '\\\\bigcap': '\\\\dotsb',\n    '\\\\bigcup': '\\\\dotsb',\n    '\\\\prod': '\\\\dotsb',\n    '\\\\sum': '\\\\dotsb',\n    '\\\\bigotimes': '\\\\dotsb',\n    '\\\\bigoplus': '\\\\dotsb',\n    '\\\\bigodot': '\\\\dotsb',\n    '\\\\bigsqcup': '\\\\dotsb',\n    '\\\\implies': '\\\\dotsb',\n    '\\\\impliedby': '\\\\dotsb',\n    '\\\\And': '\\\\dotsb',\n    '\\\\longrightarrow': '\\\\dotsb',\n    '\\\\Longrightarrow': '\\\\dotsb',\n    '\\\\longleftarrow': '\\\\dotsb',\n    '\\\\Longleftarrow': '\\\\dotsb',\n    '\\\\longleftrightarrow': '\\\\dotsb',\n    '\\\\Longleftrightarrow': '\\\\dotsb',\n    '\\\\mapsto': '\\\\dotsb',\n    '\\\\longmapsto': '\\\\dotsb',\n    '\\\\hookrightarrow': '\\\\dotsb',\n    '\\\\iff': '\\\\dotsb',\n    '\\\\doteq': '\\\\dotsb',\n    // Symbols whose definition starts with \\mathbin:\n    '\\\\mathbin': '\\\\dotsb',\n    '\\\\bmod': '\\\\dotsb',\n    // Symbols whose definition starts with \\mathrel:\n    '\\\\mathrel': '\\\\dotsb',\n    '\\\\relbar': '\\\\dotsb',\n    '\\\\Relbar': '\\\\dotsb',\n    '\\\\xrightarrow': '\\\\dotsb',\n    '\\\\xleftarrow': '\\\\dotsb',\n    // Symbols whose definition starts with \\DOTSI:\n    '\\\\DOTSI': '\\\\dotsi',\n    '\\\\int': '\\\\dotsi',\n    '\\\\oint': '\\\\dotsi',\n    '\\\\iint': '\\\\dotsi',\n    '\\\\iiint': '\\\\dotsi',\n    '\\\\iiiint': '\\\\dotsi',\n    '\\\\idotsint': '\\\\dotsi',\n    // Symbols whose definition starts with \\DOTSX:\n    '\\\\DOTSX': '\\\\dotsx'\n};\n\ndefineMacro(\"\\\\dots\", function (context) {\n    // TODO: If used in text mode, should expand to \\textellipsis.\n    // However, in KaTeX, \\textellipsis and \\ldots behave the same\n    // (in text mode), and it's unlikely we'd see any of the math commands\n    // that affect the behavior of \\dots when in text mode.  So fine for now\n    // (until we support \\ifmmode ... \\else ... \\fi).\n    var thedots = '\\\\dotso';\n    var next = context.expandAfterFuture().text;\n    if (next in dotsByToken) {\n        thedots = dotsByToken[next];\n    } else if (next.substr(0, 4) === '\\\\not') {\n        thedots = '\\\\dotsb';\n    } else if (next in __WEBPACK_IMPORTED_MODULE_1__symbols__[\"a\" /* default */].math) {\n        if (__WEBPACK_IMPORTED_MODULE_2__utils__[\"a\" /* default */].contains(['bin', 'rel'], __WEBPACK_IMPORTED_MODULE_1__symbols__[\"a\" /* default */].math[next].group)) {\n            thedots = '\\\\dotsb';\n        }\n    }\n    return thedots;\n});\n\nvar spaceAfterDots = {\n    // \\rightdelim@ checks for the following:\n    ')': true,\n    ']': true,\n    '\\\\rbrack': true,\n    '\\\\}': true,\n    '\\\\rbrace': true,\n    '\\\\rangle': true,\n    '\\\\rceil': true,\n    '\\\\rfloor': true,\n    '\\\\rgroup': true,\n    '\\\\rmoustache': true,\n    '\\\\right': true,\n    '\\\\bigr': true,\n    '\\\\biggr': true,\n    '\\\\Bigr': true,\n    '\\\\Biggr': true,\n    // \\extra@ also tests for the following:\n    '$': true,\n    // \\extrap@ checks for the following:\n    ';': true,\n    '.': true,\n    ',': true\n};\n\ndefineMacro(\"\\\\dotso\", function (context) {\n    var next = context.future().text;\n    if (next in spaceAfterDots) {\n        return \"\\\\ldots\\\\,\";\n    } else {\n        return \"\\\\ldots\";\n    }\n});\n\ndefineMacro(\"\\\\dotsc\", function (context) {\n    var next = context.future().text;\n    // \\dotsc uses \\extra@ but not \\extrap@, instead specially checking for\n    // ';' and '.', but doesn't check for ','.\n    if (next in spaceAfterDots && next !== ',') {\n        return \"\\\\ldots\\\\,\";\n    } else {\n        return \"\\\\ldots\";\n    }\n});\n\ndefineMacro(\"\\\\cdots\", function (context) {\n    var next = context.future().text;\n    if (next in spaceAfterDots) {\n        return \"\\\\@cdots\\\\,\";\n    } else {\n        return \"\\\\@cdots\";\n    }\n});\n\ndefineMacro(\"\\\\dotsb\", \"\\\\cdots\");\ndefineMacro(\"\\\\dotsm\", \"\\\\cdots\");\ndefineMacro(\"\\\\dotsi\", \"\\\\!\\\\cdots\");\n// amsmath doesn't actually define \\dotsx, but \\dots followed by a macro\n// starting with \\DOTSX implies \\dotso, and then \\extra@ detects this case\n// and forces the added `\\,`.\ndefineMacro(\"\\\\dotsx\", \"\\\\ldots\\\\,\");\n\n// \\let\\DOTSI\\relax\n// \\let\\DOTSB\\relax\n// \\let\\DOTSX\\relax\ndefineMacro(\"\\\\DOTSI\", \"\\\\relax\");\ndefineMacro(\"\\\\DOTSB\", \"\\\\relax\");\ndefineMacro(\"\\\\DOTSX\", \"\\\\relax\");\n\n// http://texdoc.net/texmf-dist/doc/latex/amsmath/amsmath.pdf\ndefineMacro(\"\\\\thinspace\", \"\\\\,\"); //   \\let\\thinspace\\,\ndefineMacro(\"\\\\medspace\", \"\\\\:\"); //   \\let\\medspace\\:\ndefineMacro(\"\\\\thickspace\", \"\\\\;\"); //   \\let\\thickspace\\;\n\n//////////////////////////////////////////////////////////////////////\n// LaTeX source2e\n\n// \\def\\TeX{T\\kern-.1667em\\lower.5ex\\hbox{E}\\kern-.125emX\\@}\n// TODO: Doesn't normally work in math mode because \\@ fails.  KaTeX doesn't\n// support \\@ yet, so that's omitted, and we add \\text so that the result\n// doesn't look funny in math mode.\ndefineMacro(\"\\\\TeX\", \"\\\\textrm{T\\\\kern-.1667em\\\\raisebox{-.5ex}{E}\\\\kern-.125emX}\");\n\n// \\DeclareRobustCommand{\\LaTeX}{L\\kern-.36em%\n//         {\\sbox\\z@ T%\n//          \\vbox to\\ht\\z@{\\hbox{\\check@mathfonts\n//                               \\fontsize\\sf@size\\z@\n//                               \\math@fontsfalse\\selectfont\n//                               A}%\n//                         \\vss}%\n//         }%\n//         \\kern-.15em%\n//         \\TeX}\n// This code aligns the top of the A with the T (from the perspective of TeX's\n// boxes, though visually the A appears to extend above slightly).\n// We compute the corresponding \\raisebox when A is rendered at \\scriptsize,\n// which is size3, which has a scale factor of 0.7 (see Options.js).\nvar latexRaiseA = __WEBPACK_IMPORTED_MODULE_0__submodules_katex_fonts_fontMetricsData__[\"a\" /* default */]['Main-Regular'][\"T\".charCodeAt(0)][1] - 0.7 * __WEBPACK_IMPORTED_MODULE_0__submodules_katex_fonts_fontMetricsData__[\"a\" /* default */]['Main-Regular'][\"A\".charCodeAt(0)][1] + \"em\";\ndefineMacro(\"\\\\LaTeX\", \"\\\\textrm{L\\\\kern-.36em\\\\raisebox{\" + latexRaiseA + \"}{\\\\scriptsize A}\" + \"\\\\kern-.15em\\\\TeX}\");\n\n// New KaTeX logo based on tweaking LaTeX logo\ndefineMacro(\"\\\\KaTeX\", \"\\\\textrm{K\\\\kern-.17em\\\\raisebox{\" + latexRaiseA + \"}{\\\\scriptsize A}\" + \"\\\\kern-.15em\\\\TeX}\");\n\n// \\DeclareRobustCommand\\hspace{\\@ifstar\\@hspacer\\@hspace}\n// \\def\\@hspace#1{\\hskip  #1\\relax}\n// KaTeX doesn't do line breaks, so \\hspace and \\hspace* are the same as \\kern\ndefineMacro(\"\\\\hspace\", \"\\\\@ifstar\\\\kern\\\\kern\");\n\n//////////////////////////////////////////////////////////////////////\n// mathtools.sty\n\n//\\providecommand\\ordinarycolon{:}\ndefineMacro(\"\\\\ordinarycolon\", \":\");\n//\\def\\vcentcolon{\\mathrel{\\mathop\\ordinarycolon}}\n//TODO(edemaine): Not yet centered. Fix via \\raisebox or #726\ndefineMacro(\"\\\\vcentcolon\", \"\\\\mathrel{\\\\mathop\\\\ordinarycolon}\");\n// \\providecommand*\\dblcolon{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}\ndefineMacro(\"\\\\dblcolon\", \"\\\\vcentcolon\\\\mathrel{\\\\mkern-.9mu}\\\\vcentcolon\");\n// \\providecommand*\\coloneqq{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}\ndefineMacro(\"\\\\coloneqq\", \"\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}=\");\n// \\providecommand*\\Coloneqq{\\dblcolon\\mathrel{\\mkern-1.2mu}=}\ndefineMacro(\"\\\\Coloneqq\", \"\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}=\");\n// \\providecommand*\\coloneq{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}\ndefineMacro(\"\\\\coloneq\", \"\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\mathrel{-}\");\n// \\providecommand*\\Coloneq{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}\ndefineMacro(\"\\\\Coloneq\", \"\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\mathrel{-}\");\n// \\providecommand*\\eqqcolon{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}\ndefineMacro(\"\\\\eqqcolon\", \"=\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon\");\n// \\providecommand*\\Eqqcolon{=\\mathrel{\\mkern-1.2mu}\\dblcolon}\ndefineMacro(\"\\\\Eqqcolon\", \"=\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon\");\n// \\providecommand*\\eqcolon{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}\ndefineMacro(\"\\\\eqcolon\", \"\\\\mathrel{-}\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon\");\n// \\providecommand*\\Eqcolon{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}\ndefineMacro(\"\\\\Eqcolon\", \"\\\\mathrel{-}\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon\");\n// \\providecommand*\\colonapprox{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}\ndefineMacro(\"\\\\colonapprox\", \"\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\approx\");\n// \\providecommand*\\Colonapprox{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}\ndefineMacro(\"\\\\Colonapprox\", \"\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\approx\");\n// \\providecommand*\\colonsim{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}\ndefineMacro(\"\\\\colonsim\", \"\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\sim\");\n// \\providecommand*\\Colonsim{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}\ndefineMacro(\"\\\\Colonsim\", \"\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\sim\");\n\n// Some Unicode characters are implemented with macros to mathtools functions.\ndefineMacro(\"\\u2254\", \"\\\\coloneqq\"); // :=\ndefineMacro(\"\\u2255\", \"\\\\eqqcolon\"); // =:\ndefineMacro(\"\\u2A74\", \"\\\\Coloneqq\"); // ::=\n\n//////////////////////////////////////////////////////////////////////\n// colonequals.sty\n\n// Alternate names for mathtools's macros:\ndefineMacro(\"\\\\ratio\", \"\\\\vcentcolon\");\ndefineMacro(\"\\\\coloncolon\", \"\\\\dblcolon\");\ndefineMacro(\"\\\\colonequals\", \"\\\\coloneqq\");\ndefineMacro(\"\\\\coloncolonequals\", \"\\\\Coloneqq\");\ndefineMacro(\"\\\\equalscolon\", \"\\\\eqqcolon\");\ndefineMacro(\"\\\\equalscoloncolon\", \"\\\\Eqqcolon\");\ndefineMacro(\"\\\\colonminus\", \"\\\\coloneq\");\ndefineMacro(\"\\\\coloncolonminus\", \"\\\\Coloneq\");\ndefineMacro(\"\\\\minuscolon\", \"\\\\eqcolon\");\ndefineMacro(\"\\\\minuscoloncolon\", \"\\\\Eqcolon\");\n// \\colonapprox name is same in mathtools and colonequals.\ndefineMacro(\"\\\\coloncolonapprox\", \"\\\\Colonapprox\");\n// \\colonsim name is same in mathtools and colonequals.\ndefineMacro(\"\\\\coloncolonsim\", \"\\\\Colonsim\");\n\n// Additional macros, implemented by analogy with mathtools definitions:\ndefineMacro(\"\\\\simcolon\", \"\\\\sim\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon\");\ndefineMacro(\"\\\\simcoloncolon\", \"\\\\sim\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon\");\ndefineMacro(\"\\\\approxcolon\", \"\\\\approx\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon\");\ndefineMacro(\"\\\\approxcoloncolon\", \"\\\\approx\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon\");\n\n// Present in newtxmath, pxfonts and txfonts\n// TODO: The unicode character U+220C ∌ should be added to the font, and this\n//       macro turned into a propper defineSymbol in symbols.js. That way, the\n//       MathML result will be much cleaner.\ndefineMacro(\"\\\\notni\", \"\\\\not\\\\ni\");\ndefineMacro(\"\\\\limsup\", \"\\\\DOTSB\\\\mathop{\\\\operatorname{lim\\\\,sup}}\\\\limits\");\ndefineMacro(\"\\\\liminf\", \"\\\\DOTSB\\\\mathop{\\\\operatorname{lim\\\\,inf}}\\\\limits\");\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports) {\n\n// Mapping of Unicode accent characters to their LaTeX equivalent in text and\n// math mode (when they exist).\n\n// NOTE: This module needs to be written with Node-style modules (not\n// ES6 modules) so that unicodeMake.js (a Node application) can import it.\nmodule.exports = {\n    '\\u0301': { text: \"\\\\'\", math: '\\\\acute' },\n    '\\u0300': { text: '\\\\`', math: '\\\\grave' },\n    '\\u0308': { text: '\\\\\"', math: '\\\\ddot' },\n    '\\u0303': { text: '\\\\~', math: '\\\\tilde' },\n    '\\u0304': { text: '\\\\=', math: '\\\\bar' },\n    '\\u0306': { text: '\\\\u', math: '\\\\breve' },\n    '\\u030C': { text: '\\\\v', math: '\\\\check' },\n    '\\u0302': { text: '\\\\^', math: '\\\\hat' },\n    '\\u0307': { text: '\\\\.', math: '\\\\dot' },\n    '\\u030A': { text: '\\\\r', math: '\\\\mathring' },\n    '\\u030B': { text: '\\\\H' }\n};\n\n/***/ }),\n/* 149 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// This file is GENERATED by unicodeMake.js. DO NOT MODIFY.\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n    \"\\xE1\": \"a\\u0301\", // á = \\'{a}\n    \"\\xE0\": \"a\\u0300\", // à = \\`{a}\n    \"\\xE4\": \"a\\u0308\", // ä = \\\"{a}\n    \"\\u01DF\": \"a\\u0308\\u0304\", // ǟ = \\\"\\={a}\n    \"\\xE3\": \"a\\u0303\", // ã = \\~{a}\n    \"\\u0101\": \"a\\u0304\", // ā = \\={a}\n    \"\\u0103\": \"a\\u0306\", // ă = \\u{a}\n    \"\\u1EAF\": \"a\\u0306\\u0301\", // ắ = \\u\\'{a}\n    \"\\u1EB1\": \"a\\u0306\\u0300\", // ằ = \\u\\`{a}\n    \"\\u1EB5\": \"a\\u0306\\u0303\", // ẵ = \\u\\~{a}\n    \"\\u01CE\": \"a\\u030C\", // ǎ = \\v{a}\n    \"\\xE2\": \"a\\u0302\", // â = \\^{a}\n    \"\\u1EA5\": \"a\\u0302\\u0301\", // ấ = \\^\\'{a}\n    \"\\u1EA7\": \"a\\u0302\\u0300\", // ầ = \\^\\`{a}\n    \"\\u1EAB\": \"a\\u0302\\u0303\", // ẫ = \\^\\~{a}\n    \"\\u0227\": \"a\\u0307\", // ȧ = \\.{a}\n    \"\\u01E1\": \"a\\u0307\\u0304\", // ǡ = \\.\\={a}\n    \"\\xE5\": \"a\\u030A\", // å = \\r{a}\n    \"\\u01FB\": \"a\\u030A\\u0301\", // ǻ = \\r\\'{a}\n    \"\\u1E03\": \"b\\u0307\", // ḃ = \\.{b}\n    \"\\u0107\": \"c\\u0301\", // ć = \\'{c}\n    \"\\u010D\": \"c\\u030C\", // č = \\v{c}\n    \"\\u0109\": \"c\\u0302\", // ĉ = \\^{c}\n    \"\\u010B\": \"c\\u0307\", // ċ = \\.{c}\n    \"\\u010F\": \"d\\u030C\", // ď = \\v{d}\n    \"\\u1E0B\": \"d\\u0307\", // ḋ = \\.{d}\n    \"\\xE9\": \"e\\u0301\", // é = \\'{e}\n    \"\\xE8\": \"e\\u0300\", // è = \\`{e}\n    \"\\xEB\": \"e\\u0308\", // ë = \\\"{e}\n    \"\\u1EBD\": \"e\\u0303\", // ẽ = \\~{e}\n    \"\\u0113\": \"e\\u0304\", // ē = \\={e}\n    \"\\u1E17\": \"e\\u0304\\u0301\", // ḗ = \\=\\'{e}\n    \"\\u1E15\": \"e\\u0304\\u0300\", // ḕ = \\=\\`{e}\n    \"\\u0115\": \"e\\u0306\", // ĕ = \\u{e}\n    \"\\u011B\": \"e\\u030C\", // ě = \\v{e}\n    \"\\xEA\": \"e\\u0302\", // ê = \\^{e}\n    \"\\u1EBF\": \"e\\u0302\\u0301\", // ế = \\^\\'{e}\n    \"\\u1EC1\": \"e\\u0302\\u0300\", // ề = \\^\\`{e}\n    \"\\u1EC5\": \"e\\u0302\\u0303\", // ễ = \\^\\~{e}\n    \"\\u0117\": \"e\\u0307\", // ė = \\.{e}\n    \"\\u1E1F\": \"f\\u0307\", // ḟ = \\.{f}\n    \"\\u01F5\": \"g\\u0301\", // ǵ = \\'{g}\n    \"\\u1E21\": \"g\\u0304\", // ḡ = \\={g}\n    \"\\u011F\": \"g\\u0306\", // ğ = \\u{g}\n    \"\\u01E7\": \"g\\u030C\", // ǧ = \\v{g}\n    \"\\u011D\": \"g\\u0302\", // ĝ = \\^{g}\n    \"\\u0121\": \"g\\u0307\", // ġ = \\.{g}\n    \"\\u1E27\": \"h\\u0308\", // ḧ = \\\"{h}\n    \"\\u021F\": \"h\\u030C\", // ȟ = \\v{h}\n    \"\\u0125\": \"h\\u0302\", // ĥ = \\^{h}\n    \"\\u1E23\": \"h\\u0307\", // ḣ = \\.{h}\n    \"\\xED\": \"i\\u0301\", // í = \\'{i}\n    \"\\xEC\": \"i\\u0300\", // ì = \\`{i}\n    \"\\xEF\": \"i\\u0308\", // ï = \\\"{i}\n    \"\\u1E2F\": \"i\\u0308\\u0301\", // ḯ = \\\"\\'{i}\n    \"\\u0129\": \"i\\u0303\", // ĩ = \\~{i}\n    \"\\u012B\": \"i\\u0304\", // ī = \\={i}\n    \"\\u012D\": \"i\\u0306\", // ĭ = \\u{i}\n    \"\\u01D0\": \"i\\u030C\", // ǐ = \\v{i}\n    \"\\xEE\": \"i\\u0302\", // î = \\^{i}\n    \"\\u01F0\": \"j\\u030C\", // ǰ = \\v{j}\n    \"\\u0135\": \"j\\u0302\", // ĵ = \\^{j}\n    \"\\u1E31\": \"k\\u0301\", // ḱ = \\'{k}\n    \"\\u01E9\": \"k\\u030C\", // ǩ = \\v{k}\n    \"\\u013A\": \"l\\u0301\", // ĺ = \\'{l}\n    \"\\u013E\": \"l\\u030C\", // ľ = \\v{l}\n    \"\\u1E3F\": \"m\\u0301\", // ḿ = \\'{m}\n    \"\\u1E41\": \"m\\u0307\", // ṁ = \\.{m}\n    \"\\u0144\": \"n\\u0301\", // ń = \\'{n}\n    \"\\u01F9\": \"n\\u0300\", // ǹ = \\`{n}\n    \"\\xF1\": \"n\\u0303\", // ñ = \\~{n}\n    \"\\u0148\": \"n\\u030C\", // ň = \\v{n}\n    \"\\u1E45\": \"n\\u0307\", // ṅ = \\.{n}\n    \"\\xF3\": \"o\\u0301\", // ó = \\'{o}\n    \"\\xF2\": \"o\\u0300\", // ò = \\`{o}\n    \"\\xF6\": \"o\\u0308\", // ö = \\\"{o}\n    \"\\u022B\": \"o\\u0308\\u0304\", // ȫ = \\\"\\={o}\n    \"\\xF5\": \"o\\u0303\", // õ = \\~{o}\n    \"\\u1E4D\": \"o\\u0303\\u0301\", // ṍ = \\~\\'{o}\n    \"\\u1E4F\": \"o\\u0303\\u0308\", // ṏ = \\~\\\"{o}\n    \"\\u022D\": \"o\\u0303\\u0304\", // ȭ = \\~\\={o}\n    \"\\u014D\": \"o\\u0304\", // ō = \\={o}\n    \"\\u1E53\": \"o\\u0304\\u0301\", // ṓ = \\=\\'{o}\n    \"\\u1E51\": \"o\\u0304\\u0300\", // ṑ = \\=\\`{o}\n    \"\\u014F\": \"o\\u0306\", // ŏ = \\u{o}\n    \"\\u01D2\": \"o\\u030C\", // ǒ = \\v{o}\n    \"\\xF4\": \"o\\u0302\", // ô = \\^{o}\n    \"\\u1ED1\": \"o\\u0302\\u0301\", // ố = \\^\\'{o}\n    \"\\u1ED3\": \"o\\u0302\\u0300\", // ồ = \\^\\`{o}\n    \"\\u1ED7\": \"o\\u0302\\u0303\", // ỗ = \\^\\~{o}\n    \"\\u022F\": \"o\\u0307\", // ȯ = \\.{o}\n    \"\\u0231\": \"o\\u0307\\u0304\", // ȱ = \\.\\={o}\n    \"\\u0151\": \"o\\u030B\", // ő = \\H{o}\n    \"\\u1E55\": \"p\\u0301\", // ṕ = \\'{p}\n    \"\\u1E57\": \"p\\u0307\", // ṗ = \\.{p}\n    \"\\u0155\": \"r\\u0301\", // ŕ = \\'{r}\n    \"\\u0159\": \"r\\u030C\", // ř = \\v{r}\n    \"\\u1E59\": \"r\\u0307\", // ṙ = \\.{r}\n    \"\\u015B\": \"s\\u0301\", // ś = \\'{s}\n    \"\\u1E65\": \"s\\u0301\\u0307\", // ṥ = \\'\\.{s}\n    \"\\u0161\": \"s\\u030C\", // š = \\v{s}\n    \"\\u1E67\": \"s\\u030C\\u0307\", // ṧ = \\v\\.{s}\n    \"\\u015D\": \"s\\u0302\", // ŝ = \\^{s}\n    \"\\u1E61\": \"s\\u0307\", // ṡ = \\.{s}\n    \"\\u1E97\": \"t\\u0308\", // ẗ = \\\"{t}\n    \"\\u0165\": \"t\\u030C\", // ť = \\v{t}\n    \"\\u1E6B\": \"t\\u0307\", // ṫ = \\.{t}\n    \"\\xFA\": \"u\\u0301\", // ú = \\'{u}\n    \"\\xF9\": \"u\\u0300\", // ù = \\`{u}\n    \"\\xFC\": \"u\\u0308\", // ü = \\\"{u}\n    \"\\u01D8\": \"u\\u0308\\u0301\", // ǘ = \\\"\\'{u}\n    \"\\u01DC\": \"u\\u0308\\u0300\", // ǜ = \\\"\\`{u}\n    \"\\u01D6\": \"u\\u0308\\u0304\", // ǖ = \\\"\\={u}\n    \"\\u01DA\": \"u\\u0308\\u030C\", // ǚ = \\\"\\v{u}\n    \"\\u0169\": \"u\\u0303\", // ũ = \\~{u}\n    \"\\u1E79\": \"u\\u0303\\u0301\", // ṹ = \\~\\'{u}\n    \"\\u016B\": \"u\\u0304\", // ū = \\={u}\n    \"\\u1E7B\": \"u\\u0304\\u0308\", // ṻ = \\=\\\"{u}\n    \"\\u016D\": \"u\\u0306\", // ŭ = \\u{u}\n    \"\\u01D4\": \"u\\u030C\", // ǔ = \\v{u}\n    \"\\xFB\": \"u\\u0302\", // û = \\^{u}\n    \"\\u016F\": \"u\\u030A\", // ů = \\r{u}\n    \"\\u0171\": \"u\\u030B\", // ű = \\H{u}\n    \"\\u1E7D\": \"v\\u0303\", // ṽ = \\~{v}\n    \"\\u1E83\": \"w\\u0301\", // ẃ = \\'{w}\n    \"\\u1E81\": \"w\\u0300\", // ẁ = \\`{w}\n    \"\\u1E85\": \"w\\u0308\", // ẅ = \\\"{w}\n    \"\\u0175\": \"w\\u0302\", // ŵ = \\^{w}\n    \"\\u1E87\": \"w\\u0307\", // ẇ = \\.{w}\n    \"\\u1E98\": \"w\\u030A\", // ẘ = \\r{w}\n    \"\\u1E8D\": \"x\\u0308\", // ẍ = \\\"{x}\n    \"\\u1E8B\": \"x\\u0307\", // ẋ = \\.{x}\n    \"\\xFD\": \"y\\u0301\", // ý = \\'{y}\n    \"\\u1EF3\": \"y\\u0300\", // ỳ = \\`{y}\n    \"\\xFF\": \"y\\u0308\", // ÿ = \\\"{y}\n    \"\\u1EF9\": \"y\\u0303\", // ỹ = \\~{y}\n    \"\\u0233\": \"y\\u0304\", // ȳ = \\={y}\n    \"\\u0177\": \"y\\u0302\", // ŷ = \\^{y}\n    \"\\u1E8F\": \"y\\u0307\", // ẏ = \\.{y}\n    \"\\u1E99\": \"y\\u030A\", // ẙ = \\r{y}\n    \"\\u017A\": \"z\\u0301\", // ź = \\'{z}\n    \"\\u017E\": \"z\\u030C\", // ž = \\v{z}\n    \"\\u1E91\": \"z\\u0302\", // ẑ = \\^{z}\n    \"\\u017C\": \"z\\u0307\", // ż = \\.{z}\n    \"\\xC1\": \"A\\u0301\", // Á = \\'{A}\n    \"\\xC0\": \"A\\u0300\", // À = \\`{A}\n    \"\\xC4\": \"A\\u0308\", // Ä = \\\"{A}\n    \"\\u01DE\": \"A\\u0308\\u0304\", // Ǟ = \\\"\\={A}\n    \"\\xC3\": \"A\\u0303\", // Ã = \\~{A}\n    \"\\u0100\": \"A\\u0304\", // Ā = \\={A}\n    \"\\u0102\": \"A\\u0306\", // Ă = \\u{A}\n    \"\\u1EAE\": \"A\\u0306\\u0301\", // Ắ = \\u\\'{A}\n    \"\\u1EB0\": \"A\\u0306\\u0300\", // Ằ = \\u\\`{A}\n    \"\\u1EB4\": \"A\\u0306\\u0303\", // Ẵ = \\u\\~{A}\n    \"\\u01CD\": \"A\\u030C\", // Ǎ = \\v{A}\n    \"\\xC2\": \"A\\u0302\", // Â = \\^{A}\n    \"\\u1EA4\": \"A\\u0302\\u0301\", // Ấ = \\^\\'{A}\n    \"\\u1EA6\": \"A\\u0302\\u0300\", // Ầ = \\^\\`{A}\n    \"\\u1EAA\": \"A\\u0302\\u0303\", // Ẫ = \\^\\~{A}\n    \"\\u0226\": \"A\\u0307\", // Ȧ = \\.{A}\n    \"\\u01E0\": \"A\\u0307\\u0304\", // Ǡ = \\.\\={A}\n    \"\\xC5\": \"A\\u030A\", // Å = \\r{A}\n    \"\\u01FA\": \"A\\u030A\\u0301\", // Ǻ = \\r\\'{A}\n    \"\\u1E02\": \"B\\u0307\", // Ḃ = \\.{B}\n    \"\\u0106\": \"C\\u0301\", // Ć = \\'{C}\n    \"\\u010C\": \"C\\u030C\", // Č = \\v{C}\n    \"\\u0108\": \"C\\u0302\", // Ĉ = \\^{C}\n    \"\\u010A\": \"C\\u0307\", // Ċ = \\.{C}\n    \"\\u010E\": \"D\\u030C\", // Ď = \\v{D}\n    \"\\u1E0A\": \"D\\u0307\", // Ḋ = \\.{D}\n    \"\\xC9\": \"E\\u0301\", // É = \\'{E}\n    \"\\xC8\": \"E\\u0300\", // È = \\`{E}\n    \"\\xCB\": \"E\\u0308\", // Ë = \\\"{E}\n    \"\\u1EBC\": \"E\\u0303\", // Ẽ = \\~{E}\n    \"\\u0112\": \"E\\u0304\", // Ē = \\={E}\n    \"\\u1E16\": \"E\\u0304\\u0301\", // Ḗ = \\=\\'{E}\n    \"\\u1E14\": \"E\\u0304\\u0300\", // Ḕ = \\=\\`{E}\n    \"\\u0114\": \"E\\u0306\", // Ĕ = \\u{E}\n    \"\\u011A\": \"E\\u030C\", // Ě = \\v{E}\n    \"\\xCA\": \"E\\u0302\", // Ê = \\^{E}\n    \"\\u1EBE\": \"E\\u0302\\u0301\", // Ế = \\^\\'{E}\n    \"\\u1EC0\": \"E\\u0302\\u0300\", // Ề = \\^\\`{E}\n    \"\\u1EC4\": \"E\\u0302\\u0303\", // Ễ = \\^\\~{E}\n    \"\\u0116\": \"E\\u0307\", // Ė = \\.{E}\n    \"\\u1E1E\": \"F\\u0307\", // Ḟ = \\.{F}\n    \"\\u01F4\": \"G\\u0301\", // Ǵ = \\'{G}\n    \"\\u1E20\": \"G\\u0304\", // Ḡ = \\={G}\n    \"\\u011E\": \"G\\u0306\", // Ğ = \\u{G}\n    \"\\u01E6\": \"G\\u030C\", // Ǧ = \\v{G}\n    \"\\u011C\": \"G\\u0302\", // Ĝ = \\^{G}\n    \"\\u0120\": \"G\\u0307\", // Ġ = \\.{G}\n    \"\\u1E26\": \"H\\u0308\", // Ḧ = \\\"{H}\n    \"\\u021E\": \"H\\u030C\", // Ȟ = \\v{H}\n    \"\\u0124\": \"H\\u0302\", // Ĥ = \\^{H}\n    \"\\u1E22\": \"H\\u0307\", // Ḣ = \\.{H}\n    \"\\xCD\": \"I\\u0301\", // Í = \\'{I}\n    \"\\xCC\": \"I\\u0300\", // Ì = \\`{I}\n    \"\\xCF\": \"I\\u0308\", // Ï = \\\"{I}\n    \"\\u1E2E\": \"I\\u0308\\u0301\", // Ḯ = \\\"\\'{I}\n    \"\\u0128\": \"I\\u0303\", // Ĩ = \\~{I}\n    \"\\u012A\": \"I\\u0304\", // Ī = \\={I}\n    \"\\u012C\": \"I\\u0306\", // Ĭ = \\u{I}\n    \"\\u01CF\": \"I\\u030C\", // Ǐ = \\v{I}\n    \"\\xCE\": \"I\\u0302\", // Î = \\^{I}\n    \"\\u0130\": \"I\\u0307\", // İ = \\.{I}\n    \"\\u0134\": \"J\\u0302\", // Ĵ = \\^{J}\n    \"\\u1E30\": \"K\\u0301\", // Ḱ = \\'{K}\n    \"\\u01E8\": \"K\\u030C\", // Ǩ = \\v{K}\n    \"\\u0139\": \"L\\u0301\", // Ĺ = \\'{L}\n    \"\\u013D\": \"L\\u030C\", // Ľ = \\v{L}\n    \"\\u1E3E\": \"M\\u0301\", // Ḿ = \\'{M}\n    \"\\u1E40\": \"M\\u0307\", // Ṁ = \\.{M}\n    \"\\u0143\": \"N\\u0301\", // Ń = \\'{N}\n    \"\\u01F8\": \"N\\u0300\", // Ǹ = \\`{N}\n    \"\\xD1\": \"N\\u0303\", // Ñ = \\~{N}\n    \"\\u0147\": \"N\\u030C\", // Ň = \\v{N}\n    \"\\u1E44\": \"N\\u0307\", // Ṅ = \\.{N}\n    \"\\xD3\": \"O\\u0301\", // Ó = \\'{O}\n    \"\\xD2\": \"O\\u0300\", // Ò = \\`{O}\n    \"\\xD6\": \"O\\u0308\", // Ö = \\\"{O}\n    \"\\u022A\": \"O\\u0308\\u0304\", // Ȫ = \\\"\\={O}\n    \"\\xD5\": \"O\\u0303\", // Õ = \\~{O}\n    \"\\u1E4C\": \"O\\u0303\\u0301\", // Ṍ = \\~\\'{O}\n    \"\\u1E4E\": \"O\\u0303\\u0308\", // Ṏ = \\~\\\"{O}\n    \"\\u022C\": \"O\\u0303\\u0304\", // Ȭ = \\~\\={O}\n    \"\\u014C\": \"O\\u0304\", // Ō = \\={O}\n    \"\\u1E52\": \"O\\u0304\\u0301\", // Ṓ = \\=\\'{O}\n    \"\\u1E50\": \"O\\u0304\\u0300\", // Ṑ = \\=\\`{O}\n    \"\\u014E\": \"O\\u0306\", // Ŏ = \\u{O}\n    \"\\u01D1\": \"O\\u030C\", // Ǒ = \\v{O}\n    \"\\xD4\": \"O\\u0302\", // Ô = \\^{O}\n    \"\\u1ED0\": \"O\\u0302\\u0301\", // Ố = \\^\\'{O}\n    \"\\u1ED2\": \"O\\u0302\\u0300\", // Ồ = \\^\\`{O}\n    \"\\u1ED6\": \"O\\u0302\\u0303\", // Ỗ = \\^\\~{O}\n    \"\\u022E\": \"O\\u0307\", // Ȯ = \\.{O}\n    \"\\u0230\": \"O\\u0307\\u0304\", // Ȱ = \\.\\={O}\n    \"\\u0150\": \"O\\u030B\", // Ő = \\H{O}\n    \"\\u1E54\": \"P\\u0301\", // Ṕ = \\'{P}\n    \"\\u1E56\": \"P\\u0307\", // Ṗ = \\.{P}\n    \"\\u0154\": \"R\\u0301\", // Ŕ = \\'{R}\n    \"\\u0158\": \"R\\u030C\", // Ř = \\v{R}\n    \"\\u1E58\": \"R\\u0307\", // Ṙ = \\.{R}\n    \"\\u015A\": \"S\\u0301\", // Ś = \\'{S}\n    \"\\u1E64\": \"S\\u0301\\u0307\", // Ṥ = \\'\\.{S}\n    \"\\u0160\": \"S\\u030C\", // Š = \\v{S}\n    \"\\u1E66\": \"S\\u030C\\u0307\", // Ṧ = \\v\\.{S}\n    \"\\u015C\": \"S\\u0302\", // Ŝ = \\^{S}\n    \"\\u1E60\": \"S\\u0307\", // Ṡ = \\.{S}\n    \"\\u0164\": \"T\\u030C\", // Ť = \\v{T}\n    \"\\u1E6A\": \"T\\u0307\", // Ṫ = \\.{T}\n    \"\\xDA\": \"U\\u0301\", // Ú = \\'{U}\n    \"\\xD9\": \"U\\u0300\", // Ù = \\`{U}\n    \"\\xDC\": \"U\\u0308\", // Ü = \\\"{U}\n    \"\\u01D7\": \"U\\u0308\\u0301\", // Ǘ = \\\"\\'{U}\n    \"\\u01DB\": \"U\\u0308\\u0300\", // Ǜ = \\\"\\`{U}\n    \"\\u01D5\": \"U\\u0308\\u0304\", // Ǖ = \\\"\\={U}\n    \"\\u01D9\": \"U\\u0308\\u030C\", // Ǚ = \\\"\\v{U}\n    \"\\u0168\": \"U\\u0303\", // Ũ = \\~{U}\n    \"\\u1E78\": \"U\\u0303\\u0301\", // Ṹ = \\~\\'{U}\n    \"\\u016A\": \"U\\u0304\", // Ū = \\={U}\n    \"\\u1E7A\": \"U\\u0304\\u0308\", // Ṻ = \\=\\\"{U}\n    \"\\u016C\": \"U\\u0306\", // Ŭ = \\u{U}\n    \"\\u01D3\": \"U\\u030C\", // Ǔ = \\v{U}\n    \"\\xDB\": \"U\\u0302\", // Û = \\^{U}\n    \"\\u016E\": \"U\\u030A\", // Ů = \\r{U}\n    \"\\u0170\": \"U\\u030B\", // Ű = \\H{U}\n    \"\\u1E7C\": \"V\\u0303\", // Ṽ = \\~{V}\n    \"\\u1E82\": \"W\\u0301\", // Ẃ = \\'{W}\n    \"\\u1E80\": \"W\\u0300\", // Ẁ = \\`{W}\n    \"\\u1E84\": \"W\\u0308\", // Ẅ = \\\"{W}\n    \"\\u0174\": \"W\\u0302\", // Ŵ = \\^{W}\n    \"\\u1E86\": \"W\\u0307\", // Ẇ = \\.{W}\n    \"\\u1E8C\": \"X\\u0308\", // Ẍ = \\\"{X}\n    \"\\u1E8A\": \"X\\u0307\", // Ẋ = \\.{X}\n    \"\\xDD\": \"Y\\u0301\", // Ý = \\'{Y}\n    \"\\u1EF2\": \"Y\\u0300\", // Ỳ = \\`{Y}\n    \"\\u0178\": \"Y\\u0308\", // Ÿ = \\\"{Y}\n    \"\\u1EF8\": \"Y\\u0303\", // Ỹ = \\~{Y}\n    \"\\u0232\": \"Y\\u0304\", // Ȳ = \\={Y}\n    \"\\u0176\": \"Y\\u0302\", // Ŷ = \\^{Y}\n    \"\\u1E8E\": \"Y\\u0307\", // Ẏ = \\.{Y}\n    \"\\u0179\": \"Z\\u0301\", // Ź = \\'{Z}\n    \"\\u017D\": \"Z\\u030C\", // Ž = \\v{Z}\n    \"\\u1E90\": \"Z\\u0302\", // Ẑ = \\^{Z}\n    \"\\u017B\": \"Z\\u0307\", // Ż = \\.{Z}\n    \"\\u03AC\": \"\\u03B1\\u0301\", // ά = \\'{α}\n    \"\\u1F70\": \"\\u03B1\\u0300\", // ὰ = \\`{α}\n    \"\\u1FB1\": \"\\u03B1\\u0304\", // ᾱ = \\={α}\n    \"\\u1FB0\": \"\\u03B1\\u0306\", // ᾰ = \\u{α}\n    \"\\u03AD\": \"\\u03B5\\u0301\", // έ = \\'{ε}\n    \"\\u1F72\": \"\\u03B5\\u0300\", // ὲ = \\`{ε}\n    \"\\u03AE\": \"\\u03B7\\u0301\", // ή = \\'{η}\n    \"\\u1F74\": \"\\u03B7\\u0300\", // ὴ = \\`{η}\n    \"\\u03AF\": \"\\u03B9\\u0301\", // ί = \\'{ι}\n    \"\\u1F76\": \"\\u03B9\\u0300\", // ὶ = \\`{ι}\n    \"\\u03CA\": \"\\u03B9\\u0308\", // ϊ = \\\"{ι}\n    \"\\u0390\": \"\\u03B9\\u0308\\u0301\", // ΐ = \\\"\\'{ι}\n    \"\\u1FD2\": \"\\u03B9\\u0308\\u0300\", // ῒ = \\\"\\`{ι}\n    \"\\u1FD1\": \"\\u03B9\\u0304\", // ῑ = \\={ι}\n    \"\\u1FD0\": \"\\u03B9\\u0306\", // ῐ = \\u{ι}\n    \"\\u03CC\": \"\\u03BF\\u0301\", // ό = \\'{ο}\n    \"\\u1F78\": \"\\u03BF\\u0300\", // ὸ = \\`{ο}\n    \"\\u03CD\": \"\\u03C5\\u0301\", // ύ = \\'{υ}\n    \"\\u1F7A\": \"\\u03C5\\u0300\", // ὺ = \\`{υ}\n    \"\\u03CB\": \"\\u03C5\\u0308\", // ϋ = \\\"{υ}\n    \"\\u03B0\": \"\\u03C5\\u0308\\u0301\", // ΰ = \\\"\\'{υ}\n    \"\\u1FE2\": \"\\u03C5\\u0308\\u0300\", // ῢ = \\\"\\`{υ}\n    \"\\u1FE1\": \"\\u03C5\\u0304\", // ῡ = \\={υ}\n    \"\\u1FE0\": \"\\u03C5\\u0306\", // ῠ = \\u{υ}\n    \"\\u03CE\": \"\\u03C9\\u0301\", // ώ = \\'{ω}\n    \"\\u1F7C\": \"\\u03C9\\u0300\", // ὼ = \\`{ω}\n    \"\\u038E\": \"\\u03A5\\u0301\", // Ύ = \\'{Υ}\n    \"\\u1FEA\": \"\\u03A5\\u0300\", // Ὺ = \\`{Υ}\n    \"\\u03AB\": \"\\u03A5\\u0308\", // Ϋ = \\\"{Υ}\n    \"\\u1FE9\": \"\\u03A5\\u0304\", // Ῡ = \\={Υ}\n    \"\\u1FE8\": \"\\u03A5\\u0306\", // Ῠ = \\u{Υ}\n    \"\\u038F\": \"\\u03A9\\u0301\", // Ώ = \\'{Ω}\n    \"\\u1FFA\": \"\\u03A9\\u0300\" // Ὼ = \\`{Ω}\n});\n\n/***/ })\n/******/ ])[\"default\"];\n});","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('prop-types'), require('katex')) :\n\ttypeof define === 'function' && define.amd ? define(['exports', 'react', 'prop-types', 'katex'], factory) :\n\t(factory((global.ReactKaTeX = global.ReactKaTeX || {}),global.React,global.PropTypes,global.katex));\n}(this, (function (exports,React,PropTypes,KaTeX) { 'use strict';\n\nReact = React && 'default' in React ? React['default'] : React;\nPropTypes = PropTypes && 'default' in PropTypes ? PropTypes['default'] : PropTypes;\nKaTeX = KaTeX && 'default' in KaTeX ? KaTeX['default'] : KaTeX;\n\nvar classCallCheck = function (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\n\n\n\n\n\n\n\n\nvar inherits = function (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\n\n\n\n\n\n\n\n\n\n\nvar possibleConstructorReturn = function (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\nvar createMathComponent = function createMathComponent(Component, _ref) {\n  var displayMode = _ref.displayMode;\n\n  var MathComponent = function (_React$Component) {\n    inherits(MathComponent, _React$Component);\n\n    function MathComponent(props) {\n      classCallCheck(this, MathComponent);\n\n      var _this = possibleConstructorReturn(this, (MathComponent.__proto__ || Object.getPrototypeOf(MathComponent)).call(this, props));\n\n      _this.usedProp = props.math ? 'math' : 'children';\n\n      _this.state = _this.createNewState(null, props);\n      return _this;\n    }\n\n    createClass(MathComponent, [{\n      key: 'componentWillReceiveProps',\n      value: function componentWillReceiveProps() {\n        this.setState(this.createNewState);\n      }\n    }, {\n      key: 'shouldComponentUpdate',\n      value: function shouldComponentUpdate(nextProps) {\n        return nextProps[this.usedProp] !== this.props[this.usedProp];\n      }\n    }, {\n      key: 'createNewState',\n      value: function createNewState(prevState, props) {\n        try {\n          var html = this.generateHtml(props);\n\n          return { html: html, error: undefined };\n        } catch (error) {\n          if (error instanceof KaTeX.ParseError || error instanceof TypeError) {\n            return { error: error };\n          }\n\n          throw error;\n        }\n      }\n    }, {\n      key: 'generateHtml',\n      value: function generateHtml(props) {\n        var errorColor = props.errorColor,\n            renderError = props.renderError;\n\n\n        return KaTeX.renderToString(props[this.usedProp], {\n          displayMode: displayMode,\n          errorColor: errorColor,\n          throwOnError: !!renderError\n        });\n      }\n    }, {\n      key: 'render',\n      value: function render() {\n        var _state = this.state,\n            error = _state.error,\n            html = _state.html;\n        var renderError = this.props.renderError;\n\n\n        if (error) {\n          return renderError ? renderError(error) : React.createElement(Component, { html: '' + error.message });\n        }\n\n        return React.createElement(Component, { html: html });\n      }\n    }]);\n    return MathComponent;\n  }(React.Component);\n\n  MathComponent.propTypes = {\n    children: PropTypes.string,\n    errorColor: PropTypes.string,\n    math: PropTypes.string,\n    renderError: PropTypes.func\n  };\n\n  return MathComponent;\n};\n\nvar InlineMath = function InlineMath(_ref) {\n  var html = _ref.html;\n\n  return React.createElement('span', { dangerouslySetInnerHTML: { __html: html } });\n};\n\nInlineMath.propTypes = {\n  html: PropTypes.string.isRequired\n};\n\nvar InlineMath$1 = createMathComponent(InlineMath, { displayMode: false });\n\nvar BlockMath = function BlockMath(_ref) {\n  var html = _ref.html;\n\n  return React.createElement('div', { dangerouslySetInnerHTML: { __html: html } });\n};\n\nBlockMath.propTypes = {\n  html: PropTypes.string.isRequired\n};\n\nvar BlockMath$1 = createMathComponent(BlockMath, { displayMode: true });\n\nexports.InlineMath = InlineMath$1;\nexports.BlockMath = BlockMath$1;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","import * as React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { InlineMath } from \"react-katex\"\n\ninterface Props {\n\tnum: number,\n\ttop: string,\n\tright: string,\n\tbottom: string,\n\tleft: string,\n}\n\nexport default class Square extends React.Component<Props> {\n\tcomponentDidMount() {\n\t\tthis.fix()\n\t}\n\n\tcomponentDidUpdate() {\n\t\tthis.fix()\n\t}\n\n\tfix() {\n\t\t// fixes position of left and right edges\n\t\tconst tr = ReactDOM.findDOMNode(this) as HTMLElement\n\t\t// selects the rotated div in .left and .right\n\t\tconst parents = tr.querySelectorAll(\".left, .right\") as unknown as HTMLCollectionOf<HTMLElement>\n\t\tfor (const parent of parents) {\n\t\t\t// sets the parent's (.left's or .right's) width to the rotated child div's height, which is really its displayed width\n\t\t\t// FIXME after KaTeX fixes the rendering issue\n\t\t\tconst child = parent.querySelector(\"div\")\n\t\t\tparent.style.width = `${child.clientHeight}px`\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<td>\n\t\t\t\t<div className=\"num\">{this.props.num}</div>\n\t\t\t\t<div className=\"top\">\n\t\t\t\t\t<InlineMath>{this.props.top}</InlineMath>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"right\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<InlineMath>{this.props.right}</InlineMath>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"bottom\">\n\t\t\t\t\t<InlineMath>{this.props.bottom}</InlineMath>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"left\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<InlineMath>{this.props.left}</InlineMath>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</td>\n\t\t)\n\t}\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n  lookup[i] = code[i]\n  revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n  var len = b64.length\n\n  if (len % 4 > 0) {\n    throw new Error('Invalid string. Length must be a multiple of 4')\n  }\n\n  // Trim off extra bytes after placeholder bytes are found\n  // See: https://github.com/beatgammit/base64-js/issues/42\n  var validLen = b64.indexOf('=')\n  if (validLen === -1) validLen = len\n\n  var placeHoldersLen = validLen === len\n    ? 0\n    : 4 - (validLen % 4)\n\n  return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n  var tmp\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n\n  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n  var curByte = 0\n\n  // if there are placeholders, only get up to the last complete 4 chars\n  var len = placeHoldersLen > 0\n    ? validLen - 4\n    : validLen\n\n  for (var i = 0; i < len; i += 4) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 18) |\n      (revLookup[b64.charCodeAt(i + 1)] << 12) |\n      (revLookup[b64.charCodeAt(i + 2)] << 6) |\n      revLookup[b64.charCodeAt(i + 3)]\n    arr[curByte++] = (tmp >> 16) & 0xFF\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 2) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 2) |\n      (revLookup[b64.charCodeAt(i + 1)] >> 4)\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 1) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 10) |\n      (revLookup[b64.charCodeAt(i + 1)] << 4) |\n      (revLookup[b64.charCodeAt(i + 2)] >> 2)\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  return arr\n}\n\nfunction tripletToBase64 (num) {\n  return lookup[num >> 18 & 0x3F] +\n    lookup[num >> 12 & 0x3F] +\n    lookup[num >> 6 & 0x3F] +\n    lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n  var tmp\n  var output = []\n  for (var i = start; i < end; i += 3) {\n    tmp =\n      ((uint8[i] << 16) & 0xFF0000) +\n      ((uint8[i + 1] << 8) & 0xFF00) +\n      (uint8[i + 2] & 0xFF)\n    output.push(tripletToBase64(tmp))\n  }\n  return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n  var tmp\n  var len = uint8.length\n  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n  var parts = []\n  var maxChunkLength = 16383 // must be multiple of 3\n\n  // go through the array every three bytes, we'll deal with trailing stuff later\n  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n    parts.push(encodeChunk(\n      uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n    ))\n  }\n\n  // pad the end with zeros, but make sure to not forget the extra bytes\n  if (extraBytes === 1) {\n    tmp = uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 2] +\n      lookup[(tmp << 4) & 0x3F] +\n      '=='\n    )\n  } else if (extraBytes === 2) {\n    tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 10] +\n      lookup[(tmp >> 4) & 0x3F] +\n      lookup[(tmp << 2) & 0x3F] +\n      '='\n    )\n  }\n\n  return parts.join('')\n}\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n  var e, m\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var nBits = -7\n  var i = isLE ? (nBytes - 1) : 0\n  var d = isLE ? -1 : 1\n  var s = buffer[offset + i]\n\n  i += d\n\n  e = s & ((1 << (-nBits)) - 1)\n  s >>= (-nBits)\n  nBits += eLen\n  for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  m = e & ((1 << (-nBits)) - 1)\n  e >>= (-nBits)\n  nBits += mLen\n  for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  if (e === 0) {\n    e = 1 - eBias\n  } else if (e === eMax) {\n    return m ? NaN : ((s ? -1 : 1) * Infinity)\n  } else {\n    m = m + Math.pow(2, mLen)\n    e = e - eBias\n  }\n  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n  var e, m, c\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n  var i = isLE ? 0 : (nBytes - 1)\n  var d = isLE ? 1 : -1\n  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n  value = Math.abs(value)\n\n  if (isNaN(value) || value === Infinity) {\n    m = isNaN(value) ? 1 : 0\n    e = eMax\n  } else {\n    e = Math.floor(Math.log(value) / Math.LN2)\n    if (value * (c = Math.pow(2, -e)) < 1) {\n      e--\n      c *= 2\n    }\n    if (e + eBias >= 1) {\n      value += rt / c\n    } else {\n      value += rt * Math.pow(2, 1 - eBias)\n    }\n    if (value * c >= 2) {\n      e++\n      c /= 2\n    }\n\n    if (e + eBias >= eMax) {\n      m = 0\n      e = eMax\n    } else if (e + eBias >= 1) {\n      m = ((value * c) - 1) * Math.pow(2, mLen)\n      e = e + eBias\n    } else {\n      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n      e = 0\n    }\n  }\n\n  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n  e = (e << mLen) | m\n  eLen += mLen\n  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n  buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n  return toString.call(arr) == '[object Array]';\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license  MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n *   === true    Use Uint8Array implementation (fastest)\n *   === false   Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n *   - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n *     See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n *   - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n *   - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n *     incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n  ? global.TYPED_ARRAY_SUPPORT\n  : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n  try {\n    var arr = new Uint8Array(1)\n    arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n    return arr.foo() === 42 && // typed array instances can be augmented\n        typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n        arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n  } catch (e) {\n    return false\n  }\n}\n\nfunction kMaxLength () {\n  return Buffer.TYPED_ARRAY_SUPPORT\n    ? 0x7fffffff\n    : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n  if (kMaxLength() < length) {\n    throw new RangeError('Invalid typed array length')\n  }\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    // Return an augmented `Uint8Array` instance, for best performance\n    that = new Uint8Array(length)\n    that.__proto__ = Buffer.prototype\n  } else {\n    // Fallback: Return an object instance of the Buffer class\n    if (that === null) {\n      that = new Buffer(length)\n    }\n    that.length = length\n  }\n\n  return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n  if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n    return new Buffer(arg, encodingOrOffset, length)\n  }\n\n  // Common case.\n  if (typeof arg === 'number') {\n    if (typeof encodingOrOffset === 'string') {\n      throw new Error(\n        'If encoding is specified then the first argument must be a string'\n      )\n    }\n    return allocUnsafe(this, arg)\n  }\n  return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n  arr.__proto__ = Buffer.prototype\n  return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n  if (typeof value === 'number') {\n    throw new TypeError('\"value\" argument must not be a number')\n  }\n\n  if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n    return fromArrayBuffer(that, value, encodingOrOffset, length)\n  }\n\n  if (typeof value === 'string') {\n    return fromString(that, value, encodingOrOffset)\n  }\n\n  return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n  return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n  Buffer.prototype.__proto__ = Uint8Array.prototype\n  Buffer.__proto__ = Uint8Array\n  if (typeof Symbol !== 'undefined' && Symbol.species &&\n      Buffer[Symbol.species] === Buffer) {\n    // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n    Object.defineProperty(Buffer, Symbol.species, {\n      value: null,\n      configurable: true\n    })\n  }\n}\n\nfunction assertSize (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('\"size\" argument must be a number')\n  } else if (size < 0) {\n    throw new RangeError('\"size\" argument must not be negative')\n  }\n}\n\nfunction alloc (that, size, fill, encoding) {\n  assertSize(size)\n  if (size <= 0) {\n    return createBuffer(that, size)\n  }\n  if (fill !== undefined) {\n    // Only pay attention to encoding if it's a string. This\n    // prevents accidentally sending in a number that would\n    // be interpretted as a start offset.\n    return typeof encoding === 'string'\n      ? createBuffer(that, size).fill(fill, encoding)\n      : createBuffer(that, size).fill(fill)\n  }\n  return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n  return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n  assertSize(size)\n  that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) {\n    for (var i = 0; i < size; ++i) {\n      that[i] = 0\n    }\n  }\n  return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n  return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n  return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n  if (typeof encoding !== 'string' || encoding === '') {\n    encoding = 'utf8'\n  }\n\n  if (!Buffer.isEncoding(encoding)) {\n    throw new TypeError('\"encoding\" must be a valid string encoding')\n  }\n\n  var length = byteLength(string, encoding) | 0\n  that = createBuffer(that, length)\n\n  var actual = that.write(string, encoding)\n\n  if (actual !== length) {\n    // Writing a hex string, for example, that contains invalid characters will\n    // cause everything after the first invalid character to be ignored. (e.g.\n    // 'abxxcd' will be treated as 'ab')\n    that = that.slice(0, actual)\n  }\n\n  return that\n}\n\nfunction fromArrayLike (that, array) {\n  var length = array.length < 0 ? 0 : checked(array.length) | 0\n  that = createBuffer(that, length)\n  for (var i = 0; i < length; i += 1) {\n    that[i] = array[i] & 255\n  }\n  return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n  array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n  if (byteOffset < 0 || array.byteLength < byteOffset) {\n    throw new RangeError('\\'offset\\' is out of bounds')\n  }\n\n  if (array.byteLength < byteOffset + (length || 0)) {\n    throw new RangeError('\\'length\\' is out of bounds')\n  }\n\n  if (byteOffset === undefined && length === undefined) {\n    array = new Uint8Array(array)\n  } else if (length === undefined) {\n    array = new Uint8Array(array, byteOffset)\n  } else {\n    array = new Uint8Array(array, byteOffset, length)\n  }\n\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    // Return an augmented `Uint8Array` instance, for best performance\n    that = array\n    that.__proto__ = Buffer.prototype\n  } else {\n    // Fallback: Return an object instance of the Buffer class\n    that = fromArrayLike(that, array)\n  }\n  return that\n}\n\nfunction fromObject (that, obj) {\n  if (Buffer.isBuffer(obj)) {\n    var len = checked(obj.length) | 0\n    that = createBuffer(that, len)\n\n    if (that.length === 0) {\n      return that\n    }\n\n    obj.copy(that, 0, 0, len)\n    return that\n  }\n\n  if (obj) {\n    if ((typeof ArrayBuffer !== 'undefined' &&\n        obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n      if (typeof obj.length !== 'number' || isnan(obj.length)) {\n        return createBuffer(that, 0)\n      }\n      return fromArrayLike(that, obj)\n    }\n\n    if (obj.type === 'Buffer' && isArray(obj.data)) {\n      return fromArrayLike(that, obj.data)\n    }\n  }\n\n  throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n  // Note: cannot use `length < kMaxLength()` here because that fails when\n  // length is NaN (which is otherwise coerced to zero.)\n  if (length >= kMaxLength()) {\n    throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n                         'size: 0x' + kMaxLength().toString(16) + ' bytes')\n  }\n  return length | 0\n}\n\nfunction SlowBuffer (length) {\n  if (+length != length) { // eslint-disable-line eqeqeq\n    length = 0\n  }\n  return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n  return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n    throw new TypeError('Arguments must be Buffers')\n  }\n\n  if (a === b) return 0\n\n  var x = a.length\n  var y = b.length\n\n  for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n    if (a[i] !== b[i]) {\n      x = a[i]\n      y = b[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n  switch (String(encoding).toLowerCase()) {\n    case 'hex':\n    case 'utf8':\n    case 'utf-8':\n    case 'ascii':\n    case 'latin1':\n    case 'binary':\n    case 'base64':\n    case 'ucs2':\n    case 'ucs-2':\n    case 'utf16le':\n    case 'utf-16le':\n      return true\n    default:\n      return false\n  }\n}\n\nBuffer.concat = function concat (list, length) {\n  if (!isArray(list)) {\n    throw new TypeError('\"list\" argument must be an Array of Buffers')\n  }\n\n  if (list.length === 0) {\n    return Buffer.alloc(0)\n  }\n\n  var i\n  if (length === undefined) {\n    length = 0\n    for (i = 0; i < list.length; ++i) {\n      length += list[i].length\n    }\n  }\n\n  var buffer = Buffer.allocUnsafe(length)\n  var pos = 0\n  for (i = 0; i < list.length; ++i) {\n    var buf = list[i]\n    if (!Buffer.isBuffer(buf)) {\n      throw new TypeError('\"list\" argument must be an Array of Buffers')\n    }\n    buf.copy(buffer, pos)\n    pos += buf.length\n  }\n  return buffer\n}\n\nfunction byteLength (string, encoding) {\n  if (Buffer.isBuffer(string)) {\n    return string.length\n  }\n  if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n      (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n    return string.byteLength\n  }\n  if (typeof string !== 'string') {\n    string = '' + string\n  }\n\n  var len = string.length\n  if (len === 0) return 0\n\n  // Use a for loop to avoid recursion\n  var loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'ascii':\n      case 'latin1':\n      case 'binary':\n        return len\n      case 'utf8':\n      case 'utf-8':\n      case undefined:\n        return utf8ToBytes(string).length\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return len * 2\n      case 'hex':\n        return len >>> 1\n      case 'base64':\n        return base64ToBytes(string).length\n      default:\n        if (loweredCase) return utf8ToBytes(string).length // assume utf8\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n  var loweredCase = false\n\n  // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n  // property of a typed array.\n\n  // This behaves neither like String nor Uint8Array in that we set start/end\n  // to their upper/lower bounds if the value passed is out of range.\n  // undefined is handled specially as per ECMA-262 6th Edition,\n  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n  if (start === undefined || start < 0) {\n    start = 0\n  }\n  // Return early if start > this.length. Done here to prevent potential uint32\n  // coercion fail below.\n  if (start > this.length) {\n    return ''\n  }\n\n  if (end === undefined || end > this.length) {\n    end = this.length\n  }\n\n  if (end <= 0) {\n    return ''\n  }\n\n  // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n  end >>>= 0\n  start >>>= 0\n\n  if (end <= start) {\n    return ''\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  while (true) {\n    switch (encoding) {\n      case 'hex':\n        return hexSlice(this, start, end)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Slice(this, start, end)\n\n      case 'ascii':\n        return asciiSlice(this, start, end)\n\n      case 'latin1':\n      case 'binary':\n        return latin1Slice(this, start, end)\n\n      case 'base64':\n        return base64Slice(this, start, end)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return utf16leSlice(this, start, end)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = (encoding + '').toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n  var i = b[n]\n  b[n] = b[m]\n  b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n  var len = this.length\n  if (len % 2 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 16-bits')\n  }\n  for (var i = 0; i < len; i += 2) {\n    swap(this, i, i + 1)\n  }\n  return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n  var len = this.length\n  if (len % 4 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 32-bits')\n  }\n  for (var i = 0; i < len; i += 4) {\n    swap(this, i, i + 3)\n    swap(this, i + 1, i + 2)\n  }\n  return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n  var len = this.length\n  if (len % 8 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 64-bits')\n  }\n  for (var i = 0; i < len; i += 8) {\n    swap(this, i, i + 7)\n    swap(this, i + 1, i + 6)\n    swap(this, i + 2, i + 5)\n    swap(this, i + 3, i + 4)\n  }\n  return this\n}\n\nBuffer.prototype.toString = function toString () {\n  var length = this.length | 0\n  if (length === 0) return ''\n  if (arguments.length === 0) return utf8Slice(this, 0, length)\n  return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n  if (this === b) return true\n  return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n  var str = ''\n  var max = exports.INSPECT_MAX_BYTES\n  if (this.length > 0) {\n    str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n    if (this.length > max) str += ' ... '\n  }\n  return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n  if (!Buffer.isBuffer(target)) {\n    throw new TypeError('Argument must be a Buffer')\n  }\n\n  if (start === undefined) {\n    start = 0\n  }\n  if (end === undefined) {\n    end = target ? target.length : 0\n  }\n  if (thisStart === undefined) {\n    thisStart = 0\n  }\n  if (thisEnd === undefined) {\n    thisEnd = this.length\n  }\n\n  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n    throw new RangeError('out of range index')\n  }\n\n  if (thisStart >= thisEnd && start >= end) {\n    return 0\n  }\n  if (thisStart >= thisEnd) {\n    return -1\n  }\n  if (start >= end) {\n    return 1\n  }\n\n  start >>>= 0\n  end >>>= 0\n  thisStart >>>= 0\n  thisEnd >>>= 0\n\n  if (this === target) return 0\n\n  var x = thisEnd - thisStart\n  var y = end - start\n  var len = Math.min(x, y)\n\n  var thisCopy = this.slice(thisStart, thisEnd)\n  var targetCopy = target.slice(start, end)\n\n  for (var i = 0; i < len; ++i) {\n    if (thisCopy[i] !== targetCopy[i]) {\n      x = thisCopy[i]\n      y = targetCopy[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n  // Empty buffer means no match\n  if (buffer.length === 0) return -1\n\n  // Normalize byteOffset\n  if (typeof byteOffset === 'string') {\n    encoding = byteOffset\n    byteOffset = 0\n  } else if (byteOffset > 0x7fffffff) {\n    byteOffset = 0x7fffffff\n  } else if (byteOffset < -0x80000000) {\n    byteOffset = -0x80000000\n  }\n  byteOffset = +byteOffset  // Coerce to Number.\n  if (isNaN(byteOffset)) {\n    // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n    byteOffset = dir ? 0 : (buffer.length - 1)\n  }\n\n  // Normalize byteOffset: negative offsets start from the end of the buffer\n  if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n  if (byteOffset >= buffer.length) {\n    if (dir) return -1\n    else byteOffset = buffer.length - 1\n  } else if (byteOffset < 0) {\n    if (dir) byteOffset = 0\n    else return -1\n  }\n\n  // Normalize val\n  if (typeof val === 'string') {\n    val = Buffer.from(val, encoding)\n  }\n\n  // Finally, search either indexOf (if dir is true) or lastIndexOf\n  if (Buffer.isBuffer(val)) {\n    // Special case: looking for empty string/buffer always fails\n    if (val.length === 0) {\n      return -1\n    }\n    return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n  } else if (typeof val === 'number') {\n    val = val & 0xFF // Search for a byte value [0-255]\n    if (Buffer.TYPED_ARRAY_SUPPORT &&\n        typeof Uint8Array.prototype.indexOf === 'function') {\n      if (dir) {\n        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n      } else {\n        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n      }\n    }\n    return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n  }\n\n  throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n  var indexSize = 1\n  var arrLength = arr.length\n  var valLength = val.length\n\n  if (encoding !== undefined) {\n    encoding = String(encoding).toLowerCase()\n    if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n        encoding === 'utf16le' || encoding === 'utf-16le') {\n      if (arr.length < 2 || val.length < 2) {\n        return -1\n      }\n      indexSize = 2\n      arrLength /= 2\n      valLength /= 2\n      byteOffset /= 2\n    }\n  }\n\n  function read (buf, i) {\n    if (indexSize === 1) {\n      return buf[i]\n    } else {\n      return buf.readUInt16BE(i * indexSize)\n    }\n  }\n\n  var i\n  if (dir) {\n    var foundIndex = -1\n    for (i = byteOffset; i < arrLength; i++) {\n      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n        if (foundIndex === -1) foundIndex = i\n        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n      } else {\n        if (foundIndex !== -1) i -= i - foundIndex\n        foundIndex = -1\n      }\n    }\n  } else {\n    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n    for (i = byteOffset; i >= 0; i--) {\n      var found = true\n      for (var j = 0; j < valLength; j++) {\n        if (read(arr, i + j) !== read(val, j)) {\n          found = false\n          break\n        }\n      }\n      if (found) return i\n    }\n  }\n\n  return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n  return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n  offset = Number(offset) || 0\n  var remaining = buf.length - offset\n  if (!length) {\n    length = remaining\n  } else {\n    length = Number(length)\n    if (length > remaining) {\n      length = remaining\n    }\n  }\n\n  // must be an even number of digits\n  var strLen = string.length\n  if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n  if (length > strLen / 2) {\n    length = strLen / 2\n  }\n  for (var i = 0; i < length; ++i) {\n    var parsed = parseInt(string.substr(i * 2, 2), 16)\n    if (isNaN(parsed)) return i\n    buf[offset + i] = parsed\n  }\n  return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n  return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n  return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n  return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n  // Buffer#write(string)\n  if (offset === undefined) {\n    encoding = 'utf8'\n    length = this.length\n    offset = 0\n  // Buffer#write(string, encoding)\n  } else if (length === undefined && typeof offset === 'string') {\n    encoding = offset\n    length = this.length\n    offset = 0\n  // Buffer#write(string, offset[, length][, encoding])\n  } else if (isFinite(offset)) {\n    offset = offset | 0\n    if (isFinite(length)) {\n      length = length | 0\n      if (encoding === undefined) encoding = 'utf8'\n    } else {\n      encoding = length\n      length = undefined\n    }\n  // legacy write(string, encoding, offset, length) - remove in v0.13\n  } else {\n    throw new Error(\n      'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n    )\n  }\n\n  var remaining = this.length - offset\n  if (length === undefined || length > remaining) length = remaining\n\n  if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n    throw new RangeError('Attempt to write outside buffer bounds')\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  var loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'hex':\n        return hexWrite(this, string, offset, length)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Write(this, string, offset, length)\n\n      case 'ascii':\n        return asciiWrite(this, string, offset, length)\n\n      case 'latin1':\n      case 'binary':\n        return latin1Write(this, string, offset, length)\n\n      case 'base64':\n        // Warning: maxLength not taken into account in base64Write\n        return base64Write(this, string, offset, length)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return ucs2Write(this, string, offset, length)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n  return {\n    type: 'Buffer',\n    data: Array.prototype.slice.call(this._arr || this, 0)\n  }\n}\n\nfunction base64Slice (buf, start, end) {\n  if (start === 0 && end === buf.length) {\n    return base64.fromByteArray(buf)\n  } else {\n    return base64.fromByteArray(buf.slice(start, end))\n  }\n}\n\nfunction utf8Slice (buf, start, end) {\n  end = Math.min(buf.length, end)\n  var res = []\n\n  var i = start\n  while (i < end) {\n    var firstByte = buf[i]\n    var codePoint = null\n    var bytesPerSequence = (firstByte > 0xEF) ? 4\n      : (firstByte > 0xDF) ? 3\n      : (firstByte > 0xBF) ? 2\n      : 1\n\n    if (i + bytesPerSequence <= end) {\n      var secondByte, thirdByte, fourthByte, tempCodePoint\n\n      switch (bytesPerSequence) {\n        case 1:\n          if (firstByte < 0x80) {\n            codePoint = firstByte\n          }\n          break\n        case 2:\n          secondByte = buf[i + 1]\n          if ((secondByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n            if (tempCodePoint > 0x7F) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 3:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 4:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          fourthByte = buf[i + 3]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n              codePoint = tempCodePoint\n            }\n          }\n      }\n    }\n\n    if (codePoint === null) {\n      // we did not generate a valid codePoint so insert a\n      // replacement char (U+FFFD) and advance only 1 byte\n      codePoint = 0xFFFD\n      bytesPerSequence = 1\n    } else if (codePoint > 0xFFFF) {\n      // encode to utf16 (surrogate pair dance)\n      codePoint -= 0x10000\n      res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n      codePoint = 0xDC00 | codePoint & 0x3FF\n    }\n\n    res.push(codePoint)\n    i += bytesPerSequence\n  }\n\n  return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n  var len = codePoints.length\n  if (len <= MAX_ARGUMENTS_LENGTH) {\n    return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n  }\n\n  // Decode in chunks to avoid \"call stack size exceeded\".\n  var res = ''\n  var i = 0\n  while (i < len) {\n    res += String.fromCharCode.apply(\n      String,\n      codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n    )\n  }\n  return res\n}\n\nfunction asciiSlice (buf, start, end) {\n  var ret = ''\n  end = Math.min(buf.length, end)\n\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i] & 0x7F)\n  }\n  return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n  var ret = ''\n  end = Math.min(buf.length, end)\n\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i])\n  }\n  return ret\n}\n\nfunction hexSlice (buf, start, end) {\n  var len = buf.length\n\n  if (!start || start < 0) start = 0\n  if (!end || end < 0 || end > len) end = len\n\n  var out = ''\n  for (var i = start; i < end; ++i) {\n    out += toHex(buf[i])\n  }\n  return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n  var bytes = buf.slice(start, end)\n  var res = ''\n  for (var i = 0; i < bytes.length; i += 2) {\n    res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n  }\n  return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n  var len = this.length\n  start = ~~start\n  end = end === undefined ? len : ~~end\n\n  if (start < 0) {\n    start += len\n    if (start < 0) start = 0\n  } else if (start > len) {\n    start = len\n  }\n\n  if (end < 0) {\n    end += len\n    if (end < 0) end = 0\n  } else if (end > len) {\n    end = len\n  }\n\n  if (end < start) end = start\n\n  var newBuf\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    newBuf = this.subarray(start, end)\n    newBuf.__proto__ = Buffer.prototype\n  } else {\n    var sliceLen = end - start\n    newBuf = new Buffer(sliceLen, undefined)\n    for (var i = 0; i < sliceLen; ++i) {\n      newBuf[i] = this[i + start]\n    }\n  }\n\n  return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n  if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var val = this[offset]\n  var mul = 1\n  var i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    checkOffset(offset, byteLength, this.length)\n  }\n\n  var val = this[offset + --byteLength]\n  var mul = 1\n  while (byteLength > 0 && (mul *= 0x100)) {\n    val += this[offset + --byteLength] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return ((this[offset]) |\n      (this[offset + 1] << 8) |\n      (this[offset + 2] << 16)) +\n      (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] * 0x1000000) +\n    ((this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var val = this[offset]\n  var mul = 1\n  var i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var i = byteLength\n  var mul = 1\n  var val = this[offset + --i]\n  while (i > 0 && (mul *= 0x100)) {\n    val += this[offset + --i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  if (!(this[offset] & 0x80)) return (this[offset])\n  return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  var val = this[offset] | (this[offset + 1] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  var val = this[offset + 1] | (this[offset] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset]) |\n    (this[offset + 1] << 8) |\n    (this[offset + 2] << 16) |\n    (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] << 24) |\n    (this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n  if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n  if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  var mul = 1\n  var i = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  var i = byteLength - 1\n  var mul = 1\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n  if (value < 0) value = 0xffff + value + 1\n  for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n    buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n      (littleEndian ? i : 1 - i) * 8\n  }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n  } else {\n    objectWriteUInt16(this, value, offset, true)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 8)\n    this[offset + 1] = (value & 0xff)\n  } else {\n    objectWriteUInt16(this, value, offset, false)\n  }\n  return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n  if (value < 0) value = 0xffffffff + value + 1\n  for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n    buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n  }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset + 3] = (value >>> 24)\n    this[offset + 2] = (value >>> 16)\n    this[offset + 1] = (value >>> 8)\n    this[offset] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, true)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 24)\n    this[offset + 1] = (value >>> 16)\n    this[offset + 2] = (value >>> 8)\n    this[offset + 3] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, false)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  var i = 0\n  var mul = 1\n  var sub = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  var i = byteLength - 1\n  var mul = 1\n  var sub = 0\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n  if (value < 0) value = 0xff + value + 1\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n  } else {\n    objectWriteUInt16(this, value, offset, true)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 8)\n    this[offset + 1] = (value & 0xff)\n  } else {\n    objectWriteUInt16(this, value, offset, false)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n    this[offset + 2] = (value >>> 16)\n    this[offset + 3] = (value >>> 24)\n  } else {\n    objectWriteUInt32(this, value, offset, true)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  if (value < 0) value = 0xffffffff + value + 1\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 24)\n    this[offset + 1] = (value >>> 16)\n    this[offset + 2] = (value >>> 8)\n    this[offset + 3] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, false)\n  }\n  return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n  if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 23, 4)\n  return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 52, 8)\n  return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n  if (!start) start = 0\n  if (!end && end !== 0) end = this.length\n  if (targetStart >= target.length) targetStart = target.length\n  if (!targetStart) targetStart = 0\n  if (end > 0 && end < start) end = start\n\n  // Copy 0 bytes; we're done\n  if (end === start) return 0\n  if (target.length === 0 || this.length === 0) return 0\n\n  // Fatal error conditions\n  if (targetStart < 0) {\n    throw new RangeError('targetStart out of bounds')\n  }\n  if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n  if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n  // Are we oob?\n  if (end > this.length) end = this.length\n  if (target.length - targetStart < end - start) {\n    end = target.length - targetStart + start\n  }\n\n  var len = end - start\n  var i\n\n  if (this === target && start < targetStart && targetStart < end) {\n    // descending copy from end\n    for (i = len - 1; i >= 0; --i) {\n      target[i + targetStart] = this[i + start]\n    }\n  } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n    // ascending copy from start\n    for (i = 0; i < len; ++i) {\n      target[i + targetStart] = this[i + start]\n    }\n  } else {\n    Uint8Array.prototype.set.call(\n      target,\n      this.subarray(start, start + len),\n      targetStart\n    )\n  }\n\n  return len\n}\n\n// Usage:\n//    buffer.fill(number[, offset[, end]])\n//    buffer.fill(buffer[, offset[, end]])\n//    buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n  // Handle string cases:\n  if (typeof val === 'string') {\n    if (typeof start === 'string') {\n      encoding = start\n      start = 0\n      end = this.length\n    } else if (typeof end === 'string') {\n      encoding = end\n      end = this.length\n    }\n    if (val.length === 1) {\n      var code = val.charCodeAt(0)\n      if (code < 256) {\n        val = code\n      }\n    }\n    if (encoding !== undefined && typeof encoding !== 'string') {\n      throw new TypeError('encoding must be a string')\n    }\n    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n      throw new TypeError('Unknown encoding: ' + encoding)\n    }\n  } else if (typeof val === 'number') {\n    val = val & 255\n  }\n\n  // Invalid ranges are not set to a default, so can range check early.\n  if (start < 0 || this.length < start || this.length < end) {\n    throw new RangeError('Out of range index')\n  }\n\n  if (end <= start) {\n    return this\n  }\n\n  start = start >>> 0\n  end = end === undefined ? this.length : end >>> 0\n\n  if (!val) val = 0\n\n  var i\n  if (typeof val === 'number') {\n    for (i = start; i < end; ++i) {\n      this[i] = val\n    }\n  } else {\n    var bytes = Buffer.isBuffer(val)\n      ? val\n      : utf8ToBytes(new Buffer(val, encoding).toString())\n    var len = bytes.length\n    for (i = 0; i < end - start; ++i) {\n      this[i + start] = bytes[i % len]\n    }\n  }\n\n  return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n  // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n  str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n  // Node converts strings with length < 2 to ''\n  if (str.length < 2) return ''\n  // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n  while (str.length % 4 !== 0) {\n    str = str + '='\n  }\n  return str\n}\n\nfunction stringtrim (str) {\n  if (str.trim) return str.trim()\n  return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n  if (n < 16) return '0' + n.toString(16)\n  return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n  units = units || Infinity\n  var codePoint\n  var length = string.length\n  var leadSurrogate = null\n  var bytes = []\n\n  for (var i = 0; i < length; ++i) {\n    codePoint = string.charCodeAt(i)\n\n    // is surrogate component\n    if (codePoint > 0xD7FF && codePoint < 0xE000) {\n      // last char was a lead\n      if (!leadSurrogate) {\n        // no lead yet\n        if (codePoint > 0xDBFF) {\n          // unexpected trail\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        } else if (i + 1 === length) {\n          // unpaired lead\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        }\n\n        // valid lead\n        leadSurrogate = codePoint\n\n        continue\n      }\n\n      // 2 leads in a row\n      if (codePoint < 0xDC00) {\n        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n        leadSurrogate = codePoint\n        continue\n      }\n\n      // valid surrogate pair\n      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n    } else if (leadSurrogate) {\n      // valid bmp char, but last char was a lead\n      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n    }\n\n    leadSurrogate = null\n\n    // encode utf8\n    if (codePoint < 0x80) {\n      if ((units -= 1) < 0) break\n      bytes.push(codePoint)\n    } else if (codePoint < 0x800) {\n      if ((units -= 2) < 0) break\n      bytes.push(\n        codePoint >> 0x6 | 0xC0,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x10000) {\n      if ((units -= 3) < 0) break\n      bytes.push(\n        codePoint >> 0xC | 0xE0,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x110000) {\n      if ((units -= 4) < 0) break\n      bytes.push(\n        codePoint >> 0x12 | 0xF0,\n        codePoint >> 0xC & 0x3F | 0x80,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else {\n      throw new Error('Invalid code point')\n    }\n  }\n\n  return bytes\n}\n\nfunction asciiToBytes (str) {\n  var byteArray = []\n  for (var i = 0; i < str.length; ++i) {\n    // Node's code seems to be doing this and not & 0x7F..\n    byteArray.push(str.charCodeAt(i) & 0xFF)\n  }\n  return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n  var c, hi, lo\n  var byteArray = []\n  for (var i = 0; i < str.length; ++i) {\n    if ((units -= 2) < 0) break\n\n    c = str.charCodeAt(i)\n    hi = c >> 8\n    lo = c % 256\n    byteArray.push(lo)\n    byteArray.push(hi)\n  }\n\n  return byteArray\n}\n\nfunction base64ToBytes (str) {\n  return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n  for (var i = 0; i < length; ++i) {\n    if ((i + offset >= dst.length) || (i >= src.length)) break\n    dst[i + offset] = src[i]\n  }\n  return i\n}\n\nfunction isnan (val) {\n  return val !== val // eslint-disable-line no-self-compare\n}\n","/**\n * @license\n * Lodash <https://lodash.com/>\n * Copyright JS Foundation and other contributors <https://js.foundation/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n  /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n  var undefined;\n\n  /** Used as the semantic version number. */\n  var VERSION = '4.17.11';\n\n  /** Used as the size to enable large array optimizations. */\n  var LARGE_ARRAY_SIZE = 200;\n\n  /** Error message constants. */\n  var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n      FUNC_ERROR_TEXT = 'Expected a function';\n\n  /** Used to stand-in for `undefined` hash values. */\n  var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n  /** Used as the maximum memoize cache size. */\n  var MAX_MEMOIZE_SIZE = 500;\n\n  /** Used as the internal argument placeholder. */\n  var PLACEHOLDER = '__lodash_placeholder__';\n\n  /** Used to compose bitmasks for cloning. */\n  var CLONE_DEEP_FLAG = 1,\n      CLONE_FLAT_FLAG = 2,\n      CLONE_SYMBOLS_FLAG = 4;\n\n  /** Used to compose bitmasks for value comparisons. */\n  var COMPARE_PARTIAL_FLAG = 1,\n      COMPARE_UNORDERED_FLAG = 2;\n\n  /** Used to compose bitmasks for function metadata. */\n  var WRAP_BIND_FLAG = 1,\n      WRAP_BIND_KEY_FLAG = 2,\n      WRAP_CURRY_BOUND_FLAG = 4,\n      WRAP_CURRY_FLAG = 8,\n      WRAP_CURRY_RIGHT_FLAG = 16,\n      WRAP_PARTIAL_FLAG = 32,\n      WRAP_PARTIAL_RIGHT_FLAG = 64,\n      WRAP_ARY_FLAG = 128,\n      WRAP_REARG_FLAG = 256,\n      WRAP_FLIP_FLAG = 512;\n\n  /** Used as default options for `_.truncate`. */\n  var DEFAULT_TRUNC_LENGTH = 30,\n      DEFAULT_TRUNC_OMISSION = '...';\n\n  /** Used to detect hot functions by number of calls within a span of milliseconds. */\n  var HOT_COUNT = 800,\n      HOT_SPAN = 16;\n\n  /** Used to indicate the type of lazy iteratees. */\n  var LAZY_FILTER_FLAG = 1,\n      LAZY_MAP_FLAG = 2,\n      LAZY_WHILE_FLAG = 3;\n\n  /** Used as references for various `Number` constants. */\n  var INFINITY = 1 / 0,\n      MAX_SAFE_INTEGER = 9007199254740991,\n      MAX_INTEGER = 1.7976931348623157e+308,\n      NAN = 0 / 0;\n\n  /** Used as references for the maximum length and index of an array. */\n  var MAX_ARRAY_LENGTH = 4294967295,\n      MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n      HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n  /** Used to associate wrap methods with their bit flags. */\n  var wrapFlags = [\n    ['ary', WRAP_ARY_FLAG],\n    ['bind', WRAP_BIND_FLAG],\n    ['bindKey', WRAP_BIND_KEY_FLAG],\n    ['curry', WRAP_CURRY_FLAG],\n    ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n    ['flip', WRAP_FLIP_FLAG],\n    ['partial', WRAP_PARTIAL_FLAG],\n    ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n    ['rearg', WRAP_REARG_FLAG]\n  ];\n\n  /** `Object#toString` result references. */\n  var argsTag = '[object Arguments]',\n      arrayTag = '[object Array]',\n      asyncTag = '[object AsyncFunction]',\n      boolTag = '[object Boolean]',\n      dateTag = '[object Date]',\n      domExcTag = '[object DOMException]',\n      errorTag = '[object Error]',\n      funcTag = '[object Function]',\n      genTag = '[object GeneratorFunction]',\n      mapTag = '[object Map]',\n      numberTag = '[object Number]',\n      nullTag = '[object Null]',\n      objectTag = '[object Object]',\n      promiseTag = '[object Promise]',\n      proxyTag = '[object Proxy]',\n      regexpTag = '[object RegExp]',\n      setTag = '[object Set]',\n      stringTag = '[object String]',\n      symbolTag = '[object Symbol]',\n      undefinedTag = '[object Undefined]',\n      weakMapTag = '[object WeakMap]',\n      weakSetTag = '[object WeakSet]';\n\n  var arrayBufferTag = '[object ArrayBuffer]',\n      dataViewTag = '[object DataView]',\n      float32Tag = '[object Float32Array]',\n      float64Tag = '[object Float64Array]',\n      int8Tag = '[object Int8Array]',\n      int16Tag = '[object Int16Array]',\n      int32Tag = '[object Int32Array]',\n      uint8Tag = '[object Uint8Array]',\n      uint8ClampedTag = '[object Uint8ClampedArray]',\n      uint16Tag = '[object Uint16Array]',\n      uint32Tag = '[object Uint32Array]';\n\n  /** Used to match empty string literals in compiled template source. */\n  var reEmptyStringLeading = /\\b__p \\+= '';/g,\n      reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n      reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n  /** Used to match HTML entities and HTML characters. */\n  var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n      reUnescapedHtml = /[&<>\"']/g,\n      reHasEscapedHtml = RegExp(reEscapedHtml.source),\n      reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n  /** Used to match template delimiters. */\n  var reEscape = /<%-([\\s\\S]+?)%>/g,\n      reEvaluate = /<%([\\s\\S]+?)%>/g,\n      reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n  /** Used to match property names within property paths. */\n  var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n      reIsPlainProp = /^\\w*$/,\n      rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n  /**\n   * Used to match `RegExp`\n   * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n   */\n  var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n      reHasRegExpChar = RegExp(reRegExpChar.source);\n\n  /** Used to match leading and trailing whitespace. */\n  var reTrim = /^\\s+|\\s+$/g,\n      reTrimStart = /^\\s+/,\n      reTrimEnd = /\\s+$/;\n\n  /** Used to match wrap detail comments. */\n  var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n      reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n      reSplitDetails = /,? & /;\n\n  /** Used to match words composed of alphanumeric characters. */\n  var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n  /** Used to match backslashes in property paths. */\n  var reEscapeChar = /\\\\(\\\\)?/g;\n\n  /**\n   * Used to match\n   * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n   */\n  var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n  /** Used to match `RegExp` flags from their coerced string values. */\n  var reFlags = /\\w*$/;\n\n  /** Used to detect bad signed hexadecimal string values. */\n  var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n  /** Used to detect binary string values. */\n  var reIsBinary = /^0b[01]+$/i;\n\n  /** Used to detect host constructors (Safari). */\n  var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n  /** Used to detect octal string values. */\n  var reIsOctal = /^0o[0-7]+$/i;\n\n  /** Used to detect unsigned integer values. */\n  var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n  /** Used to match Latin Unicode letters (excluding mathematical operators). */\n  var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n  /** Used to ensure capturing order of template delimiters. */\n  var reNoMatch = /($^)/;\n\n  /** Used to match unescaped characters in compiled string literals. */\n  var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n  /** Used to compose unicode character classes. */\n  var rsAstralRange = '\\\\ud800-\\\\udfff',\n      rsComboMarksRange = '\\\\u0300-\\\\u036f',\n      reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n      rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n      rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n      rsDingbatRange = '\\\\u2700-\\\\u27bf',\n      rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n      rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n      rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n      rsPunctuationRange = '\\\\u2000-\\\\u206f',\n      rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n      rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n      rsVarRange = '\\\\ufe0e\\\\ufe0f',\n      rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n  /** Used to compose unicode capture groups. */\n  var rsApos = \"['\\u2019]\",\n      rsAstral = '[' + rsAstralRange + ']',\n      rsBreak = '[' + rsBreakRange + ']',\n      rsCombo = '[' + rsComboRange + ']',\n      rsDigits = '\\\\d+',\n      rsDingbat = '[' + rsDingbatRange + ']',\n      rsLower = '[' + rsLowerRange + ']',\n      rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n      rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n      rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n      rsNonAstral = '[^' + rsAstralRange + ']',\n      rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n      rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n      rsUpper = '[' + rsUpperRange + ']',\n      rsZWJ = '\\\\u200d';\n\n  /** Used to compose unicode regexes. */\n  var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n      rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n      rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n      rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n      reOptMod = rsModifier + '?',\n      rsOptVar = '[' + rsVarRange + ']?',\n      rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n      rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n      rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n      rsSeq = rsOptVar + reOptMod + rsOptJoin,\n      rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n      rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n  /** Used to match apostrophes. */\n  var reApos = RegExp(rsApos, 'g');\n\n  /**\n   * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n   * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n   */\n  var reComboMark = RegExp(rsCombo, 'g');\n\n  /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n  var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n  /** Used to match complex or compound words. */\n  var reUnicodeWord = RegExp([\n    rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n    rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n    rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n    rsUpper + '+' + rsOptContrUpper,\n    rsOrdUpper,\n    rsOrdLower,\n    rsDigits,\n    rsEmoji\n  ].join('|'), 'g');\n\n  /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n  var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange  + rsComboRange + rsVarRange + ']');\n\n  /** Used to detect strings that need a more robust regexp to match words. */\n  var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n  /** Used to assign default `context` object properties. */\n  var contextProps = [\n    'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n    'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n    'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n    'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n    '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n  ];\n\n  /** Used to make template sourceURLs easier to identify. */\n  var templateCounter = -1;\n\n  /** Used to identify `toStringTag` values of typed arrays. */\n  var typedArrayTags = {};\n  typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n  typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n  typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n  typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n  typedArrayTags[uint32Tag] = true;\n  typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n  typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n  typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n  typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n  typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n  typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n  typedArrayTags[setTag] = typedArrayTags[stringTag] =\n  typedArrayTags[weakMapTag] = false;\n\n  /** Used to identify `toStringTag` values supported by `_.clone`. */\n  var cloneableTags = {};\n  cloneableTags[argsTag] = cloneableTags[arrayTag] =\n  cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n  cloneableTags[boolTag] = cloneableTags[dateTag] =\n  cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n  cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n  cloneableTags[int32Tag] = cloneableTags[mapTag] =\n  cloneableTags[numberTag] = cloneableTags[objectTag] =\n  cloneableTags[regexpTag] = cloneableTags[setTag] =\n  cloneableTags[stringTag] = cloneableTags[symbolTag] =\n  cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n  cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n  cloneableTags[errorTag] = cloneableTags[funcTag] =\n  cloneableTags[weakMapTag] = false;\n\n  /** Used to map Latin Unicode letters to basic Latin letters. */\n  var deburredLetters = {\n    // Latin-1 Supplement block.\n    '\\xc0': 'A',  '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n    '\\xe0': 'a',  '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n    '\\xc7': 'C',  '\\xe7': 'c',\n    '\\xd0': 'D',  '\\xf0': 'd',\n    '\\xc8': 'E',  '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n    '\\xe8': 'e',  '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n    '\\xcc': 'I',  '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n    '\\xec': 'i',  '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n    '\\xd1': 'N',  '\\xf1': 'n',\n    '\\xd2': 'O',  '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n    '\\xf2': 'o',  '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n    '\\xd9': 'U',  '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n    '\\xf9': 'u',  '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n    '\\xdd': 'Y',  '\\xfd': 'y', '\\xff': 'y',\n    '\\xc6': 'Ae', '\\xe6': 'ae',\n    '\\xde': 'Th', '\\xfe': 'th',\n    '\\xdf': 'ss',\n    // Latin Extended-A block.\n    '\\u0100': 'A',  '\\u0102': 'A', '\\u0104': 'A',\n    '\\u0101': 'a',  '\\u0103': 'a', '\\u0105': 'a',\n    '\\u0106': 'C',  '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n    '\\u0107': 'c',  '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n    '\\u010e': 'D',  '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n    '\\u0112': 'E',  '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n    '\\u0113': 'e',  '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n    '\\u011c': 'G',  '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n    '\\u011d': 'g',  '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n    '\\u0124': 'H',  '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n    '\\u0128': 'I',  '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n    '\\u0129': 'i',  '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n    '\\u0134': 'J',  '\\u0135': 'j',\n    '\\u0136': 'K',  '\\u0137': 'k', '\\u0138': 'k',\n    '\\u0139': 'L',  '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n    '\\u013a': 'l',  '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n    '\\u0143': 'N',  '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n    '\\u0144': 'n',  '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n    '\\u014c': 'O',  '\\u014e': 'O', '\\u0150': 'O',\n    '\\u014d': 'o',  '\\u014f': 'o', '\\u0151': 'o',\n    '\\u0154': 'R',  '\\u0156': 'R', '\\u0158': 'R',\n    '\\u0155': 'r',  '\\u0157': 'r', '\\u0159': 'r',\n    '\\u015a': 'S',  '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n    '\\u015b': 's',  '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n    '\\u0162': 'T',  '\\u0164': 'T', '\\u0166': 'T',\n    '\\u0163': 't',  '\\u0165': 't', '\\u0167': 't',\n    '\\u0168': 'U',  '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n    '\\u0169': 'u',  '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n    '\\u0174': 'W',  '\\u0175': 'w',\n    '\\u0176': 'Y',  '\\u0177': 'y', '\\u0178': 'Y',\n    '\\u0179': 'Z',  '\\u017b': 'Z', '\\u017d': 'Z',\n    '\\u017a': 'z',  '\\u017c': 'z', '\\u017e': 'z',\n    '\\u0132': 'IJ', '\\u0133': 'ij',\n    '\\u0152': 'Oe', '\\u0153': 'oe',\n    '\\u0149': \"'n\", '\\u017f': 's'\n  };\n\n  /** Used to map characters to HTML entities. */\n  var htmlEscapes = {\n    '&': '&amp;',\n    '<': '&lt;',\n    '>': '&gt;',\n    '\"': '&quot;',\n    \"'\": '&#39;'\n  };\n\n  /** Used to map HTML entities to characters. */\n  var htmlUnescapes = {\n    '&amp;': '&',\n    '&lt;': '<',\n    '&gt;': '>',\n    '&quot;': '\"',\n    '&#39;': \"'\"\n  };\n\n  /** Used to escape characters for inclusion in compiled string literals. */\n  var stringEscapes = {\n    '\\\\': '\\\\',\n    \"'\": \"'\",\n    '\\n': 'n',\n    '\\r': 'r',\n    '\\u2028': 'u2028',\n    '\\u2029': 'u2029'\n  };\n\n  /** Built-in method references without a dependency on `root`. */\n  var freeParseFloat = parseFloat,\n      freeParseInt = parseInt;\n\n  /** Detect free variable `global` from Node.js. */\n  var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n  /** Detect free variable `self`. */\n  var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n  /** Used as a reference to the global object. */\n  var root = freeGlobal || freeSelf || Function('return this')();\n\n  /** Detect free variable `exports`. */\n  var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n  /** Detect free variable `module`. */\n  var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n  /** Detect the popular CommonJS extension `module.exports`. */\n  var moduleExports = freeModule && freeModule.exports === freeExports;\n\n  /** Detect free variable `process` from Node.js. */\n  var freeProcess = moduleExports && freeGlobal.process;\n\n  /** Used to access faster Node.js helpers. */\n  var nodeUtil = (function() {\n    try {\n      // Use `util.types` for Node.js 10+.\n      var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n      if (types) {\n        return types;\n      }\n\n      // Legacy `process.binding('util')` for Node.js < 10.\n      return freeProcess && freeProcess.binding && freeProcess.binding('util');\n    } catch (e) {}\n  }());\n\n  /* Node.js helper references. */\n  var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n      nodeIsDate = nodeUtil && nodeUtil.isDate,\n      nodeIsMap = nodeUtil && nodeUtil.isMap,\n      nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n      nodeIsSet = nodeUtil && nodeUtil.isSet,\n      nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n  /*--------------------------------------------------------------------------*/\n\n  /**\n   * A faster alternative to `Function#apply`, this function invokes `func`\n   * with the `this` binding of `thisArg` and the arguments of `args`.\n   *\n   * @private\n   * @param {Function} func The function to invoke.\n   * @param {*} thisArg The `this` binding of `func`.\n   * @param {Array} args The arguments to invoke `func` with.\n   * @returns {*} Returns the result of `func`.\n   */\n  function apply(func, thisArg, args) {\n    switch (args.length) {\n      case 0: return func.call(thisArg);\n      case 1: return func.call(thisArg, args[0]);\n      case 2: return func.call(thisArg, args[0], args[1]);\n      case 3: return func.call(thisArg, args[0], args[1], args[2]);\n    }\n    return func.apply(thisArg, args);\n  }\n\n  /**\n   * A specialized version of `baseAggregator` for arrays.\n   *\n   * @private\n   * @param {Array} [array] The array to iterate over.\n   * @param {Function} setter The function to set `accumulator` values.\n   * @param {Function} iteratee The iteratee to transform keys.\n   * @param {Object} accumulator The initial aggregated object.\n   * @returns {Function} Returns `accumulator`.\n   */\n  function arrayAggregator(array, setter, iteratee, accumulator) {\n    var index = -1,\n        length = array == null ? 0 : array.length;\n\n    while (++index < length) {\n      var value = array[index];\n      setter(accumulator, value, iteratee(value), array);\n    }\n    return accumulator;\n  }\n\n  /**\n   * A specialized version of `_.forEach` for arrays without support for\n   * iteratee shorthands.\n   *\n   * @private\n   * @param {Array} [array] The array to iterate over.\n   * @param {Function} iteratee The function invoked per iteration.\n   * @returns {Array} Returns `array`.\n   */\n  function arrayEach(array, iteratee) {\n    var index = -1,\n        length = array == null ? 0 : array.length;\n\n    while (++index < length) {\n      if (iteratee(array[index], index, array) === false) {\n        break;\n      }\n    }\n    return array;\n  }\n\n  /**\n   * A specialized version of `_.forEachRight` for arrays without support for\n   * iteratee shorthands.\n   *\n   * @private\n   * @param {Array} [array] The array to iterate over.\n   * @param {Function} iteratee The function invoked per iteration.\n   * @returns {Array} Returns `array`.\n   */\n  function arrayEachRight(array, iteratee) {\n    var length = array == null ? 0 : array.length;\n\n    while (length--) {\n      if (iteratee(array[length], length, array) === false) {\n        break;\n      }\n    }\n    return array;\n  }\n\n  /**\n   * A specialized version of `_.every` for arrays without support for\n   * iteratee shorthands.\n   *\n   * @private\n   * @param {Array} [array] The array to iterate over.\n   * @param {Function} predicate The function invoked per iteration.\n   * @returns {boolean} Returns `true` if all elements pass the predicate check,\n   *  else `false`.\n   */\n  function arrayEvery(array, predicate) {\n    var index = -1,\n        length = array == null ? 0 : array.length;\n\n    while (++index < length) {\n      if (!predicate(array[index], index, array)) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  /**\n   * A specialized version of `_.filter` for arrays without support for\n   * iteratee shorthands.\n   *\n   * @private\n   * @param {Array} [array] The array to iterate over.\n   * @param {Function} predicate The function invoked per iteration.\n   * @returns {Array} Returns the new filtered array.\n   */\n  function arrayFilter(array, predicate) {\n    var index = -1,\n        length = array == null ? 0 : array.length,\n        resIndex = 0,\n        result = [];\n\n    while (++index < length) {\n      var value = array[index];\n      if (predicate(value, index, array)) {\n        result[resIndex++] = value;\n      }\n    }\n    return result;\n  }\n\n  /**\n   * A specialized version of `_.includes` for arrays without support for\n   * specifying an index to search from.\n   *\n   * @private\n   * @param {Array} [array] The array to inspect.\n   * @param {*} target The value to search for.\n   * @returns {boolean} Returns `true` if `target` is found, else `false`.\n   */\n  function arrayIncludes(array, value) {\n    var length = array == null ? 0 : array.length;\n    return !!length && baseIndexOf(array, value, 0) > -1;\n  }\n\n  /**\n   * This function is like `arrayIncludes` except that it accepts a comparator.\n   *\n   * @private\n   * @param {Array} [array] The array to inspect.\n   * @param {*} target The value to search for.\n   * @param {Function} comparator The comparator invoked per element.\n   * @returns {boolean} Returns `true` if `target` is found, else `false`.\n   */\n  function arrayIncludesWith(array, value, comparator) {\n    var index = -1,\n        length = array == null ? 0 : array.length;\n\n    while (++index < length) {\n      if (comparator(value, array[index])) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   * A specialized version of `_.map` for arrays without support for iteratee\n   * shorthands.\n   *\n   * @private\n   * @param {Array} [array] The array to iterate over.\n   * @param {Function} iteratee The function invoked per iteration.\n   * @returns {Array} Returns the new mapped array.\n   */\n  function arrayMap(array, iteratee) {\n    var index = -1,\n        length = array == null ? 0 : array.length,\n        result = Array(length);\n\n    while (++index < length) {\n      result[index] = iteratee(array[index], index, array);\n    }\n    return result;\n  }\n\n  /**\n   * Appends the elements of `values` to `array`.\n   *\n   * @private\n   * @param {Array} array The array to modify.\n   * @param {Array} values The values to append.\n   * @returns {Array} Returns `array`.\n   */\n  function arrayPush(array, values) {\n    var index = -1,\n        length = values.length,\n        offset = array.length;\n\n    while (++index < length) {\n      array[offset + index] = values[index];\n    }\n    return array;\n  }\n\n  /**\n   * A specialized version of `_.reduce` for arrays without support for\n   * iteratee shorthands.\n   *\n   * @private\n   * @param {Array} [array] The array to iterate over.\n   * @param {Function} iteratee The function invoked per iteration.\n   * @param {*} [accumulator] The initial value.\n   * @param {boolean} [initAccum] Specify using the first element of `array` as\n   *  the initial value.\n   * @returns {*} Returns the accumulated value.\n   */\n  function arrayReduce(array, iteratee, accumulator, initAccum) {\n    var index = -1,\n        length = array == null ? 0 : array.length;\n\n    if (initAccum && length) {\n      accumulator = array[++index];\n    }\n    while (++index < length) {\n      accumulator = iteratee(accumulator, array[index], index, array);\n    }\n    return accumulator;\n  }\n\n  /**\n   * A specialized version of `_.reduceRight` for arrays without support for\n   * iteratee shorthands.\n   *\n   * @private\n   * @param {Array} [array] The array to iterate over.\n   * @param {Function} iteratee The function invoked per iteration.\n   * @param {*} [accumulator] The initial value.\n   * @param {boolean} [initAccum] Specify using the last element of `array` as\n   *  the initial value.\n   * @returns {*} Returns the accumulated value.\n   */\n  function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n    var length = array == null ? 0 : array.length;\n    if (initAccum && length) {\n      accumulator = array[--length];\n    }\n    while (length--) {\n      accumulator = iteratee(accumulator, array[length], length, array);\n    }\n    return accumulator;\n  }\n\n  /**\n   * A specialized version of `_.some` for arrays without support for iteratee\n   * shorthands.\n   *\n   * @private\n   * @param {Array} [array] The array to iterate over.\n   * @param {Function} predicate The function invoked per iteration.\n   * @returns {boolean} Returns `true` if any element passes the predicate check,\n   *  else `false`.\n   */\n  function arraySome(array, predicate) {\n    var index = -1,\n        length = array == null ? 0 : array.length;\n\n    while (++index < length) {\n      if (predicate(array[index], index, array)) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   * Gets the size of an ASCII `string`.\n   *\n   * @private\n   * @param {string} string The string inspect.\n   * @returns {number} Returns the string size.\n   */\n  var asciiSize = baseProperty('length');\n\n  /**\n   * Converts an ASCII `string` to an array.\n   *\n   * @private\n   * @param {string} string The string to convert.\n   * @returns {Array} Returns the converted array.\n   */\n  function asciiToArray(string) {\n    return string.split('');\n  }\n\n  /**\n   * Splits an ASCII `string` into an array of its words.\n   *\n   * @private\n   * @param {string} The string to inspect.\n   * @returns {Array} Returns the words of `string`.\n   */\n  function asciiWords(string) {\n    return string.match(reAsciiWord) || [];\n  }\n\n  /**\n   * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n   * without support for iteratee shorthands, which iterates over `collection`\n   * using `eachFunc`.\n   *\n   * @private\n   * @param {Array|Object} collection The collection to inspect.\n   * @param {Function} predicate The function invoked per iteration.\n   * @param {Function} eachFunc The function to iterate over `collection`.\n   * @returns {*} Returns the found element or its key, else `undefined`.\n   */\n  function baseFindKey(collection, predicate, eachFunc) {\n    var result;\n    eachFunc(collection, function(value, key, collection) {\n      if (predicate(value, key, collection)) {\n        result = key;\n        return false;\n      }\n    });\n    return result;\n  }\n\n  /**\n   * The base implementation of `_.findIndex` and `_.findLastIndex` without\n   * support for iteratee shorthands.\n   *\n   * @private\n   * @param {Array} array The array to inspect.\n   * @param {Function} predicate The function invoked per iteration.\n   * @param {number} fromIndex The index to search from.\n   * @param {boolean} [fromRight] Specify iterating from right to left.\n   * @returns {number} Returns the index of the matched value, else `-1`.\n   */\n  function baseFindIndex(array, predicate, fromIndex, fromRight) {\n    var length = array.length,\n        index = fromIndex + (fromRight ? 1 : -1);\n\n    while ((fromRight ? index-- : ++index < length)) {\n      if (predicate(array[index], index, array)) {\n        return index;\n      }\n    }\n    return -1;\n  }\n\n  /**\n   * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n   *\n   * @private\n   * @param {Array} array The array to inspect.\n   * @param {*} value The value to search for.\n   * @param {number} fromIndex The index to search from.\n   * @returns {number} Returns the index of the matched value, else `-1`.\n   */\n  function baseIndexOf(array, value, fromIndex) {\n    return value === value\n      ? strictIndexOf(array, value, fromIndex)\n      : baseFindIndex(array, baseIsNaN, fromIndex);\n  }\n\n  /**\n   * This function is like `baseIndexOf` except that it accepts a comparator.\n   *\n   * @private\n   * @param {Array} array The array to inspect.\n   * @param {*} value The value to search for.\n   * @param {number} fromIndex The index to search from.\n   * @param {Function} comparator The comparator invoked per element.\n   * @returns {number} Returns the index of the matched value, else `-1`.\n   */\n  function baseIndexOfWith(array, value, fromIndex, comparator) {\n    var index = fromIndex - 1,\n        length = array.length;\n\n    while (++index < length) {\n      if (comparator(array[index], value)) {\n        return index;\n      }\n    }\n    return -1;\n  }\n\n  /**\n   * The base implementation of `_.isNaN` without support for number objects.\n   *\n   * @private\n   * @param {*} value The value to check.\n   * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n   */\n  function baseIsNaN(value) {\n    return value !== value;\n  }\n\n  /**\n   * The base implementation of `_.mean` and `_.meanBy` without support for\n   * iteratee shorthands.\n   *\n   * @private\n   * @param {Array} array The array to iterate over.\n   * @param {Function} iteratee The function invoked per iteration.\n   * @returns {number} Returns the mean.\n   */\n  function baseMean(array, iteratee) {\n    var length = array == null ? 0 : array.length;\n    return length ? (baseSum(array, iteratee) / length) : NAN;\n  }\n\n  /**\n   * The base implementation of `_.property` without support for deep paths.\n   *\n   * @private\n   * @param {string} key The key of the property to get.\n   * @returns {Function} Returns the new accessor function.\n   */\n  function baseProperty(key) {\n    return function(object) {\n      return object == null ? undefined : object[key];\n    };\n  }\n\n  /**\n   * The base implementation of `_.propertyOf` without support for deep paths.\n   *\n   * @private\n   * @param {Object} object The object to query.\n   * @returns {Function} Returns the new accessor function.\n   */\n  function basePropertyOf(object) {\n    return function(key) {\n      return object == null ? undefined : object[key];\n    };\n  }\n\n  /**\n   * The base implementation of `_.reduce` and `_.reduceRight`, without support\n   * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n   *\n   * @private\n   * @param {Array|Object} collection The collection to iterate over.\n   * @param {Function} iteratee The function invoked per iteration.\n   * @param {*} accumulator The initial value.\n   * @param {boolean} initAccum Specify using the first or last element of\n   *  `collection` as the initial value.\n   * @param {Function} eachFunc The function to iterate over `collection`.\n   * @returns {*} Returns the accumulated value.\n   */\n  function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n    eachFunc(collection, function(value, index, collection) {\n      accumulator = initAccum\n        ? (initAccum = false, value)\n        : iteratee(accumulator, value, index, collection);\n    });\n    return accumulator;\n  }\n\n  /**\n   * The base implementation of `_.sortBy` which uses `comparer` to define the\n   * sort order of `array` and replaces criteria objects with their corresponding\n   * values.\n   *\n   * @private\n   * @param {Array} array The array to sort.\n   * @param {Function} comparer The function to define sort order.\n   * @returns {Array} Returns `array`.\n   */\n  function baseSortBy(array, comparer) {\n    var length = array.length;\n\n    array.sort(comparer);\n    while (length--) {\n      array[length] = array[length].value;\n    }\n    return array;\n  }\n\n  /**\n   * The base implementation of `_.sum` and `_.sumBy` without support for\n   * iteratee shorthands.\n   *\n   * @private\n   * @param {Array} array The array to iterate over.\n   * @param {Function} iteratee The function invoked per iteration.\n   * @returns {number} Returns the sum.\n   */\n  function baseSum(array, iteratee) {\n    var result,\n        index = -1,\n        length = array.length;\n\n    while (++index < length) {\n      var current = iteratee(array[index]);\n      if (current !== undefined) {\n        result = result === undefined ? current : (result + current);\n      }\n    }\n    return result;\n  }\n\n  /**\n   * The base implementation of `_.times` without support for iteratee shorthands\n   * or max array length checks.\n   *\n   * @private\n   * @param {number} n The number of times to invoke `iteratee`.\n   * @param {Function} iteratee The function invoked per iteration.\n   * @returns {Array} Returns the array of results.\n   */\n  function baseTimes(n, iteratee) {\n    var index = -1,\n        result = Array(n);\n\n    while (++index < n) {\n      result[index] = iteratee(index);\n    }\n    return result;\n  }\n\n  /**\n   * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n   * of key-value pairs for `object` corresponding to the property names of `props`.\n   *\n   * @private\n   * @param {Object} object The object to query.\n   * @param {Array} props The property names to get values for.\n   * @returns {Object} Returns the key-value pairs.\n   */\n  function baseToPairs(object, props) {\n    return arrayMap(props, function(key) {\n      return [key, object[key]];\n    });\n  }\n\n  /**\n   * The base implementation of `_.unary` without support for storing metadata.\n   *\n   * @private\n   * @param {Function} func The function to cap arguments for.\n   * @returns {Function} Returns the new capped function.\n   */\n  function baseUnary(func) {\n    return function(value) {\n      return func(value);\n    };\n  }\n\n  /**\n   * The base implementation of `_.values` and `_.valuesIn` which creates an\n   * array of `object` property values corresponding to the property names\n   * of `props`.\n   *\n   * @private\n   * @param {Object} object The object to query.\n   * @param {Array} props The property names to get values for.\n   * @returns {Object} Returns the array of property values.\n   */\n  function baseValues(object, props) {\n    return arrayMap(props, function(key) {\n      return object[key];\n    });\n  }\n\n  /**\n   * Checks if a `cache` value for `key` exists.\n   *\n   * @private\n   * @param {Object} cache The cache to query.\n   * @param {string} key The key of the entry to check.\n   * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n   */\n  function cacheHas(cache, key) {\n    return cache.has(key);\n  }\n\n  /**\n   * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n   * that is not found in the character symbols.\n   *\n   * @private\n   * @param {Array} strSymbols The string symbols to inspect.\n   * @param {Array} chrSymbols The character symbols to find.\n   * @returns {number} Returns the index of the first unmatched string symbol.\n   */\n  function charsStartIndex(strSymbols, chrSymbols) {\n    var index = -1,\n        length = strSymbols.length;\n\n    while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n    return index;\n  }\n\n  /**\n   * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n   * that is not found in the character symbols.\n   *\n   * @private\n   * @param {Array} strSymbols The string symbols to inspect.\n   * @param {Array} chrSymbols The character symbols to find.\n   * @returns {number} Returns the index of the last unmatched string symbol.\n   */\n  function charsEndIndex(strSymbols, chrSymbols) {\n    var index = strSymbols.length;\n\n    while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n    return index;\n  }\n\n  /**\n   * Gets the number of `placeholder` occurrences in `array`.\n   *\n   * @private\n   * @param {Array} array The array to inspect.\n   * @param {*} placeholder The placeholder to search for.\n   * @returns {number} Returns the placeholder count.\n   */\n  function countHolders(array, placeholder) {\n    var length = array.length,\n        result = 0;\n\n    while (length--) {\n      if (array[length] === placeholder) {\n        ++result;\n      }\n    }\n    return result;\n  }\n\n  /**\n   * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n   * letters to basic Latin letters.\n   *\n   * @private\n   * @param {string} letter The matched letter to deburr.\n   * @returns {string} Returns the deburred letter.\n   */\n  var deburrLetter = basePropertyOf(deburredLetters);\n\n  /**\n   * Used by `_.escape` to convert characters to HTML entities.\n   *\n   * @private\n   * @param {string} chr The matched character to escape.\n   * @returns {string} Returns the escaped character.\n   */\n  var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n  /**\n   * Used by `_.template` to escape characters for inclusion in compiled string literals.\n   *\n   * @private\n   * @param {string} chr The matched character to escape.\n   * @returns {string} Returns the escaped character.\n   */\n  function escapeStringChar(chr) {\n    return '\\\\' + stringEscapes[chr];\n  }\n\n  /**\n   * Gets the value at `key` of `object`.\n   *\n   * @private\n   * @param {Object} [object] The object to query.\n   * @param {string} key The key of the property to get.\n   * @returns {*} Returns the property value.\n   */\n  function getValue(object, key) {\n    return object == null ? undefined : object[key];\n  }\n\n  /**\n   * Checks if `string` contains Unicode symbols.\n   *\n   * @private\n   * @param {string} string The string to inspect.\n   * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n   */\n  function hasUnicode(string) {\n    return reHasUnicode.test(string);\n  }\n\n  /**\n   * Checks if `string` contains a word composed of Unicode symbols.\n   *\n   * @private\n   * @param {string} string The string to inspect.\n   * @returns {boolean} Returns `true` if a word is found, else `false`.\n   */\n  function hasUnicodeWord(string) {\n    return reHasUnicodeWord.test(string);\n  }\n\n  /**\n   * Converts `iterator` to an array.\n   *\n   * @private\n   * @param {Object} iterator The iterator to convert.\n   * @returns {Array} Returns the converted array.\n   */\n  function iteratorToArray(iterator) {\n    var data,\n        result = [];\n\n    while (!(data = iterator.next()).done) {\n      result.push(data.value);\n    }\n    return result;\n  }\n\n  /**\n   * Converts `map` to its key-value pairs.\n   *\n   * @private\n   * @param {Object} map The map to convert.\n   * @returns {Array} Returns the key-value pairs.\n   */\n  function mapToArray(map) {\n    var index = -1,\n        result = Array(map.size);\n\n    map.forEach(function(value, key) {\n      result[++index] = [key, value];\n    });\n    return result;\n  }\n\n  /**\n   * Creates a unary function that invokes `func` with its argument transformed.\n   *\n   * @private\n   * @param {Function} func The function to wrap.\n   * @param {Function} transform The argument transform.\n   * @returns {Function} Returns the new function.\n   */\n  function overArg(func, transform) {\n    return function(arg) {\n      return func(transform(arg));\n    };\n  }\n\n  /**\n   * Replaces all `placeholder` elements in `array` with an internal placeholder\n   * and returns an array of their indexes.\n   *\n   * @private\n   * @param {Array} array The array to modify.\n   * @param {*} placeholder The placeholder to replace.\n   * @returns {Array} Returns the new array of placeholder indexes.\n   */\n  function replaceHolders(array, placeholder) {\n    var index = -1,\n        length = array.length,\n        resIndex = 0,\n        result = [];\n\n    while (++index < length) {\n      var value = array[index];\n      if (value === placeholder || value === PLACEHOLDER) {\n        array[index] = PLACEHOLDER;\n        result[resIndex++] = index;\n      }\n    }\n    return result;\n  }\n\n  /**\n   * Converts `set` to an array of its values.\n   *\n   * @private\n   * @param {Object} set The set to convert.\n   * @returns {Array} Returns the values.\n   */\n  function setToArray(set) {\n    var index = -1,\n        result = Array(set.size);\n\n    set.forEach(function(value) {\n      result[++index] = value;\n    });\n    return result;\n  }\n\n  /**\n   * Converts `set` to its value-value pairs.\n   *\n   * @private\n   * @param {Object} set The set to convert.\n   * @returns {Array} Returns the value-value pairs.\n   */\n  function setToPairs(set) {\n    var index = -1,\n        result = Array(set.size);\n\n    set.forEach(function(value) {\n      result[++index] = [value, value];\n    });\n    return result;\n  }\n\n  /**\n   * A specialized version of `_.indexOf` which performs strict equality\n   * comparisons of values, i.e. `===`.\n   *\n   * @private\n   * @param {Array} array The array to inspect.\n   * @param {*} value The value to search for.\n   * @param {number} fromIndex The index to search from.\n   * @returns {number} Returns the index of the matched value, else `-1`.\n   */\n  function strictIndexOf(array, value, fromIndex) {\n    var index = fromIndex - 1,\n        length = array.length;\n\n    while (++index < length) {\n      if (array[index] === value) {\n        return index;\n      }\n    }\n    return -1;\n  }\n\n  /**\n   * A specialized version of `_.lastIndexOf` which performs strict equality\n   * comparisons of values, i.e. `===`.\n   *\n   * @private\n   * @param {Array} array The array to inspect.\n   * @param {*} value The value to search for.\n   * @param {number} fromIndex The index to search from.\n   * @returns {number} Returns the index of the matched value, else `-1`.\n   */\n  function strictLastIndexOf(array, value, fromIndex) {\n    var index = fromIndex + 1;\n    while (index--) {\n      if (array[index] === value) {\n        return index;\n      }\n    }\n    return index;\n  }\n\n  /**\n   * Gets the number of symbols in `string`.\n   *\n   * @private\n   * @param {string} string The string to inspect.\n   * @returns {number} Returns the string size.\n   */\n  function stringSize(string) {\n    return hasUnicode(string)\n      ? unicodeSize(string)\n      : asciiSize(string);\n  }\n\n  /**\n   * Converts `string` to an array.\n   *\n   * @private\n   * @param {string} string The string to convert.\n   * @returns {Array} Returns the converted array.\n   */\n  function stringToArray(string) {\n    return hasUnicode(string)\n      ? unicodeToArray(string)\n      : asciiToArray(string);\n  }\n\n  /**\n   * Used by `_.unescape` to convert HTML entities to characters.\n   *\n   * @private\n   * @param {string} chr The matched character to unescape.\n   * @returns {string} Returns the unescaped character.\n   */\n  var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n  /**\n   * Gets the size of a Unicode `string`.\n   *\n   * @private\n   * @param {string} string The string inspect.\n   * @returns {number} Returns the string size.\n   */\n  function unicodeSize(string) {\n    var result = reUnicode.lastIndex = 0;\n    while (reUnicode.test(string)) {\n      ++result;\n    }\n    return result;\n  }\n\n  /**\n   * Converts a Unicode `string` to an array.\n   *\n   * @private\n   * @param {string} string The string to convert.\n   * @returns {Array} Returns the converted array.\n   */\n  function unicodeToArray(string) {\n    return string.match(reUnicode) || [];\n  }\n\n  /**\n   * Splits a Unicode `string` into an array of its words.\n   *\n   * @private\n   * @param {string} The string to inspect.\n   * @returns {Array} Returns the words of `string`.\n   */\n  function unicodeWords(string) {\n    return string.match(reUnicodeWord) || [];\n  }\n\n  /*--------------------------------------------------------------------------*/\n\n  /**\n   * Create a new pristine `lodash` function using the `context` object.\n   *\n   * @static\n   * @memberOf _\n   * @since 1.1.0\n   * @category Util\n   * @param {Object} [context=root] The context object.\n   * @returns {Function} Returns a new `lodash` function.\n   * @example\n   *\n   * _.mixin({ 'foo': _.constant('foo') });\n   *\n   * var lodash = _.runInContext();\n   * lodash.mixin({ 'bar': lodash.constant('bar') });\n   *\n   * _.isFunction(_.foo);\n   * // => true\n   * _.isFunction(_.bar);\n   * // => false\n   *\n   * lodash.isFunction(lodash.foo);\n   * // => false\n   * lodash.isFunction(lodash.bar);\n   * // => true\n   *\n   * // Create a suped-up `defer` in Node.js.\n   * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n   */\n  var runInContext = (function runInContext(context) {\n    context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n    /** Built-in constructor references. */\n    var Array = context.Array,\n        Date = context.Date,\n        Error = context.Error,\n        Function = context.Function,\n        Math = context.Math,\n        Object = context.Object,\n        RegExp = context.RegExp,\n        String = context.String,\n        TypeError = context.TypeError;\n\n    /** Used for built-in method references. */\n    var arrayProto = Array.prototype,\n        funcProto = Function.prototype,\n        objectProto = Object.prototype;\n\n    /** Used to detect overreaching core-js shims. */\n    var coreJsData = context['__core-js_shared__'];\n\n    /** Used to resolve the decompiled source of functions. */\n    var funcToString = funcProto.toString;\n\n    /** Used to check objects for own properties. */\n    var hasOwnProperty = objectProto.hasOwnProperty;\n\n    /** Used to generate unique IDs. */\n    var idCounter = 0;\n\n    /** Used to detect methods masquerading as native. */\n    var maskSrcKey = (function() {\n      var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n      return uid ? ('Symbol(src)_1.' + uid) : '';\n    }());\n\n    /**\n     * Used to resolve the\n     * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n     * of values.\n     */\n    var nativeObjectToString = objectProto.toString;\n\n    /** Used to infer the `Object` constructor. */\n    var objectCtorString = funcToString.call(Object);\n\n    /** Used to restore the original `_` reference in `_.noConflict`. */\n    var oldDash = root._;\n\n    /** Used to detect if a method is native. */\n    var reIsNative = RegExp('^' +\n      funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n      .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n    );\n\n    /** Built-in value references. */\n    var Buffer = moduleExports ? context.Buffer : undefined,\n        Symbol = context.Symbol,\n        Uint8Array = context.Uint8Array,\n        allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n        getPrototype = overArg(Object.getPrototypeOf, Object),\n        objectCreate = Object.create,\n        propertyIsEnumerable = objectProto.propertyIsEnumerable,\n        splice = arrayProto.splice,\n        spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n        symIterator = Symbol ? Symbol.iterator : undefined,\n        symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n    var defineProperty = (function() {\n      try {\n        var func = getNative(Object, 'defineProperty');\n        func({}, '', {});\n        return func;\n      } catch (e) {}\n    }());\n\n    /** Mocked built-ins. */\n    var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n        ctxNow = Date && Date.now !== root.Date.now && Date.now,\n        ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n    /* Built-in method references for those with the same name as other `lodash` methods. */\n    var nativeCeil = Math.ceil,\n        nativeFloor = Math.floor,\n        nativeGetSymbols = Object.getOwnPropertySymbols,\n        nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n        nativeIsFinite = context.isFinite,\n        nativeJoin = arrayProto.join,\n        nativeKeys = overArg(Object.keys, Object),\n        nativeMax = Math.max,\n        nativeMin = Math.min,\n        nativeNow = Date.now,\n        nativeParseInt = context.parseInt,\n        nativeRandom = Math.random,\n        nativeReverse = arrayProto.reverse;\n\n    /* Built-in method references that are verified to be native. */\n    var DataView = getNative(context, 'DataView'),\n        Map = getNative(context, 'Map'),\n        Promise = getNative(context, 'Promise'),\n        Set = getNative(context, 'Set'),\n        WeakMap = getNative(context, 'WeakMap'),\n        nativeCreate = getNative(Object, 'create');\n\n    /** Used to store function metadata. */\n    var metaMap = WeakMap && new WeakMap;\n\n    /** Used to lookup unminified function names. */\n    var realNames = {};\n\n    /** Used to detect maps, sets, and weakmaps. */\n    var dataViewCtorString = toSource(DataView),\n        mapCtorString = toSource(Map),\n        promiseCtorString = toSource(Promise),\n        setCtorString = toSource(Set),\n        weakMapCtorString = toSource(WeakMap);\n\n    /** Used to convert symbols to primitives and strings. */\n    var symbolProto = Symbol ? Symbol.prototype : undefined,\n        symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n        symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Creates a `lodash` object which wraps `value` to enable implicit method\n     * chain sequences. Methods that operate on and return arrays, collections,\n     * and functions can be chained together. Methods that retrieve a single value\n     * or may return a primitive value will automatically end the chain sequence\n     * and return the unwrapped value. Otherwise, the value must be unwrapped\n     * with `_#value`.\n     *\n     * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n     * enabled using `_.chain`.\n     *\n     * The execution of chained methods is lazy, that is, it's deferred until\n     * `_#value` is implicitly or explicitly called.\n     *\n     * Lazy evaluation allows several methods to support shortcut fusion.\n     * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n     * the creation of intermediate arrays and can greatly reduce the number of\n     * iteratee executions. Sections of a chain sequence qualify for shortcut\n     * fusion if the section is applied to an array and iteratees accept only\n     * one argument. The heuristic for whether a section qualifies for shortcut\n     * fusion is subject to change.\n     *\n     * Chaining is supported in custom builds as long as the `_#value` method is\n     * directly or indirectly included in the build.\n     *\n     * In addition to lodash methods, wrappers have `Array` and `String` methods.\n     *\n     * The wrapper `Array` methods are:\n     * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n     *\n     * The wrapper `String` methods are:\n     * `replace` and `split`\n     *\n     * The wrapper methods that support shortcut fusion are:\n     * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n     * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n     * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n     *\n     * The chainable wrapper methods are:\n     * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n     * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n     * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n     * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n     * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n     * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n     * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n     * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n     * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n     * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n     * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n     * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n     * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n     * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n     * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n     * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n     * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n     * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n     * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n     * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n     * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n     * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n     * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n     * `zipObject`, `zipObjectDeep`, and `zipWith`\n     *\n     * The wrapper methods that are **not** chainable by default are:\n     * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n     * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n     * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n     * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n     * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n     * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n     * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n     * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n     * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n     * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n     * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n     * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n     * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n     * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n     * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n     * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n     * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n     * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n     * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n     * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n     * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n     * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n     * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n     * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n     * `upperFirst`, `value`, and `words`\n     *\n     * @name _\n     * @constructor\n     * @category Seq\n     * @param {*} value The value to wrap in a `lodash` instance.\n     * @returns {Object} Returns the new `lodash` wrapper instance.\n     * @example\n     *\n     * function square(n) {\n     *   return n * n;\n     * }\n     *\n     * var wrapped = _([1, 2, 3]);\n     *\n     * // Returns an unwrapped value.\n     * wrapped.reduce(_.add);\n     * // => 6\n     *\n     * // Returns a wrapped value.\n     * var squares = wrapped.map(square);\n     *\n     * _.isArray(squares);\n     * // => false\n     *\n     * _.isArray(squares.value());\n     * // => true\n     */\n    function lodash(value) {\n      if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n        if (value instanceof LodashWrapper) {\n          return value;\n        }\n        if (hasOwnProperty.call(value, '__wrapped__')) {\n          return wrapperClone(value);\n        }\n      }\n      return new LodashWrapper(value);\n    }\n\n    /**\n     * The base implementation of `_.create` without support for assigning\n     * properties to the created object.\n     *\n     * @private\n     * @param {Object} proto The object to inherit from.\n     * @returns {Object} Returns the new object.\n     */\n    var baseCreate = (function() {\n      function object() {}\n      return function(proto) {\n        if (!isObject(proto)) {\n          return {};\n        }\n        if (objectCreate) {\n          return objectCreate(proto);\n        }\n        object.prototype = proto;\n        var result = new object;\n        object.prototype = undefined;\n        return result;\n      };\n    }());\n\n    /**\n     * The function whose prototype chain sequence wrappers inherit from.\n     *\n     * @private\n     */\n    function baseLodash() {\n      // No operation performed.\n    }\n\n    /**\n     * The base constructor for creating `lodash` wrapper objects.\n     *\n     * @private\n     * @param {*} value The value to wrap.\n     * @param {boolean} [chainAll] Enable explicit method chain sequences.\n     */\n    function LodashWrapper(value, chainAll) {\n      this.__wrapped__ = value;\n      this.__actions__ = [];\n      this.__chain__ = !!chainAll;\n      this.__index__ = 0;\n      this.__values__ = undefined;\n    }\n\n    /**\n     * By default, the template delimiters used by lodash are like those in\n     * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n     * following template settings to use alternative delimiters.\n     *\n     * @static\n     * @memberOf _\n     * @type {Object}\n     */\n    lodash.templateSettings = {\n\n      /**\n       * Used to detect `data` property values to be HTML-escaped.\n       *\n       * @memberOf _.templateSettings\n       * @type {RegExp}\n       */\n      'escape': reEscape,\n\n      /**\n       * Used to detect code to be evaluated.\n       *\n       * @memberOf _.templateSettings\n       * @type {RegExp}\n       */\n      'evaluate': reEvaluate,\n\n      /**\n       * Used to detect `data` property values to inject.\n       *\n       * @memberOf _.templateSettings\n       * @type {RegExp}\n       */\n      'interpolate': reInterpolate,\n\n      /**\n       * Used to reference the data object in the template text.\n       *\n       * @memberOf _.templateSettings\n       * @type {string}\n       */\n      'variable': '',\n\n      /**\n       * Used to import variables into the compiled template.\n       *\n       * @memberOf _.templateSettings\n       * @type {Object}\n       */\n      'imports': {\n\n        /**\n         * A reference to the `lodash` function.\n         *\n         * @memberOf _.templateSettings.imports\n         * @type {Function}\n         */\n        '_': lodash\n      }\n    };\n\n    // Ensure wrappers are instances of `baseLodash`.\n    lodash.prototype = baseLodash.prototype;\n    lodash.prototype.constructor = lodash;\n\n    LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n    LodashWrapper.prototype.constructor = LodashWrapper;\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n     *\n     * @private\n     * @constructor\n     * @param {*} value The value to wrap.\n     */\n    function LazyWrapper(value) {\n      this.__wrapped__ = value;\n      this.__actions__ = [];\n      this.__dir__ = 1;\n      this.__filtered__ = false;\n      this.__iteratees__ = [];\n      this.__takeCount__ = MAX_ARRAY_LENGTH;\n      this.__views__ = [];\n    }\n\n    /**\n     * Creates a clone of the lazy wrapper object.\n     *\n     * @private\n     * @name clone\n     * @memberOf LazyWrapper\n     * @returns {Object} Returns the cloned `LazyWrapper` object.\n     */\n    function lazyClone() {\n      var result = new LazyWrapper(this.__wrapped__);\n      result.__actions__ = copyArray(this.__actions__);\n      result.__dir__ = this.__dir__;\n      result.__filtered__ = this.__filtered__;\n      result.__iteratees__ = copyArray(this.__iteratees__);\n      result.__takeCount__ = this.__takeCount__;\n      result.__views__ = copyArray(this.__views__);\n      return result;\n    }\n\n    /**\n     * Reverses the direction of lazy iteration.\n     *\n     * @private\n     * @name reverse\n     * @memberOf LazyWrapper\n     * @returns {Object} Returns the new reversed `LazyWrapper` object.\n     */\n    function lazyReverse() {\n      if (this.__filtered__) {\n        var result = new LazyWrapper(this);\n        result.__dir__ = -1;\n        result.__filtered__ = true;\n      } else {\n        result = this.clone();\n        result.__dir__ *= -1;\n      }\n      return result;\n    }\n\n    /**\n     * Extracts the unwrapped value from its lazy wrapper.\n     *\n     * @private\n     * @name value\n     * @memberOf LazyWrapper\n     * @returns {*} Returns the unwrapped value.\n     */\n    function lazyValue() {\n      var array = this.__wrapped__.value(),\n          dir = this.__dir__,\n          isArr = isArray(array),\n          isRight = dir < 0,\n          arrLength = isArr ? array.length : 0,\n          view = getView(0, arrLength, this.__views__),\n          start = view.start,\n          end = view.end,\n          length = end - start,\n          index = isRight ? end : (start - 1),\n          iteratees = this.__iteratees__,\n          iterLength = iteratees.length,\n          resIndex = 0,\n          takeCount = nativeMin(length, this.__takeCount__);\n\n      if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n        return baseWrapperValue(array, this.__actions__);\n      }\n      var result = [];\n\n      outer:\n      while (length-- && resIndex < takeCount) {\n        index += dir;\n\n        var iterIndex = -1,\n            value = array[index];\n\n        while (++iterIndex < iterLength) {\n          var data = iteratees[iterIndex],\n              iteratee = data.iteratee,\n              type = data.type,\n              computed = iteratee(value);\n\n          if (type == LAZY_MAP_FLAG) {\n            value = computed;\n          } else if (!computed) {\n            if (type == LAZY_FILTER_FLAG) {\n              continue outer;\n            } else {\n              break outer;\n            }\n          }\n        }\n        result[resIndex++] = value;\n      }\n      return result;\n    }\n\n    // Ensure `LazyWrapper` is an instance of `baseLodash`.\n    LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n    LazyWrapper.prototype.constructor = LazyWrapper;\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Creates a hash object.\n     *\n     * @private\n     * @constructor\n     * @param {Array} [entries] The key-value pairs to cache.\n     */\n    function Hash(entries) {\n      var index = -1,\n          length = entries == null ? 0 : entries.length;\n\n      this.clear();\n      while (++index < length) {\n        var entry = entries[index];\n        this.set(entry[0], entry[1]);\n      }\n    }\n\n    /**\n     * Removes all key-value entries from the hash.\n     *\n     * @private\n     * @name clear\n     * @memberOf Hash\n     */\n    function hashClear() {\n      this.__data__ = nativeCreate ? nativeCreate(null) : {};\n      this.size = 0;\n    }\n\n    /**\n     * Removes `key` and its value from the hash.\n     *\n     * @private\n     * @name delete\n     * @memberOf Hash\n     * @param {Object} hash The hash to modify.\n     * @param {string} key The key of the value to remove.\n     * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n     */\n    function hashDelete(key) {\n      var result = this.has(key) && delete this.__data__[key];\n      this.size -= result ? 1 : 0;\n      return result;\n    }\n\n    /**\n     * Gets the hash value for `key`.\n     *\n     * @private\n     * @name get\n     * @memberOf Hash\n     * @param {string} key The key of the value to get.\n     * @returns {*} Returns the entry value.\n     */\n    function hashGet(key) {\n      var data = this.__data__;\n      if (nativeCreate) {\n        var result = data[key];\n        return result === HASH_UNDEFINED ? undefined : result;\n      }\n      return hasOwnProperty.call(data, key) ? data[key] : undefined;\n    }\n\n    /**\n     * Checks if a hash value for `key` exists.\n     *\n     * @private\n     * @name has\n     * @memberOf Hash\n     * @param {string} key The key of the entry to check.\n     * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n     */\n    function hashHas(key) {\n      var data = this.__data__;\n      return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n    }\n\n    /**\n     * Sets the hash `key` to `value`.\n     *\n     * @private\n     * @name set\n     * @memberOf Hash\n     * @param {string} key The key of the value to set.\n     * @param {*} value The value to set.\n     * @returns {Object} Returns the hash instance.\n     */\n    function hashSet(key, value) {\n      var data = this.__data__;\n      this.size += this.has(key) ? 0 : 1;\n      data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n      return this;\n    }\n\n    // Add methods to `Hash`.\n    Hash.prototype.clear = hashClear;\n    Hash.prototype['delete'] = hashDelete;\n    Hash.prototype.get = hashGet;\n    Hash.prototype.has = hashHas;\n    Hash.prototype.set = hashSet;\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Creates an list cache object.\n     *\n     * @private\n     * @constructor\n     * @param {Array} [entries] The key-value pairs to cache.\n     */\n    function ListCache(entries) {\n      var index = -1,\n          length = entries == null ? 0 : entries.length;\n\n      this.clear();\n      while (++index < length) {\n        var entry = entries[index];\n        this.set(entry[0], entry[1]);\n      }\n    }\n\n    /**\n     * Removes all key-value entries from the list cache.\n     *\n     * @private\n     * @name clear\n     * @memberOf ListCache\n     */\n    function listCacheClear() {\n      this.__data__ = [];\n      this.size = 0;\n    }\n\n    /**\n     * Removes `key` and its value from the list cache.\n     *\n     * @private\n     * @name delete\n     * @memberOf ListCache\n     * @param {string} key The key of the value to remove.\n     * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n     */\n    function listCacheDelete(key) {\n      var data = this.__data__,\n          index = assocIndexOf(data, key);\n\n      if (index < 0) {\n        return false;\n      }\n      var lastIndex = data.length - 1;\n      if (index == lastIndex) {\n        data.pop();\n      } else {\n        splice.call(data, index, 1);\n      }\n      --this.size;\n      return true;\n    }\n\n    /**\n     * Gets the list cache value for `key`.\n     *\n     * @private\n     * @name get\n     * @memberOf ListCache\n     * @param {string} key The key of the value to get.\n     * @returns {*} Returns the entry value.\n     */\n    function listCacheGet(key) {\n      var data = this.__data__,\n          index = assocIndexOf(data, key);\n\n      return index < 0 ? undefined : data[index][1];\n    }\n\n    /**\n     * Checks if a list cache value for `key` exists.\n     *\n     * @private\n     * @name has\n     * @memberOf ListCache\n     * @param {string} key The key of the entry to check.\n     * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n     */\n    function listCacheHas(key) {\n      return assocIndexOf(this.__data__, key) > -1;\n    }\n\n    /**\n     * Sets the list cache `key` to `value`.\n     *\n     * @private\n     * @name set\n     * @memberOf ListCache\n     * @param {string} key The key of the value to set.\n     * @param {*} value The value to set.\n     * @returns {Object} Returns the list cache instance.\n     */\n    function listCacheSet(key, value) {\n      var data = this.__data__,\n          index = assocIndexOf(data, key);\n\n      if (index < 0) {\n        ++this.size;\n        data.push([key, value]);\n      } else {\n        data[index][1] = value;\n      }\n      return this;\n    }\n\n    // Add methods to `ListCache`.\n    ListCache.prototype.clear = listCacheClear;\n    ListCache.prototype['delete'] = listCacheDelete;\n    ListCache.prototype.get = listCacheGet;\n    ListCache.prototype.has = listCacheHas;\n    ListCache.prototype.set = listCacheSet;\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Creates a map cache object to store key-value pairs.\n     *\n     * @private\n     * @constructor\n     * @param {Array} [entries] The key-value pairs to cache.\n     */\n    function MapCache(entries) {\n      var index = -1,\n          length = entries == null ? 0 : entries.length;\n\n      this.clear();\n      while (++index < length) {\n        var entry = entries[index];\n        this.set(entry[0], entry[1]);\n      }\n    }\n\n    /**\n     * Removes all key-value entries from the map.\n     *\n     * @private\n     * @name clear\n     * @memberOf MapCache\n     */\n    function mapCacheClear() {\n      this.size = 0;\n      this.__data__ = {\n        'hash': new Hash,\n        'map': new (Map || ListCache),\n        'string': new Hash\n      };\n    }\n\n    /**\n     * Removes `key` and its value from the map.\n     *\n     * @private\n     * @name delete\n     * @memberOf MapCache\n     * @param {string} key The key of the value to remove.\n     * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n     */\n    function mapCacheDelete(key) {\n      var result = getMapData(this, key)['delete'](key);\n      this.size -= result ? 1 : 0;\n      return result;\n    }\n\n    /**\n     * Gets the map value for `key`.\n     *\n     * @private\n     * @name get\n     * @memberOf MapCache\n     * @param {string} key The key of the value to get.\n     * @returns {*} Returns the entry value.\n     */\n    function mapCacheGet(key) {\n      return getMapData(this, key).get(key);\n    }\n\n    /**\n     * Checks if a map value for `key` exists.\n     *\n     * @private\n     * @name has\n     * @memberOf MapCache\n     * @param {string} key The key of the entry to check.\n     * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n     */\n    function mapCacheHas(key) {\n      return getMapData(this, key).has(key);\n    }\n\n    /**\n     * Sets the map `key` to `value`.\n     *\n     * @private\n     * @name set\n     * @memberOf MapCache\n     * @param {string} key The key of the value to set.\n     * @param {*} value The value to set.\n     * @returns {Object} Returns the map cache instance.\n     */\n    function mapCacheSet(key, value) {\n      var data = getMapData(this, key),\n          size = data.size;\n\n      data.set(key, value);\n      this.size += data.size == size ? 0 : 1;\n      return this;\n    }\n\n    // Add methods to `MapCache`.\n    MapCache.prototype.clear = mapCacheClear;\n    MapCache.prototype['delete'] = mapCacheDelete;\n    MapCache.prototype.get = mapCacheGet;\n    MapCache.prototype.has = mapCacheHas;\n    MapCache.prototype.set = mapCacheSet;\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     *\n     * Creates an array cache object to store unique values.\n     *\n     * @private\n     * @constructor\n     * @param {Array} [values] The values to cache.\n     */\n    function SetCache(values) {\n      var index = -1,\n          length = values == null ? 0 : values.length;\n\n      this.__data__ = new MapCache;\n      while (++index < length) {\n        this.add(values[index]);\n      }\n    }\n\n    /**\n     * Adds `value` to the array cache.\n     *\n     * @private\n     * @name add\n     * @memberOf SetCache\n     * @alias push\n     * @param {*} value The value to cache.\n     * @returns {Object} Returns the cache instance.\n     */\n    function setCacheAdd(value) {\n      this.__data__.set(value, HASH_UNDEFINED);\n      return this;\n    }\n\n    /**\n     * Checks if `value` is in the array cache.\n     *\n     * @private\n     * @name has\n     * @memberOf SetCache\n     * @param {*} value The value to search for.\n     * @returns {number} Returns `true` if `value` is found, else `false`.\n     */\n    function setCacheHas(value) {\n      return this.__data__.has(value);\n    }\n\n    // Add methods to `SetCache`.\n    SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n    SetCache.prototype.has = setCacheHas;\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Creates a stack cache object to store key-value pairs.\n     *\n     * @private\n     * @constructor\n     * @param {Array} [entries] The key-value pairs to cache.\n     */\n    function Stack(entries) {\n      var data = this.__data__ = new ListCache(entries);\n      this.size = data.size;\n    }\n\n    /**\n     * Removes all key-value entries from the stack.\n     *\n     * @private\n     * @name clear\n     * @memberOf Stack\n     */\n    function stackClear() {\n      this.__data__ = new ListCache;\n      this.size = 0;\n    }\n\n    /**\n     * Removes `key` and its value from the stack.\n     *\n     * @private\n     * @name delete\n     * @memberOf Stack\n     * @param {string} key The key of the value to remove.\n     * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n     */\n    function stackDelete(key) {\n      var data = this.__data__,\n          result = data['delete'](key);\n\n      this.size = data.size;\n      return result;\n    }\n\n    /**\n     * Gets the stack value for `key`.\n     *\n     * @private\n     * @name get\n     * @memberOf Stack\n     * @param {string} key The key of the value to get.\n     * @returns {*} Returns the entry value.\n     */\n    function stackGet(key) {\n      return this.__data__.get(key);\n    }\n\n    /**\n     * Checks if a stack value for `key` exists.\n     *\n     * @private\n     * @name has\n     * @memberOf Stack\n     * @param {string} key The key of the entry to check.\n     * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n     */\n    function stackHas(key) {\n      return this.__data__.has(key);\n    }\n\n    /**\n     * Sets the stack `key` to `value`.\n     *\n     * @private\n     * @name set\n     * @memberOf Stack\n     * @param {string} key The key of the value to set.\n     * @param {*} value The value to set.\n     * @returns {Object} Returns the stack cache instance.\n     */\n    function stackSet(key, value) {\n      var data = this.__data__;\n      if (data instanceof ListCache) {\n        var pairs = data.__data__;\n        if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n          pairs.push([key, value]);\n          this.size = ++data.size;\n          return this;\n        }\n        data = this.__data__ = new MapCache(pairs);\n      }\n      data.set(key, value);\n      this.size = data.size;\n      return this;\n    }\n\n    // Add methods to `Stack`.\n    Stack.prototype.clear = stackClear;\n    Stack.prototype['delete'] = stackDelete;\n    Stack.prototype.get = stackGet;\n    Stack.prototype.has = stackHas;\n    Stack.prototype.set = stackSet;\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Creates an array of the enumerable property names of the array-like `value`.\n     *\n     * @private\n     * @param {*} value The value to query.\n     * @param {boolean} inherited Specify returning inherited property names.\n     * @returns {Array} Returns the array of property names.\n     */\n    function arrayLikeKeys(value, inherited) {\n      var isArr = isArray(value),\n          isArg = !isArr && isArguments(value),\n          isBuff = !isArr && !isArg && isBuffer(value),\n          isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n          skipIndexes = isArr || isArg || isBuff || isType,\n          result = skipIndexes ? baseTimes(value.length, String) : [],\n          length = result.length;\n\n      for (var key in value) {\n        if ((inherited || hasOwnProperty.call(value, key)) &&\n            !(skipIndexes && (\n               // Safari 9 has enumerable `arguments.length` in strict mode.\n               key == 'length' ||\n               // Node.js 0.10 has enumerable non-index properties on buffers.\n               (isBuff && (key == 'offset' || key == 'parent')) ||\n               // PhantomJS 2 has enumerable non-index properties on typed arrays.\n               (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n               // Skip index properties.\n               isIndex(key, length)\n            ))) {\n          result.push(key);\n        }\n      }\n      return result;\n    }\n\n    /**\n     * A specialized version of `_.sample` for arrays.\n     *\n     * @private\n     * @param {Array} array The array to sample.\n     * @returns {*} Returns the random element.\n     */\n    function arraySample(array) {\n      var length = array.length;\n      return length ? array[baseRandom(0, length - 1)] : undefined;\n    }\n\n    /**\n     * A specialized version of `_.sampleSize` for arrays.\n     *\n     * @private\n     * @param {Array} array The array to sample.\n     * @param {number} n The number of elements to sample.\n     * @returns {Array} Returns the random elements.\n     */\n    function arraySampleSize(array, n) {\n      return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n    }\n\n    /**\n     * A specialized version of `_.shuffle` for arrays.\n     *\n     * @private\n     * @param {Array} array The array to shuffle.\n     * @returns {Array} Returns the new shuffled array.\n     */\n    function arrayShuffle(array) {\n      return shuffleSelf(copyArray(array));\n    }\n\n    /**\n     * This function is like `assignValue` except that it doesn't assign\n     * `undefined` values.\n     *\n     * @private\n     * @param {Object} object The object to modify.\n     * @param {string} key The key of the property to assign.\n     * @param {*} value The value to assign.\n     */\n    function assignMergeValue(object, key, value) {\n      if ((value !== undefined && !eq(object[key], value)) ||\n          (value === undefined && !(key in object))) {\n        baseAssignValue(object, key, value);\n      }\n    }\n\n    /**\n     * Assigns `value` to `key` of `object` if the existing value is not equivalent\n     * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n     * for equality comparisons.\n     *\n     * @private\n     * @param {Object} object The object to modify.\n     * @param {string} key The key of the property to assign.\n     * @param {*} value The value to assign.\n     */\n    function assignValue(object, key, value) {\n      var objValue = object[key];\n      if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n          (value === undefined && !(key in object))) {\n        baseAssignValue(object, key, value);\n      }\n    }\n\n    /**\n     * Gets the index at which the `key` is found in `array` of key-value pairs.\n     *\n     * @private\n     * @param {Array} array The array to inspect.\n     * @param {*} key The key to search for.\n     * @returns {number} Returns the index of the matched value, else `-1`.\n     */\n    function assocIndexOf(array, key) {\n      var length = array.length;\n      while (length--) {\n        if (eq(array[length][0], key)) {\n          return length;\n        }\n      }\n      return -1;\n    }\n\n    /**\n     * Aggregates elements of `collection` on `accumulator` with keys transformed\n     * by `iteratee` and values set by `setter`.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} setter The function to set `accumulator` values.\n     * @param {Function} iteratee The iteratee to transform keys.\n     * @param {Object} accumulator The initial aggregated object.\n     * @returns {Function} Returns `accumulator`.\n     */\n    function baseAggregator(collection, setter, iteratee, accumulator) {\n      baseEach(collection, function(value, key, collection) {\n        setter(accumulator, value, iteratee(value), collection);\n      });\n      return accumulator;\n    }\n\n    /**\n     * The base implementation of `_.assign` without support for multiple sources\n     * or `customizer` functions.\n     *\n     * @private\n     * @param {Object} object The destination object.\n     * @param {Object} source The source object.\n     * @returns {Object} Returns `object`.\n     */\n    function baseAssign(object, source) {\n      return object && copyObject(source, keys(source), object);\n    }\n\n    /**\n     * The base implementation of `_.assignIn` without support for multiple sources\n     * or `customizer` functions.\n     *\n     * @private\n     * @param {Object} object The destination object.\n     * @param {Object} source The source object.\n     * @returns {Object} Returns `object`.\n     */\n    function baseAssignIn(object, source) {\n      return object && copyObject(source, keysIn(source), object);\n    }\n\n    /**\n     * The base implementation of `assignValue` and `assignMergeValue` without\n     * value checks.\n     *\n     * @private\n     * @param {Object} object The object to modify.\n     * @param {string} key The key of the property to assign.\n     * @param {*} value The value to assign.\n     */\n    function baseAssignValue(object, key, value) {\n      if (key == '__proto__' && defineProperty) {\n        defineProperty(object, key, {\n          'configurable': true,\n          'enumerable': true,\n          'value': value,\n          'writable': true\n        });\n      } else {\n        object[key] = value;\n      }\n    }\n\n    /**\n     * The base implementation of `_.at` without support for individual paths.\n     *\n     * @private\n     * @param {Object} object The object to iterate over.\n     * @param {string[]} paths The property paths to pick.\n     * @returns {Array} Returns the picked elements.\n     */\n    function baseAt(object, paths) {\n      var index = -1,\n          length = paths.length,\n          result = Array(length),\n          skip = object == null;\n\n      while (++index < length) {\n        result[index] = skip ? undefined : get(object, paths[index]);\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.clamp` which doesn't coerce arguments.\n     *\n     * @private\n     * @param {number} number The number to clamp.\n     * @param {number} [lower] The lower bound.\n     * @param {number} upper The upper bound.\n     * @returns {number} Returns the clamped number.\n     */\n    function baseClamp(number, lower, upper) {\n      if (number === number) {\n        if (upper !== undefined) {\n          number = number <= upper ? number : upper;\n        }\n        if (lower !== undefined) {\n          number = number >= lower ? number : lower;\n        }\n      }\n      return number;\n    }\n\n    /**\n     * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n     * traversed objects.\n     *\n     * @private\n     * @param {*} value The value to clone.\n     * @param {boolean} bitmask The bitmask flags.\n     *  1 - Deep clone\n     *  2 - Flatten inherited properties\n     *  4 - Clone symbols\n     * @param {Function} [customizer] The function to customize cloning.\n     * @param {string} [key] The key of `value`.\n     * @param {Object} [object] The parent object of `value`.\n     * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n     * @returns {*} Returns the cloned value.\n     */\n    function baseClone(value, bitmask, customizer, key, object, stack) {\n      var result,\n          isDeep = bitmask & CLONE_DEEP_FLAG,\n          isFlat = bitmask & CLONE_FLAT_FLAG,\n          isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n      if (customizer) {\n        result = object ? customizer(value, key, object, stack) : customizer(value);\n      }\n      if (result !== undefined) {\n        return result;\n      }\n      if (!isObject(value)) {\n        return value;\n      }\n      var isArr = isArray(value);\n      if (isArr) {\n        result = initCloneArray(value);\n        if (!isDeep) {\n          return copyArray(value, result);\n        }\n      } else {\n        var tag = getTag(value),\n            isFunc = tag == funcTag || tag == genTag;\n\n        if (isBuffer(value)) {\n          return cloneBuffer(value, isDeep);\n        }\n        if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n          result = (isFlat || isFunc) ? {} : initCloneObject(value);\n          if (!isDeep) {\n            return isFlat\n              ? copySymbolsIn(value, baseAssignIn(result, value))\n              : copySymbols(value, baseAssign(result, value));\n          }\n        } else {\n          if (!cloneableTags[tag]) {\n            return object ? value : {};\n          }\n          result = initCloneByTag(value, tag, isDeep);\n        }\n      }\n      // Check for circular references and return its corresponding clone.\n      stack || (stack = new Stack);\n      var stacked = stack.get(value);\n      if (stacked) {\n        return stacked;\n      }\n      stack.set(value, result);\n\n      if (isSet(value)) {\n        value.forEach(function(subValue) {\n          result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n        });\n\n        return result;\n      }\n\n      if (isMap(value)) {\n        value.forEach(function(subValue, key) {\n          result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n        });\n\n        return result;\n      }\n\n      var keysFunc = isFull\n        ? (isFlat ? getAllKeysIn : getAllKeys)\n        : (isFlat ? keysIn : keys);\n\n      var props = isArr ? undefined : keysFunc(value);\n      arrayEach(props || value, function(subValue, key) {\n        if (props) {\n          key = subValue;\n          subValue = value[key];\n        }\n        // Recursively populate clone (susceptible to call stack limits).\n        assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n      });\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.conforms` which doesn't clone `source`.\n     *\n     * @private\n     * @param {Object} source The object of property predicates to conform to.\n     * @returns {Function} Returns the new spec function.\n     */\n    function baseConforms(source) {\n      var props = keys(source);\n      return function(object) {\n        return baseConformsTo(object, source, props);\n      };\n    }\n\n    /**\n     * The base implementation of `_.conformsTo` which accepts `props` to check.\n     *\n     * @private\n     * @param {Object} object The object to inspect.\n     * @param {Object} source The object of property predicates to conform to.\n     * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n     */\n    function baseConformsTo(object, source, props) {\n      var length = props.length;\n      if (object == null) {\n        return !length;\n      }\n      object = Object(object);\n      while (length--) {\n        var key = props[length],\n            predicate = source[key],\n            value = object[key];\n\n        if ((value === undefined && !(key in object)) || !predicate(value)) {\n          return false;\n        }\n      }\n      return true;\n    }\n\n    /**\n     * The base implementation of `_.delay` and `_.defer` which accepts `args`\n     * to provide to `func`.\n     *\n     * @private\n     * @param {Function} func The function to delay.\n     * @param {number} wait The number of milliseconds to delay invocation.\n     * @param {Array} args The arguments to provide to `func`.\n     * @returns {number|Object} Returns the timer id or timeout object.\n     */\n    function baseDelay(func, wait, args) {\n      if (typeof func != 'function') {\n        throw new TypeError(FUNC_ERROR_TEXT);\n      }\n      return setTimeout(function() { func.apply(undefined, args); }, wait);\n    }\n\n    /**\n     * The base implementation of methods like `_.difference` without support\n     * for excluding multiple arrays or iteratee shorthands.\n     *\n     * @private\n     * @param {Array} array The array to inspect.\n     * @param {Array} values The values to exclude.\n     * @param {Function} [iteratee] The iteratee invoked per element.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns the new array of filtered values.\n     */\n    function baseDifference(array, values, iteratee, comparator) {\n      var index = -1,\n          includes = arrayIncludes,\n          isCommon = true,\n          length = array.length,\n          result = [],\n          valuesLength = values.length;\n\n      if (!length) {\n        return result;\n      }\n      if (iteratee) {\n        values = arrayMap(values, baseUnary(iteratee));\n      }\n      if (comparator) {\n        includes = arrayIncludesWith;\n        isCommon = false;\n      }\n      else if (values.length >= LARGE_ARRAY_SIZE) {\n        includes = cacheHas;\n        isCommon = false;\n        values = new SetCache(values);\n      }\n      outer:\n      while (++index < length) {\n        var value = array[index],\n            computed = iteratee == null ? value : iteratee(value);\n\n        value = (comparator || value !== 0) ? value : 0;\n        if (isCommon && computed === computed) {\n          var valuesIndex = valuesLength;\n          while (valuesIndex--) {\n            if (values[valuesIndex] === computed) {\n              continue outer;\n            }\n          }\n          result.push(value);\n        }\n        else if (!includes(values, computed, comparator)) {\n          result.push(value);\n        }\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.forEach` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} iteratee The function invoked per iteration.\n     * @returns {Array|Object} Returns `collection`.\n     */\n    var baseEach = createBaseEach(baseForOwn);\n\n    /**\n     * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} iteratee The function invoked per iteration.\n     * @returns {Array|Object} Returns `collection`.\n     */\n    var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n    /**\n     * The base implementation of `_.every` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} predicate The function invoked per iteration.\n     * @returns {boolean} Returns `true` if all elements pass the predicate check,\n     *  else `false`\n     */\n    function baseEvery(collection, predicate) {\n      var result = true;\n      baseEach(collection, function(value, index, collection) {\n        result = !!predicate(value, index, collection);\n        return result;\n      });\n      return result;\n    }\n\n    /**\n     * The base implementation of methods like `_.max` and `_.min` which accepts a\n     * `comparator` to determine the extremum value.\n     *\n     * @private\n     * @param {Array} array The array to iterate over.\n     * @param {Function} iteratee The iteratee invoked per iteration.\n     * @param {Function} comparator The comparator used to compare values.\n     * @returns {*} Returns the extremum value.\n     */\n    function baseExtremum(array, iteratee, comparator) {\n      var index = -1,\n          length = array.length;\n\n      while (++index < length) {\n        var value = array[index],\n            current = iteratee(value);\n\n        if (current != null && (computed === undefined\n              ? (current === current && !isSymbol(current))\n              : comparator(current, computed)\n            )) {\n          var computed = current,\n              result = value;\n        }\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.fill` without an iteratee call guard.\n     *\n     * @private\n     * @param {Array} array The array to fill.\n     * @param {*} value The value to fill `array` with.\n     * @param {number} [start=0] The start position.\n     * @param {number} [end=array.length] The end position.\n     * @returns {Array} Returns `array`.\n     */\n    function baseFill(array, value, start, end) {\n      var length = array.length;\n\n      start = toInteger(start);\n      if (start < 0) {\n        start = -start > length ? 0 : (length + start);\n      }\n      end = (end === undefined || end > length) ? length : toInteger(end);\n      if (end < 0) {\n        end += length;\n      }\n      end = start > end ? 0 : toLength(end);\n      while (start < end) {\n        array[start++] = value;\n      }\n      return array;\n    }\n\n    /**\n     * The base implementation of `_.filter` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} predicate The function invoked per iteration.\n     * @returns {Array} Returns the new filtered array.\n     */\n    function baseFilter(collection, predicate) {\n      var result = [];\n      baseEach(collection, function(value, index, collection) {\n        if (predicate(value, index, collection)) {\n          result.push(value);\n        }\n      });\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.flatten` with support for restricting flattening.\n     *\n     * @private\n     * @param {Array} array The array to flatten.\n     * @param {number} depth The maximum recursion depth.\n     * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n     * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n     * @param {Array} [result=[]] The initial result value.\n     * @returns {Array} Returns the new flattened array.\n     */\n    function baseFlatten(array, depth, predicate, isStrict, result) {\n      var index = -1,\n          length = array.length;\n\n      predicate || (predicate = isFlattenable);\n      result || (result = []);\n\n      while (++index < length) {\n        var value = array[index];\n        if (depth > 0 && predicate(value)) {\n          if (depth > 1) {\n            // Recursively flatten arrays (susceptible to call stack limits).\n            baseFlatten(value, depth - 1, predicate, isStrict, result);\n          } else {\n            arrayPush(result, value);\n          }\n        } else if (!isStrict) {\n          result[result.length] = value;\n        }\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `baseForOwn` which iterates over `object`\n     * properties returned by `keysFunc` and invokes `iteratee` for each property.\n     * Iteratee functions may exit iteration early by explicitly returning `false`.\n     *\n     * @private\n     * @param {Object} object The object to iterate over.\n     * @param {Function} iteratee The function invoked per iteration.\n     * @param {Function} keysFunc The function to get the keys of `object`.\n     * @returns {Object} Returns `object`.\n     */\n    var baseFor = createBaseFor();\n\n    /**\n     * This function is like `baseFor` except that it iterates over properties\n     * in the opposite order.\n     *\n     * @private\n     * @param {Object} object The object to iterate over.\n     * @param {Function} iteratee The function invoked per iteration.\n     * @param {Function} keysFunc The function to get the keys of `object`.\n     * @returns {Object} Returns `object`.\n     */\n    var baseForRight = createBaseFor(true);\n\n    /**\n     * The base implementation of `_.forOwn` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Object} object The object to iterate over.\n     * @param {Function} iteratee The function invoked per iteration.\n     * @returns {Object} Returns `object`.\n     */\n    function baseForOwn(object, iteratee) {\n      return object && baseFor(object, iteratee, keys);\n    }\n\n    /**\n     * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Object} object The object to iterate over.\n     * @param {Function} iteratee The function invoked per iteration.\n     * @returns {Object} Returns `object`.\n     */\n    function baseForOwnRight(object, iteratee) {\n      return object && baseForRight(object, iteratee, keys);\n    }\n\n    /**\n     * The base implementation of `_.functions` which creates an array of\n     * `object` function property names filtered from `props`.\n     *\n     * @private\n     * @param {Object} object The object to inspect.\n     * @param {Array} props The property names to filter.\n     * @returns {Array} Returns the function names.\n     */\n    function baseFunctions(object, props) {\n      return arrayFilter(props, function(key) {\n        return isFunction(object[key]);\n      });\n    }\n\n    /**\n     * The base implementation of `_.get` without support for default values.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @param {Array|string} path The path of the property to get.\n     * @returns {*} Returns the resolved value.\n     */\n    function baseGet(object, path) {\n      path = castPath(path, object);\n\n      var index = 0,\n          length = path.length;\n\n      while (object != null && index < length) {\n        object = object[toKey(path[index++])];\n      }\n      return (index && index == length) ? object : undefined;\n    }\n\n    /**\n     * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n     * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n     * symbols of `object`.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @param {Function} keysFunc The function to get the keys of `object`.\n     * @param {Function} symbolsFunc The function to get the symbols of `object`.\n     * @returns {Array} Returns the array of property names and symbols.\n     */\n    function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n      var result = keysFunc(object);\n      return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n    }\n\n    /**\n     * The base implementation of `getTag` without fallbacks for buggy environments.\n     *\n     * @private\n     * @param {*} value The value to query.\n     * @returns {string} Returns the `toStringTag`.\n     */\n    function baseGetTag(value) {\n      if (value == null) {\n        return value === undefined ? undefinedTag : nullTag;\n      }\n      return (symToStringTag && symToStringTag in Object(value))\n        ? getRawTag(value)\n        : objectToString(value);\n    }\n\n    /**\n     * The base implementation of `_.gt` which doesn't coerce arguments.\n     *\n     * @private\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @returns {boolean} Returns `true` if `value` is greater than `other`,\n     *  else `false`.\n     */\n    function baseGt(value, other) {\n      return value > other;\n    }\n\n    /**\n     * The base implementation of `_.has` without support for deep paths.\n     *\n     * @private\n     * @param {Object} [object] The object to query.\n     * @param {Array|string} key The key to check.\n     * @returns {boolean} Returns `true` if `key` exists, else `false`.\n     */\n    function baseHas(object, key) {\n      return object != null && hasOwnProperty.call(object, key);\n    }\n\n    /**\n     * The base implementation of `_.hasIn` without support for deep paths.\n     *\n     * @private\n     * @param {Object} [object] The object to query.\n     * @param {Array|string} key The key to check.\n     * @returns {boolean} Returns `true` if `key` exists, else `false`.\n     */\n    function baseHasIn(object, key) {\n      return object != null && key in Object(object);\n    }\n\n    /**\n     * The base implementation of `_.inRange` which doesn't coerce arguments.\n     *\n     * @private\n     * @param {number} number The number to check.\n     * @param {number} start The start of the range.\n     * @param {number} end The end of the range.\n     * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n     */\n    function baseInRange(number, start, end) {\n      return number >= nativeMin(start, end) && number < nativeMax(start, end);\n    }\n\n    /**\n     * The base implementation of methods like `_.intersection`, without support\n     * for iteratee shorthands, that accepts an array of arrays to inspect.\n     *\n     * @private\n     * @param {Array} arrays The arrays to inspect.\n     * @param {Function} [iteratee] The iteratee invoked per element.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns the new array of shared values.\n     */\n    function baseIntersection(arrays, iteratee, comparator) {\n      var includes = comparator ? arrayIncludesWith : arrayIncludes,\n          length = arrays[0].length,\n          othLength = arrays.length,\n          othIndex = othLength,\n          caches = Array(othLength),\n          maxLength = Infinity,\n          result = [];\n\n      while (othIndex--) {\n        var array = arrays[othIndex];\n        if (othIndex && iteratee) {\n          array = arrayMap(array, baseUnary(iteratee));\n        }\n        maxLength = nativeMin(array.length, maxLength);\n        caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n          ? new SetCache(othIndex && array)\n          : undefined;\n      }\n      array = arrays[0];\n\n      var index = -1,\n          seen = caches[0];\n\n      outer:\n      while (++index < length && result.length < maxLength) {\n        var value = array[index],\n            computed = iteratee ? iteratee(value) : value;\n\n        value = (comparator || value !== 0) ? value : 0;\n        if (!(seen\n              ? cacheHas(seen, computed)\n              : includes(result, computed, comparator)\n            )) {\n          othIndex = othLength;\n          while (--othIndex) {\n            var cache = caches[othIndex];\n            if (!(cache\n                  ? cacheHas(cache, computed)\n                  : includes(arrays[othIndex], computed, comparator))\n                ) {\n              continue outer;\n            }\n          }\n          if (seen) {\n            seen.push(computed);\n          }\n          result.push(value);\n        }\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.invert` and `_.invertBy` which inverts\n     * `object` with values transformed by `iteratee` and set by `setter`.\n     *\n     * @private\n     * @param {Object} object The object to iterate over.\n     * @param {Function} setter The function to set `accumulator` values.\n     * @param {Function} iteratee The iteratee to transform values.\n     * @param {Object} accumulator The initial inverted object.\n     * @returns {Function} Returns `accumulator`.\n     */\n    function baseInverter(object, setter, iteratee, accumulator) {\n      baseForOwn(object, function(value, key, object) {\n        setter(accumulator, iteratee(value), key, object);\n      });\n      return accumulator;\n    }\n\n    /**\n     * The base implementation of `_.invoke` without support for individual\n     * method arguments.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @param {Array|string} path The path of the method to invoke.\n     * @param {Array} args The arguments to invoke the method with.\n     * @returns {*} Returns the result of the invoked method.\n     */\n    function baseInvoke(object, path, args) {\n      path = castPath(path, object);\n      object = parent(object, path);\n      var func = object == null ? object : object[toKey(last(path))];\n      return func == null ? undefined : apply(func, object, args);\n    }\n\n    /**\n     * The base implementation of `_.isArguments`.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n     */\n    function baseIsArguments(value) {\n      return isObjectLike(value) && baseGetTag(value) == argsTag;\n    }\n\n    /**\n     * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n     */\n    function baseIsArrayBuffer(value) {\n      return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n    }\n\n    /**\n     * The base implementation of `_.isDate` without Node.js optimizations.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n     */\n    function baseIsDate(value) {\n      return isObjectLike(value) && baseGetTag(value) == dateTag;\n    }\n\n    /**\n     * The base implementation of `_.isEqual` which supports partial comparisons\n     * and tracks traversed objects.\n     *\n     * @private\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @param {boolean} bitmask The bitmask flags.\n     *  1 - Unordered comparison\n     *  2 - Partial comparison\n     * @param {Function} [customizer] The function to customize comparisons.\n     * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n     * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n     */\n    function baseIsEqual(value, other, bitmask, customizer, stack) {\n      if (value === other) {\n        return true;\n      }\n      if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n        return value !== value && other !== other;\n      }\n      return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n    }\n\n    /**\n     * A specialized version of `baseIsEqual` for arrays and objects which performs\n     * deep comparisons and tracks traversed objects enabling objects with circular\n     * references to be compared.\n     *\n     * @private\n     * @param {Object} object The object to compare.\n     * @param {Object} other The other object to compare.\n     * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n     * @param {Function} customizer The function to customize comparisons.\n     * @param {Function} equalFunc The function to determine equivalents of values.\n     * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n     * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n     */\n    function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n      var objIsArr = isArray(object),\n          othIsArr = isArray(other),\n          objTag = objIsArr ? arrayTag : getTag(object),\n          othTag = othIsArr ? arrayTag : getTag(other);\n\n      objTag = objTag == argsTag ? objectTag : objTag;\n      othTag = othTag == argsTag ? objectTag : othTag;\n\n      var objIsObj = objTag == objectTag,\n          othIsObj = othTag == objectTag,\n          isSameTag = objTag == othTag;\n\n      if (isSameTag && isBuffer(object)) {\n        if (!isBuffer(other)) {\n          return false;\n        }\n        objIsArr = true;\n        objIsObj = false;\n      }\n      if (isSameTag && !objIsObj) {\n        stack || (stack = new Stack);\n        return (objIsArr || isTypedArray(object))\n          ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n          : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n      }\n      if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n        var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n            othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n        if (objIsWrapped || othIsWrapped) {\n          var objUnwrapped = objIsWrapped ? object.value() : object,\n              othUnwrapped = othIsWrapped ? other.value() : other;\n\n          stack || (stack = new Stack);\n          return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n        }\n      }\n      if (!isSameTag) {\n        return false;\n      }\n      stack || (stack = new Stack);\n      return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n    }\n\n    /**\n     * The base implementation of `_.isMap` without Node.js optimizations.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n     */\n    function baseIsMap(value) {\n      return isObjectLike(value) && getTag(value) == mapTag;\n    }\n\n    /**\n     * The base implementation of `_.isMatch` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Object} object The object to inspect.\n     * @param {Object} source The object of property values to match.\n     * @param {Array} matchData The property names, values, and compare flags to match.\n     * @param {Function} [customizer] The function to customize comparisons.\n     * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n     */\n    function baseIsMatch(object, source, matchData, customizer) {\n      var index = matchData.length,\n          length = index,\n          noCustomizer = !customizer;\n\n      if (object == null) {\n        return !length;\n      }\n      object = Object(object);\n      while (index--) {\n        var data = matchData[index];\n        if ((noCustomizer && data[2])\n              ? data[1] !== object[data[0]]\n              : !(data[0] in object)\n            ) {\n          return false;\n        }\n      }\n      while (++index < length) {\n        data = matchData[index];\n        var key = data[0],\n            objValue = object[key],\n            srcValue = data[1];\n\n        if (noCustomizer && data[2]) {\n          if (objValue === undefined && !(key in object)) {\n            return false;\n          }\n        } else {\n          var stack = new Stack;\n          if (customizer) {\n            var result = customizer(objValue, srcValue, key, object, source, stack);\n          }\n          if (!(result === undefined\n                ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n                : result\n              )) {\n            return false;\n          }\n        }\n      }\n      return true;\n    }\n\n    /**\n     * The base implementation of `_.isNative` without bad shim checks.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a native function,\n     *  else `false`.\n     */\n    function baseIsNative(value) {\n      if (!isObject(value) || isMasked(value)) {\n        return false;\n      }\n      var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n      return pattern.test(toSource(value));\n    }\n\n    /**\n     * The base implementation of `_.isRegExp` without Node.js optimizations.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n     */\n    function baseIsRegExp(value) {\n      return isObjectLike(value) && baseGetTag(value) == regexpTag;\n    }\n\n    /**\n     * The base implementation of `_.isSet` without Node.js optimizations.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n     */\n    function baseIsSet(value) {\n      return isObjectLike(value) && getTag(value) == setTag;\n    }\n\n    /**\n     * The base implementation of `_.isTypedArray` without Node.js optimizations.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n     */\n    function baseIsTypedArray(value) {\n      return isObjectLike(value) &&\n        isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n    }\n\n    /**\n     * The base implementation of `_.iteratee`.\n     *\n     * @private\n     * @param {*} [value=_.identity] The value to convert to an iteratee.\n     * @returns {Function} Returns the iteratee.\n     */\n    function baseIteratee(value) {\n      // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n      // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n      if (typeof value == 'function') {\n        return value;\n      }\n      if (value == null) {\n        return identity;\n      }\n      if (typeof value == 'object') {\n        return isArray(value)\n          ? baseMatchesProperty(value[0], value[1])\n          : baseMatches(value);\n      }\n      return property(value);\n    }\n\n    /**\n     * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of property names.\n     */\n    function baseKeys(object) {\n      if (!isPrototype(object)) {\n        return nativeKeys(object);\n      }\n      var result = [];\n      for (var key in Object(object)) {\n        if (hasOwnProperty.call(object, key) && key != 'constructor') {\n          result.push(key);\n        }\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of property names.\n     */\n    function baseKeysIn(object) {\n      if (!isObject(object)) {\n        return nativeKeysIn(object);\n      }\n      var isProto = isPrototype(object),\n          result = [];\n\n      for (var key in object) {\n        if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n          result.push(key);\n        }\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.lt` which doesn't coerce arguments.\n     *\n     * @private\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @returns {boolean} Returns `true` if `value` is less than `other`,\n     *  else `false`.\n     */\n    function baseLt(value, other) {\n      return value < other;\n    }\n\n    /**\n     * The base implementation of `_.map` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} iteratee The function invoked per iteration.\n     * @returns {Array} Returns the new mapped array.\n     */\n    function baseMap(collection, iteratee) {\n      var index = -1,\n          result = isArrayLike(collection) ? Array(collection.length) : [];\n\n      baseEach(collection, function(value, key, collection) {\n        result[++index] = iteratee(value, key, collection);\n      });\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.matches` which doesn't clone `source`.\n     *\n     * @private\n     * @param {Object} source The object of property values to match.\n     * @returns {Function} Returns the new spec function.\n     */\n    function baseMatches(source) {\n      var matchData = getMatchData(source);\n      if (matchData.length == 1 && matchData[0][2]) {\n        return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n      }\n      return function(object) {\n        return object === source || baseIsMatch(object, source, matchData);\n      };\n    }\n\n    /**\n     * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n     *\n     * @private\n     * @param {string} path The path of the property to get.\n     * @param {*} srcValue The value to match.\n     * @returns {Function} Returns the new spec function.\n     */\n    function baseMatchesProperty(path, srcValue) {\n      if (isKey(path) && isStrictComparable(srcValue)) {\n        return matchesStrictComparable(toKey(path), srcValue);\n      }\n      return function(object) {\n        var objValue = get(object, path);\n        return (objValue === undefined && objValue === srcValue)\n          ? hasIn(object, path)\n          : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n      };\n    }\n\n    /**\n     * The base implementation of `_.merge` without support for multiple sources.\n     *\n     * @private\n     * @param {Object} object The destination object.\n     * @param {Object} source The source object.\n     * @param {number} srcIndex The index of `source`.\n     * @param {Function} [customizer] The function to customize merged values.\n     * @param {Object} [stack] Tracks traversed source values and their merged\n     *  counterparts.\n     */\n    function baseMerge(object, source, srcIndex, customizer, stack) {\n      if (object === source) {\n        return;\n      }\n      baseFor(source, function(srcValue, key) {\n        if (isObject(srcValue)) {\n          stack || (stack = new Stack);\n          baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n        }\n        else {\n          var newValue = customizer\n            ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n            : undefined;\n\n          if (newValue === undefined) {\n            newValue = srcValue;\n          }\n          assignMergeValue(object, key, newValue);\n        }\n      }, keysIn);\n    }\n\n    /**\n     * A specialized version of `baseMerge` for arrays and objects which performs\n     * deep merges and tracks traversed objects enabling objects with circular\n     * references to be merged.\n     *\n     * @private\n     * @param {Object} object The destination object.\n     * @param {Object} source The source object.\n     * @param {string} key The key of the value to merge.\n     * @param {number} srcIndex The index of `source`.\n     * @param {Function} mergeFunc The function to merge values.\n     * @param {Function} [customizer] The function to customize assigned values.\n     * @param {Object} [stack] Tracks traversed source values and their merged\n     *  counterparts.\n     */\n    function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n      var objValue = safeGet(object, key),\n          srcValue = safeGet(source, key),\n          stacked = stack.get(srcValue);\n\n      if (stacked) {\n        assignMergeValue(object, key, stacked);\n        return;\n      }\n      var newValue = customizer\n        ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n        : undefined;\n\n      var isCommon = newValue === undefined;\n\n      if (isCommon) {\n        var isArr = isArray(srcValue),\n            isBuff = !isArr && isBuffer(srcValue),\n            isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n        newValue = srcValue;\n        if (isArr || isBuff || isTyped) {\n          if (isArray(objValue)) {\n            newValue = objValue;\n          }\n          else if (isArrayLikeObject(objValue)) {\n            newValue = copyArray(objValue);\n          }\n          else if (isBuff) {\n            isCommon = false;\n            newValue = cloneBuffer(srcValue, true);\n          }\n          else if (isTyped) {\n            isCommon = false;\n            newValue = cloneTypedArray(srcValue, true);\n          }\n          else {\n            newValue = [];\n          }\n        }\n        else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n          newValue = objValue;\n          if (isArguments(objValue)) {\n            newValue = toPlainObject(objValue);\n          }\n          else if (!isObject(objValue) || isFunction(objValue)) {\n            newValue = initCloneObject(srcValue);\n          }\n        }\n        else {\n          isCommon = false;\n        }\n      }\n      if (isCommon) {\n        // Recursively merge objects and arrays (susceptible to call stack limits).\n        stack.set(srcValue, newValue);\n        mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n        stack['delete'](srcValue);\n      }\n      assignMergeValue(object, key, newValue);\n    }\n\n    /**\n     * The base implementation of `_.nth` which doesn't coerce arguments.\n     *\n     * @private\n     * @param {Array} array The array to query.\n     * @param {number} n The index of the element to return.\n     * @returns {*} Returns the nth element of `array`.\n     */\n    function baseNth(array, n) {\n      var length = array.length;\n      if (!length) {\n        return;\n      }\n      n += n < 0 ? length : 0;\n      return isIndex(n, length) ? array[n] : undefined;\n    }\n\n    /**\n     * The base implementation of `_.orderBy` without param guards.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n     * @param {string[]} orders The sort orders of `iteratees`.\n     * @returns {Array} Returns the new sorted array.\n     */\n    function baseOrderBy(collection, iteratees, orders) {\n      var index = -1;\n      iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(getIteratee()));\n\n      var result = baseMap(collection, function(value, key, collection) {\n        var criteria = arrayMap(iteratees, function(iteratee) {\n          return iteratee(value);\n        });\n        return { 'criteria': criteria, 'index': ++index, 'value': value };\n      });\n\n      return baseSortBy(result, function(object, other) {\n        return compareMultiple(object, other, orders);\n      });\n    }\n\n    /**\n     * The base implementation of `_.pick` without support for individual\n     * property identifiers.\n     *\n     * @private\n     * @param {Object} object The source object.\n     * @param {string[]} paths The property paths to pick.\n     * @returns {Object} Returns the new object.\n     */\n    function basePick(object, paths) {\n      return basePickBy(object, paths, function(value, path) {\n        return hasIn(object, path);\n      });\n    }\n\n    /**\n     * The base implementation of  `_.pickBy` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Object} object The source object.\n     * @param {string[]} paths The property paths to pick.\n     * @param {Function} predicate The function invoked per property.\n     * @returns {Object} Returns the new object.\n     */\n    function basePickBy(object, paths, predicate) {\n      var index = -1,\n          length = paths.length,\n          result = {};\n\n      while (++index < length) {\n        var path = paths[index],\n            value = baseGet(object, path);\n\n        if (predicate(value, path)) {\n          baseSet(result, castPath(path, object), value);\n        }\n      }\n      return result;\n    }\n\n    /**\n     * A specialized version of `baseProperty` which supports deep paths.\n     *\n     * @private\n     * @param {Array|string} path The path of the property to get.\n     * @returns {Function} Returns the new accessor function.\n     */\n    function basePropertyDeep(path) {\n      return function(object) {\n        return baseGet(object, path);\n      };\n    }\n\n    /**\n     * The base implementation of `_.pullAllBy` without support for iteratee\n     * shorthands.\n     *\n     * @private\n     * @param {Array} array The array to modify.\n     * @param {Array} values The values to remove.\n     * @param {Function} [iteratee] The iteratee invoked per element.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns `array`.\n     */\n    function basePullAll(array, values, iteratee, comparator) {\n      var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n          index = -1,\n          length = values.length,\n          seen = array;\n\n      if (array === values) {\n        values = copyArray(values);\n      }\n      if (iteratee) {\n        seen = arrayMap(array, baseUnary(iteratee));\n      }\n      while (++index < length) {\n        var fromIndex = 0,\n            value = values[index],\n            computed = iteratee ? iteratee(value) : value;\n\n        while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n          if (seen !== array) {\n            splice.call(seen, fromIndex, 1);\n          }\n          splice.call(array, fromIndex, 1);\n        }\n      }\n      return array;\n    }\n\n    /**\n     * The base implementation of `_.pullAt` without support for individual\n     * indexes or capturing the removed elements.\n     *\n     * @private\n     * @param {Array} array The array to modify.\n     * @param {number[]} indexes The indexes of elements to remove.\n     * @returns {Array} Returns `array`.\n     */\n    function basePullAt(array, indexes) {\n      var length = array ? indexes.length : 0,\n          lastIndex = length - 1;\n\n      while (length--) {\n        var index = indexes[length];\n        if (length == lastIndex || index !== previous) {\n          var previous = index;\n          if (isIndex(index)) {\n            splice.call(array, index, 1);\n          } else {\n            baseUnset(array, index);\n          }\n        }\n      }\n      return array;\n    }\n\n    /**\n     * The base implementation of `_.random` without support for returning\n     * floating-point numbers.\n     *\n     * @private\n     * @param {number} lower The lower bound.\n     * @param {number} upper The upper bound.\n     * @returns {number} Returns the random number.\n     */\n    function baseRandom(lower, upper) {\n      return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n    }\n\n    /**\n     * The base implementation of `_.range` and `_.rangeRight` which doesn't\n     * coerce arguments.\n     *\n     * @private\n     * @param {number} start The start of the range.\n     * @param {number} end The end of the range.\n     * @param {number} step The value to increment or decrement by.\n     * @param {boolean} [fromRight] Specify iterating from right to left.\n     * @returns {Array} Returns the range of numbers.\n     */\n    function baseRange(start, end, step, fromRight) {\n      var index = -1,\n          length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n          result = Array(length);\n\n      while (length--) {\n        result[fromRight ? length : ++index] = start;\n        start += step;\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.repeat` which doesn't coerce arguments.\n     *\n     * @private\n     * @param {string} string The string to repeat.\n     * @param {number} n The number of times to repeat the string.\n     * @returns {string} Returns the repeated string.\n     */\n    function baseRepeat(string, n) {\n      var result = '';\n      if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n        return result;\n      }\n      // Leverage the exponentiation by squaring algorithm for a faster repeat.\n      // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n      do {\n        if (n % 2) {\n          result += string;\n        }\n        n = nativeFloor(n / 2);\n        if (n) {\n          string += string;\n        }\n      } while (n);\n\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n     *\n     * @private\n     * @param {Function} func The function to apply a rest parameter to.\n     * @param {number} [start=func.length-1] The start position of the rest parameter.\n     * @returns {Function} Returns the new function.\n     */\n    function baseRest(func, start) {\n      return setToString(overRest(func, start, identity), func + '');\n    }\n\n    /**\n     * The base implementation of `_.sample`.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to sample.\n     * @returns {*} Returns the random element.\n     */\n    function baseSample(collection) {\n      return arraySample(values(collection));\n    }\n\n    /**\n     * The base implementation of `_.sampleSize` without param guards.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to sample.\n     * @param {number} n The number of elements to sample.\n     * @returns {Array} Returns the random elements.\n     */\n    function baseSampleSize(collection, n) {\n      var array = values(collection);\n      return shuffleSelf(array, baseClamp(n, 0, array.length));\n    }\n\n    /**\n     * The base implementation of `_.set`.\n     *\n     * @private\n     * @param {Object} object The object to modify.\n     * @param {Array|string} path The path of the property to set.\n     * @param {*} value The value to set.\n     * @param {Function} [customizer] The function to customize path creation.\n     * @returns {Object} Returns `object`.\n     */\n    function baseSet(object, path, value, customizer) {\n      if (!isObject(object)) {\n        return object;\n      }\n      path = castPath(path, object);\n\n      var index = -1,\n          length = path.length,\n          lastIndex = length - 1,\n          nested = object;\n\n      while (nested != null && ++index < length) {\n        var key = toKey(path[index]),\n            newValue = value;\n\n        if (index != lastIndex) {\n          var objValue = nested[key];\n          newValue = customizer ? customizer(objValue, key, nested) : undefined;\n          if (newValue === undefined) {\n            newValue = isObject(objValue)\n              ? objValue\n              : (isIndex(path[index + 1]) ? [] : {});\n          }\n        }\n        assignValue(nested, key, newValue);\n        nested = nested[key];\n      }\n      return object;\n    }\n\n    /**\n     * The base implementation of `setData` without support for hot loop shorting.\n     *\n     * @private\n     * @param {Function} func The function to associate metadata with.\n     * @param {*} data The metadata.\n     * @returns {Function} Returns `func`.\n     */\n    var baseSetData = !metaMap ? identity : function(func, data) {\n      metaMap.set(func, data);\n      return func;\n    };\n\n    /**\n     * The base implementation of `setToString` without support for hot loop shorting.\n     *\n     * @private\n     * @param {Function} func The function to modify.\n     * @param {Function} string The `toString` result.\n     * @returns {Function} Returns `func`.\n     */\n    var baseSetToString = !defineProperty ? identity : function(func, string) {\n      return defineProperty(func, 'toString', {\n        'configurable': true,\n        'enumerable': false,\n        'value': constant(string),\n        'writable': true\n      });\n    };\n\n    /**\n     * The base implementation of `_.shuffle`.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to shuffle.\n     * @returns {Array} Returns the new shuffled array.\n     */\n    function baseShuffle(collection) {\n      return shuffleSelf(values(collection));\n    }\n\n    /**\n     * The base implementation of `_.slice` without an iteratee call guard.\n     *\n     * @private\n     * @param {Array} array The array to slice.\n     * @param {number} [start=0] The start position.\n     * @param {number} [end=array.length] The end position.\n     * @returns {Array} Returns the slice of `array`.\n     */\n    function baseSlice(array, start, end) {\n      var index = -1,\n          length = array.length;\n\n      if (start < 0) {\n        start = -start > length ? 0 : (length + start);\n      }\n      end = end > length ? length : end;\n      if (end < 0) {\n        end += length;\n      }\n      length = start > end ? 0 : ((end - start) >>> 0);\n      start >>>= 0;\n\n      var result = Array(length);\n      while (++index < length) {\n        result[index] = array[index + start];\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.some` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} predicate The function invoked per iteration.\n     * @returns {boolean} Returns `true` if any element passes the predicate check,\n     *  else `false`.\n     */\n    function baseSome(collection, predicate) {\n      var result;\n\n      baseEach(collection, function(value, index, collection) {\n        result = predicate(value, index, collection);\n        return !result;\n      });\n      return !!result;\n    }\n\n    /**\n     * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n     * performs a binary search of `array` to determine the index at which `value`\n     * should be inserted into `array` in order to maintain its sort order.\n     *\n     * @private\n     * @param {Array} array The sorted array to inspect.\n     * @param {*} value The value to evaluate.\n     * @param {boolean} [retHighest] Specify returning the highest qualified index.\n     * @returns {number} Returns the index at which `value` should be inserted\n     *  into `array`.\n     */\n    function baseSortedIndex(array, value, retHighest) {\n      var low = 0,\n          high = array == null ? low : array.length;\n\n      if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n        while (low < high) {\n          var mid = (low + high) >>> 1,\n              computed = array[mid];\n\n          if (computed !== null && !isSymbol(computed) &&\n              (retHighest ? (computed <= value) : (computed < value))) {\n            low = mid + 1;\n          } else {\n            high = mid;\n          }\n        }\n        return high;\n      }\n      return baseSortedIndexBy(array, value, identity, retHighest);\n    }\n\n    /**\n     * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n     * which invokes `iteratee` for `value` and each element of `array` to compute\n     * their sort ranking. The iteratee is invoked with one argument; (value).\n     *\n     * @private\n     * @param {Array} array The sorted array to inspect.\n     * @param {*} value The value to evaluate.\n     * @param {Function} iteratee The iteratee invoked per element.\n     * @param {boolean} [retHighest] Specify returning the highest qualified index.\n     * @returns {number} Returns the index at which `value` should be inserted\n     *  into `array`.\n     */\n    function baseSortedIndexBy(array, value, iteratee, retHighest) {\n      value = iteratee(value);\n\n      var low = 0,\n          high = array == null ? 0 : array.length,\n          valIsNaN = value !== value,\n          valIsNull = value === null,\n          valIsSymbol = isSymbol(value),\n          valIsUndefined = value === undefined;\n\n      while (low < high) {\n        var mid = nativeFloor((low + high) / 2),\n            computed = iteratee(array[mid]),\n            othIsDefined = computed !== undefined,\n            othIsNull = computed === null,\n            othIsReflexive = computed === computed,\n            othIsSymbol = isSymbol(computed);\n\n        if (valIsNaN) {\n          var setLow = retHighest || othIsReflexive;\n        } else if (valIsUndefined) {\n          setLow = othIsReflexive && (retHighest || othIsDefined);\n        } else if (valIsNull) {\n          setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n        } else if (valIsSymbol) {\n          setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n        } else if (othIsNull || othIsSymbol) {\n          setLow = false;\n        } else {\n          setLow = retHighest ? (computed <= value) : (computed < value);\n        }\n        if (setLow) {\n          low = mid + 1;\n        } else {\n          high = mid;\n        }\n      }\n      return nativeMin(high, MAX_ARRAY_INDEX);\n    }\n\n    /**\n     * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n     * support for iteratee shorthands.\n     *\n     * @private\n     * @param {Array} array The array to inspect.\n     * @param {Function} [iteratee] The iteratee invoked per element.\n     * @returns {Array} Returns the new duplicate free array.\n     */\n    function baseSortedUniq(array, iteratee) {\n      var index = -1,\n          length = array.length,\n          resIndex = 0,\n          result = [];\n\n      while (++index < length) {\n        var value = array[index],\n            computed = iteratee ? iteratee(value) : value;\n\n        if (!index || !eq(computed, seen)) {\n          var seen = computed;\n          result[resIndex++] = value === 0 ? 0 : value;\n        }\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.toNumber` which doesn't ensure correct\n     * conversions of binary, hexadecimal, or octal string values.\n     *\n     * @private\n     * @param {*} value The value to process.\n     * @returns {number} Returns the number.\n     */\n    function baseToNumber(value) {\n      if (typeof value == 'number') {\n        return value;\n      }\n      if (isSymbol(value)) {\n        return NAN;\n      }\n      return +value;\n    }\n\n    /**\n     * The base implementation of `_.toString` which doesn't convert nullish\n     * values to empty strings.\n     *\n     * @private\n     * @param {*} value The value to process.\n     * @returns {string} Returns the string.\n     */\n    function baseToString(value) {\n      // Exit early for strings to avoid a performance hit in some environments.\n      if (typeof value == 'string') {\n        return value;\n      }\n      if (isArray(value)) {\n        // Recursively convert values (susceptible to call stack limits).\n        return arrayMap(value, baseToString) + '';\n      }\n      if (isSymbol(value)) {\n        return symbolToString ? symbolToString.call(value) : '';\n      }\n      var result = (value + '');\n      return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n    }\n\n    /**\n     * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Array} array The array to inspect.\n     * @param {Function} [iteratee] The iteratee invoked per element.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns the new duplicate free array.\n     */\n    function baseUniq(array, iteratee, comparator) {\n      var index = -1,\n          includes = arrayIncludes,\n          length = array.length,\n          isCommon = true,\n          result = [],\n          seen = result;\n\n      if (comparator) {\n        isCommon = false;\n        includes = arrayIncludesWith;\n      }\n      else if (length >= LARGE_ARRAY_SIZE) {\n        var set = iteratee ? null : createSet(array);\n        if (set) {\n          return setToArray(set);\n        }\n        isCommon = false;\n        includes = cacheHas;\n        seen = new SetCache;\n      }\n      else {\n        seen = iteratee ? [] : result;\n      }\n      outer:\n      while (++index < length) {\n        var value = array[index],\n            computed = iteratee ? iteratee(value) : value;\n\n        value = (comparator || value !== 0) ? value : 0;\n        if (isCommon && computed === computed) {\n          var seenIndex = seen.length;\n          while (seenIndex--) {\n            if (seen[seenIndex] === computed) {\n              continue outer;\n            }\n          }\n          if (iteratee) {\n            seen.push(computed);\n          }\n          result.push(value);\n        }\n        else if (!includes(seen, computed, comparator)) {\n          if (seen !== result) {\n            seen.push(computed);\n          }\n          result.push(value);\n        }\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.unset`.\n     *\n     * @private\n     * @param {Object} object The object to modify.\n     * @param {Array|string} path The property path to unset.\n     * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n     */\n    function baseUnset(object, path) {\n      path = castPath(path, object);\n      object = parent(object, path);\n      return object == null || delete object[toKey(last(path))];\n    }\n\n    /**\n     * The base implementation of `_.update`.\n     *\n     * @private\n     * @param {Object} object The object to modify.\n     * @param {Array|string} path The path of the property to update.\n     * @param {Function} updater The function to produce the updated value.\n     * @param {Function} [customizer] The function to customize path creation.\n     * @returns {Object} Returns `object`.\n     */\n    function baseUpdate(object, path, updater, customizer) {\n      return baseSet(object, path, updater(baseGet(object, path)), customizer);\n    }\n\n    /**\n     * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n     * without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Array} array The array to query.\n     * @param {Function} predicate The function invoked per iteration.\n     * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n     * @param {boolean} [fromRight] Specify iterating from right to left.\n     * @returns {Array} Returns the slice of `array`.\n     */\n    function baseWhile(array, predicate, isDrop, fromRight) {\n      var length = array.length,\n          index = fromRight ? length : -1;\n\n      while ((fromRight ? index-- : ++index < length) &&\n        predicate(array[index], index, array)) {}\n\n      return isDrop\n        ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n        : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n    }\n\n    /**\n     * The base implementation of `wrapperValue` which returns the result of\n     * performing a sequence of actions on the unwrapped `value`, where each\n     * successive action is supplied the return value of the previous.\n     *\n     * @private\n     * @param {*} value The unwrapped value.\n     * @param {Array} actions Actions to perform to resolve the unwrapped value.\n     * @returns {*} Returns the resolved value.\n     */\n    function baseWrapperValue(value, actions) {\n      var result = value;\n      if (result instanceof LazyWrapper) {\n        result = result.value();\n      }\n      return arrayReduce(actions, function(result, action) {\n        return action.func.apply(action.thisArg, arrayPush([result], action.args));\n      }, result);\n    }\n\n    /**\n     * The base implementation of methods like `_.xor`, without support for\n     * iteratee shorthands, that accepts an array of arrays to inspect.\n     *\n     * @private\n     * @param {Array} arrays The arrays to inspect.\n     * @param {Function} [iteratee] The iteratee invoked per element.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns the new array of values.\n     */\n    function baseXor(arrays, iteratee, comparator) {\n      var length = arrays.length;\n      if (length < 2) {\n        return length ? baseUniq(arrays[0]) : [];\n      }\n      var index = -1,\n          result = Array(length);\n\n      while (++index < length) {\n        var array = arrays[index],\n            othIndex = -1;\n\n        while (++othIndex < length) {\n          if (othIndex != index) {\n            result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n          }\n        }\n      }\n      return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n    }\n\n    /**\n     * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n     *\n     * @private\n     * @param {Array} props The property identifiers.\n     * @param {Array} values The property values.\n     * @param {Function} assignFunc The function to assign values.\n     * @returns {Object} Returns the new object.\n     */\n    function baseZipObject(props, values, assignFunc) {\n      var index = -1,\n          length = props.length,\n          valsLength = values.length,\n          result = {};\n\n      while (++index < length) {\n        var value = index < valsLength ? values[index] : undefined;\n        assignFunc(result, props[index], value);\n      }\n      return result;\n    }\n\n    /**\n     * Casts `value` to an empty array if it's not an array like object.\n     *\n     * @private\n     * @param {*} value The value to inspect.\n     * @returns {Array|Object} Returns the cast array-like object.\n     */\n    function castArrayLikeObject(value) {\n      return isArrayLikeObject(value) ? value : [];\n    }\n\n    /**\n     * Casts `value` to `identity` if it's not a function.\n     *\n     * @private\n     * @param {*} value The value to inspect.\n     * @returns {Function} Returns cast function.\n     */\n    function castFunction(value) {\n      return typeof value == 'function' ? value : identity;\n    }\n\n    /**\n     * Casts `value` to a path array if it's not one.\n     *\n     * @private\n     * @param {*} value The value to inspect.\n     * @param {Object} [object] The object to query keys on.\n     * @returns {Array} Returns the cast property path array.\n     */\n    function castPath(value, object) {\n      if (isArray(value)) {\n        return value;\n      }\n      return isKey(value, object) ? [value] : stringToPath(toString(value));\n    }\n\n    /**\n     * A `baseRest` alias which can be replaced with `identity` by module\n     * replacement plugins.\n     *\n     * @private\n     * @type {Function}\n     * @param {Function} func The function to apply a rest parameter to.\n     * @returns {Function} Returns the new function.\n     */\n    var castRest = baseRest;\n\n    /**\n     * Casts `array` to a slice if it's needed.\n     *\n     * @private\n     * @param {Array} array The array to inspect.\n     * @param {number} start The start position.\n     * @param {number} [end=array.length] The end position.\n     * @returns {Array} Returns the cast slice.\n     */\n    function castSlice(array, start, end) {\n      var length = array.length;\n      end = end === undefined ? length : end;\n      return (!start && end >= length) ? array : baseSlice(array, start, end);\n    }\n\n    /**\n     * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n     *\n     * @private\n     * @param {number|Object} id The timer id or timeout object of the timer to clear.\n     */\n    var clearTimeout = ctxClearTimeout || function(id) {\n      return root.clearTimeout(id);\n    };\n\n    /**\n     * Creates a clone of  `buffer`.\n     *\n     * @private\n     * @param {Buffer} buffer The buffer to clone.\n     * @param {boolean} [isDeep] Specify a deep clone.\n     * @returns {Buffer} Returns the cloned buffer.\n     */\n    function cloneBuffer(buffer, isDeep) {\n      if (isDeep) {\n        return buffer.slice();\n      }\n      var length = buffer.length,\n          result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n      buffer.copy(result);\n      return result;\n    }\n\n    /**\n     * Creates a clone of `arrayBuffer`.\n     *\n     * @private\n     * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n     * @returns {ArrayBuffer} Returns the cloned array buffer.\n     */\n    function cloneArrayBuffer(arrayBuffer) {\n      var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n      new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n      return result;\n    }\n\n    /**\n     * Creates a clone of `dataView`.\n     *\n     * @private\n     * @param {Object} dataView The data view to clone.\n     * @param {boolean} [isDeep] Specify a deep clone.\n     * @returns {Object} Returns the cloned data view.\n     */\n    function cloneDataView(dataView, isDeep) {\n      var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n      return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n    }\n\n    /**\n     * Creates a clone of `regexp`.\n     *\n     * @private\n     * @param {Object} regexp The regexp to clone.\n     * @returns {Object} Returns the cloned regexp.\n     */\n    function cloneRegExp(regexp) {\n      var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n      result.lastIndex = regexp.lastIndex;\n      return result;\n    }\n\n    /**\n     * Creates a clone of the `symbol` object.\n     *\n     * @private\n     * @param {Object} symbol The symbol object to clone.\n     * @returns {Object} Returns the cloned symbol object.\n     */\n    function cloneSymbol(symbol) {\n      return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n    }\n\n    /**\n     * Creates a clone of `typedArray`.\n     *\n     * @private\n     * @param {Object} typedArray The typed array to clone.\n     * @param {boolean} [isDeep] Specify a deep clone.\n     * @returns {Object} Returns the cloned typed array.\n     */\n    function cloneTypedArray(typedArray, isDeep) {\n      var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n      return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n    }\n\n    /**\n     * Compares values to sort them in ascending order.\n     *\n     * @private\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @returns {number} Returns the sort order indicator for `value`.\n     */\n    function compareAscending(value, other) {\n      if (value !== other) {\n        var valIsDefined = value !== undefined,\n            valIsNull = value === null,\n            valIsReflexive = value === value,\n            valIsSymbol = isSymbol(value);\n\n        var othIsDefined = other !== undefined,\n            othIsNull = other === null,\n            othIsReflexive = other === other,\n            othIsSymbol = isSymbol(other);\n\n        if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n            (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n            (valIsNull && othIsDefined && othIsReflexive) ||\n            (!valIsDefined && othIsReflexive) ||\n            !valIsReflexive) {\n          return 1;\n        }\n        if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n            (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n            (othIsNull && valIsDefined && valIsReflexive) ||\n            (!othIsDefined && valIsReflexive) ||\n            !othIsReflexive) {\n          return -1;\n        }\n      }\n      return 0;\n    }\n\n    /**\n     * Used by `_.orderBy` to compare multiple properties of a value to another\n     * and stable sort them.\n     *\n     * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n     * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n     * of corresponding values.\n     *\n     * @private\n     * @param {Object} object The object to compare.\n     * @param {Object} other The other object to compare.\n     * @param {boolean[]|string[]} orders The order to sort by for each property.\n     * @returns {number} Returns the sort order indicator for `object`.\n     */\n    function compareMultiple(object, other, orders) {\n      var index = -1,\n          objCriteria = object.criteria,\n          othCriteria = other.criteria,\n          length = objCriteria.length,\n          ordersLength = orders.length;\n\n      while (++index < length) {\n        var result = compareAscending(objCriteria[index], othCriteria[index]);\n        if (result) {\n          if (index >= ordersLength) {\n            return result;\n          }\n          var order = orders[index];\n          return result * (order == 'desc' ? -1 : 1);\n        }\n      }\n      // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n      // that causes it, under certain circumstances, to provide the same value for\n      // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n      // for more details.\n      //\n      // This also ensures a stable sort in V8 and other engines.\n      // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n      return object.index - other.index;\n    }\n\n    /**\n     * Creates an array that is the composition of partially applied arguments,\n     * placeholders, and provided arguments into a single array of arguments.\n     *\n     * @private\n     * @param {Array} args The provided arguments.\n     * @param {Array} partials The arguments to prepend to those provided.\n     * @param {Array} holders The `partials` placeholder indexes.\n     * @params {boolean} [isCurried] Specify composing for a curried function.\n     * @returns {Array} Returns the new array of composed arguments.\n     */\n    function composeArgs(args, partials, holders, isCurried) {\n      var argsIndex = -1,\n          argsLength = args.length,\n          holdersLength = holders.length,\n          leftIndex = -1,\n          leftLength = partials.length,\n          rangeLength = nativeMax(argsLength - holdersLength, 0),\n          result = Array(leftLength + rangeLength),\n          isUncurried = !isCurried;\n\n      while (++leftIndex < leftLength) {\n        result[leftIndex] = partials[leftIndex];\n      }\n      while (++argsIndex < holdersLength) {\n        if (isUncurried || argsIndex < argsLength) {\n          result[holders[argsIndex]] = args[argsIndex];\n        }\n      }\n      while (rangeLength--) {\n        result[leftIndex++] = args[argsIndex++];\n      }\n      return result;\n    }\n\n    /**\n     * This function is like `composeArgs` except that the arguments composition\n     * is tailored for `_.partialRight`.\n     *\n     * @private\n     * @param {Array} args The provided arguments.\n     * @param {Array} partials The arguments to append to those provided.\n     * @param {Array} holders The `partials` placeholder indexes.\n     * @params {boolean} [isCurried] Specify composing for a curried function.\n     * @returns {Array} Returns the new array of composed arguments.\n     */\n    function composeArgsRight(args, partials, holders, isCurried) {\n      var argsIndex = -1,\n          argsLength = args.length,\n          holdersIndex = -1,\n          holdersLength = holders.length,\n          rightIndex = -1,\n          rightLength = partials.length,\n          rangeLength = nativeMax(argsLength - holdersLength, 0),\n          result = Array(rangeLength + rightLength),\n          isUncurried = !isCurried;\n\n      while (++argsIndex < rangeLength) {\n        result[argsIndex] = args[argsIndex];\n      }\n      var offset = argsIndex;\n      while (++rightIndex < rightLength) {\n        result[offset + rightIndex] = partials[rightIndex];\n      }\n      while (++holdersIndex < holdersLength) {\n        if (isUncurried || argsIndex < argsLength) {\n          result[offset + holders[holdersIndex]] = args[argsIndex++];\n        }\n      }\n      return result;\n    }\n\n    /**\n     * Copies the values of `source` to `array`.\n     *\n     * @private\n     * @param {Array} source The array to copy values from.\n     * @param {Array} [array=[]] The array to copy values to.\n     * @returns {Array} Returns `array`.\n     */\n    function copyArray(source, array) {\n      var index = -1,\n          length = source.length;\n\n      array || (array = Array(length));\n      while (++index < length) {\n        array[index] = source[index];\n      }\n      return array;\n    }\n\n    /**\n     * Copies properties of `source` to `object`.\n     *\n     * @private\n     * @param {Object} source The object to copy properties from.\n     * @param {Array} props The property identifiers to copy.\n     * @param {Object} [object={}] The object to copy properties to.\n     * @param {Function} [customizer] The function to customize copied values.\n     * @returns {Object} Returns `object`.\n     */\n    function copyObject(source, props, object, customizer) {\n      var isNew = !object;\n      object || (object = {});\n\n      var index = -1,\n          length = props.length;\n\n      while (++index < length) {\n        var key = props[index];\n\n        var newValue = customizer\n          ? customizer(object[key], source[key], key, object, source)\n          : undefined;\n\n        if (newValue === undefined) {\n          newValue = source[key];\n        }\n        if (isNew) {\n          baseAssignValue(object, key, newValue);\n        } else {\n          assignValue(object, key, newValue);\n        }\n      }\n      return object;\n    }\n\n    /**\n     * Copies own symbols of `source` to `object`.\n     *\n     * @private\n     * @param {Object} source The object to copy symbols from.\n     * @param {Object} [object={}] The object to copy symbols to.\n     * @returns {Object} Returns `object`.\n     */\n    function copySymbols(source, object) {\n      return copyObject(source, getSymbols(source), object);\n    }\n\n    /**\n     * Copies own and inherited symbols of `source` to `object`.\n     *\n     * @private\n     * @param {Object} source The object to copy symbols from.\n     * @param {Object} [object={}] The object to copy symbols to.\n     * @returns {Object} Returns `object`.\n     */\n    function copySymbolsIn(source, object) {\n      return copyObject(source, getSymbolsIn(source), object);\n    }\n\n    /**\n     * Creates a function like `_.groupBy`.\n     *\n     * @private\n     * @param {Function} setter The function to set accumulator values.\n     * @param {Function} [initializer] The accumulator object initializer.\n     * @returns {Function} Returns the new aggregator function.\n     */\n    function createAggregator(setter, initializer) {\n      return function(collection, iteratee) {\n        var func = isArray(collection) ? arrayAggregator : baseAggregator,\n            accumulator = initializer ? initializer() : {};\n\n        return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n      };\n    }\n\n    /**\n     * Creates a function like `_.assign`.\n     *\n     * @private\n     * @param {Function} assigner The function to assign values.\n     * @returns {Function} Returns the new assigner function.\n     */\n    function createAssigner(assigner) {\n      return baseRest(function(object, sources) {\n        var index = -1,\n            length = sources.length,\n            customizer = length > 1 ? sources[length - 1] : undefined,\n            guard = length > 2 ? sources[2] : undefined;\n\n        customizer = (assigner.length > 3 && typeof customizer == 'function')\n          ? (length--, customizer)\n          : undefined;\n\n        if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n          customizer = length < 3 ? undefined : customizer;\n          length = 1;\n        }\n        object = Object(object);\n        while (++index < length) {\n          var source = sources[index];\n          if (source) {\n            assigner(object, source, index, customizer);\n          }\n        }\n        return object;\n      });\n    }\n\n    /**\n     * Creates a `baseEach` or `baseEachRight` function.\n     *\n     * @private\n     * @param {Function} eachFunc The function to iterate over a collection.\n     * @param {boolean} [fromRight] Specify iterating from right to left.\n     * @returns {Function} Returns the new base function.\n     */\n    function createBaseEach(eachFunc, fromRight) {\n      return function(collection, iteratee) {\n        if (collection == null) {\n          return collection;\n        }\n        if (!isArrayLike(collection)) {\n          return eachFunc(collection, iteratee);\n        }\n        var length = collection.length,\n            index = fromRight ? length : -1,\n            iterable = Object(collection);\n\n        while ((fromRight ? index-- : ++index < length)) {\n          if (iteratee(iterable[index], index, iterable) === false) {\n            break;\n          }\n        }\n        return collection;\n      };\n    }\n\n    /**\n     * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n     *\n     * @private\n     * @param {boolean} [fromRight] Specify iterating from right to left.\n     * @returns {Function} Returns the new base function.\n     */\n    function createBaseFor(fromRight) {\n      return function(object, iteratee, keysFunc) {\n        var index = -1,\n            iterable = Object(object),\n            props = keysFunc(object),\n            length = props.length;\n\n        while (length--) {\n          var key = props[fromRight ? length : ++index];\n          if (iteratee(iterable[key], key, iterable) === false) {\n            break;\n          }\n        }\n        return object;\n      };\n    }\n\n    /**\n     * Creates a function that wraps `func` to invoke it with the optional `this`\n     * binding of `thisArg`.\n     *\n     * @private\n     * @param {Function} func The function to wrap.\n     * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n     * @param {*} [thisArg] The `this` binding of `func`.\n     * @returns {Function} Returns the new wrapped function.\n     */\n    function createBind(func, bitmask, thisArg) {\n      var isBind = bitmask & WRAP_BIND_FLAG,\n          Ctor = createCtor(func);\n\n      function wrapper() {\n        var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n        return fn.apply(isBind ? thisArg : this, arguments);\n      }\n      return wrapper;\n    }\n\n    /**\n     * Creates a function like `_.lowerFirst`.\n     *\n     * @private\n     * @param {string} methodName The name of the `String` case method to use.\n     * @returns {Function} Returns the new case function.\n     */\n    function createCaseFirst(methodName) {\n      return function(string) {\n        string = toString(string);\n\n        var strSymbols = hasUnicode(string)\n          ? stringToArray(string)\n          : undefined;\n\n        var chr = strSymbols\n          ? strSymbols[0]\n          : string.charAt(0);\n\n        var trailing = strSymbols\n          ? castSlice(strSymbols, 1).join('')\n          : string.slice(1);\n\n        return chr[methodName]() + trailing;\n      };\n    }\n\n    /**\n     * Creates a function like `_.camelCase`.\n     *\n     * @private\n     * @param {Function} callback The function to combine each word.\n     * @returns {Function} Returns the new compounder function.\n     */\n    function createCompounder(callback) {\n      return function(string) {\n        return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n      };\n    }\n\n    /**\n     * Creates a function that produces an instance of `Ctor` regardless of\n     * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n     *\n     * @private\n     * @param {Function} Ctor The constructor to wrap.\n     * @returns {Function} Returns the new wrapped function.\n     */\n    function createCtor(Ctor) {\n      return function() {\n        // Use a `switch` statement to work with class constructors. See\n        // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n        // for more details.\n        var args = arguments;\n        switch (args.length) {\n          case 0: return new Ctor;\n          case 1: return new Ctor(args[0]);\n          case 2: return new Ctor(args[0], args[1]);\n          case 3: return new Ctor(args[0], args[1], args[2]);\n          case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n          case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n          case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n          case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n        }\n        var thisBinding = baseCreate(Ctor.prototype),\n            result = Ctor.apply(thisBinding, args);\n\n        // Mimic the constructor's `return` behavior.\n        // See https://es5.github.io/#x13.2.2 for more details.\n        return isObject(result) ? result : thisBinding;\n      };\n    }\n\n    /**\n     * Creates a function that wraps `func` to enable currying.\n     *\n     * @private\n     * @param {Function} func The function to wrap.\n     * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n     * @param {number} arity The arity of `func`.\n     * @returns {Function} Returns the new wrapped function.\n     */\n    function createCurry(func, bitmask, arity) {\n      var Ctor = createCtor(func);\n\n      function wrapper() {\n        var length = arguments.length,\n            args = Array(length),\n            index = length,\n            placeholder = getHolder(wrapper);\n\n        while (index--) {\n          args[index] = arguments[index];\n        }\n        var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n          ? []\n          : replaceHolders(args, placeholder);\n\n        length -= holders.length;\n        if (length < arity) {\n          return createRecurry(\n            func, bitmask, createHybrid, wrapper.placeholder, undefined,\n            args, holders, undefined, undefined, arity - length);\n        }\n        var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n        return apply(fn, this, args);\n      }\n      return wrapper;\n    }\n\n    /**\n     * Creates a `_.find` or `_.findLast` function.\n     *\n     * @private\n     * @param {Function} findIndexFunc The function to find the collection index.\n     * @returns {Function} Returns the new find function.\n     */\n    function createFind(findIndexFunc) {\n      return function(collection, predicate, fromIndex) {\n        var iterable = Object(collection);\n        if (!isArrayLike(collection)) {\n          var iteratee = getIteratee(predicate, 3);\n          collection = keys(collection);\n          predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n        }\n        var index = findIndexFunc(collection, predicate, fromIndex);\n        return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n      };\n    }\n\n    /**\n     * Creates a `_.flow` or `_.flowRight` function.\n     *\n     * @private\n     * @param {boolean} [fromRight] Specify iterating from right to left.\n     * @returns {Function} Returns the new flow function.\n     */\n    function createFlow(fromRight) {\n      return flatRest(function(funcs) {\n        var length = funcs.length,\n            index = length,\n            prereq = LodashWrapper.prototype.thru;\n\n        if (fromRight) {\n          funcs.reverse();\n        }\n        while (index--) {\n          var func = funcs[index];\n          if (typeof func != 'function') {\n            throw new TypeError(FUNC_ERROR_TEXT);\n          }\n          if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n            var wrapper = new LodashWrapper([], true);\n          }\n        }\n        index = wrapper ? index : length;\n        while (++index < length) {\n          func = funcs[index];\n\n          var funcName = getFuncName(func),\n              data = funcName == 'wrapper' ? getData(func) : undefined;\n\n          if (data && isLaziable(data[0]) &&\n                data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n                !data[4].length && data[9] == 1\n              ) {\n            wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n          } else {\n            wrapper = (func.length == 1 && isLaziable(func))\n              ? wrapper[funcName]()\n              : wrapper.thru(func);\n          }\n        }\n        return function() {\n          var args = arguments,\n              value = args[0];\n\n          if (wrapper && args.length == 1 && isArray(value)) {\n            return wrapper.plant(value).value();\n          }\n          var index = 0,\n              result = length ? funcs[index].apply(this, args) : value;\n\n          while (++index < length) {\n            result = funcs[index].call(this, result);\n          }\n          return result;\n        };\n      });\n    }\n\n    /**\n     * Creates a function that wraps `func` to invoke it with optional `this`\n     * binding of `thisArg`, partial application, and currying.\n     *\n     * @private\n     * @param {Function|string} func The function or method name to wrap.\n     * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n     * @param {*} [thisArg] The `this` binding of `func`.\n     * @param {Array} [partials] The arguments to prepend to those provided to\n     *  the new function.\n     * @param {Array} [holders] The `partials` placeholder indexes.\n     * @param {Array} [partialsRight] The arguments to append to those provided\n     *  to the new function.\n     * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n     * @param {Array} [argPos] The argument positions of the new function.\n     * @param {number} [ary] The arity cap of `func`.\n     * @param {number} [arity] The arity of `func`.\n     * @returns {Function} Returns the new wrapped function.\n     */\n    function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n      var isAry = bitmask & WRAP_ARY_FLAG,\n          isBind = bitmask & WRAP_BIND_FLAG,\n          isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n          isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n          isFlip = bitmask & WRAP_FLIP_FLAG,\n          Ctor = isBindKey ? undefined : createCtor(func);\n\n      function wrapper() {\n        var length = arguments.length,\n            args = Array(length),\n            index = length;\n\n        while (index--) {\n          args[index] = arguments[index];\n        }\n        if (isCurried) {\n          var placeholder = getHolder(wrapper),\n              holdersCount = countHolders(args, placeholder);\n        }\n        if (partials) {\n          args = composeArgs(args, partials, holders, isCurried);\n        }\n        if (partialsRight) {\n          args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n        }\n        length -= holdersCount;\n        if (isCurried && length < arity) {\n          var newHolders = replaceHolders(args, placeholder);\n          return createRecurry(\n            func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n            args, newHolders, argPos, ary, arity - length\n          );\n        }\n        var thisBinding = isBind ? thisArg : this,\n            fn = isBindKey ? thisBinding[func] : func;\n\n        length = args.length;\n        if (argPos) {\n          args = reorder(args, argPos);\n        } else if (isFlip && length > 1) {\n          args.reverse();\n        }\n        if (isAry && ary < length) {\n          args.length = ary;\n        }\n        if (this && this !== root && this instanceof wrapper) {\n          fn = Ctor || createCtor(fn);\n        }\n        return fn.apply(thisBinding, args);\n      }\n      return wrapper;\n    }\n\n    /**\n     * Creates a function like `_.invertBy`.\n     *\n     * @private\n     * @param {Function} setter The function to set accumulator values.\n     * @param {Function} toIteratee The function to resolve iteratees.\n     * @returns {Function} Returns the new inverter function.\n     */\n    function createInverter(setter, toIteratee) {\n      return function(object, iteratee) {\n        return baseInverter(object, setter, toIteratee(iteratee), {});\n      };\n    }\n\n    /**\n     * Creates a function that performs a mathematical operation on two values.\n     *\n     * @private\n     * @param {Function} operator The function to perform the operation.\n     * @param {number} [defaultValue] The value used for `undefined` arguments.\n     * @returns {Function} Returns the new mathematical operation function.\n     */\n    function createMathOperation(operator, defaultValue) {\n      return function(value, other) {\n        var result;\n        if (value === undefined && other === undefined) {\n          return defaultValue;\n        }\n        if (value !== undefined) {\n          result = value;\n        }\n        if (other !== undefined) {\n          if (result === undefined) {\n            return other;\n          }\n          if (typeof value == 'string' || typeof other == 'string') {\n            value = baseToString(value);\n            other = baseToString(other);\n          } else {\n            value = baseToNumber(value);\n            other = baseToNumber(other);\n          }\n          result = operator(value, other);\n        }\n        return result;\n      };\n    }\n\n    /**\n     * Creates a function like `_.over`.\n     *\n     * @private\n     * @param {Function} arrayFunc The function to iterate over iteratees.\n     * @returns {Function} Returns the new over function.\n     */\n    function createOver(arrayFunc) {\n      return flatRest(function(iteratees) {\n        iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n        return baseRest(function(args) {\n          var thisArg = this;\n          return arrayFunc(iteratees, function(iteratee) {\n            return apply(iteratee, thisArg, args);\n          });\n        });\n      });\n    }\n\n    /**\n     * Creates the padding for `string` based on `length`. The `chars` string\n     * is truncated if the number of characters exceeds `length`.\n     *\n     * @private\n     * @param {number} length The padding length.\n     * @param {string} [chars=' '] The string used as padding.\n     * @returns {string} Returns the padding for `string`.\n     */\n    function createPadding(length, chars) {\n      chars = chars === undefined ? ' ' : baseToString(chars);\n\n      var charsLength = chars.length;\n      if (charsLength < 2) {\n        return charsLength ? baseRepeat(chars, length) : chars;\n      }\n      var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n      return hasUnicode(chars)\n        ? castSlice(stringToArray(result), 0, length).join('')\n        : result.slice(0, length);\n    }\n\n    /**\n     * Creates a function that wraps `func` to invoke it with the `this` binding\n     * of `thisArg` and `partials` prepended to the arguments it receives.\n     *\n     * @private\n     * @param {Function} func The function to wrap.\n     * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n     * @param {*} thisArg The `this` binding of `func`.\n     * @param {Array} partials The arguments to prepend to those provided to\n     *  the new function.\n     * @returns {Function} Returns the new wrapped function.\n     */\n    function createPartial(func, bitmask, thisArg, partials) {\n      var isBind = bitmask & WRAP_BIND_FLAG,\n          Ctor = createCtor(func);\n\n      function wrapper() {\n        var argsIndex = -1,\n            argsLength = arguments.length,\n            leftIndex = -1,\n            leftLength = partials.length,\n            args = Array(leftLength + argsLength),\n            fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n        while (++leftIndex < leftLength) {\n          args[leftIndex] = partials[leftIndex];\n        }\n        while (argsLength--) {\n          args[leftIndex++] = arguments[++argsIndex];\n        }\n        return apply(fn, isBind ? thisArg : this, args);\n      }\n      return wrapper;\n    }\n\n    /**\n     * Creates a `_.range` or `_.rangeRight` function.\n     *\n     * @private\n     * @param {boolean} [fromRight] Specify iterating from right to left.\n     * @returns {Function} Returns the new range function.\n     */\n    function createRange(fromRight) {\n      return function(start, end, step) {\n        if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n          end = step = undefined;\n        }\n        // Ensure the sign of `-0` is preserved.\n        start = toFinite(start);\n        if (end === undefined) {\n          end = start;\n          start = 0;\n        } else {\n          end = toFinite(end);\n        }\n        step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n        return baseRange(start, end, step, fromRight);\n      };\n    }\n\n    /**\n     * Creates a function that performs a relational operation on two values.\n     *\n     * @private\n     * @param {Function} operator The function to perform the operation.\n     * @returns {Function} Returns the new relational operation function.\n     */\n    function createRelationalOperation(operator) {\n      return function(value, other) {\n        if (!(typeof value == 'string' && typeof other == 'string')) {\n          value = toNumber(value);\n          other = toNumber(other);\n        }\n        return operator(value, other);\n      };\n    }\n\n    /**\n     * Creates a function that wraps `func` to continue currying.\n     *\n     * @private\n     * @param {Function} func The function to wrap.\n     * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n     * @param {Function} wrapFunc The function to create the `func` wrapper.\n     * @param {*} placeholder The placeholder value.\n     * @param {*} [thisArg] The `this` binding of `func`.\n     * @param {Array} [partials] The arguments to prepend to those provided to\n     *  the new function.\n     * @param {Array} [holders] The `partials` placeholder indexes.\n     * @param {Array} [argPos] The argument positions of the new function.\n     * @param {number} [ary] The arity cap of `func`.\n     * @param {number} [arity] The arity of `func`.\n     * @returns {Function} Returns the new wrapped function.\n     */\n    function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n      var isCurry = bitmask & WRAP_CURRY_FLAG,\n          newHolders = isCurry ? holders : undefined,\n          newHoldersRight = isCurry ? undefined : holders,\n          newPartials = isCurry ? partials : undefined,\n          newPartialsRight = isCurry ? undefined : partials;\n\n      bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n      bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n      if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n        bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n      }\n      var newData = [\n        func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n        newHoldersRight, argPos, ary, arity\n      ];\n\n      var result = wrapFunc.apply(undefined, newData);\n      if (isLaziable(func)) {\n        setData(result, newData);\n      }\n      result.placeholder = placeholder;\n      return setWrapToString(result, func, bitmask);\n    }\n\n    /**\n     * Creates a function like `_.round`.\n     *\n     * @private\n     * @param {string} methodName The name of the `Math` method to use when rounding.\n     * @returns {Function} Returns the new round function.\n     */\n    function createRound(methodName) {\n      var func = Math[methodName];\n      return function(number, precision) {\n        number = toNumber(number);\n        precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n        if (precision) {\n          // Shift with exponential notation to avoid floating-point issues.\n          // See [MDN](https://mdn.io/round#Examples) for more details.\n          var pair = (toString(number) + 'e').split('e'),\n              value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n          pair = (toString(value) + 'e').split('e');\n          return +(pair[0] + 'e' + (+pair[1] - precision));\n        }\n        return func(number);\n      };\n    }\n\n    /**\n     * Creates a set object of `values`.\n     *\n     * @private\n     * @param {Array} values The values to add to the set.\n     * @returns {Object} Returns the new set.\n     */\n    var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n      return new Set(values);\n    };\n\n    /**\n     * Creates a `_.toPairs` or `_.toPairsIn` function.\n     *\n     * @private\n     * @param {Function} keysFunc The function to get the keys of a given object.\n     * @returns {Function} Returns the new pairs function.\n     */\n    function createToPairs(keysFunc) {\n      return function(object) {\n        var tag = getTag(object);\n        if (tag == mapTag) {\n          return mapToArray(object);\n        }\n        if (tag == setTag) {\n          return setToPairs(object);\n        }\n        return baseToPairs(object, keysFunc(object));\n      };\n    }\n\n    /**\n     * Creates a function that either curries or invokes `func` with optional\n     * `this` binding and partially applied arguments.\n     *\n     * @private\n     * @param {Function|string} func The function or method name to wrap.\n     * @param {number} bitmask The bitmask flags.\n     *    1 - `_.bind`\n     *    2 - `_.bindKey`\n     *    4 - `_.curry` or `_.curryRight` of a bound function\n     *    8 - `_.curry`\n     *   16 - `_.curryRight`\n     *   32 - `_.partial`\n     *   64 - `_.partialRight`\n     *  128 - `_.rearg`\n     *  256 - `_.ary`\n     *  512 - `_.flip`\n     * @param {*} [thisArg] The `this` binding of `func`.\n     * @param {Array} [partials] The arguments to be partially applied.\n     * @param {Array} [holders] The `partials` placeholder indexes.\n     * @param {Array} [argPos] The argument positions of the new function.\n     * @param {number} [ary] The arity cap of `func`.\n     * @param {number} [arity] The arity of `func`.\n     * @returns {Function} Returns the new wrapped function.\n     */\n    function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n      var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n      if (!isBindKey && typeof func != 'function') {\n        throw new TypeError(FUNC_ERROR_TEXT);\n      }\n      var length = partials ? partials.length : 0;\n      if (!length) {\n        bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n        partials = holders = undefined;\n      }\n      ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n      arity = arity === undefined ? arity : toInteger(arity);\n      length -= holders ? holders.length : 0;\n\n      if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n        var partialsRight = partials,\n            holdersRight = holders;\n\n        partials = holders = undefined;\n      }\n      var data = isBindKey ? undefined : getData(func);\n\n      var newData = [\n        func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n        argPos, ary, arity\n      ];\n\n      if (data) {\n        mergeData(newData, data);\n      }\n      func = newData[0];\n      bitmask = newData[1];\n      thisArg = newData[2];\n      partials = newData[3];\n      holders = newData[4];\n      arity = newData[9] = newData[9] === undefined\n        ? (isBindKey ? 0 : func.length)\n        : nativeMax(newData[9] - length, 0);\n\n      if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n        bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n      }\n      if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n        var result = createBind(func, bitmask, thisArg);\n      } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n        result = createCurry(func, bitmask, arity);\n      } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n        result = createPartial(func, bitmask, thisArg, partials);\n      } else {\n        result = createHybrid.apply(undefined, newData);\n      }\n      var setter = data ? baseSetData : setData;\n      return setWrapToString(setter(result, newData), func, bitmask);\n    }\n\n    /**\n     * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n     * of source objects to the destination object for all destination properties\n     * that resolve to `undefined`.\n     *\n     * @private\n     * @param {*} objValue The destination value.\n     * @param {*} srcValue The source value.\n     * @param {string} key The key of the property to assign.\n     * @param {Object} object The parent object of `objValue`.\n     * @returns {*} Returns the value to assign.\n     */\n    function customDefaultsAssignIn(objValue, srcValue, key, object) {\n      if (objValue === undefined ||\n          (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n        return srcValue;\n      }\n      return objValue;\n    }\n\n    /**\n     * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n     * objects into destination objects that are passed thru.\n     *\n     * @private\n     * @param {*} objValue The destination value.\n     * @param {*} srcValue The source value.\n     * @param {string} key The key of the property to merge.\n     * @param {Object} object The parent object of `objValue`.\n     * @param {Object} source The parent object of `srcValue`.\n     * @param {Object} [stack] Tracks traversed source values and their merged\n     *  counterparts.\n     * @returns {*} Returns the value to assign.\n     */\n    function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n      if (isObject(objValue) && isObject(srcValue)) {\n        // Recursively merge objects and arrays (susceptible to call stack limits).\n        stack.set(srcValue, objValue);\n        baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n        stack['delete'](srcValue);\n      }\n      return objValue;\n    }\n\n    /**\n     * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n     * objects.\n     *\n     * @private\n     * @param {*} value The value to inspect.\n     * @param {string} key The key of the property to inspect.\n     * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n     */\n    function customOmitClone(value) {\n      return isPlainObject(value) ? undefined : value;\n    }\n\n    /**\n     * A specialized version of `baseIsEqualDeep` for arrays with support for\n     * partial deep comparisons.\n     *\n     * @private\n     * @param {Array} array The array to compare.\n     * @param {Array} other The other array to compare.\n     * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n     * @param {Function} customizer The function to customize comparisons.\n     * @param {Function} equalFunc The function to determine equivalents of values.\n     * @param {Object} stack Tracks traversed `array` and `other` objects.\n     * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n     */\n    function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n      var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n          arrLength = array.length,\n          othLength = other.length;\n\n      if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n        return false;\n      }\n      // Assume cyclic values are equal.\n      var stacked = stack.get(array);\n      if (stacked && stack.get(other)) {\n        return stacked == other;\n      }\n      var index = -1,\n          result = true,\n          seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n      stack.set(array, other);\n      stack.set(other, array);\n\n      // Ignore non-index properties.\n      while (++index < arrLength) {\n        var arrValue = array[index],\n            othValue = other[index];\n\n        if (customizer) {\n          var compared = isPartial\n            ? customizer(othValue, arrValue, index, other, array, stack)\n            : customizer(arrValue, othValue, index, array, other, stack);\n        }\n        if (compared !== undefined) {\n          if (compared) {\n            continue;\n          }\n          result = false;\n          break;\n        }\n        // Recursively compare arrays (susceptible to call stack limits).\n        if (seen) {\n          if (!arraySome(other, function(othValue, othIndex) {\n                if (!cacheHas(seen, othIndex) &&\n                    (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n                  return seen.push(othIndex);\n                }\n              })) {\n            result = false;\n            break;\n          }\n        } else if (!(\n              arrValue === othValue ||\n                equalFunc(arrValue, othValue, bitmask, customizer, stack)\n            )) {\n          result = false;\n          break;\n        }\n      }\n      stack['delete'](array);\n      stack['delete'](other);\n      return result;\n    }\n\n    /**\n     * A specialized version of `baseIsEqualDeep` for comparing objects of\n     * the same `toStringTag`.\n     *\n     * **Note:** This function only supports comparing values with tags of\n     * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n     *\n     * @private\n     * @param {Object} object The object to compare.\n     * @param {Object} other The other object to compare.\n     * @param {string} tag The `toStringTag` of the objects to compare.\n     * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n     * @param {Function} customizer The function to customize comparisons.\n     * @param {Function} equalFunc The function to determine equivalents of values.\n     * @param {Object} stack Tracks traversed `object` and `other` objects.\n     * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n     */\n    function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n      switch (tag) {\n        case dataViewTag:\n          if ((object.byteLength != other.byteLength) ||\n              (object.byteOffset != other.byteOffset)) {\n            return false;\n          }\n          object = object.buffer;\n          other = other.buffer;\n\n        case arrayBufferTag:\n          if ((object.byteLength != other.byteLength) ||\n              !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n            return false;\n          }\n          return true;\n\n        case boolTag:\n        case dateTag:\n        case numberTag:\n          // Coerce booleans to `1` or `0` and dates to milliseconds.\n          // Invalid dates are coerced to `NaN`.\n          return eq(+object, +other);\n\n        case errorTag:\n          return object.name == other.name && object.message == other.message;\n\n        case regexpTag:\n        case stringTag:\n          // Coerce regexes to strings and treat strings, primitives and objects,\n          // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n          // for more details.\n          return object == (other + '');\n\n        case mapTag:\n          var convert = mapToArray;\n\n        case setTag:\n          var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n          convert || (convert = setToArray);\n\n          if (object.size != other.size && !isPartial) {\n            return false;\n          }\n          // Assume cyclic values are equal.\n          var stacked = stack.get(object);\n          if (stacked) {\n            return stacked == other;\n          }\n          bitmask |= COMPARE_UNORDERED_FLAG;\n\n          // Recursively compare objects (susceptible to call stack limits).\n          stack.set(object, other);\n          var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n          stack['delete'](object);\n          return result;\n\n        case symbolTag:\n          if (symbolValueOf) {\n            return symbolValueOf.call(object) == symbolValueOf.call(other);\n          }\n      }\n      return false;\n    }\n\n    /**\n     * A specialized version of `baseIsEqualDeep` for objects with support for\n     * partial deep comparisons.\n     *\n     * @private\n     * @param {Object} object The object to compare.\n     * @param {Object} other The other object to compare.\n     * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n     * @param {Function} customizer The function to customize comparisons.\n     * @param {Function} equalFunc The function to determine equivalents of values.\n     * @param {Object} stack Tracks traversed `object` and `other` objects.\n     * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n     */\n    function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n      var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n          objProps = getAllKeys(object),\n          objLength = objProps.length,\n          othProps = getAllKeys(other),\n          othLength = othProps.length;\n\n      if (objLength != othLength && !isPartial) {\n        return false;\n      }\n      var index = objLength;\n      while (index--) {\n        var key = objProps[index];\n        if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n          return false;\n        }\n      }\n      // Assume cyclic values are equal.\n      var stacked = stack.get(object);\n      if (stacked && stack.get(other)) {\n        return stacked == other;\n      }\n      var result = true;\n      stack.set(object, other);\n      stack.set(other, object);\n\n      var skipCtor = isPartial;\n      while (++index < objLength) {\n        key = objProps[index];\n        var objValue = object[key],\n            othValue = other[key];\n\n        if (customizer) {\n          var compared = isPartial\n            ? customizer(othValue, objValue, key, other, object, stack)\n            : customizer(objValue, othValue, key, object, other, stack);\n        }\n        // Recursively compare objects (susceptible to call stack limits).\n        if (!(compared === undefined\n              ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n              : compared\n            )) {\n          result = false;\n          break;\n        }\n        skipCtor || (skipCtor = key == 'constructor');\n      }\n      if (result && !skipCtor) {\n        var objCtor = object.constructor,\n            othCtor = other.constructor;\n\n        // Non `Object` object instances with different constructors are not equal.\n        if (objCtor != othCtor &&\n            ('constructor' in object && 'constructor' in other) &&\n            !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n              typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n          result = false;\n        }\n      }\n      stack['delete'](object);\n      stack['delete'](other);\n      return result;\n    }\n\n    /**\n     * A specialized version of `baseRest` which flattens the rest array.\n     *\n     * @private\n     * @param {Function} func The function to apply a rest parameter to.\n     * @returns {Function} Returns the new function.\n     */\n    function flatRest(func) {\n      return setToString(overRest(func, undefined, flatten), func + '');\n    }\n\n    /**\n     * Creates an array of own enumerable property names and symbols of `object`.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of property names and symbols.\n     */\n    function getAllKeys(object) {\n      return baseGetAllKeys(object, keys, getSymbols);\n    }\n\n    /**\n     * Creates an array of own and inherited enumerable property names and\n     * symbols of `object`.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of property names and symbols.\n     */\n    function getAllKeysIn(object) {\n      return baseGetAllKeys(object, keysIn, getSymbolsIn);\n    }\n\n    /**\n     * Gets metadata for `func`.\n     *\n     * @private\n     * @param {Function} func The function to query.\n     * @returns {*} Returns the metadata for `func`.\n     */\n    var getData = !metaMap ? noop : function(func) {\n      return metaMap.get(func);\n    };\n\n    /**\n     * Gets the name of `func`.\n     *\n     * @private\n     * @param {Function} func The function to query.\n     * @returns {string} Returns the function name.\n     */\n    function getFuncName(func) {\n      var result = (func.name + ''),\n          array = realNames[result],\n          length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n      while (length--) {\n        var data = array[length],\n            otherFunc = data.func;\n        if (otherFunc == null || otherFunc == func) {\n          return data.name;\n        }\n      }\n      return result;\n    }\n\n    /**\n     * Gets the argument placeholder value for `func`.\n     *\n     * @private\n     * @param {Function} func The function to inspect.\n     * @returns {*} Returns the placeholder value.\n     */\n    function getHolder(func) {\n      var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n      return object.placeholder;\n    }\n\n    /**\n     * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n     * this function returns the custom method, otherwise it returns `baseIteratee`.\n     * If arguments are provided, the chosen function is invoked with them and\n     * its result is returned.\n     *\n     * @private\n     * @param {*} [value] The value to convert to an iteratee.\n     * @param {number} [arity] The arity of the created iteratee.\n     * @returns {Function} Returns the chosen function or its result.\n     */\n    function getIteratee() {\n      var result = lodash.iteratee || iteratee;\n      result = result === iteratee ? baseIteratee : result;\n      return arguments.length ? result(arguments[0], arguments[1]) : result;\n    }\n\n    /**\n     * Gets the data for `map`.\n     *\n     * @private\n     * @param {Object} map The map to query.\n     * @param {string} key The reference key.\n     * @returns {*} Returns the map data.\n     */\n    function getMapData(map, key) {\n      var data = map.__data__;\n      return isKeyable(key)\n        ? data[typeof key == 'string' ? 'string' : 'hash']\n        : data.map;\n    }\n\n    /**\n     * Gets the property names, values, and compare flags of `object`.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the match data of `object`.\n     */\n    function getMatchData(object) {\n      var result = keys(object),\n          length = result.length;\n\n      while (length--) {\n        var key = result[length],\n            value = object[key];\n\n        result[length] = [key, value, isStrictComparable(value)];\n      }\n      return result;\n    }\n\n    /**\n     * Gets the native function at `key` of `object`.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @param {string} key The key of the method to get.\n     * @returns {*} Returns the function if it's native, else `undefined`.\n     */\n    function getNative(object, key) {\n      var value = getValue(object, key);\n      return baseIsNative(value) ? value : undefined;\n    }\n\n    /**\n     * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n     *\n     * @private\n     * @param {*} value The value to query.\n     * @returns {string} Returns the raw `toStringTag`.\n     */\n    function getRawTag(value) {\n      var isOwn = hasOwnProperty.call(value, symToStringTag),\n          tag = value[symToStringTag];\n\n      try {\n        value[symToStringTag] = undefined;\n        var unmasked = true;\n      } catch (e) {}\n\n      var result = nativeObjectToString.call(value);\n      if (unmasked) {\n        if (isOwn) {\n          value[symToStringTag] = tag;\n        } else {\n          delete value[symToStringTag];\n        }\n      }\n      return result;\n    }\n\n    /**\n     * Creates an array of the own enumerable symbols of `object`.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of symbols.\n     */\n    var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n      if (object == null) {\n        return [];\n      }\n      object = Object(object);\n      return arrayFilter(nativeGetSymbols(object), function(symbol) {\n        return propertyIsEnumerable.call(object, symbol);\n      });\n    };\n\n    /**\n     * Creates an array of the own and inherited enumerable symbols of `object`.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of symbols.\n     */\n    var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n      var result = [];\n      while (object) {\n        arrayPush(result, getSymbols(object));\n        object = getPrototype(object);\n      }\n      return result;\n    };\n\n    /**\n     * Gets the `toStringTag` of `value`.\n     *\n     * @private\n     * @param {*} value The value to query.\n     * @returns {string} Returns the `toStringTag`.\n     */\n    var getTag = baseGetTag;\n\n    // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n    if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n        (Map && getTag(new Map) != mapTag) ||\n        (Promise && getTag(Promise.resolve()) != promiseTag) ||\n        (Set && getTag(new Set) != setTag) ||\n        (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n      getTag = function(value) {\n        var result = baseGetTag(value),\n            Ctor = result == objectTag ? value.constructor : undefined,\n            ctorString = Ctor ? toSource(Ctor) : '';\n\n        if (ctorString) {\n          switch (ctorString) {\n            case dataViewCtorString: return dataViewTag;\n            case mapCtorString: return mapTag;\n            case promiseCtorString: return promiseTag;\n            case setCtorString: return setTag;\n            case weakMapCtorString: return weakMapTag;\n          }\n        }\n        return result;\n      };\n    }\n\n    /**\n     * Gets the view, applying any `transforms` to the `start` and `end` positions.\n     *\n     * @private\n     * @param {number} start The start of the view.\n     * @param {number} end The end of the view.\n     * @param {Array} transforms The transformations to apply to the view.\n     * @returns {Object} Returns an object containing the `start` and `end`\n     *  positions of the view.\n     */\n    function getView(start, end, transforms) {\n      var index = -1,\n          length = transforms.length;\n\n      while (++index < length) {\n        var data = transforms[index],\n            size = data.size;\n\n        switch (data.type) {\n          case 'drop':      start += size; break;\n          case 'dropRight': end -= size; break;\n          case 'take':      end = nativeMin(end, start + size); break;\n          case 'takeRight': start = nativeMax(start, end - size); break;\n        }\n      }\n      return { 'start': start, 'end': end };\n    }\n\n    /**\n     * Extracts wrapper details from the `source` body comment.\n     *\n     * @private\n     * @param {string} source The source to inspect.\n     * @returns {Array} Returns the wrapper details.\n     */\n    function getWrapDetails(source) {\n      var match = source.match(reWrapDetails);\n      return match ? match[1].split(reSplitDetails) : [];\n    }\n\n    /**\n     * Checks if `path` exists on `object`.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @param {Array|string} path The path to check.\n     * @param {Function} hasFunc The function to check properties.\n     * @returns {boolean} Returns `true` if `path` exists, else `false`.\n     */\n    function hasPath(object, path, hasFunc) {\n      path = castPath(path, object);\n\n      var index = -1,\n          length = path.length,\n          result = false;\n\n      while (++index < length) {\n        var key = toKey(path[index]);\n        if (!(result = object != null && hasFunc(object, key))) {\n          break;\n        }\n        object = object[key];\n      }\n      if (result || ++index != length) {\n        return result;\n      }\n      length = object == null ? 0 : object.length;\n      return !!length && isLength(length) && isIndex(key, length) &&\n        (isArray(object) || isArguments(object));\n    }\n\n    /**\n     * Initializes an array clone.\n     *\n     * @private\n     * @param {Array} array The array to clone.\n     * @returns {Array} Returns the initialized clone.\n     */\n    function initCloneArray(array) {\n      var length = array.length,\n          result = new array.constructor(length);\n\n      // Add properties assigned by `RegExp#exec`.\n      if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n        result.index = array.index;\n        result.input = array.input;\n      }\n      return result;\n    }\n\n    /**\n     * Initializes an object clone.\n     *\n     * @private\n     * @param {Object} object The object to clone.\n     * @returns {Object} Returns the initialized clone.\n     */\n    function initCloneObject(object) {\n      return (typeof object.constructor == 'function' && !isPrototype(object))\n        ? baseCreate(getPrototype(object))\n        : {};\n    }\n\n    /**\n     * Initializes an object clone based on its `toStringTag`.\n     *\n     * **Note:** This function only supports cloning values with tags of\n     * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n     *\n     * @private\n     * @param {Object} object The object to clone.\n     * @param {string} tag The `toStringTag` of the object to clone.\n     * @param {boolean} [isDeep] Specify a deep clone.\n     * @returns {Object} Returns the initialized clone.\n     */\n    function initCloneByTag(object, tag, isDeep) {\n      var Ctor = object.constructor;\n      switch (tag) {\n        case arrayBufferTag:\n          return cloneArrayBuffer(object);\n\n        case boolTag:\n        case dateTag:\n          return new Ctor(+object);\n\n        case dataViewTag:\n          return cloneDataView(object, isDeep);\n\n        case float32Tag: case float64Tag:\n        case int8Tag: case int16Tag: case int32Tag:\n        case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n          return cloneTypedArray(object, isDeep);\n\n        case mapTag:\n          return new Ctor;\n\n        case numberTag:\n        case stringTag:\n          return new Ctor(object);\n\n        case regexpTag:\n          return cloneRegExp(object);\n\n        case setTag:\n          return new Ctor;\n\n        case symbolTag:\n          return cloneSymbol(object);\n      }\n    }\n\n    /**\n     * Inserts wrapper `details` in a comment at the top of the `source` body.\n     *\n     * @private\n     * @param {string} source The source to modify.\n     * @returns {Array} details The details to insert.\n     * @returns {string} Returns the modified source.\n     */\n    function insertWrapDetails(source, details) {\n      var length = details.length;\n      if (!length) {\n        return source;\n      }\n      var lastIndex = length - 1;\n      details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n      details = details.join(length > 2 ? ', ' : ' ');\n      return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n    }\n\n    /**\n     * Checks if `value` is a flattenable `arguments` object or array.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n     */\n    function isFlattenable(value) {\n      return isArray(value) || isArguments(value) ||\n        !!(spreadableSymbol && value && value[spreadableSymbol]);\n    }\n\n    /**\n     * Checks if `value` is a valid array-like index.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n     * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n     */\n    function isIndex(value, length) {\n      var type = typeof value;\n      length = length == null ? MAX_SAFE_INTEGER : length;\n\n      return !!length &&\n        (type == 'number' ||\n          (type != 'symbol' && reIsUint.test(value))) &&\n            (value > -1 && value % 1 == 0 && value < length);\n    }\n\n    /**\n     * Checks if the given arguments are from an iteratee call.\n     *\n     * @private\n     * @param {*} value The potential iteratee value argument.\n     * @param {*} index The potential iteratee index or key argument.\n     * @param {*} object The potential iteratee object argument.\n     * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n     *  else `false`.\n     */\n    function isIterateeCall(value, index, object) {\n      if (!isObject(object)) {\n        return false;\n      }\n      var type = typeof index;\n      if (type == 'number'\n            ? (isArrayLike(object) && isIndex(index, object.length))\n            : (type == 'string' && index in object)\n          ) {\n        return eq(object[index], value);\n      }\n      return false;\n    }\n\n    /**\n     * Checks if `value` is a property name and not a property path.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @param {Object} [object] The object to query keys on.\n     * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n     */\n    function isKey(value, object) {\n      if (isArray(value)) {\n        return false;\n      }\n      var type = typeof value;\n      if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n          value == null || isSymbol(value)) {\n        return true;\n      }\n      return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n        (object != null && value in Object(object));\n    }\n\n    /**\n     * Checks if `value` is suitable for use as unique object key.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n     */\n    function isKeyable(value) {\n      var type = typeof value;\n      return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n        ? (value !== '__proto__')\n        : (value === null);\n    }\n\n    /**\n     * Checks if `func` has a lazy counterpart.\n     *\n     * @private\n     * @param {Function} func The function to check.\n     * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n     *  else `false`.\n     */\n    function isLaziable(func) {\n      var funcName = getFuncName(func),\n          other = lodash[funcName];\n\n      if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n        return false;\n      }\n      if (func === other) {\n        return true;\n      }\n      var data = getData(other);\n      return !!data && func === data[0];\n    }\n\n    /**\n     * Checks if `func` has its source masked.\n     *\n     * @private\n     * @param {Function} func The function to check.\n     * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n     */\n    function isMasked(func) {\n      return !!maskSrcKey && (maskSrcKey in func);\n    }\n\n    /**\n     * Checks if `func` is capable of being masked.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n     */\n    var isMaskable = coreJsData ? isFunction : stubFalse;\n\n    /**\n     * Checks if `value` is likely a prototype object.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n     */\n    function isPrototype(value) {\n      var Ctor = value && value.constructor,\n          proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n      return value === proto;\n    }\n\n    /**\n     * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` if suitable for strict\n     *  equality comparisons, else `false`.\n     */\n    function isStrictComparable(value) {\n      return value === value && !isObject(value);\n    }\n\n    /**\n     * A specialized version of `matchesProperty` for source values suitable\n     * for strict equality comparisons, i.e. `===`.\n     *\n     * @private\n     * @param {string} key The key of the property to get.\n     * @param {*} srcValue The value to match.\n     * @returns {Function} Returns the new spec function.\n     */\n    function matchesStrictComparable(key, srcValue) {\n      return function(object) {\n        if (object == null) {\n          return false;\n        }\n        return object[key] === srcValue &&\n          (srcValue !== undefined || (key in Object(object)));\n      };\n    }\n\n    /**\n     * A specialized version of `_.memoize` which clears the memoized function's\n     * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n     *\n     * @private\n     * @param {Function} func The function to have its output memoized.\n     * @returns {Function} Returns the new memoized function.\n     */\n    function memoizeCapped(func) {\n      var result = memoize(func, function(key) {\n        if (cache.size === MAX_MEMOIZE_SIZE) {\n          cache.clear();\n        }\n        return key;\n      });\n\n      var cache = result.cache;\n      return result;\n    }\n\n    /**\n     * Merges the function metadata of `source` into `data`.\n     *\n     * Merging metadata reduces the number of wrappers used to invoke a function.\n     * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n     * may be applied regardless of execution order. Methods like `_.ary` and\n     * `_.rearg` modify function arguments, making the order in which they are\n     * executed important, preventing the merging of metadata. However, we make\n     * an exception for a safe combined case where curried functions have `_.ary`\n     * and or `_.rearg` applied.\n     *\n     * @private\n     * @param {Array} data The destination metadata.\n     * @param {Array} source The source metadata.\n     * @returns {Array} Returns `data`.\n     */\n    function mergeData(data, source) {\n      var bitmask = data[1],\n          srcBitmask = source[1],\n          newBitmask = bitmask | srcBitmask,\n          isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n      var isCombo =\n        ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n        ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n        ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n      // Exit early if metadata can't be merged.\n      if (!(isCommon || isCombo)) {\n        return data;\n      }\n      // Use source `thisArg` if available.\n      if (srcBitmask & WRAP_BIND_FLAG) {\n        data[2] = source[2];\n        // Set when currying a bound function.\n        newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n      }\n      // Compose partial arguments.\n      var value = source[3];\n      if (value) {\n        var partials = data[3];\n        data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n        data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n      }\n      // Compose partial right arguments.\n      value = source[5];\n      if (value) {\n        partials = data[5];\n        data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n        data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n      }\n      // Use source `argPos` if available.\n      value = source[7];\n      if (value) {\n        data[7] = value;\n      }\n      // Use source `ary` if it's smaller.\n      if (srcBitmask & WRAP_ARY_FLAG) {\n        data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n      }\n      // Use source `arity` if one is not provided.\n      if (data[9] == null) {\n        data[9] = source[9];\n      }\n      // Use source `func` and merge bitmasks.\n      data[0] = source[0];\n      data[1] = newBitmask;\n\n      return data;\n    }\n\n    /**\n     * This function is like\n     * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n     * except that it includes inherited enumerable properties.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of property names.\n     */\n    function nativeKeysIn(object) {\n      var result = [];\n      if (object != null) {\n        for (var key in Object(object)) {\n          result.push(key);\n        }\n      }\n      return result;\n    }\n\n    /**\n     * Converts `value` to a string using `Object.prototype.toString`.\n     *\n     * @private\n     * @param {*} value The value to convert.\n     * @returns {string} Returns the converted string.\n     */\n    function objectToString(value) {\n      return nativeObjectToString.call(value);\n    }\n\n    /**\n     * A specialized version of `baseRest` which transforms the rest array.\n     *\n     * @private\n     * @param {Function} func The function to apply a rest parameter to.\n     * @param {number} [start=func.length-1] The start position of the rest parameter.\n     * @param {Function} transform The rest array transform.\n     * @returns {Function} Returns the new function.\n     */\n    function overRest(func, start, transform) {\n      start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n      return function() {\n        var args = arguments,\n            index = -1,\n            length = nativeMax(args.length - start, 0),\n            array = Array(length);\n\n        while (++index < length) {\n          array[index] = args[start + index];\n        }\n        index = -1;\n        var otherArgs = Array(start + 1);\n        while (++index < start) {\n          otherArgs[index] = args[index];\n        }\n        otherArgs[start] = transform(array);\n        return apply(func, this, otherArgs);\n      };\n    }\n\n    /**\n     * Gets the parent value at `path` of `object`.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @param {Array} path The path to get the parent value of.\n     * @returns {*} Returns the parent value.\n     */\n    function parent(object, path) {\n      return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n    }\n\n    /**\n     * Reorder `array` according to the specified indexes where the element at\n     * the first index is assigned as the first element, the element at\n     * the second index is assigned as the second element, and so on.\n     *\n     * @private\n     * @param {Array} array The array to reorder.\n     * @param {Array} indexes The arranged array indexes.\n     * @returns {Array} Returns `array`.\n     */\n    function reorder(array, indexes) {\n      var arrLength = array.length,\n          length = nativeMin(indexes.length, arrLength),\n          oldArray = copyArray(array);\n\n      while (length--) {\n        var index = indexes[length];\n        array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n      }\n      return array;\n    }\n\n    /**\n     * Gets the value at `key`, unless `key` is \"__proto__\".\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @param {string} key The key of the property to get.\n     * @returns {*} Returns the property value.\n     */\n    function safeGet(object, key) {\n      if (key == '__proto__') {\n        return;\n      }\n\n      return object[key];\n    }\n\n    /**\n     * Sets metadata for `func`.\n     *\n     * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n     * period of time, it will trip its breaker and transition to an identity\n     * function to avoid garbage collection pauses in V8. See\n     * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n     * for more details.\n     *\n     * @private\n     * @param {Function} func The function to associate metadata with.\n     * @param {*} data The metadata.\n     * @returns {Function} Returns `func`.\n     */\n    var setData = shortOut(baseSetData);\n\n    /**\n     * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n     *\n     * @private\n     * @param {Function} func The function to delay.\n     * @param {number} wait The number of milliseconds to delay invocation.\n     * @returns {number|Object} Returns the timer id or timeout object.\n     */\n    var setTimeout = ctxSetTimeout || function(func, wait) {\n      return root.setTimeout(func, wait);\n    };\n\n    /**\n     * Sets the `toString` method of `func` to return `string`.\n     *\n     * @private\n     * @param {Function} func The function to modify.\n     * @param {Function} string The `toString` result.\n     * @returns {Function} Returns `func`.\n     */\n    var setToString = shortOut(baseSetToString);\n\n    /**\n     * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n     * with wrapper details in a comment at the top of the source body.\n     *\n     * @private\n     * @param {Function} wrapper The function to modify.\n     * @param {Function} reference The reference function.\n     * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n     * @returns {Function} Returns `wrapper`.\n     */\n    function setWrapToString(wrapper, reference, bitmask) {\n      var source = (reference + '');\n      return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n    }\n\n    /**\n     * Creates a function that'll short out and invoke `identity` instead\n     * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n     * milliseconds.\n     *\n     * @private\n     * @param {Function} func The function to restrict.\n     * @returns {Function} Returns the new shortable function.\n     */\n    function shortOut(func) {\n      var count = 0,\n          lastCalled = 0;\n\n      return function() {\n        var stamp = nativeNow(),\n            remaining = HOT_SPAN - (stamp - lastCalled);\n\n        lastCalled = stamp;\n        if (remaining > 0) {\n          if (++count >= HOT_COUNT) {\n            return arguments[0];\n          }\n        } else {\n          count = 0;\n        }\n        return func.apply(undefined, arguments);\n      };\n    }\n\n    /**\n     * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n     *\n     * @private\n     * @param {Array} array The array to shuffle.\n     * @param {number} [size=array.length] The size of `array`.\n     * @returns {Array} Returns `array`.\n     */\n    function shuffleSelf(array, size) {\n      var index = -1,\n          length = array.length,\n          lastIndex = length - 1;\n\n      size = size === undefined ? length : size;\n      while (++index < size) {\n        var rand = baseRandom(index, lastIndex),\n            value = array[rand];\n\n        array[rand] = array[index];\n        array[index] = value;\n      }\n      array.length = size;\n      return array;\n    }\n\n    /**\n     * Converts `string` to a property path array.\n     *\n     * @private\n     * @param {string} string The string to convert.\n     * @returns {Array} Returns the property path array.\n     */\n    var stringToPath = memoizeCapped(function(string) {\n      var result = [];\n      if (string.charCodeAt(0) === 46 /* . */) {\n        result.push('');\n      }\n      string.replace(rePropName, function(match, number, quote, subString) {\n        result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n      });\n      return result;\n    });\n\n    /**\n     * Converts `value` to a string key if it's not a string or symbol.\n     *\n     * @private\n     * @param {*} value The value to inspect.\n     * @returns {string|symbol} Returns the key.\n     */\n    function toKey(value) {\n      if (typeof value == 'string' || isSymbol(value)) {\n        return value;\n      }\n      var result = (value + '');\n      return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n    }\n\n    /**\n     * Converts `func` to its source code.\n     *\n     * @private\n     * @param {Function} func The function to convert.\n     * @returns {string} Returns the source code.\n     */\n    function toSource(func) {\n      if (func != null) {\n        try {\n          return funcToString.call(func);\n        } catch (e) {}\n        try {\n          return (func + '');\n        } catch (e) {}\n      }\n      return '';\n    }\n\n    /**\n     * Updates wrapper `details` based on `bitmask` flags.\n     *\n     * @private\n     * @returns {Array} details The details to modify.\n     * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n     * @returns {Array} Returns `details`.\n     */\n    function updateWrapDetails(details, bitmask) {\n      arrayEach(wrapFlags, function(pair) {\n        var value = '_.' + pair[0];\n        if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n          details.push(value);\n        }\n      });\n      return details.sort();\n    }\n\n    /**\n     * Creates a clone of `wrapper`.\n     *\n     * @private\n     * @param {Object} wrapper The wrapper to clone.\n     * @returns {Object} Returns the cloned wrapper.\n     */\n    function wrapperClone(wrapper) {\n      if (wrapper instanceof LazyWrapper) {\n        return wrapper.clone();\n      }\n      var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n      result.__actions__ = copyArray(wrapper.__actions__);\n      result.__index__  = wrapper.__index__;\n      result.__values__ = wrapper.__values__;\n      return result;\n    }\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Creates an array of elements split into groups the length of `size`.\n     * If `array` can't be split evenly, the final chunk will be the remaining\n     * elements.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The array to process.\n     * @param {number} [size=1] The length of each chunk\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Array} Returns the new array of chunks.\n     * @example\n     *\n     * _.chunk(['a', 'b', 'c', 'd'], 2);\n     * // => [['a', 'b'], ['c', 'd']]\n     *\n     * _.chunk(['a', 'b', 'c', 'd'], 3);\n     * // => [['a', 'b', 'c'], ['d']]\n     */\n    function chunk(array, size, guard) {\n      if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n        size = 1;\n      } else {\n        size = nativeMax(toInteger(size), 0);\n      }\n      var length = array == null ? 0 : array.length;\n      if (!length || size < 1) {\n        return [];\n      }\n      var index = 0,\n          resIndex = 0,\n          result = Array(nativeCeil(length / size));\n\n      while (index < length) {\n        result[resIndex++] = baseSlice(array, index, (index += size));\n      }\n      return result;\n    }\n\n    /**\n     * Creates an array with all falsey values removed. The values `false`, `null`,\n     * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The array to compact.\n     * @returns {Array} Returns the new array of filtered values.\n     * @example\n     *\n     * _.compact([0, 1, false, 2, '', 3]);\n     * // => [1, 2, 3]\n     */\n    function compact(array) {\n      var index = -1,\n          length = array == null ? 0 : array.length,\n          resIndex = 0,\n          result = [];\n\n      while (++index < length) {\n        var value = array[index];\n        if (value) {\n          result[resIndex++] = value;\n        }\n      }\n      return result;\n    }\n\n    /**\n     * Creates a new array concatenating `array` with any additional arrays\n     * and/or values.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to concatenate.\n     * @param {...*} [values] The values to concatenate.\n     * @returns {Array} Returns the new concatenated array.\n     * @example\n     *\n     * var array = [1];\n     * var other = _.concat(array, 2, [3], [[4]]);\n     *\n     * console.log(other);\n     * // => [1, 2, 3, [4]]\n     *\n     * console.log(array);\n     * // => [1]\n     */\n    function concat() {\n      var length = arguments.length;\n      if (!length) {\n        return [];\n      }\n      var args = Array(length - 1),\n          array = arguments[0],\n          index = length;\n\n      while (index--) {\n        args[index - 1] = arguments[index];\n      }\n      return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n    }\n\n    /**\n     * Creates an array of `array` values not included in the other given arrays\n     * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n     * for equality comparisons. The order and references of result values are\n     * determined by the first array.\n     *\n     * **Note:** Unlike `_.pullAll`, this method returns a new array.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {...Array} [values] The values to exclude.\n     * @returns {Array} Returns the new array of filtered values.\n     * @see _.without, _.xor\n     * @example\n     *\n     * _.difference([2, 1], [2, 3]);\n     * // => [1]\n     */\n    var difference = baseRest(function(array, values) {\n      return isArrayLikeObject(array)\n        ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n        : [];\n    });\n\n    /**\n     * This method is like `_.difference` except that it accepts `iteratee` which\n     * is invoked for each element of `array` and `values` to generate the criterion\n     * by which they're compared. The order and references of result values are\n     * determined by the first array. The iteratee is invoked with one argument:\n     * (value).\n     *\n     * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {...Array} [values] The values to exclude.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {Array} Returns the new array of filtered values.\n     * @example\n     *\n     * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n     * // => [1.2]\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n     * // => [{ 'x': 2 }]\n     */\n    var differenceBy = baseRest(function(array, values) {\n      var iteratee = last(values);\n      if (isArrayLikeObject(iteratee)) {\n        iteratee = undefined;\n      }\n      return isArrayLikeObject(array)\n        ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n        : [];\n    });\n\n    /**\n     * This method is like `_.difference` except that it accepts `comparator`\n     * which is invoked to compare elements of `array` to `values`. The order and\n     * references of result values are determined by the first array. The comparator\n     * is invoked with two arguments: (arrVal, othVal).\n     *\n     * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {...Array} [values] The values to exclude.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns the new array of filtered values.\n     * @example\n     *\n     * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n     *\n     * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n     * // => [{ 'x': 2, 'y': 1 }]\n     */\n    var differenceWith = baseRest(function(array, values) {\n      var comparator = last(values);\n      if (isArrayLikeObject(comparator)) {\n        comparator = undefined;\n      }\n      return isArrayLikeObject(array)\n        ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n        : [];\n    });\n\n    /**\n     * Creates a slice of `array` with `n` elements dropped from the beginning.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.5.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @param {number} [n=1] The number of elements to drop.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Array} Returns the slice of `array`.\n     * @example\n     *\n     * _.drop([1, 2, 3]);\n     * // => [2, 3]\n     *\n     * _.drop([1, 2, 3], 2);\n     * // => [3]\n     *\n     * _.drop([1, 2, 3], 5);\n     * // => []\n     *\n     * _.drop([1, 2, 3], 0);\n     * // => [1, 2, 3]\n     */\n    function drop(array, n, guard) {\n      var length = array == null ? 0 : array.length;\n      if (!length) {\n        return [];\n      }\n      n = (guard || n === undefined) ? 1 : toInteger(n);\n      return baseSlice(array, n < 0 ? 0 : n, length);\n    }\n\n    /**\n     * Creates a slice of `array` with `n` elements dropped from the end.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @param {number} [n=1] The number of elements to drop.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Array} Returns the slice of `array`.\n     * @example\n     *\n     * _.dropRight([1, 2, 3]);\n     * // => [1, 2]\n     *\n     * _.dropRight([1, 2, 3], 2);\n     * // => [1]\n     *\n     * _.dropRight([1, 2, 3], 5);\n     * // => []\n     *\n     * _.dropRight([1, 2, 3], 0);\n     * // => [1, 2, 3]\n     */\n    function dropRight(array, n, guard) {\n      var length = array == null ? 0 : array.length;\n      if (!length) {\n        return [];\n      }\n      n = (guard || n === undefined) ? 1 : toInteger(n);\n      n = length - n;\n      return baseSlice(array, 0, n < 0 ? 0 : n);\n    }\n\n    /**\n     * Creates a slice of `array` excluding elements dropped from the end.\n     * Elements are dropped until `predicate` returns falsey. The predicate is\n     * invoked with three arguments: (value, index, array).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the slice of `array`.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney',  'active': true },\n     *   { 'user': 'fred',    'active': false },\n     *   { 'user': 'pebbles', 'active': false }\n     * ];\n     *\n     * _.dropRightWhile(users, function(o) { return !o.active; });\n     * // => objects for ['barney']\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n     * // => objects for ['barney', 'fred']\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.dropRightWhile(users, ['active', false]);\n     * // => objects for ['barney']\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.dropRightWhile(users, 'active');\n     * // => objects for ['barney', 'fred', 'pebbles']\n     */\n    function dropRightWhile(array, predicate) {\n      return (array && array.length)\n        ? baseWhile(array, getIteratee(predicate, 3), true, true)\n        : [];\n    }\n\n    /**\n     * Creates a slice of `array` excluding elements dropped from the beginning.\n     * Elements are dropped until `predicate` returns falsey. The predicate is\n     * invoked with three arguments: (value, index, array).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the slice of `array`.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney',  'active': false },\n     *   { 'user': 'fred',    'active': false },\n     *   { 'user': 'pebbles', 'active': true }\n     * ];\n     *\n     * _.dropWhile(users, function(o) { return !o.active; });\n     * // => objects for ['pebbles']\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.dropWhile(users, { 'user': 'barney', 'active': false });\n     * // => objects for ['fred', 'pebbles']\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.dropWhile(users, ['active', false]);\n     * // => objects for ['pebbles']\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.dropWhile(users, 'active');\n     * // => objects for ['barney', 'fred', 'pebbles']\n     */\n    function dropWhile(array, predicate) {\n      return (array && array.length)\n        ? baseWhile(array, getIteratee(predicate, 3), true)\n        : [];\n    }\n\n    /**\n     * Fills elements of `array` with `value` from `start` up to, but not\n     * including, `end`.\n     *\n     * **Note:** This method mutates `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.2.0\n     * @category Array\n     * @param {Array} array The array to fill.\n     * @param {*} value The value to fill `array` with.\n     * @param {number} [start=0] The start position.\n     * @param {number} [end=array.length] The end position.\n     * @returns {Array} Returns `array`.\n     * @example\n     *\n     * var array = [1, 2, 3];\n     *\n     * _.fill(array, 'a');\n     * console.log(array);\n     * // => ['a', 'a', 'a']\n     *\n     * _.fill(Array(3), 2);\n     * // => [2, 2, 2]\n     *\n     * _.fill([4, 6, 8, 10], '*', 1, 3);\n     * // => [4, '*', '*', 10]\n     */\n    function fill(array, value, start, end) {\n      var length = array == null ? 0 : array.length;\n      if (!length) {\n        return [];\n      }\n      if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n        start = 0;\n        end = length;\n      }\n      return baseFill(array, value, start, end);\n    }\n\n    /**\n     * This method is like `_.find` except that it returns the index of the first\n     * element `predicate` returns truthy for instead of the element itself.\n     *\n     * @static\n     * @memberOf _\n     * @since 1.1.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @param {number} [fromIndex=0] The index to search from.\n     * @returns {number} Returns the index of the found element, else `-1`.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney',  'active': false },\n     *   { 'user': 'fred',    'active': false },\n     *   { 'user': 'pebbles', 'active': true }\n     * ];\n     *\n     * _.findIndex(users, function(o) { return o.user == 'barney'; });\n     * // => 0\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.findIndex(users, { 'user': 'fred', 'active': false });\n     * // => 1\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.findIndex(users, ['active', false]);\n     * // => 0\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.findIndex(users, 'active');\n     * // => 2\n     */\n    function findIndex(array, predicate, fromIndex) {\n      var length = array == null ? 0 : array.length;\n      if (!length) {\n        return -1;\n      }\n      var index = fromIndex == null ? 0 : toInteger(fromIndex);\n      if (index < 0) {\n        index = nativeMax(length + index, 0);\n      }\n      return baseFindIndex(array, getIteratee(predicate, 3), index);\n    }\n\n    /**\n     * This method is like `_.findIndex` except that it iterates over elements\n     * of `collection` from right to left.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.0.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @param {number} [fromIndex=array.length-1] The index to search from.\n     * @returns {number} Returns the index of the found element, else `-1`.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney',  'active': true },\n     *   { 'user': 'fred',    'active': false },\n     *   { 'user': 'pebbles', 'active': false }\n     * ];\n     *\n     * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n     * // => 2\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n     * // => 0\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.findLastIndex(users, ['active', false]);\n     * // => 2\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.findLastIndex(users, 'active');\n     * // => 0\n     */\n    function findLastIndex(array, predicate, fromIndex) {\n      var length = array == null ? 0 : array.length;\n      if (!length) {\n        return -1;\n      }\n      var index = length - 1;\n      if (fromIndex !== undefined) {\n        index = toInteger(fromIndex);\n        index = fromIndex < 0\n          ? nativeMax(length + index, 0)\n          : nativeMin(index, length - 1);\n      }\n      return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n    }\n\n    /**\n     * Flattens `array` a single level deep.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The array to flatten.\n     * @returns {Array} Returns the new flattened array.\n     * @example\n     *\n     * _.flatten([1, [2, [3, [4]], 5]]);\n     * // => [1, 2, [3, [4]], 5]\n     */\n    function flatten(array) {\n      var length = array == null ? 0 : array.length;\n      return length ? baseFlatten(array, 1) : [];\n    }\n\n    /**\n     * Recursively flattens `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The array to flatten.\n     * @returns {Array} Returns the new flattened array.\n     * @example\n     *\n     * _.flattenDeep([1, [2, [3, [4]], 5]]);\n     * // => [1, 2, 3, 4, 5]\n     */\n    function flattenDeep(array) {\n      var length = array == null ? 0 : array.length;\n      return length ? baseFlatten(array, INFINITY) : [];\n    }\n\n    /**\n     * Recursively flatten `array` up to `depth` times.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.4.0\n     * @category Array\n     * @param {Array} array The array to flatten.\n     * @param {number} [depth=1] The maximum recursion depth.\n     * @returns {Array} Returns the new flattened array.\n     * @example\n     *\n     * var array = [1, [2, [3, [4]], 5]];\n     *\n     * _.flattenDepth(array, 1);\n     * // => [1, 2, [3, [4]], 5]\n     *\n     * _.flattenDepth(array, 2);\n     * // => [1, 2, 3, [4], 5]\n     */\n    function flattenDepth(array, depth) {\n      var length = array == null ? 0 : array.length;\n      if (!length) {\n        return [];\n      }\n      depth = depth === undefined ? 1 : toInteger(depth);\n      return baseFlatten(array, depth);\n    }\n\n    /**\n     * The inverse of `_.toPairs`; this method returns an object composed\n     * from key-value `pairs`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} pairs The key-value pairs.\n     * @returns {Object} Returns the new object.\n     * @example\n     *\n     * _.fromPairs([['a', 1], ['b', 2]]);\n     * // => { 'a': 1, 'b': 2 }\n     */\n    function fromPairs(pairs) {\n      var index = -1,\n          length = pairs == null ? 0 : pairs.length,\n          result = {};\n\n      while (++index < length) {\n        var pair = pairs[index];\n        result[pair[0]] = pair[1];\n      }\n      return result;\n    }\n\n    /**\n     * Gets the first element of `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @alias first\n     * @category Array\n     * @param {Array} array The array to query.\n     * @returns {*} Returns the first element of `array`.\n     * @example\n     *\n     * _.head([1, 2, 3]);\n     * // => 1\n     *\n     * _.head([]);\n     * // => undefined\n     */\n    function head(array) {\n      return (array && array.length) ? array[0] : undefined;\n    }\n\n    /**\n     * Gets the index at which the first occurrence of `value` is found in `array`\n     * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n     * for equality comparisons. If `fromIndex` is negative, it's used as the\n     * offset from the end of `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {*} value The value to search for.\n     * @param {number} [fromIndex=0] The index to search from.\n     * @returns {number} Returns the index of the matched value, else `-1`.\n     * @example\n     *\n     * _.indexOf([1, 2, 1, 2], 2);\n     * // => 1\n     *\n     * // Search from the `fromIndex`.\n     * _.indexOf([1, 2, 1, 2], 2, 2);\n     * // => 3\n     */\n    function indexOf(array, value, fromIndex) {\n      var length = array == null ? 0 : array.length;\n      if (!length) {\n        return -1;\n      }\n      var index = fromIndex == null ? 0 : toInteger(fromIndex);\n      if (index < 0) {\n        index = nativeMax(length + index, 0);\n      }\n      return baseIndexOf(array, value, index);\n    }\n\n    /**\n     * Gets all but the last element of `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @returns {Array} Returns the slice of `array`.\n     * @example\n     *\n     * _.initial([1, 2, 3]);\n     * // => [1, 2]\n     */\n    function initial(array) {\n      var length = array == null ? 0 : array.length;\n      return length ? baseSlice(array, 0, -1) : [];\n    }\n\n    /**\n     * Creates an array of unique values that are included in all given arrays\n     * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n     * for equality comparisons. The order and references of result values are\n     * determined by the first array.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to inspect.\n     * @returns {Array} Returns the new array of intersecting values.\n     * @example\n     *\n     * _.intersection([2, 1], [2, 3]);\n     * // => [2]\n     */\n    var intersection = baseRest(function(arrays) {\n      var mapped = arrayMap(arrays, castArrayLikeObject);\n      return (mapped.length && mapped[0] === arrays[0])\n        ? baseIntersection(mapped)\n        : [];\n    });\n\n    /**\n     * This method is like `_.intersection` except that it accepts `iteratee`\n     * which is invoked for each element of each `arrays` to generate the criterion\n     * by which they're compared. The order and references of result values are\n     * determined by the first array. The iteratee is invoked with one argument:\n     * (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to inspect.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {Array} Returns the new array of intersecting values.\n     * @example\n     *\n     * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n     * // => [2.1]\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n     * // => [{ 'x': 1 }]\n     */\n    var intersectionBy = baseRest(function(arrays) {\n      var iteratee = last(arrays),\n          mapped = arrayMap(arrays, castArrayLikeObject);\n\n      if (iteratee === last(mapped)) {\n        iteratee = undefined;\n      } else {\n        mapped.pop();\n      }\n      return (mapped.length && mapped[0] === arrays[0])\n        ? baseIntersection(mapped, getIteratee(iteratee, 2))\n        : [];\n    });\n\n    /**\n     * This method is like `_.intersection` except that it accepts `comparator`\n     * which is invoked to compare elements of `arrays`. The order and references\n     * of result values are determined by the first array. The comparator is\n     * invoked with two arguments: (arrVal, othVal).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to inspect.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns the new array of intersecting values.\n     * @example\n     *\n     * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n     * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n     *\n     * _.intersectionWith(objects, others, _.isEqual);\n     * // => [{ 'x': 1, 'y': 2 }]\n     */\n    var intersectionWith = baseRest(function(arrays) {\n      var comparator = last(arrays),\n          mapped = arrayMap(arrays, castArrayLikeObject);\n\n      comparator = typeof comparator == 'function' ? comparator : undefined;\n      if (comparator) {\n        mapped.pop();\n      }\n      return (mapped.length && mapped[0] === arrays[0])\n        ? baseIntersection(mapped, undefined, comparator)\n        : [];\n    });\n\n    /**\n     * Converts all elements in `array` into a string separated by `separator`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to convert.\n     * @param {string} [separator=','] The element separator.\n     * @returns {string} Returns the joined string.\n     * @example\n     *\n     * _.join(['a', 'b', 'c'], '~');\n     * // => 'a~b~c'\n     */\n    function join(array, separator) {\n      return array == null ? '' : nativeJoin.call(array, separator);\n    }\n\n    /**\n     * Gets the last element of `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @returns {*} Returns the last element of `array`.\n     * @example\n     *\n     * _.last([1, 2, 3]);\n     * // => 3\n     */\n    function last(array) {\n      var length = array == null ? 0 : array.length;\n      return length ? array[length - 1] : undefined;\n    }\n\n    /**\n     * This method is like `_.indexOf` except that it iterates over elements of\n     * `array` from right to left.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {*} value The value to search for.\n     * @param {number} [fromIndex=array.length-1] The index to search from.\n     * @returns {number} Returns the index of the matched value, else `-1`.\n     * @example\n     *\n     * _.lastIndexOf([1, 2, 1, 2], 2);\n     * // => 3\n     *\n     * // Search from the `fromIndex`.\n     * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n     * // => 1\n     */\n    function lastIndexOf(array, value, fromIndex) {\n      var length = array == null ? 0 : array.length;\n      if (!length) {\n        return -1;\n      }\n      var index = length;\n      if (fromIndex !== undefined) {\n        index = toInteger(fromIndex);\n        index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n      }\n      return value === value\n        ? strictLastIndexOf(array, value, index)\n        : baseFindIndex(array, baseIsNaN, index, true);\n    }\n\n    /**\n     * Gets the element at index `n` of `array`. If `n` is negative, the nth\n     * element from the end is returned.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.11.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @param {number} [n=0] The index of the element to return.\n     * @returns {*} Returns the nth element of `array`.\n     * @example\n     *\n     * var array = ['a', 'b', 'c', 'd'];\n     *\n     * _.nth(array, 1);\n     * // => 'b'\n     *\n     * _.nth(array, -2);\n     * // => 'c';\n     */\n    function nth(array, n) {\n      return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n    }\n\n    /**\n     * Removes all given values from `array` using\n     * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n     * for equality comparisons.\n     *\n     * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n     * to remove elements from an array by predicate.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.0.0\n     * @category Array\n     * @param {Array} array The array to modify.\n     * @param {...*} [values] The values to remove.\n     * @returns {Array} Returns `array`.\n     * @example\n     *\n     * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n     *\n     * _.pull(array, 'a', 'c');\n     * console.log(array);\n     * // => ['b', 'b']\n     */\n    var pull = baseRest(pullAll);\n\n    /**\n     * This method is like `_.pull` except that it accepts an array of values to remove.\n     *\n     * **Note:** Unlike `_.difference`, this method mutates `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to modify.\n     * @param {Array} values The values to remove.\n     * @returns {Array} Returns `array`.\n     * @example\n     *\n     * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n     *\n     * _.pullAll(array, ['a', 'c']);\n     * console.log(array);\n     * // => ['b', 'b']\n     */\n    function pullAll(array, values) {\n      return (array && array.length && values && values.length)\n        ? basePullAll(array, values)\n        : array;\n    }\n\n    /**\n     * This method is like `_.pullAll` except that it accepts `iteratee` which is\n     * invoked for each element of `array` and `values` to generate the criterion\n     * by which they're compared. The iteratee is invoked with one argument: (value).\n     *\n     * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to modify.\n     * @param {Array} values The values to remove.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {Array} Returns `array`.\n     * @example\n     *\n     * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n     *\n     * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n     * console.log(array);\n     * // => [{ 'x': 2 }]\n     */\n    function pullAllBy(array, values, iteratee) {\n      return (array && array.length && values && values.length)\n        ? basePullAll(array, values, getIteratee(iteratee, 2))\n        : array;\n    }\n\n    /**\n     * This method is like `_.pullAll` except that it accepts `comparator` which\n     * is invoked to compare elements of `array` to `values`. The comparator is\n     * invoked with two arguments: (arrVal, othVal).\n     *\n     * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.6.0\n     * @category Array\n     * @param {Array} array The array to modify.\n     * @param {Array} values The values to remove.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns `array`.\n     * @example\n     *\n     * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n     *\n     * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n     * console.log(array);\n     * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n     */\n    function pullAllWith(array, values, comparator) {\n      return (array && array.length && values && values.length)\n        ? basePullAll(array, values, undefined, comparator)\n        : array;\n    }\n\n    /**\n     * Removes elements from `array` corresponding to `indexes` and returns an\n     * array of removed elements.\n     *\n     * **Note:** Unlike `_.at`, this method mutates `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The array to modify.\n     * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n     * @returns {Array} Returns the new array of removed elements.\n     * @example\n     *\n     * var array = ['a', 'b', 'c', 'd'];\n     * var pulled = _.pullAt(array, [1, 3]);\n     *\n     * console.log(array);\n     * // => ['a', 'c']\n     *\n     * console.log(pulled);\n     * // => ['b', 'd']\n     */\n    var pullAt = flatRest(function(array, indexes) {\n      var length = array == null ? 0 : array.length,\n          result = baseAt(array, indexes);\n\n      basePullAt(array, arrayMap(indexes, function(index) {\n        return isIndex(index, length) ? +index : index;\n      }).sort(compareAscending));\n\n      return result;\n    });\n\n    /**\n     * Removes all elements from `array` that `predicate` returns truthy for\n     * and returns an array of the removed elements. The predicate is invoked\n     * with three arguments: (value, index, array).\n     *\n     * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n     * to pull elements from an array by value.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.0.0\n     * @category Array\n     * @param {Array} array The array to modify.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the new array of removed elements.\n     * @example\n     *\n     * var array = [1, 2, 3, 4];\n     * var evens = _.remove(array, function(n) {\n     *   return n % 2 == 0;\n     * });\n     *\n     * console.log(array);\n     * // => [1, 3]\n     *\n     * console.log(evens);\n     * // => [2, 4]\n     */\n    function remove(array, predicate) {\n      var result = [];\n      if (!(array && array.length)) {\n        return result;\n      }\n      var index = -1,\n          indexes = [],\n          length = array.length;\n\n      predicate = getIteratee(predicate, 3);\n      while (++index < length) {\n        var value = array[index];\n        if (predicate(value, index, array)) {\n          result.push(value);\n          indexes.push(index);\n        }\n      }\n      basePullAt(array, indexes);\n      return result;\n    }\n\n    /**\n     * Reverses `array` so that the first element becomes the last, the second\n     * element becomes the second to last, and so on.\n     *\n     * **Note:** This method mutates `array` and is based on\n     * [`Array#reverse`](https://mdn.io/Array/reverse).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to modify.\n     * @returns {Array} Returns `array`.\n     * @example\n     *\n     * var array = [1, 2, 3];\n     *\n     * _.reverse(array);\n     * // => [3, 2, 1]\n     *\n     * console.log(array);\n     * // => [3, 2, 1]\n     */\n    function reverse(array) {\n      return array == null ? array : nativeReverse.call(array);\n    }\n\n    /**\n     * Creates a slice of `array` from `start` up to, but not including, `end`.\n     *\n     * **Note:** This method is used instead of\n     * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n     * returned.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The array to slice.\n     * @param {number} [start=0] The start position.\n     * @param {number} [end=array.length] The end position.\n     * @returns {Array} Returns the slice of `array`.\n     */\n    function slice(array, start, end) {\n      var length = array == null ? 0 : array.length;\n      if (!length) {\n        return [];\n      }\n      if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n        start = 0;\n        end = length;\n      }\n      else {\n        start = start == null ? 0 : toInteger(start);\n        end = end === undefined ? length : toInteger(end);\n      }\n      return baseSlice(array, start, end);\n    }\n\n    /**\n     * Uses a binary search to determine the lowest index at which `value`\n     * should be inserted into `array` in order to maintain its sort order.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The sorted array to inspect.\n     * @param {*} value The value to evaluate.\n     * @returns {number} Returns the index at which `value` should be inserted\n     *  into `array`.\n     * @example\n     *\n     * _.sortedIndex([30, 50], 40);\n     * // => 1\n     */\n    function sortedIndex(array, value) {\n      return baseSortedIndex(array, value);\n    }\n\n    /**\n     * This method is like `_.sortedIndex` except that it accepts `iteratee`\n     * which is invoked for `value` and each element of `array` to compute their\n     * sort ranking. The iteratee is invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The sorted array to inspect.\n     * @param {*} value The value to evaluate.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {number} Returns the index at which `value` should be inserted\n     *  into `array`.\n     * @example\n     *\n     * var objects = [{ 'x': 4 }, { 'x': 5 }];\n     *\n     * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n     * // => 0\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n     * // => 0\n     */\n    function sortedIndexBy(array, value, iteratee) {\n      return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n    }\n\n    /**\n     * This method is like `_.indexOf` except that it performs a binary\n     * search on a sorted `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {*} value The value to search for.\n     * @returns {number} Returns the index of the matched value, else `-1`.\n     * @example\n     *\n     * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n     * // => 1\n     */\n    function sortedIndexOf(array, value) {\n      var length = array == null ? 0 : array.length;\n      if (length) {\n        var index = baseSortedIndex(array, value);\n        if (index < length && eq(array[index], value)) {\n          return index;\n        }\n      }\n      return -1;\n    }\n\n    /**\n     * This method is like `_.sortedIndex` except that it returns the highest\n     * index at which `value` should be inserted into `array` in order to\n     * maintain its sort order.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The sorted array to inspect.\n     * @param {*} value The value to evaluate.\n     * @returns {number} Returns the index at which `value` should be inserted\n     *  into `array`.\n     * @example\n     *\n     * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n     * // => 4\n     */\n    function sortedLastIndex(array, value) {\n      return baseSortedIndex(array, value, true);\n    }\n\n    /**\n     * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n     * which is invoked for `value` and each element of `array` to compute their\n     * sort ranking. The iteratee is invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The sorted array to inspect.\n     * @param {*} value The value to evaluate.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {number} Returns the index at which `value` should be inserted\n     *  into `array`.\n     * @example\n     *\n     * var objects = [{ 'x': 4 }, { 'x': 5 }];\n     *\n     * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n     * // => 1\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n     * // => 1\n     */\n    function sortedLastIndexBy(array, value, iteratee) {\n      return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n    }\n\n    /**\n     * This method is like `_.lastIndexOf` except that it performs a binary\n     * search on a sorted `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {*} value The value to search for.\n     * @returns {number} Returns the index of the matched value, else `-1`.\n     * @example\n     *\n     * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n     * // => 3\n     */\n    function sortedLastIndexOf(array, value) {\n      var length = array == null ? 0 : array.length;\n      if (length) {\n        var index = baseSortedIndex(array, value, true) - 1;\n        if (eq(array[index], value)) {\n          return index;\n        }\n      }\n      return -1;\n    }\n\n    /**\n     * This method is like `_.uniq` except that it's designed and optimized\n     * for sorted arrays.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @returns {Array} Returns the new duplicate free array.\n     * @example\n     *\n     * _.sortedUniq([1, 1, 2]);\n     * // => [1, 2]\n     */\n    function sortedUniq(array) {\n      return (array && array.length)\n        ? baseSortedUniq(array)\n        : [];\n    }\n\n    /**\n     * This method is like `_.uniqBy` except that it's designed and optimized\n     * for sorted arrays.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {Function} [iteratee] The iteratee invoked per element.\n     * @returns {Array} Returns the new duplicate free array.\n     * @example\n     *\n     * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n     * // => [1.1, 2.3]\n     */\n    function sortedUniqBy(array, iteratee) {\n      return (array && array.length)\n        ? baseSortedUniq(array, getIteratee(iteratee, 2))\n        : [];\n    }\n\n    /**\n     * Gets all but the first element of `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @returns {Array} Returns the slice of `array`.\n     * @example\n     *\n     * _.tail([1, 2, 3]);\n     * // => [2, 3]\n     */\n    function tail(array) {\n      var length = array == null ? 0 : array.length;\n      return length ? baseSlice(array, 1, length) : [];\n    }\n\n    /**\n     * Creates a slice of `array` with `n` elements taken from the beginning.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @param {number} [n=1] The number of elements to take.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Array} Returns the slice of `array`.\n     * @example\n     *\n     * _.take([1, 2, 3]);\n     * // => [1]\n     *\n     * _.take([1, 2, 3], 2);\n     * // => [1, 2]\n     *\n     * _.take([1, 2, 3], 5);\n     * // => [1, 2, 3]\n     *\n     * _.take([1, 2, 3], 0);\n     * // => []\n     */\n    function take(array, n, guard) {\n      if (!(array && array.length)) {\n        return [];\n      }\n      n = (guard || n === undefined) ? 1 : toInteger(n);\n      return baseSlice(array, 0, n < 0 ? 0 : n);\n    }\n\n    /**\n     * Creates a slice of `array` with `n` elements taken from the end.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @param {number} [n=1] The number of elements to take.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Array} Returns the slice of `array`.\n     * @example\n     *\n     * _.takeRight([1, 2, 3]);\n     * // => [3]\n     *\n     * _.takeRight([1, 2, 3], 2);\n     * // => [2, 3]\n     *\n     * _.takeRight([1, 2, 3], 5);\n     * // => [1, 2, 3]\n     *\n     * _.takeRight([1, 2, 3], 0);\n     * // => []\n     */\n    function takeRight(array, n, guard) {\n      var length = array == null ? 0 : array.length;\n      if (!length) {\n        return [];\n      }\n      n = (guard || n === undefined) ? 1 : toInteger(n);\n      n = length - n;\n      return baseSlice(array, n < 0 ? 0 : n, length);\n    }\n\n    /**\n     * Creates a slice of `array` with elements taken from the end. Elements are\n     * taken until `predicate` returns falsey. The predicate is invoked with\n     * three arguments: (value, index, array).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the slice of `array`.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney',  'active': true },\n     *   { 'user': 'fred',    'active': false },\n     *   { 'user': 'pebbles', 'active': false }\n     * ];\n     *\n     * _.takeRightWhile(users, function(o) { return !o.active; });\n     * // => objects for ['fred', 'pebbles']\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n     * // => objects for ['pebbles']\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.takeRightWhile(users, ['active', false]);\n     * // => objects for ['fred', 'pebbles']\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.takeRightWhile(users, 'active');\n     * // => []\n     */\n    function takeRightWhile(array, predicate) {\n      return (array && array.length)\n        ? baseWhile(array, getIteratee(predicate, 3), false, true)\n        : [];\n    }\n\n    /**\n     * Creates a slice of `array` with elements taken from the beginning. Elements\n     * are taken until `predicate` returns falsey. The predicate is invoked with\n     * three arguments: (value, index, array).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the slice of `array`.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney',  'active': false },\n     *   { 'user': 'fred',    'active': false },\n     *   { 'user': 'pebbles', 'active': true }\n     * ];\n     *\n     * _.takeWhile(users, function(o) { return !o.active; });\n     * // => objects for ['barney', 'fred']\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.takeWhile(users, { 'user': 'barney', 'active': false });\n     * // => objects for ['barney']\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.takeWhile(users, ['active', false]);\n     * // => objects for ['barney', 'fred']\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.takeWhile(users, 'active');\n     * // => []\n     */\n    function takeWhile(array, predicate) {\n      return (array && array.length)\n        ? baseWhile(array, getIteratee(predicate, 3))\n        : [];\n    }\n\n    /**\n     * Creates an array of unique values, in order, from all given arrays using\n     * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n     * for equality comparisons.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to inspect.\n     * @returns {Array} Returns the new array of combined values.\n     * @example\n     *\n     * _.union([2], [1, 2]);\n     * // => [2, 1]\n     */\n    var union = baseRest(function(arrays) {\n      return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n    });\n\n    /**\n     * This method is like `_.union` except that it accepts `iteratee` which is\n     * invoked for each element of each `arrays` to generate the criterion by\n     * which uniqueness is computed. Result values are chosen from the first\n     * array in which the value occurs. The iteratee is invoked with one argument:\n     * (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to inspect.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {Array} Returns the new array of combined values.\n     * @example\n     *\n     * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n     * // => [2.1, 1.2]\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n     * // => [{ 'x': 1 }, { 'x': 2 }]\n     */\n    var unionBy = baseRest(function(arrays) {\n      var iteratee = last(arrays);\n      if (isArrayLikeObject(iteratee)) {\n        iteratee = undefined;\n      }\n      return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n    });\n\n    /**\n     * This method is like `_.union` except that it accepts `comparator` which\n     * is invoked to compare elements of `arrays`. Result values are chosen from\n     * the first array in which the value occurs. The comparator is invoked\n     * with two arguments: (arrVal, othVal).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to inspect.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns the new array of combined values.\n     * @example\n     *\n     * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n     * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n     *\n     * _.unionWith(objects, others, _.isEqual);\n     * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n     */\n    var unionWith = baseRest(function(arrays) {\n      var comparator = last(arrays);\n      comparator = typeof comparator == 'function' ? comparator : undefined;\n      return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n    });\n\n    /**\n     * Creates a duplicate-free version of an array, using\n     * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n     * for equality comparisons, in which only the first occurrence of each element\n     * is kept. The order of result values is determined by the order they occur\n     * in the array.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @returns {Array} Returns the new duplicate free array.\n     * @example\n     *\n     * _.uniq([2, 1, 2]);\n     * // => [2, 1]\n     */\n    function uniq(array) {\n      return (array && array.length) ? baseUniq(array) : [];\n    }\n\n    /**\n     * This method is like `_.uniq` except that it accepts `iteratee` which is\n     * invoked for each element in `array` to generate the criterion by which\n     * uniqueness is computed. The order of result values is determined by the\n     * order they occur in the array. The iteratee is invoked with one argument:\n     * (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {Array} Returns the new duplicate free array.\n     * @example\n     *\n     * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n     * // => [2.1, 1.2]\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n     * // => [{ 'x': 1 }, { 'x': 2 }]\n     */\n    function uniqBy(array, iteratee) {\n      return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n    }\n\n    /**\n     * This method is like `_.uniq` except that it accepts `comparator` which\n     * is invoked to compare elements of `array`. The order of result values is\n     * determined by the order they occur in the array.The comparator is invoked\n     * with two arguments: (arrVal, othVal).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns the new duplicate free array.\n     * @example\n     *\n     * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n     *\n     * _.uniqWith(objects, _.isEqual);\n     * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n     */\n    function uniqWith(array, comparator) {\n      comparator = typeof comparator == 'function' ? comparator : undefined;\n      return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n    }\n\n    /**\n     * This method is like `_.zip` except that it accepts an array of grouped\n     * elements and creates an array regrouping the elements to their pre-zip\n     * configuration.\n     *\n     * @static\n     * @memberOf _\n     * @since 1.2.0\n     * @category Array\n     * @param {Array} array The array of grouped elements to process.\n     * @returns {Array} Returns the new array of regrouped elements.\n     * @example\n     *\n     * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n     * // => [['a', 1, true], ['b', 2, false]]\n     *\n     * _.unzip(zipped);\n     * // => [['a', 'b'], [1, 2], [true, false]]\n     */\n    function unzip(array) {\n      if (!(array && array.length)) {\n        return [];\n      }\n      var length = 0;\n      array = arrayFilter(array, function(group) {\n        if (isArrayLikeObject(group)) {\n          length = nativeMax(group.length, length);\n          return true;\n        }\n      });\n      return baseTimes(length, function(index) {\n        return arrayMap(array, baseProperty(index));\n      });\n    }\n\n    /**\n     * This method is like `_.unzip` except that it accepts `iteratee` to specify\n     * how regrouped values should be combined. The iteratee is invoked with the\n     * elements of each group: (...group).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.8.0\n     * @category Array\n     * @param {Array} array The array of grouped elements to process.\n     * @param {Function} [iteratee=_.identity] The function to combine\n     *  regrouped values.\n     * @returns {Array} Returns the new array of regrouped elements.\n     * @example\n     *\n     * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n     * // => [[1, 10, 100], [2, 20, 200]]\n     *\n     * _.unzipWith(zipped, _.add);\n     * // => [3, 30, 300]\n     */\n    function unzipWith(array, iteratee) {\n      if (!(array && array.length)) {\n        return [];\n      }\n      var result = unzip(array);\n      if (iteratee == null) {\n        return result;\n      }\n      return arrayMap(result, function(group) {\n        return apply(iteratee, undefined, group);\n      });\n    }\n\n    /**\n     * Creates an array excluding all given values using\n     * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n     * for equality comparisons.\n     *\n     * **Note:** Unlike `_.pull`, this method returns a new array.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {...*} [values] The values to exclude.\n     * @returns {Array} Returns the new array of filtered values.\n     * @see _.difference, _.xor\n     * @example\n     *\n     * _.without([2, 1, 2, 3], 1, 2);\n     * // => [3]\n     */\n    var without = baseRest(function(array, values) {\n      return isArrayLikeObject(array)\n        ? baseDifference(array, values)\n        : [];\n    });\n\n    /**\n     * Creates an array of unique values that is the\n     * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n     * of the given arrays. The order of result values is determined by the order\n     * they occur in the arrays.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.4.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to inspect.\n     * @returns {Array} Returns the new array of filtered values.\n     * @see _.difference, _.without\n     * @example\n     *\n     * _.xor([2, 1], [2, 3]);\n     * // => [1, 3]\n     */\n    var xor = baseRest(function(arrays) {\n      return baseXor(arrayFilter(arrays, isArrayLikeObject));\n    });\n\n    /**\n     * This method is like `_.xor` except that it accepts `iteratee` which is\n     * invoked for each element of each `arrays` to generate the criterion by\n     * which by which they're compared. The order of result values is determined\n     * by the order they occur in the arrays. The iteratee is invoked with one\n     * argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to inspect.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {Array} Returns the new array of filtered values.\n     * @example\n     *\n     * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n     * // => [1.2, 3.4]\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n     * // => [{ 'x': 2 }]\n     */\n    var xorBy = baseRest(function(arrays) {\n      var iteratee = last(arrays);\n      if (isArrayLikeObject(iteratee)) {\n        iteratee = undefined;\n      }\n      return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n    });\n\n    /**\n     * This method is like `_.xor` except that it accepts `comparator` which is\n     * invoked to compare elements of `arrays`. The order of result values is\n     * determined by the order they occur in the arrays. The comparator is invoked\n     * with two arguments: (arrVal, othVal).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to inspect.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns the new array of filtered values.\n     * @example\n     *\n     * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n     * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n     *\n     * _.xorWith(objects, others, _.isEqual);\n     * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n     */\n    var xorWith = baseRest(function(arrays) {\n      var comparator = last(arrays);\n      comparator = typeof comparator == 'function' ? comparator : undefined;\n      return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n    });\n\n    /**\n     * Creates an array of grouped elements, the first of which contains the\n     * first elements of the given arrays, the second of which contains the\n     * second elements of the given arrays, and so on.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to process.\n     * @returns {Array} Returns the new array of grouped elements.\n     * @example\n     *\n     * _.zip(['a', 'b'], [1, 2], [true, false]);\n     * // => [['a', 1, true], ['b', 2, false]]\n     */\n    var zip = baseRest(unzip);\n\n    /**\n     * This method is like `_.fromPairs` except that it accepts two arrays,\n     * one of property identifiers and one of corresponding values.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.4.0\n     * @category Array\n     * @param {Array} [props=[]] The property identifiers.\n     * @param {Array} [values=[]] The property values.\n     * @returns {Object} Returns the new object.\n     * @example\n     *\n     * _.zipObject(['a', 'b'], [1, 2]);\n     * // => { 'a': 1, 'b': 2 }\n     */\n    function zipObject(props, values) {\n      return baseZipObject(props || [], values || [], assignValue);\n    }\n\n    /**\n     * This method is like `_.zipObject` except that it supports property paths.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.1.0\n     * @category Array\n     * @param {Array} [props=[]] The property identifiers.\n     * @param {Array} [values=[]] The property values.\n     * @returns {Object} Returns the new object.\n     * @example\n     *\n     * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n     * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n     */\n    function zipObjectDeep(props, values) {\n      return baseZipObject(props || [], values || [], baseSet);\n    }\n\n    /**\n     * This method is like `_.zip` except that it accepts `iteratee` to specify\n     * how grouped values should be combined. The iteratee is invoked with the\n     * elements of each group: (...group).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.8.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to process.\n     * @param {Function} [iteratee=_.identity] The function to combine\n     *  grouped values.\n     * @returns {Array} Returns the new array of grouped elements.\n     * @example\n     *\n     * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n     *   return a + b + c;\n     * });\n     * // => [111, 222]\n     */\n    var zipWith = baseRest(function(arrays) {\n      var length = arrays.length,\n          iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n      iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n      return unzipWith(arrays, iteratee);\n    });\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n     * chain sequences enabled. The result of such sequences must be unwrapped\n     * with `_#value`.\n     *\n     * @static\n     * @memberOf _\n     * @since 1.3.0\n     * @category Seq\n     * @param {*} value The value to wrap.\n     * @returns {Object} Returns the new `lodash` wrapper instance.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney',  'age': 36 },\n     *   { 'user': 'fred',    'age': 40 },\n     *   { 'user': 'pebbles', 'age': 1 }\n     * ];\n     *\n     * var youngest = _\n     *   .chain(users)\n     *   .sortBy('age')\n     *   .map(function(o) {\n     *     return o.user + ' is ' + o.age;\n     *   })\n     *   .head()\n     *   .value();\n     * // => 'pebbles is 1'\n     */\n    function chain(value) {\n      var result = lodash(value);\n      result.__chain__ = true;\n      return result;\n    }\n\n    /**\n     * This method invokes `interceptor` and returns `value`. The interceptor\n     * is invoked with one argument; (value). The purpose of this method is to\n     * \"tap into\" a method chain sequence in order to modify intermediate results.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Seq\n     * @param {*} value The value to provide to `interceptor`.\n     * @param {Function} interceptor The function to invoke.\n     * @returns {*} Returns `value`.\n     * @example\n     *\n     * _([1, 2, 3])\n     *  .tap(function(array) {\n     *    // Mutate input array.\n     *    array.pop();\n     *  })\n     *  .reverse()\n     *  .value();\n     * // => [2, 1]\n     */\n    function tap(value, interceptor) {\n      interceptor(value);\n      return value;\n    }\n\n    /**\n     * This method is like `_.tap` except that it returns the result of `interceptor`.\n     * The purpose of this method is to \"pass thru\" values replacing intermediate\n     * results in a method chain sequence.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Seq\n     * @param {*} value The value to provide to `interceptor`.\n     * @param {Function} interceptor The function to invoke.\n     * @returns {*} Returns the result of `interceptor`.\n     * @example\n     *\n     * _('  abc  ')\n     *  .chain()\n     *  .trim()\n     *  .thru(function(value) {\n     *    return [value];\n     *  })\n     *  .value();\n     * // => ['abc']\n     */\n    function thru(value, interceptor) {\n      return interceptor(value);\n    }\n\n    /**\n     * This method is the wrapper version of `_.at`.\n     *\n     * @name at\n     * @memberOf _\n     * @since 1.0.0\n     * @category Seq\n     * @param {...(string|string[])} [paths] The property paths to pick.\n     * @returns {Object} Returns the new `lodash` wrapper instance.\n     * @example\n     *\n     * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n     *\n     * _(object).at(['a[0].b.c', 'a[1]']).value();\n     * // => [3, 4]\n     */\n    var wrapperAt = flatRest(function(paths) {\n      var length = paths.length,\n          start = length ? paths[0] : 0,\n          value = this.__wrapped__,\n          interceptor = function(object) { return baseAt(object, paths); };\n\n      if (length > 1 || this.__actions__.length ||\n          !(value instanceof LazyWrapper) || !isIndex(start)) {\n        return this.thru(interceptor);\n      }\n      value = value.slice(start, +start + (length ? 1 : 0));\n      value.__actions__.push({\n        'func': thru,\n        'args': [interceptor],\n        'thisArg': undefined\n      });\n      return new LodashWrapper(value, this.__chain__).thru(function(array) {\n        if (length && !array.length) {\n          array.push(undefined);\n        }\n        return array;\n      });\n    });\n\n    /**\n     * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n     *\n     * @name chain\n     * @memberOf _\n     * @since 0.1.0\n     * @category Seq\n     * @returns {Object} Returns the new `lodash` wrapper instance.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney', 'age': 36 },\n     *   { 'user': 'fred',   'age': 40 }\n     * ];\n     *\n     * // A sequence without explicit chaining.\n     * _(users).head();\n     * // => { 'user': 'barney', 'age': 36 }\n     *\n     * // A sequence with explicit chaining.\n     * _(users)\n     *   .chain()\n     *   .head()\n     *   .pick('user')\n     *   .value();\n     * // => { 'user': 'barney' }\n     */\n    function wrapperChain() {\n      return chain(this);\n    }\n\n    /**\n     * Executes the chain sequence and returns the wrapped result.\n     *\n     * @name commit\n     * @memberOf _\n     * @since 3.2.0\n     * @category Seq\n     * @returns {Object} Returns the new `lodash` wrapper instance.\n     * @example\n     *\n     * var array = [1, 2];\n     * var wrapped = _(array).push(3);\n     *\n     * console.log(array);\n     * // => [1, 2]\n     *\n     * wrapped = wrapped.commit();\n     * console.log(array);\n     * // => [1, 2, 3]\n     *\n     * wrapped.last();\n     * // => 3\n     *\n     * console.log(array);\n     * // => [1, 2, 3]\n     */\n    function wrapperCommit() {\n      return new LodashWrapper(this.value(), this.__chain__);\n    }\n\n    /**\n     * Gets the next value on a wrapped object following the\n     * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n     *\n     * @name next\n     * @memberOf _\n     * @since 4.0.0\n     * @category Seq\n     * @returns {Object} Returns the next iterator value.\n     * @example\n     *\n     * var wrapped = _([1, 2]);\n     *\n     * wrapped.next();\n     * // => { 'done': false, 'value': 1 }\n     *\n     * wrapped.next();\n     * // => { 'done': false, 'value': 2 }\n     *\n     * wrapped.next();\n     * // => { 'done': true, 'value': undefined }\n     */\n    function wrapperNext() {\n      if (this.__values__ === undefined) {\n        this.__values__ = toArray(this.value());\n      }\n      var done = this.__index__ >= this.__values__.length,\n          value = done ? undefined : this.__values__[this.__index__++];\n\n      return { 'done': done, 'value': value };\n    }\n\n    /**\n     * Enables the wrapper to be iterable.\n     *\n     * @name Symbol.iterator\n     * @memberOf _\n     * @since 4.0.0\n     * @category Seq\n     * @returns {Object} Returns the wrapper object.\n     * @example\n     *\n     * var wrapped = _([1, 2]);\n     *\n     * wrapped[Symbol.iterator]() === wrapped;\n     * // => true\n     *\n     * Array.from(wrapped);\n     * // => [1, 2]\n     */\n    function wrapperToIterator() {\n      return this;\n    }\n\n    /**\n     * Creates a clone of the chain sequence planting `value` as the wrapped value.\n     *\n     * @name plant\n     * @memberOf _\n     * @since 3.2.0\n     * @category Seq\n     * @param {*} value The value to plant.\n     * @returns {Object} Returns the new `lodash` wrapper instance.\n     * @example\n     *\n     * function square(n) {\n     *   return n * n;\n     * }\n     *\n     * var wrapped = _([1, 2]).map(square);\n     * var other = wrapped.plant([3, 4]);\n     *\n     * other.value();\n     * // => [9, 16]\n     *\n     * wrapped.value();\n     * // => [1, 4]\n     */\n    function wrapperPlant(value) {\n      var result,\n          parent = this;\n\n      while (parent instanceof baseLodash) {\n        var clone = wrapperClone(parent);\n        clone.__index__ = 0;\n        clone.__values__ = undefined;\n        if (result) {\n          previous.__wrapped__ = clone;\n        } else {\n          result = clone;\n        }\n        var previous = clone;\n        parent = parent.__wrapped__;\n      }\n      previous.__wrapped__ = value;\n      return result;\n    }\n\n    /**\n     * This method is the wrapper version of `_.reverse`.\n     *\n     * **Note:** This method mutates the wrapped array.\n     *\n     * @name reverse\n     * @memberOf _\n     * @since 0.1.0\n     * @category Seq\n     * @returns {Object} Returns the new `lodash` wrapper instance.\n     * @example\n     *\n     * var array = [1, 2, 3];\n     *\n     * _(array).reverse().value()\n     * // => [3, 2, 1]\n     *\n     * console.log(array);\n     * // => [3, 2, 1]\n     */\n    function wrapperReverse() {\n      var value = this.__wrapped__;\n      if (value instanceof LazyWrapper) {\n        var wrapped = value;\n        if (this.__actions__.length) {\n          wrapped = new LazyWrapper(this);\n        }\n        wrapped = wrapped.reverse();\n        wrapped.__actions__.push({\n          'func': thru,\n          'args': [reverse],\n          'thisArg': undefined\n        });\n        return new LodashWrapper(wrapped, this.__chain__);\n      }\n      return this.thru(reverse);\n    }\n\n    /**\n     * Executes the chain sequence to resolve the unwrapped value.\n     *\n     * @name value\n     * @memberOf _\n     * @since 0.1.0\n     * @alias toJSON, valueOf\n     * @category Seq\n     * @returns {*} Returns the resolved unwrapped value.\n     * @example\n     *\n     * _([1, 2, 3]).value();\n     * // => [1, 2, 3]\n     */\n    function wrapperValue() {\n      return baseWrapperValue(this.__wrapped__, this.__actions__);\n    }\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Creates an object composed of keys generated from the results of running\n     * each element of `collection` thru `iteratee`. The corresponding value of\n     * each key is the number of times the key was returned by `iteratee`. The\n     * iteratee is invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 0.5.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n     * @returns {Object} Returns the composed aggregate object.\n     * @example\n     *\n     * _.countBy([6.1, 4.2, 6.3], Math.floor);\n     * // => { '4': 1, '6': 2 }\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.countBy(['one', 'two', 'three'], 'length');\n     * // => { '3': 2, '5': 1 }\n     */\n    var countBy = createAggregator(function(result, value, key) {\n      if (hasOwnProperty.call(result, key)) {\n        ++result[key];\n      } else {\n        baseAssignValue(result, key, 1);\n      }\n    });\n\n    /**\n     * Checks if `predicate` returns truthy for **all** elements of `collection`.\n     * Iteration is stopped once `predicate` returns falsey. The predicate is\n     * invoked with three arguments: (value, index|key, collection).\n     *\n     * **Note:** This method returns `true` for\n     * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n     * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n     * elements of empty collections.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {boolean} Returns `true` if all elements pass the predicate check,\n     *  else `false`.\n     * @example\n     *\n     * _.every([true, 1, null, 'yes'], Boolean);\n     * // => false\n     *\n     * var users = [\n     *   { 'user': 'barney', 'age': 36, 'active': false },\n     *   { 'user': 'fred',   'age': 40, 'active': false }\n     * ];\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.every(users, { 'user': 'barney', 'active': false });\n     * // => false\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.every(users, ['active', false]);\n     * // => true\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.every(users, 'active');\n     * // => false\n     */\n    function every(collection, predicate, guard) {\n      var func = isArray(collection) ? arrayEvery : baseEvery;\n      if (guard && isIterateeCall(collection, predicate, guard)) {\n        predicate = undefined;\n      }\n      return func(collection, getIteratee(predicate, 3));\n    }\n\n    /**\n     * Iterates over elements of `collection`, returning an array of all elements\n     * `predicate` returns truthy for. The predicate is invoked with three\n     * arguments: (value, index|key, collection).\n     *\n     * **Note:** Unlike `_.remove`, this method returns a new array.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the new filtered array.\n     * @see _.reject\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney', 'age': 36, 'active': true },\n     *   { 'user': 'fred',   'age': 40, 'active': false }\n     * ];\n     *\n     * _.filter(users, function(o) { return !o.active; });\n     * // => objects for ['fred']\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.filter(users, { 'age': 36, 'active': true });\n     * // => objects for ['barney']\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.filter(users, ['active', false]);\n     * // => objects for ['fred']\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.filter(users, 'active');\n     * // => objects for ['barney']\n     */\n    function filter(collection, predicate) {\n      var func = isArray(collection) ? arrayFilter : baseFilter;\n      return func(collection, getIteratee(predicate, 3));\n    }\n\n    /**\n     * Iterates over elements of `collection`, returning the first element\n     * `predicate` returns truthy for. The predicate is invoked with three\n     * arguments: (value, index|key, collection).\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to inspect.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @param {number} [fromIndex=0] The index to search from.\n     * @returns {*} Returns the matched element, else `undefined`.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney',  'age': 36, 'active': true },\n     *   { 'user': 'fred',    'age': 40, 'active': false },\n     *   { 'user': 'pebbles', 'age': 1,  'active': true }\n     * ];\n     *\n     * _.find(users, function(o) { return o.age < 40; });\n     * // => object for 'barney'\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.find(users, { 'age': 1, 'active': true });\n     * // => object for 'pebbles'\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.find(users, ['active', false]);\n     * // => object for 'fred'\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.find(users, 'active');\n     * // => object for 'barney'\n     */\n    var find = createFind(findIndex);\n\n    /**\n     * This method is like `_.find` except that it iterates over elements of\n     * `collection` from right to left.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.0.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to inspect.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @param {number} [fromIndex=collection.length-1] The index to search from.\n     * @returns {*} Returns the matched element, else `undefined`.\n     * @example\n     *\n     * _.findLast([1, 2, 3, 4], function(n) {\n     *   return n % 2 == 1;\n     * });\n     * // => 3\n     */\n    var findLast = createFind(findLastIndex);\n\n    /**\n     * Creates a flattened array of values by running each element in `collection`\n     * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n     * with three arguments: (value, index|key, collection).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the new flattened array.\n     * @example\n     *\n     * function duplicate(n) {\n     *   return [n, n];\n     * }\n     *\n     * _.flatMap([1, 2], duplicate);\n     * // => [1, 1, 2, 2]\n     */\n    function flatMap(collection, iteratee) {\n      return baseFlatten(map(collection, iteratee), 1);\n    }\n\n    /**\n     * This method is like `_.flatMap` except that it recursively flattens the\n     * mapped results.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.7.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the new flattened array.\n     * @example\n     *\n     * function duplicate(n) {\n     *   return [[[n, n]]];\n     * }\n     *\n     * _.flatMapDeep([1, 2], duplicate);\n     * // => [1, 1, 2, 2]\n     */\n    function flatMapDeep(collection, iteratee) {\n      return baseFlatten(map(collection, iteratee), INFINITY);\n    }\n\n    /**\n     * This method is like `_.flatMap` except that it recursively flattens the\n     * mapped results up to `depth` times.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.7.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @param {number} [depth=1] The maximum recursion depth.\n     * @returns {Array} Returns the new flattened array.\n     * @example\n     *\n     * function duplicate(n) {\n     *   return [[[n, n]]];\n     * }\n     *\n     * _.flatMapDepth([1, 2], duplicate, 2);\n     * // => [[1, 1], [2, 2]]\n     */\n    function flatMapDepth(collection, iteratee, depth) {\n      depth = depth === undefined ? 1 : toInteger(depth);\n      return baseFlatten(map(collection, iteratee), depth);\n    }\n\n    /**\n     * Iterates over elements of `collection` and invokes `iteratee` for each element.\n     * The iteratee is invoked with three arguments: (value, index|key, collection).\n     * Iteratee functions may exit iteration early by explicitly returning `false`.\n     *\n     * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n     * property are iterated like arrays. To avoid this behavior use `_.forIn`\n     * or `_.forOwn` for object iteration.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @alias each\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Array|Object} Returns `collection`.\n     * @see _.forEachRight\n     * @example\n     *\n     * _.forEach([1, 2], function(value) {\n     *   console.log(value);\n     * });\n     * // => Logs `1` then `2`.\n     *\n     * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n     *   console.log(key);\n     * });\n     * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n     */\n    function forEach(collection, iteratee) {\n      var func = isArray(collection) ? arrayEach : baseEach;\n      return func(collection, getIteratee(iteratee, 3));\n    }\n\n    /**\n     * This method is like `_.forEach` except that it iterates over elements of\n     * `collection` from right to left.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.0.0\n     * @alias eachRight\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Array|Object} Returns `collection`.\n     * @see _.forEach\n     * @example\n     *\n     * _.forEachRight([1, 2], function(value) {\n     *   console.log(value);\n     * });\n     * // => Logs `2` then `1`.\n     */\n    function forEachRight(collection, iteratee) {\n      var func = isArray(collection) ? arrayEachRight : baseEachRight;\n      return func(collection, getIteratee(iteratee, 3));\n    }\n\n    /**\n     * Creates an object composed of keys generated from the results of running\n     * each element of `collection` thru `iteratee`. The order of grouped values\n     * is determined by the order they occur in `collection`. The corresponding\n     * value of each key is an array of elements responsible for generating the\n     * key. The iteratee is invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n     * @returns {Object} Returns the composed aggregate object.\n     * @example\n     *\n     * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n     * // => { '4': [4.2], '6': [6.1, 6.3] }\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.groupBy(['one', 'two', 'three'], 'length');\n     * // => { '3': ['one', 'two'], '5': ['three'] }\n     */\n    var groupBy = createAggregator(function(result, value, key) {\n      if (hasOwnProperty.call(result, key)) {\n        result[key].push(value);\n      } else {\n        baseAssignValue(result, key, [value]);\n      }\n    });\n\n    /**\n     * Checks if `value` is in `collection`. If `collection` is a string, it's\n     * checked for a substring of `value`, otherwise\n     * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n     * is used for equality comparisons. If `fromIndex` is negative, it's used as\n     * the offset from the end of `collection`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object|string} collection The collection to inspect.\n     * @param {*} value The value to search for.\n     * @param {number} [fromIndex=0] The index to search from.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n     * @returns {boolean} Returns `true` if `value` is found, else `false`.\n     * @example\n     *\n     * _.includes([1, 2, 3], 1);\n     * // => true\n     *\n     * _.includes([1, 2, 3], 1, 2);\n     * // => false\n     *\n     * _.includes({ 'a': 1, 'b': 2 }, 1);\n     * // => true\n     *\n     * _.includes('abcd', 'bc');\n     * // => true\n     */\n    function includes(collection, value, fromIndex, guard) {\n      collection = isArrayLike(collection) ? collection : values(collection);\n      fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n      var length = collection.length;\n      if (fromIndex < 0) {\n        fromIndex = nativeMax(length + fromIndex, 0);\n      }\n      return isString(collection)\n        ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n        : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n    }\n\n    /**\n     * Invokes the method at `path` of each element in `collection`, returning\n     * an array of the results of each invoked method. Any additional arguments\n     * are provided to each invoked method. If `path` is a function, it's invoked\n     * for, and `this` bound to, each element in `collection`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Array|Function|string} path The path of the method to invoke or\n     *  the function invoked per iteration.\n     * @param {...*} [args] The arguments to invoke each method with.\n     * @returns {Array} Returns the array of results.\n     * @example\n     *\n     * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n     * // => [[1, 5, 7], [1, 2, 3]]\n     *\n     * _.invokeMap([123, 456], String.prototype.split, '');\n     * // => [['1', '2', '3'], ['4', '5', '6']]\n     */\n    var invokeMap = baseRest(function(collection, path, args) {\n      var index = -1,\n          isFunc = typeof path == 'function',\n          result = isArrayLike(collection) ? Array(collection.length) : [];\n\n      baseEach(collection, function(value) {\n        result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n      });\n      return result;\n    });\n\n    /**\n     * Creates an object composed of keys generated from the results of running\n     * each element of `collection` thru `iteratee`. The corresponding value of\n     * each key is the last element responsible for generating the key. The\n     * iteratee is invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n     * @returns {Object} Returns the composed aggregate object.\n     * @example\n     *\n     * var array = [\n     *   { 'dir': 'left', 'code': 97 },\n     *   { 'dir': 'right', 'code': 100 }\n     * ];\n     *\n     * _.keyBy(array, function(o) {\n     *   return String.fromCharCode(o.code);\n     * });\n     * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n     *\n     * _.keyBy(array, 'dir');\n     * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n     */\n    var keyBy = createAggregator(function(result, value, key) {\n      baseAssignValue(result, key, value);\n    });\n\n    /**\n     * Creates an array of values by running each element in `collection` thru\n     * `iteratee`. The iteratee is invoked with three arguments:\n     * (value, index|key, collection).\n     *\n     * Many lodash methods are guarded to work as iteratees for methods like\n     * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n     *\n     * The guarded methods are:\n     * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n     * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n     * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n     * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the new mapped array.\n     * @example\n     *\n     * function square(n) {\n     *   return n * n;\n     * }\n     *\n     * _.map([4, 8], square);\n     * // => [16, 64]\n     *\n     * _.map({ 'a': 4, 'b': 8 }, square);\n     * // => [16, 64] (iteration order is not guaranteed)\n     *\n     * var users = [\n     *   { 'user': 'barney' },\n     *   { 'user': 'fred' }\n     * ];\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.map(users, 'user');\n     * // => ['barney', 'fred']\n     */\n    function map(collection, iteratee) {\n      var func = isArray(collection) ? arrayMap : baseMap;\n      return func(collection, getIteratee(iteratee, 3));\n    }\n\n    /**\n     * This method is like `_.sortBy` except that it allows specifying the sort\n     * orders of the iteratees to sort by. If `orders` is unspecified, all values\n     * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n     * descending or \"asc\" for ascending sort order of corresponding values.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n     *  The iteratees to sort by.\n     * @param {string[]} [orders] The sort orders of `iteratees`.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n     * @returns {Array} Returns the new sorted array.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'fred',   'age': 48 },\n     *   { 'user': 'barney', 'age': 34 },\n     *   { 'user': 'fred',   'age': 40 },\n     *   { 'user': 'barney', 'age': 36 }\n     * ];\n     *\n     * // Sort by `user` in ascending order and by `age` in descending order.\n     * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n     * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n     */\n    function orderBy(collection, iteratees, orders, guard) {\n      if (collection == null) {\n        return [];\n      }\n      if (!isArray(iteratees)) {\n        iteratees = iteratees == null ? [] : [iteratees];\n      }\n      orders = guard ? undefined : orders;\n      if (!isArray(orders)) {\n        orders = orders == null ? [] : [orders];\n      }\n      return baseOrderBy(collection, iteratees, orders);\n    }\n\n    /**\n     * Creates an array of elements split into two groups, the first of which\n     * contains elements `predicate` returns truthy for, the second of which\n     * contains elements `predicate` returns falsey for. The predicate is\n     * invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the array of grouped elements.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney',  'age': 36, 'active': false },\n     *   { 'user': 'fred',    'age': 40, 'active': true },\n     *   { 'user': 'pebbles', 'age': 1,  'active': false }\n     * ];\n     *\n     * _.partition(users, function(o) { return o.active; });\n     * // => objects for [['fred'], ['barney', 'pebbles']]\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.partition(users, { 'age': 1, 'active': false });\n     * // => objects for [['pebbles'], ['barney', 'fred']]\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.partition(users, ['active', false]);\n     * // => objects for [['barney', 'pebbles'], ['fred']]\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.partition(users, 'active');\n     * // => objects for [['fred'], ['barney', 'pebbles']]\n     */\n    var partition = createAggregator(function(result, value, key) {\n      result[key ? 0 : 1].push(value);\n    }, function() { return [[], []]; });\n\n    /**\n     * Reduces `collection` to a value which is the accumulated result of running\n     * each element in `collection` thru `iteratee`, where each successive\n     * invocation is supplied the return value of the previous. If `accumulator`\n     * is not given, the first element of `collection` is used as the initial\n     * value. The iteratee is invoked with four arguments:\n     * (accumulator, value, index|key, collection).\n     *\n     * Many lodash methods are guarded to work as iteratees for methods like\n     * `_.reduce`, `_.reduceRight`, and `_.transform`.\n     *\n     * The guarded methods are:\n     * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n     * and `sortBy`\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @param {*} [accumulator] The initial value.\n     * @returns {*} Returns the accumulated value.\n     * @see _.reduceRight\n     * @example\n     *\n     * _.reduce([1, 2], function(sum, n) {\n     *   return sum + n;\n     * }, 0);\n     * // => 3\n     *\n     * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n     *   (result[value] || (result[value] = [])).push(key);\n     *   return result;\n     * }, {});\n     * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n     */\n    function reduce(collection, iteratee, accumulator) {\n      var func = isArray(collection) ? arrayReduce : baseReduce,\n          initAccum = arguments.length < 3;\n\n      return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n    }\n\n    /**\n     * This method is like `_.reduce` except that it iterates over elements of\n     * `collection` from right to left.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @param {*} [accumulator] The initial value.\n     * @returns {*} Returns the accumulated value.\n     * @see _.reduce\n     * @example\n     *\n     * var array = [[0, 1], [2, 3], [4, 5]];\n     *\n     * _.reduceRight(array, function(flattened, other) {\n     *   return flattened.concat(other);\n     * }, []);\n     * // => [4, 5, 2, 3, 0, 1]\n     */\n    function reduceRight(collection, iteratee, accumulator) {\n      var func = isArray(collection) ? arrayReduceRight : baseReduce,\n          initAccum = arguments.length < 3;\n\n      return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n    }\n\n    /**\n     * The opposite of `_.filter`; this method returns the elements of `collection`\n     * that `predicate` does **not** return truthy for.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the new filtered array.\n     * @see _.filter\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney', 'age': 36, 'active': false },\n     *   { 'user': 'fred',   'age': 40, 'active': true }\n     * ];\n     *\n     * _.reject(users, function(o) { return !o.active; });\n     * // => objects for ['fred']\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.reject(users, { 'age': 40, 'active': true });\n     * // => objects for ['barney']\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.reject(users, ['active', false]);\n     * // => objects for ['fred']\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.reject(users, 'active');\n     * // => objects for ['barney']\n     */\n    function reject(collection, predicate) {\n      var func = isArray(collection) ? arrayFilter : baseFilter;\n      return func(collection, negate(getIteratee(predicate, 3)));\n    }\n\n    /**\n     * Gets a random element from `collection`.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.0.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to sample.\n     * @returns {*} Returns the random element.\n     * @example\n     *\n     * _.sample([1, 2, 3, 4]);\n     * // => 2\n     */\n    function sample(collection) {\n      var func = isArray(collection) ? arraySample : baseSample;\n      return func(collection);\n    }\n\n    /**\n     * Gets `n` random elements at unique keys from `collection` up to the\n     * size of `collection`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to sample.\n     * @param {number} [n=1] The number of elements to sample.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Array} Returns the random elements.\n     * @example\n     *\n     * _.sampleSize([1, 2, 3], 2);\n     * // => [3, 1]\n     *\n     * _.sampleSize([1, 2, 3], 4);\n     * // => [2, 3, 1]\n     */\n    function sampleSize(collection, n, guard) {\n      if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n        n = 1;\n      } else {\n        n = toInteger(n);\n      }\n      var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n      return func(collection, n);\n    }\n\n    /**\n     * Creates an array of shuffled values, using a version of the\n     * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to shuffle.\n     * @returns {Array} Returns the new shuffled array.\n     * @example\n     *\n     * _.shuffle([1, 2, 3, 4]);\n     * // => [4, 1, 3, 2]\n     */\n    function shuffle(collection) {\n      var func = isArray(collection) ? arrayShuffle : baseShuffle;\n      return func(collection);\n    }\n\n    /**\n     * Gets the size of `collection` by returning its length for array-like\n     * values or the number of own enumerable string keyed properties for objects.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object|string} collection The collection to inspect.\n     * @returns {number} Returns the collection size.\n     * @example\n     *\n     * _.size([1, 2, 3]);\n     * // => 3\n     *\n     * _.size({ 'a': 1, 'b': 2 });\n     * // => 2\n     *\n     * _.size('pebbles');\n     * // => 7\n     */\n    function size(collection) {\n      if (collection == null) {\n        return 0;\n      }\n      if (isArrayLike(collection)) {\n        return isString(collection) ? stringSize(collection) : collection.length;\n      }\n      var tag = getTag(collection);\n      if (tag == mapTag || tag == setTag) {\n        return collection.size;\n      }\n      return baseKeys(collection).length;\n    }\n\n    /**\n     * Checks if `predicate` returns truthy for **any** element of `collection`.\n     * Iteration is stopped once `predicate` returns truthy. The predicate is\n     * invoked with three arguments: (value, index|key, collection).\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {boolean} Returns `true` if any element passes the predicate check,\n     *  else `false`.\n     * @example\n     *\n     * _.some([null, 0, 'yes', false], Boolean);\n     * // => true\n     *\n     * var users = [\n     *   { 'user': 'barney', 'active': true },\n     *   { 'user': 'fred',   'active': false }\n     * ];\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.some(users, { 'user': 'barney', 'active': false });\n     * // => false\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.some(users, ['active', false]);\n     * // => true\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.some(users, 'active');\n     * // => true\n     */\n    function some(collection, predicate, guard) {\n      var func = isArray(collection) ? arraySome : baseSome;\n      if (guard && isIterateeCall(collection, predicate, guard)) {\n        predicate = undefined;\n      }\n      return func(collection, getIteratee(predicate, 3));\n    }\n\n    /**\n     * Creates an array of elements, sorted in ascending order by the results of\n     * running each element in a collection thru each iteratee. This method\n     * performs a stable sort, that is, it preserves the original sort order of\n     * equal elements. The iteratees are invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {...(Function|Function[])} [iteratees=[_.identity]]\n     *  The iteratees to sort by.\n     * @returns {Array} Returns the new sorted array.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'fred',   'age': 48 },\n     *   { 'user': 'barney', 'age': 36 },\n     *   { 'user': 'fred',   'age': 40 },\n     *   { 'user': 'barney', 'age': 34 }\n     * ];\n     *\n     * _.sortBy(users, [function(o) { return o.user; }]);\n     * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n     *\n     * _.sortBy(users, ['user', 'age']);\n     * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]\n     */\n    var sortBy = baseRest(function(collection, iteratees) {\n      if (collection == null) {\n        return [];\n      }\n      var length = iteratees.length;\n      if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n        iteratees = [];\n      } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n        iteratees = [iteratees[0]];\n      }\n      return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n    });\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Gets the timestamp of the number of milliseconds that have elapsed since\n     * the Unix epoch (1 January 1970 00:00:00 UTC).\n     *\n     * @static\n     * @memberOf _\n     * @since 2.4.0\n     * @category Date\n     * @returns {number} Returns the timestamp.\n     * @example\n     *\n     * _.defer(function(stamp) {\n     *   console.log(_.now() - stamp);\n     * }, _.now());\n     * // => Logs the number of milliseconds it took for the deferred invocation.\n     */\n    var now = ctxNow || function() {\n      return root.Date.now();\n    };\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * The opposite of `_.before`; this method creates a function that invokes\n     * `func` once it's called `n` or more times.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Function\n     * @param {number} n The number of calls before `func` is invoked.\n     * @param {Function} func The function to restrict.\n     * @returns {Function} Returns the new restricted function.\n     * @example\n     *\n     * var saves = ['profile', 'settings'];\n     *\n     * var done = _.after(saves.length, function() {\n     *   console.log('done saving!');\n     * });\n     *\n     * _.forEach(saves, function(type) {\n     *   asyncSave({ 'type': type, 'complete': done });\n     * });\n     * // => Logs 'done saving!' after the two async saves have completed.\n     */\n    function after(n, func) {\n      if (typeof func != 'function') {\n        throw new TypeError(FUNC_ERROR_TEXT);\n      }\n      n = toInteger(n);\n      return function() {\n        if (--n < 1) {\n          return func.apply(this, arguments);\n        }\n      };\n    }\n\n    /**\n     * Creates a function that invokes `func`, with up to `n` arguments,\n     * ignoring any additional arguments.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Function\n     * @param {Function} func The function to cap arguments for.\n     * @param {number} [n=func.length] The arity cap.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Function} Returns the new capped function.\n     * @example\n     *\n     * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n     * // => [6, 8, 10]\n     */\n    function ary(func, n, guard) {\n      n = guard ? undefined : n;\n      n = (func && n == null) ? func.length : n;\n      return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n    }\n\n    /**\n     * Creates a function that invokes `func`, with the `this` binding and arguments\n     * of the created function, while it's called less than `n` times. Subsequent\n     * calls to the created function return the result of the last `func` invocation.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Function\n     * @param {number} n The number of calls at which `func` is no longer invoked.\n     * @param {Function} func The function to restrict.\n     * @returns {Function} Returns the new restricted function.\n     * @example\n     *\n     * jQuery(element).on('click', _.before(5, addContactToList));\n     * // => Allows adding up to 4 contacts to the list.\n     */\n    function before(n, func) {\n      var result;\n      if (typeof func != 'function') {\n        throw new TypeError(FUNC_ERROR_TEXT);\n      }\n      n = toInteger(n);\n      return function() {\n        if (--n > 0) {\n          result = func.apply(this, arguments);\n        }\n        if (n <= 1) {\n          func = undefined;\n        }\n        return result;\n      };\n    }\n\n    /**\n     * Creates a function that invokes `func` with the `this` binding of `thisArg`\n     * and `partials` prepended to the arguments it receives.\n     *\n     * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n     * may be used as a placeholder for partially applied arguments.\n     *\n     * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n     * property of bound functions.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Function\n     * @param {Function} func The function to bind.\n     * @param {*} thisArg The `this` binding of `func`.\n     * @param {...*} [partials] The arguments to be partially applied.\n     * @returns {Function} Returns the new bound function.\n     * @example\n     *\n     * function greet(greeting, punctuation) {\n     *   return greeting + ' ' + this.user + punctuation;\n     * }\n     *\n     * var object = { 'user': 'fred' };\n     *\n     * var bound = _.bind(greet, object, 'hi');\n     * bound('!');\n     * // => 'hi fred!'\n     *\n     * // Bound with placeholders.\n     * var bound = _.bind(greet, object, _, '!');\n     * bound('hi');\n     * // => 'hi fred!'\n     */\n    var bind = baseRest(function(func, thisArg, partials) {\n      var bitmask = WRAP_BIND_FLAG;\n      if (partials.length) {\n        var holders = replaceHolders(partials, getHolder(bind));\n        bitmask |= WRAP_PARTIAL_FLAG;\n      }\n      return createWrap(func, bitmask, thisArg, partials, holders);\n    });\n\n    /**\n     * Creates a function that invokes the method at `object[key]` with `partials`\n     * prepended to the arguments it receives.\n     *\n     * This method differs from `_.bind` by allowing bound functions to reference\n     * methods that may be redefined or don't yet exist. See\n     * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n     * for more details.\n     *\n     * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n     * builds, may be used as a placeholder for partially applied arguments.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.10.0\n     * @category Function\n     * @param {Object} object The object to invoke the method on.\n     * @param {string} key The key of the method.\n     * @param {...*} [partials] The arguments to be partially applied.\n     * @returns {Function} Returns the new bound function.\n     * @example\n     *\n     * var object = {\n     *   'user': 'fred',\n     *   'greet': function(greeting, punctuation) {\n     *     return greeting + ' ' + this.user + punctuation;\n     *   }\n     * };\n     *\n     * var bound = _.bindKey(object, 'greet', 'hi');\n     * bound('!');\n     * // => 'hi fred!'\n     *\n     * object.greet = function(greeting, punctuation) {\n     *   return greeting + 'ya ' + this.user + punctuation;\n     * };\n     *\n     * bound('!');\n     * // => 'hiya fred!'\n     *\n     * // Bound with placeholders.\n     * var bound = _.bindKey(object, 'greet', _, '!');\n     * bound('hi');\n     * // => 'hiya fred!'\n     */\n    var bindKey = baseRest(function(object, key, partials) {\n      var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n      if (partials.length) {\n        var holders = replaceHolders(partials, getHolder(bindKey));\n        bitmask |= WRAP_PARTIAL_FLAG;\n      }\n      return createWrap(key, bitmask, object, partials, holders);\n    });\n\n    /**\n     * Creates a function that accepts arguments of `func` and either invokes\n     * `func` returning its result, if at least `arity` number of arguments have\n     * been provided, or returns a function that accepts the remaining `func`\n     * arguments, and so on. The arity of `func` may be specified if `func.length`\n     * is not sufficient.\n     *\n     * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n     * may be used as a placeholder for provided arguments.\n     *\n     * **Note:** This method doesn't set the \"length\" property of curried functions.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.0.0\n     * @category Function\n     * @param {Function} func The function to curry.\n     * @param {number} [arity=func.length] The arity of `func`.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Function} Returns the new curried function.\n     * @example\n     *\n     * var abc = function(a, b, c) {\n     *   return [a, b, c];\n     * };\n     *\n     * var curried = _.curry(abc);\n     *\n     * curried(1)(2)(3);\n     * // => [1, 2, 3]\n     *\n     * curried(1, 2)(3);\n     * // => [1, 2, 3]\n     *\n     * curried(1, 2, 3);\n     * // => [1, 2, 3]\n     *\n     * // Curried with placeholders.\n     * curried(1)(_, 3)(2);\n     * // => [1, 2, 3]\n     */\n    function curry(func, arity, guard) {\n      arity = guard ? undefined : arity;\n      var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n      result.placeholder = curry.placeholder;\n      return result;\n    }\n\n    /**\n     * This method is like `_.curry` except that arguments are applied to `func`\n     * in the manner of `_.partialRight` instead of `_.partial`.\n     *\n     * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n     * builds, may be used as a placeholder for provided arguments.\n     *\n     * **Note:** This method doesn't set the \"length\" property of curried functions.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Function\n     * @param {Function} func The function to curry.\n     * @param {number} [arity=func.length] The arity of `func`.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Function} Returns the new curried function.\n     * @example\n     *\n     * var abc = function(a, b, c) {\n     *   return [a, b, c];\n     * };\n     *\n     * var curried = _.curryRight(abc);\n     *\n     * curried(3)(2)(1);\n     * // => [1, 2, 3]\n     *\n     * curried(2, 3)(1);\n     * // => [1, 2, 3]\n     *\n     * curried(1, 2, 3);\n     * // => [1, 2, 3]\n     *\n     * // Curried with placeholders.\n     * curried(3)(1, _)(2);\n     * // => [1, 2, 3]\n     */\n    function curryRight(func, arity, guard) {\n      arity = guard ? undefined : arity;\n      var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n      result.placeholder = curryRight.placeholder;\n      return result;\n    }\n\n    /**\n     * Creates a debounced function that delays invoking `func` until after `wait`\n     * milliseconds have elapsed since the last time the debounced function was\n     * invoked. The debounced function comes with a `cancel` method to cancel\n     * delayed `func` invocations and a `flush` method to immediately invoke them.\n     * Provide `options` to indicate whether `func` should be invoked on the\n     * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n     * with the last arguments provided to the debounced function. Subsequent\n     * calls to the debounced function return the result of the last `func`\n     * invocation.\n     *\n     * **Note:** If `leading` and `trailing` options are `true`, `func` is\n     * invoked on the trailing edge of the timeout only if the debounced function\n     * is invoked more than once during the `wait` timeout.\n     *\n     * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n     * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n     *\n     * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n     * for details over the differences between `_.debounce` and `_.throttle`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Function\n     * @param {Function} func The function to debounce.\n     * @param {number} [wait=0] The number of milliseconds to delay.\n     * @param {Object} [options={}] The options object.\n     * @param {boolean} [options.leading=false]\n     *  Specify invoking on the leading edge of the timeout.\n     * @param {number} [options.maxWait]\n     *  The maximum time `func` is allowed to be delayed before it's invoked.\n     * @param {boolean} [options.trailing=true]\n     *  Specify invoking on the trailing edge of the timeout.\n     * @returns {Function} Returns the new debounced function.\n     * @example\n     *\n     * // Avoid costly calculations while the window size is in flux.\n     * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n     *\n     * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n     * jQuery(element).on('click', _.debounce(sendMail, 300, {\n     *   'leading': true,\n     *   'trailing': false\n     * }));\n     *\n     * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n     * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n     * var source = new EventSource('/stream');\n     * jQuery(source).on('message', debounced);\n     *\n     * // Cancel the trailing debounced invocation.\n     * jQuery(window).on('popstate', debounced.cancel);\n     */\n    function debounce(func, wait, options) {\n      var lastArgs,\n          lastThis,\n          maxWait,\n          result,\n          timerId,\n          lastCallTime,\n          lastInvokeTime = 0,\n          leading = false,\n          maxing = false,\n          trailing = true;\n\n      if (typeof func != 'function') {\n        throw new TypeError(FUNC_ERROR_TEXT);\n      }\n      wait = toNumber(wait) || 0;\n      if (isObject(options)) {\n        leading = !!options.leading;\n        maxing = 'maxWait' in options;\n        maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n        trailing = 'trailing' in options ? !!options.trailing : trailing;\n      }\n\n      function invokeFunc(time) {\n        var args = lastArgs,\n            thisArg = lastThis;\n\n        lastArgs = lastThis = undefined;\n        lastInvokeTime = time;\n        result = func.apply(thisArg, args);\n        return result;\n      }\n\n      function leadingEdge(time) {\n        // Reset any `maxWait` timer.\n        lastInvokeTime = time;\n        // Start the timer for the trailing edge.\n        timerId = setTimeout(timerExpired, wait);\n        // Invoke the leading edge.\n        return leading ? invokeFunc(time) : result;\n      }\n\n      function remainingWait(time) {\n        var timeSinceLastCall = time - lastCallTime,\n            timeSinceLastInvoke = time - lastInvokeTime,\n            timeWaiting = wait - timeSinceLastCall;\n\n        return maxing\n          ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n          : timeWaiting;\n      }\n\n      function shouldInvoke(time) {\n        var timeSinceLastCall = time - lastCallTime,\n            timeSinceLastInvoke = time - lastInvokeTime;\n\n        // Either this is the first call, activity has stopped and we're at the\n        // trailing edge, the system time has gone backwards and we're treating\n        // it as the trailing edge, or we've hit the `maxWait` limit.\n        return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n          (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n      }\n\n      function timerExpired() {\n        var time = now();\n        if (shouldInvoke(time)) {\n          return trailingEdge(time);\n        }\n        // Restart the timer.\n        timerId = setTimeout(timerExpired, remainingWait(time));\n      }\n\n      function trailingEdge(time) {\n        timerId = undefined;\n\n        // Only invoke if we have `lastArgs` which means `func` has been\n        // debounced at least once.\n        if (trailing && lastArgs) {\n          return invokeFunc(time);\n        }\n        lastArgs = lastThis = undefined;\n        return result;\n      }\n\n      function cancel() {\n        if (timerId !== undefined) {\n          clearTimeout(timerId);\n        }\n        lastInvokeTime = 0;\n        lastArgs = lastCallTime = lastThis = timerId = undefined;\n      }\n\n      function flush() {\n        return timerId === undefined ? result : trailingEdge(now());\n      }\n\n      function debounced() {\n        var time = now(),\n            isInvoking = shouldInvoke(time);\n\n        lastArgs = arguments;\n        lastThis = this;\n        lastCallTime = time;\n\n        if (isInvoking) {\n          if (timerId === undefined) {\n            return leadingEdge(lastCallTime);\n          }\n          if (maxing) {\n            // Handle invocations in a tight loop.\n            timerId = setTimeout(timerExpired, wait);\n            return invokeFunc(lastCallTime);\n          }\n        }\n        if (timerId === undefined) {\n          timerId = setTimeout(timerExpired, wait);\n        }\n        return result;\n      }\n      debounced.cancel = cancel;\n      debounced.flush = flush;\n      return debounced;\n    }\n\n    /**\n     * Defers invoking the `func` until the current call stack has cleared. Any\n     * additional arguments are provided to `func` when it's invoked.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Function\n     * @param {Function} func The function to defer.\n     * @param {...*} [args] The arguments to invoke `func` with.\n     * @returns {number} Returns the timer id.\n     * @example\n     *\n     * _.defer(function(text) {\n     *   console.log(text);\n     * }, 'deferred');\n     * // => Logs 'deferred' after one millisecond.\n     */\n    var defer = baseRest(function(func, args) {\n      return baseDelay(func, 1, args);\n    });\n\n    /**\n     * Invokes `func` after `wait` milliseconds. Any additional arguments are\n     * provided to `func` when it's invoked.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Function\n     * @param {Function} func The function to delay.\n     * @param {number} wait The number of milliseconds to delay invocation.\n     * @param {...*} [args] The arguments to invoke `func` with.\n     * @returns {number} Returns the timer id.\n     * @example\n     *\n     * _.delay(function(text) {\n     *   console.log(text);\n     * }, 1000, 'later');\n     * // => Logs 'later' after one second.\n     */\n    var delay = baseRest(function(func, wait, args) {\n      return baseDelay(func, toNumber(wait) || 0, args);\n    });\n\n    /**\n     * Creates a function that invokes `func` with arguments reversed.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Function\n     * @param {Function} func The function to flip arguments for.\n     * @returns {Function} Returns the new flipped function.\n     * @example\n     *\n     * var flipped = _.flip(function() {\n     *   return _.toArray(arguments);\n     * });\n     *\n     * flipped('a', 'b', 'c', 'd');\n     * // => ['d', 'c', 'b', 'a']\n     */\n    function flip(func) {\n      return createWrap(func, WRAP_FLIP_FLAG);\n    }\n\n    /**\n     * Creates a function that memoizes the result of `func`. If `resolver` is\n     * provided, it determines the cache key for storing the result based on the\n     * arguments provided to the memoized function. By default, the first argument\n     * provided to the memoized function is used as the map cache key. The `func`\n     * is invoked with the `this` binding of the memoized function.\n     *\n     * **Note:** The cache is exposed as the `cache` property on the memoized\n     * function. Its creation may be customized by replacing the `_.memoize.Cache`\n     * constructor with one whose instances implement the\n     * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n     * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Function\n     * @param {Function} func The function to have its output memoized.\n     * @param {Function} [resolver] The function to resolve the cache key.\n     * @returns {Function} Returns the new memoized function.\n     * @example\n     *\n     * var object = { 'a': 1, 'b': 2 };\n     * var other = { 'c': 3, 'd': 4 };\n     *\n     * var values = _.memoize(_.values);\n     * values(object);\n     * // => [1, 2]\n     *\n     * values(other);\n     * // => [3, 4]\n     *\n     * object.a = 2;\n     * values(object);\n     * // => [1, 2]\n     *\n     * // Modify the result cache.\n     * values.cache.set(object, ['a', 'b']);\n     * values(object);\n     * // => ['a', 'b']\n     *\n     * // Replace `_.memoize.Cache`.\n     * _.memoize.Cache = WeakMap;\n     */\n    function memoize(func, resolver) {\n      if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n        throw new TypeError(FUNC_ERROR_TEXT);\n      }\n      var memoized = function() {\n        var args = arguments,\n            key = resolver ? resolver.apply(this, args) : args[0],\n            cache = memoized.cache;\n\n        if (cache.has(key)) {\n          return cache.get(key);\n        }\n        var result = func.apply(this, args);\n        memoized.cache = cache.set(key, result) || cache;\n        return result;\n      };\n      memoized.cache = new (memoize.Cache || MapCache);\n      return memoized;\n    }\n\n    // Expose `MapCache`.\n    memoize.Cache = MapCache;\n\n    /**\n     * Creates a function that negates the result of the predicate `func`. The\n     * `func` predicate is invoked with the `this` binding and arguments of the\n     * created function.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Function\n     * @param {Function} predicate The predicate to negate.\n     * @returns {Function} Returns the new negated function.\n     * @example\n     *\n     * function isEven(n) {\n     *   return n % 2 == 0;\n     * }\n     *\n     * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n     * // => [1, 3, 5]\n     */\n    function negate(predicate) {\n      if (typeof predicate != 'function') {\n        throw new TypeError(FUNC_ERROR_TEXT);\n      }\n      return function() {\n        var args = arguments;\n        switch (args.length) {\n          case 0: return !predicate.call(this);\n          case 1: return !predicate.call(this, args[0]);\n          case 2: return !predicate.call(this, args[0], args[1]);\n          case 3: return !predicate.call(this, args[0], args[1], args[2]);\n        }\n        return !predicate.apply(this, args);\n      };\n    }\n\n    /**\n     * Creates a function that is restricted to invoking `func` once. Repeat calls\n     * to the function return the value of the first invocation. The `func` is\n     * invoked with the `this` binding and arguments of the created function.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Function\n     * @param {Function} func The function to restrict.\n     * @returns {Function} Returns the new restricted function.\n     * @example\n     *\n     * var initialize = _.once(createApplication);\n     * initialize();\n     * initialize();\n     * // => `createApplication` is invoked once\n     */\n    function once(func) {\n      return before(2, func);\n    }\n\n    /**\n     * Creates a function that invokes `func` with its arguments transformed.\n     *\n     * @static\n     * @since 4.0.0\n     * @memberOf _\n     * @category Function\n     * @param {Function} func The function to wrap.\n     * @param {...(Function|Function[])} [transforms=[_.identity]]\n     *  The argument transforms.\n     * @returns {Function} Returns the new function.\n     * @example\n     *\n     * function doubled(n) {\n     *   return n * 2;\n     * }\n     *\n     * function square(n) {\n     *   return n * n;\n     * }\n     *\n     * var func = _.overArgs(function(x, y) {\n     *   return [x, y];\n     * }, [square, doubled]);\n     *\n     * func(9, 3);\n     * // => [81, 6]\n     *\n     * func(10, 5);\n     * // => [100, 10]\n     */\n    var overArgs = castRest(function(func, transforms) {\n      transforms = (transforms.length == 1 && isArray(transforms[0]))\n        ? arrayMap(transforms[0], baseUnary(getIteratee()))\n        : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n      var funcsLength = transforms.length;\n      return baseRest(function(args) {\n        var index = -1,\n            length = nativeMin(args.length, funcsLength);\n\n        while (++index < length) {\n          args[index] = transforms[index].call(this, args[index]);\n        }\n        return apply(func, this, args);\n      });\n    });\n\n    /**\n     * Creates a function that invokes `func` with `partials` prepended to the\n     * arguments it receives. This method is like `_.bind` except it does **not**\n     * alter the `this` binding.\n     *\n     * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n     * builds, may be used as a placeholder for partially applied arguments.\n     *\n     * **Note:** This method doesn't set the \"length\" property of partially\n     * applied functions.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.2.0\n     * @category Function\n     * @param {Function} func The function to partially apply arguments to.\n     * @param {...*} [partials] The arguments to be partially applied.\n     * @returns {Function} Returns the new partially applied function.\n     * @example\n     *\n     * function greet(greeting, name) {\n     *   return greeting + ' ' + name;\n     * }\n     *\n     * var sayHelloTo = _.partial(greet, 'hello');\n     * sayHelloTo('fred');\n     * // => 'hello fred'\n     *\n     * // Partially applied with placeholders.\n     * var greetFred = _.partial(greet, _, 'fred');\n     * greetFred('hi');\n     * // => 'hi fred'\n     */\n    var partial = baseRest(function(func, partials) {\n      var holders = replaceHolders(partials, getHolder(partial));\n      return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n    });\n\n    /**\n     * This method is like `_.partial` except that partially applied arguments\n     * are appended to the arguments it receives.\n     *\n     * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n     * builds, may be used as a placeholder for partially applied arguments.\n     *\n     * **Note:** This method doesn't set the \"length\" property of partially\n     * applied functions.\n     *\n     * @static\n     * @memberOf _\n     * @since 1.0.0\n     * @category Function\n     * @param {Function} func The function to partially apply arguments to.\n     * @param {...*} [partials] The arguments to be partially applied.\n     * @returns {Function} Returns the new partially applied function.\n     * @example\n     *\n     * function greet(greeting, name) {\n     *   return greeting + ' ' + name;\n     * }\n     *\n     * var greetFred = _.partialRight(greet, 'fred');\n     * greetFred('hi');\n     * // => 'hi fred'\n     *\n     * // Partially applied with placeholders.\n     * var sayHelloTo = _.partialRight(greet, 'hello', _);\n     * sayHelloTo('fred');\n     * // => 'hello fred'\n     */\n    var partialRight = baseRest(function(func, partials) {\n      var holders = replaceHolders(partials, getHolder(partialRight));\n      return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n    });\n\n    /**\n     * Creates a function that invokes `func` with arguments arranged according\n     * to the specified `indexes` where the argument value at the first index is\n     * provided as the first argument, the argument value at the second index is\n     * provided as the second argument, and so on.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Function\n     * @param {Function} func The function to rearrange arguments for.\n     * @param {...(number|number[])} indexes The arranged argument indexes.\n     * @returns {Function} Returns the new function.\n     * @example\n     *\n     * var rearged = _.rearg(function(a, b, c) {\n     *   return [a, b, c];\n     * }, [2, 0, 1]);\n     *\n     * rearged('b', 'c', 'a')\n     * // => ['a', 'b', 'c']\n     */\n    var rearg = flatRest(function(func, indexes) {\n      return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n    });\n\n    /**\n     * Creates a function that invokes `func` with the `this` binding of the\n     * created function and arguments from `start` and beyond provided as\n     * an array.\n     *\n     * **Note:** This method is based on the\n     * [rest parameter](https://mdn.io/rest_parameters).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Function\n     * @param {Function} func The function to apply a rest parameter to.\n     * @param {number} [start=func.length-1] The start position of the rest parameter.\n     * @returns {Function} Returns the new function.\n     * @example\n     *\n     * var say = _.rest(function(what, names) {\n     *   return what + ' ' + _.initial(names).join(', ') +\n     *     (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n     * });\n     *\n     * say('hello', 'fred', 'barney', 'pebbles');\n     * // => 'hello fred, barney, & pebbles'\n     */\n    function rest(func, start) {\n      if (typeof func != 'function') {\n        throw new TypeError(FUNC_ERROR_TEXT);\n      }\n      start = start === undefined ? start : toInteger(start);\n      return baseRest(func, start);\n    }\n\n    /**\n     * Creates a function that invokes `func` with the `this` binding of the\n     * create function and an array of arguments much like\n     * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n     *\n     * **Note:** This method is based on the\n     * [spread operator](https://mdn.io/spread_operator).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.2.0\n     * @category Function\n     * @param {Function} func The function to spread arguments over.\n     * @param {number} [start=0] The start position of the spread.\n     * @returns {Function} Returns the new function.\n     * @example\n     *\n     * var say = _.spread(function(who, what) {\n     *   return who + ' says ' + what;\n     * });\n     *\n     * say(['fred', 'hello']);\n     * // => 'fred says hello'\n     *\n     * var numbers = Promise.all([\n     *   Promise.resolve(40),\n     *   Promise.resolve(36)\n     * ]);\n     *\n     * numbers.then(_.spread(function(x, y) {\n     *   return x + y;\n     * }));\n     * // => a Promise of 76\n     */\n    function spread(func, start) {\n      if (typeof func != 'function') {\n        throw new TypeError(FUNC_ERROR_TEXT);\n      }\n      start = start == null ? 0 : nativeMax(toInteger(start), 0);\n      return baseRest(function(args) {\n        var array = args[start],\n            otherArgs = castSlice(args, 0, start);\n\n        if (array) {\n          arrayPush(otherArgs, array);\n        }\n        return apply(func, this, otherArgs);\n      });\n    }\n\n    /**\n     * Creates a throttled function that only invokes `func` at most once per\n     * every `wait` milliseconds. The throttled function comes with a `cancel`\n     * method to cancel delayed `func` invocations and a `flush` method to\n     * immediately invoke them. Provide `options` to indicate whether `func`\n     * should be invoked on the leading and/or trailing edge of the `wait`\n     * timeout. The `func` is invoked with the last arguments provided to the\n     * throttled function. Subsequent calls to the throttled function return the\n     * result of the last `func` invocation.\n     *\n     * **Note:** If `leading` and `trailing` options are `true`, `func` is\n     * invoked on the trailing edge of the timeout only if the throttled function\n     * is invoked more than once during the `wait` timeout.\n     *\n     * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n     * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n     *\n     * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n     * for details over the differences between `_.throttle` and `_.debounce`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Function\n     * @param {Function} func The function to throttle.\n     * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n     * @param {Object} [options={}] The options object.\n     * @param {boolean} [options.leading=true]\n     *  Specify invoking on the leading edge of the timeout.\n     * @param {boolean} [options.trailing=true]\n     *  Specify invoking on the trailing edge of the timeout.\n     * @returns {Function} Returns the new throttled function.\n     * @example\n     *\n     * // Avoid excessively updating the position while scrolling.\n     * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n     *\n     * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n     * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n     * jQuery(element).on('click', throttled);\n     *\n     * // Cancel the trailing throttled invocation.\n     * jQuery(window).on('popstate', throttled.cancel);\n     */\n    function throttle(func, wait, options) {\n      var leading = true,\n          trailing = true;\n\n      if (typeof func != 'function') {\n        throw new TypeError(FUNC_ERROR_TEXT);\n      }\n      if (isObject(options)) {\n        leading = 'leading' in options ? !!options.leading : leading;\n        trailing = 'trailing' in options ? !!options.trailing : trailing;\n      }\n      return debounce(func, wait, {\n        'leading': leading,\n        'maxWait': wait,\n        'trailing': trailing\n      });\n    }\n\n    /**\n     * Creates a function that accepts up to one argument, ignoring any\n     * additional arguments.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Function\n     * @param {Function} func The function to cap arguments for.\n     * @returns {Function} Returns the new capped function.\n     * @example\n     *\n     * _.map(['6', '8', '10'], _.unary(parseInt));\n     * // => [6, 8, 10]\n     */\n    function unary(func) {\n      return ary(func, 1);\n    }\n\n    /**\n     * Creates a function that provides `value` to `wrapper` as its first\n     * argument. Any additional arguments provided to the function are appended\n     * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n     * binding of the created function.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Function\n     * @param {*} value The value to wrap.\n     * @param {Function} [wrapper=identity] The wrapper function.\n     * @returns {Function} Returns the new function.\n     * @example\n     *\n     * var p = _.wrap(_.escape, function(func, text) {\n     *   return '<p>' + func(text) + '</p>';\n     * });\n     *\n     * p('fred, barney, & pebbles');\n     * // => '<p>fred, barney, &amp; pebbles</p>'\n     */\n    function wrap(value, wrapper) {\n      return partial(castFunction(wrapper), value);\n    }\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Casts `value` as an array if it's not one.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.4.0\n     * @category Lang\n     * @param {*} value The value to inspect.\n     * @returns {Array} Returns the cast array.\n     * @example\n     *\n     * _.castArray(1);\n     * // => [1]\n     *\n     * _.castArray({ 'a': 1 });\n     * // => [{ 'a': 1 }]\n     *\n     * _.castArray('abc');\n     * // => ['abc']\n     *\n     * _.castArray(null);\n     * // => [null]\n     *\n     * _.castArray(undefined);\n     * // => [undefined]\n     *\n     * _.castArray();\n     * // => []\n     *\n     * var array = [1, 2, 3];\n     * console.log(_.castArray(array) === array);\n     * // => true\n     */\n    function castArray() {\n      if (!arguments.length) {\n        return [];\n      }\n      var value = arguments[0];\n      return isArray(value) ? value : [value];\n    }\n\n    /**\n     * Creates a shallow clone of `value`.\n     *\n     * **Note:** This method is loosely based on the\n     * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n     * and supports cloning arrays, array buffers, booleans, date objects, maps,\n     * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n     * arrays. The own enumerable properties of `arguments` objects are cloned\n     * as plain objects. An empty object is returned for uncloneable values such\n     * as error objects, functions, DOM nodes, and WeakMaps.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to clone.\n     * @returns {*} Returns the cloned value.\n     * @see _.cloneDeep\n     * @example\n     *\n     * var objects = [{ 'a': 1 }, { 'b': 2 }];\n     *\n     * var shallow = _.clone(objects);\n     * console.log(shallow[0] === objects[0]);\n     * // => true\n     */\n    function clone(value) {\n      return baseClone(value, CLONE_SYMBOLS_FLAG);\n    }\n\n    /**\n     * This method is like `_.clone` except that it accepts `customizer` which\n     * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n     * cloning is handled by the method instead. The `customizer` is invoked with\n     * up to four arguments; (value [, index|key, object, stack]).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to clone.\n     * @param {Function} [customizer] The function to customize cloning.\n     * @returns {*} Returns the cloned value.\n     * @see _.cloneDeepWith\n     * @example\n     *\n     * function customizer(value) {\n     *   if (_.isElement(value)) {\n     *     return value.cloneNode(false);\n     *   }\n     * }\n     *\n     * var el = _.cloneWith(document.body, customizer);\n     *\n     * console.log(el === document.body);\n     * // => false\n     * console.log(el.nodeName);\n     * // => 'BODY'\n     * console.log(el.childNodes.length);\n     * // => 0\n     */\n    function cloneWith(value, customizer) {\n      customizer = typeof customizer == 'function' ? customizer : undefined;\n      return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n    }\n\n    /**\n     * This method is like `_.clone` except that it recursively clones `value`.\n     *\n     * @static\n     * @memberOf _\n     * @since 1.0.0\n     * @category Lang\n     * @param {*} value The value to recursively clone.\n     * @returns {*} Returns the deep cloned value.\n     * @see _.clone\n     * @example\n     *\n     * var objects = [{ 'a': 1 }, { 'b': 2 }];\n     *\n     * var deep = _.cloneDeep(objects);\n     * console.log(deep[0] === objects[0]);\n     * // => false\n     */\n    function cloneDeep(value) {\n      return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n    }\n\n    /**\n     * This method is like `_.cloneWith` except that it recursively clones `value`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to recursively clone.\n     * @param {Function} [customizer] The function to customize cloning.\n     * @returns {*} Returns the deep cloned value.\n     * @see _.cloneWith\n     * @example\n     *\n     * function customizer(value) {\n     *   if (_.isElement(value)) {\n     *     return value.cloneNode(true);\n     *   }\n     * }\n     *\n     * var el = _.cloneDeepWith(document.body, customizer);\n     *\n     * console.log(el === document.body);\n     * // => false\n     * console.log(el.nodeName);\n     * // => 'BODY'\n     * console.log(el.childNodes.length);\n     * // => 20\n     */\n    function cloneDeepWith(value, customizer) {\n      customizer = typeof customizer == 'function' ? customizer : undefined;\n      return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n    }\n\n    /**\n     * Checks if `object` conforms to `source` by invoking the predicate\n     * properties of `source` with the corresponding property values of `object`.\n     *\n     * **Note:** This method is equivalent to `_.conforms` when `source` is\n     * partially applied.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.14.0\n     * @category Lang\n     * @param {Object} object The object to inspect.\n     * @param {Object} source The object of property predicates to conform to.\n     * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n     * @example\n     *\n     * var object = { 'a': 1, 'b': 2 };\n     *\n     * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n     * // => true\n     *\n     * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n     * // => false\n     */\n    function conformsTo(object, source) {\n      return source == null || baseConformsTo(object, source, keys(source));\n    }\n\n    /**\n     * Performs a\n     * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n     * comparison between two values to determine if they are equivalent.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n     * @example\n     *\n     * var object = { 'a': 1 };\n     * var other = { 'a': 1 };\n     *\n     * _.eq(object, object);\n     * // => true\n     *\n     * _.eq(object, other);\n     * // => false\n     *\n     * _.eq('a', 'a');\n     * // => true\n     *\n     * _.eq('a', Object('a'));\n     * // => false\n     *\n     * _.eq(NaN, NaN);\n     * // => true\n     */\n    function eq(value, other) {\n      return value === other || (value !== value && other !== other);\n    }\n\n    /**\n     * Checks if `value` is greater than `other`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.9.0\n     * @category Lang\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @returns {boolean} Returns `true` if `value` is greater than `other`,\n     *  else `false`.\n     * @see _.lt\n     * @example\n     *\n     * _.gt(3, 1);\n     * // => true\n     *\n     * _.gt(3, 3);\n     * // => false\n     *\n     * _.gt(1, 3);\n     * // => false\n     */\n    var gt = createRelationalOperation(baseGt);\n\n    /**\n     * Checks if `value` is greater than or equal to `other`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.9.0\n     * @category Lang\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @returns {boolean} Returns `true` if `value` is greater than or equal to\n     *  `other`, else `false`.\n     * @see _.lte\n     * @example\n     *\n     * _.gte(3, 1);\n     * // => true\n     *\n     * _.gte(3, 3);\n     * // => true\n     *\n     * _.gte(1, 3);\n     * // => false\n     */\n    var gte = createRelationalOperation(function(value, other) {\n      return value >= other;\n    });\n\n    /**\n     * Checks if `value` is likely an `arguments` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n     *  else `false`.\n     * @example\n     *\n     * _.isArguments(function() { return arguments; }());\n     * // => true\n     *\n     * _.isArguments([1, 2, 3]);\n     * // => false\n     */\n    var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n      return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n        !propertyIsEnumerable.call(value, 'callee');\n    };\n\n    /**\n     * Checks if `value` is classified as an `Array` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n     * @example\n     *\n     * _.isArray([1, 2, 3]);\n     * // => true\n     *\n     * _.isArray(document.body.children);\n     * // => false\n     *\n     * _.isArray('abc');\n     * // => false\n     *\n     * _.isArray(_.noop);\n     * // => false\n     */\n    var isArray = Array.isArray;\n\n    /**\n     * Checks if `value` is classified as an `ArrayBuffer` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.3.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n     * @example\n     *\n     * _.isArrayBuffer(new ArrayBuffer(2));\n     * // => true\n     *\n     * _.isArrayBuffer(new Array(2));\n     * // => false\n     */\n    var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n    /**\n     * Checks if `value` is array-like. A value is considered array-like if it's\n     * not a function and has a `value.length` that's an integer greater than or\n     * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n     * @example\n     *\n     * _.isArrayLike([1, 2, 3]);\n     * // => true\n     *\n     * _.isArrayLike(document.body.children);\n     * // => true\n     *\n     * _.isArrayLike('abc');\n     * // => true\n     *\n     * _.isArrayLike(_.noop);\n     * // => false\n     */\n    function isArrayLike(value) {\n      return value != null && isLength(value.length) && !isFunction(value);\n    }\n\n    /**\n     * This method is like `_.isArrayLike` except that it also checks if `value`\n     * is an object.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is an array-like object,\n     *  else `false`.\n     * @example\n     *\n     * _.isArrayLikeObject([1, 2, 3]);\n     * // => true\n     *\n     * _.isArrayLikeObject(document.body.children);\n     * // => true\n     *\n     * _.isArrayLikeObject('abc');\n     * // => false\n     *\n     * _.isArrayLikeObject(_.noop);\n     * // => false\n     */\n    function isArrayLikeObject(value) {\n      return isObjectLike(value) && isArrayLike(value);\n    }\n\n    /**\n     * Checks if `value` is classified as a boolean primitive or object.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n     * @example\n     *\n     * _.isBoolean(false);\n     * // => true\n     *\n     * _.isBoolean(null);\n     * // => false\n     */\n    function isBoolean(value) {\n      return value === true || value === false ||\n        (isObjectLike(value) && baseGetTag(value) == boolTag);\n    }\n\n    /**\n     * Checks if `value` is a buffer.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.3.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n     * @example\n     *\n     * _.isBuffer(new Buffer(2));\n     * // => true\n     *\n     * _.isBuffer(new Uint8Array(2));\n     * // => false\n     */\n    var isBuffer = nativeIsBuffer || stubFalse;\n\n    /**\n     * Checks if `value` is classified as a `Date` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n     * @example\n     *\n     * _.isDate(new Date);\n     * // => true\n     *\n     * _.isDate('Mon April 23 2012');\n     * // => false\n     */\n    var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n    /**\n     * Checks if `value` is likely a DOM element.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n     * @example\n     *\n     * _.isElement(document.body);\n     * // => true\n     *\n     * _.isElement('<body>');\n     * // => false\n     */\n    function isElement(value) {\n      return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n    }\n\n    /**\n     * Checks if `value` is an empty object, collection, map, or set.\n     *\n     * Objects are considered empty if they have no own enumerable string keyed\n     * properties.\n     *\n     * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n     * jQuery-like collections are considered empty if they have a `length` of `0`.\n     * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n     * @example\n     *\n     * _.isEmpty(null);\n     * // => true\n     *\n     * _.isEmpty(true);\n     * // => true\n     *\n     * _.isEmpty(1);\n     * // => true\n     *\n     * _.isEmpty([1, 2, 3]);\n     * // => false\n     *\n     * _.isEmpty({ 'a': 1 });\n     * // => false\n     */\n    function isEmpty(value) {\n      if (value == null) {\n        return true;\n      }\n      if (isArrayLike(value) &&\n          (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n            isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n        return !value.length;\n      }\n      var tag = getTag(value);\n      if (tag == mapTag || tag == setTag) {\n        return !value.size;\n      }\n      if (isPrototype(value)) {\n        return !baseKeys(value).length;\n      }\n      for (var key in value) {\n        if (hasOwnProperty.call(value, key)) {\n          return false;\n        }\n      }\n      return true;\n    }\n\n    /**\n     * Performs a deep comparison between two values to determine if they are\n     * equivalent.\n     *\n     * **Note:** This method supports comparing arrays, array buffers, booleans,\n     * date objects, error objects, maps, numbers, `Object` objects, regexes,\n     * sets, strings, symbols, and typed arrays. `Object` objects are compared\n     * by their own, not inherited, enumerable properties. Functions and DOM\n     * nodes are compared by strict equality, i.e. `===`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n     * @example\n     *\n     * var object = { 'a': 1 };\n     * var other = { 'a': 1 };\n     *\n     * _.isEqual(object, other);\n     * // => true\n     *\n     * object === other;\n     * // => false\n     */\n    function isEqual(value, other) {\n      return baseIsEqual(value, other);\n    }\n\n    /**\n     * This method is like `_.isEqual` except that it accepts `customizer` which\n     * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n     * are handled by the method instead. The `customizer` is invoked with up to\n     * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @param {Function} [customizer] The function to customize comparisons.\n     * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n     * @example\n     *\n     * function isGreeting(value) {\n     *   return /^h(?:i|ello)$/.test(value);\n     * }\n     *\n     * function customizer(objValue, othValue) {\n     *   if (isGreeting(objValue) && isGreeting(othValue)) {\n     *     return true;\n     *   }\n     * }\n     *\n     * var array = ['hello', 'goodbye'];\n     * var other = ['hi', 'goodbye'];\n     *\n     * _.isEqualWith(array, other, customizer);\n     * // => true\n     */\n    function isEqualWith(value, other, customizer) {\n      customizer = typeof customizer == 'function' ? customizer : undefined;\n      var result = customizer ? customizer(value, other) : undefined;\n      return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n    }\n\n    /**\n     * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n     * `SyntaxError`, `TypeError`, or `URIError` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n     * @example\n     *\n     * _.isError(new Error);\n     * // => true\n     *\n     * _.isError(Error);\n     * // => false\n     */\n    function isError(value) {\n      if (!isObjectLike(value)) {\n        return false;\n      }\n      var tag = baseGetTag(value);\n      return tag == errorTag || tag == domExcTag ||\n        (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n    }\n\n    /**\n     * Checks if `value` is a finite primitive number.\n     *\n     * **Note:** This method is based on\n     * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n     * @example\n     *\n     * _.isFinite(3);\n     * // => true\n     *\n     * _.isFinite(Number.MIN_VALUE);\n     * // => true\n     *\n     * _.isFinite(Infinity);\n     * // => false\n     *\n     * _.isFinite('3');\n     * // => false\n     */\n    function isFinite(value) {\n      return typeof value == 'number' && nativeIsFinite(value);\n    }\n\n    /**\n     * Checks if `value` is classified as a `Function` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n     * @example\n     *\n     * _.isFunction(_);\n     * // => true\n     *\n     * _.isFunction(/abc/);\n     * // => false\n     */\n    function isFunction(value) {\n      if (!isObject(value)) {\n        return false;\n      }\n      // The use of `Object#toString` avoids issues with the `typeof` operator\n      // in Safari 9 which returns 'object' for typed arrays and other constructors.\n      var tag = baseGetTag(value);\n      return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n    }\n\n    /**\n     * Checks if `value` is an integer.\n     *\n     * **Note:** This method is based on\n     * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n     * @example\n     *\n     * _.isInteger(3);\n     * // => true\n     *\n     * _.isInteger(Number.MIN_VALUE);\n     * // => false\n     *\n     * _.isInteger(Infinity);\n     * // => false\n     *\n     * _.isInteger('3');\n     * // => false\n     */\n    function isInteger(value) {\n      return typeof value == 'number' && value == toInteger(value);\n    }\n\n    /**\n     * Checks if `value` is a valid array-like length.\n     *\n     * **Note:** This method is loosely based on\n     * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n     * @example\n     *\n     * _.isLength(3);\n     * // => true\n     *\n     * _.isLength(Number.MIN_VALUE);\n     * // => false\n     *\n     * _.isLength(Infinity);\n     * // => false\n     *\n     * _.isLength('3');\n     * // => false\n     */\n    function isLength(value) {\n      return typeof value == 'number' &&\n        value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n    }\n\n    /**\n     * Checks if `value` is the\n     * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n     * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n     * @example\n     *\n     * _.isObject({});\n     * // => true\n     *\n     * _.isObject([1, 2, 3]);\n     * // => true\n     *\n     * _.isObject(_.noop);\n     * // => true\n     *\n     * _.isObject(null);\n     * // => false\n     */\n    function isObject(value) {\n      var type = typeof value;\n      return value != null && (type == 'object' || type == 'function');\n    }\n\n    /**\n     * Checks if `value` is object-like. A value is object-like if it's not `null`\n     * and has a `typeof` result of \"object\".\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n     * @example\n     *\n     * _.isObjectLike({});\n     * // => true\n     *\n     * _.isObjectLike([1, 2, 3]);\n     * // => true\n     *\n     * _.isObjectLike(_.noop);\n     * // => false\n     *\n     * _.isObjectLike(null);\n     * // => false\n     */\n    function isObjectLike(value) {\n      return value != null && typeof value == 'object';\n    }\n\n    /**\n     * Checks if `value` is classified as a `Map` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.3.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n     * @example\n     *\n     * _.isMap(new Map);\n     * // => true\n     *\n     * _.isMap(new WeakMap);\n     * // => false\n     */\n    var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n    /**\n     * Performs a partial deep comparison between `object` and `source` to\n     * determine if `object` contains equivalent property values.\n     *\n     * **Note:** This method is equivalent to `_.matches` when `source` is\n     * partially applied.\n     *\n     * Partial comparisons will match empty array and empty object `source`\n     * values against any array or object value, respectively. See `_.isEqual`\n     * for a list of supported value comparisons.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Lang\n     * @param {Object} object The object to inspect.\n     * @param {Object} source The object of property values to match.\n     * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n     * @example\n     *\n     * var object = { 'a': 1, 'b': 2 };\n     *\n     * _.isMatch(object, { 'b': 2 });\n     * // => true\n     *\n     * _.isMatch(object, { 'b': 1 });\n     * // => false\n     */\n    function isMatch(object, source) {\n      return object === source || baseIsMatch(object, source, getMatchData(source));\n    }\n\n    /**\n     * This method is like `_.isMatch` except that it accepts `customizer` which\n     * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n     * are handled by the method instead. The `customizer` is invoked with five\n     * arguments: (objValue, srcValue, index|key, object, source).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {Object} object The object to inspect.\n     * @param {Object} source The object of property values to match.\n     * @param {Function} [customizer] The function to customize comparisons.\n     * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n     * @example\n     *\n     * function isGreeting(value) {\n     *   return /^h(?:i|ello)$/.test(value);\n     * }\n     *\n     * function customizer(objValue, srcValue) {\n     *   if (isGreeting(objValue) && isGreeting(srcValue)) {\n     *     return true;\n     *   }\n     * }\n     *\n     * var object = { 'greeting': 'hello' };\n     * var source = { 'greeting': 'hi' };\n     *\n     * _.isMatchWith(object, source, customizer);\n     * // => true\n     */\n    function isMatchWith(object, source, customizer) {\n      customizer = typeof customizer == 'function' ? customizer : undefined;\n      return baseIsMatch(object, source, getMatchData(source), customizer);\n    }\n\n    /**\n     * Checks if `value` is `NaN`.\n     *\n     * **Note:** This method is based on\n     * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n     * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n     * `undefined` and other non-number values.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n     * @example\n     *\n     * _.isNaN(NaN);\n     * // => true\n     *\n     * _.isNaN(new Number(NaN));\n     * // => true\n     *\n     * isNaN(undefined);\n     * // => true\n     *\n     * _.isNaN(undefined);\n     * // => false\n     */\n    function isNaN(value) {\n      // An `NaN` primitive is the only value that is not equal to itself.\n      // Perform the `toStringTag` check first to avoid errors with some\n      // ActiveX objects in IE.\n      return isNumber(value) && value != +value;\n    }\n\n    /**\n     * Checks if `value` is a pristine native function.\n     *\n     * **Note:** This method can't reliably detect native functions in the presence\n     * of the core-js package because core-js circumvents this kind of detection.\n     * Despite multiple requests, the core-js maintainer has made it clear: any\n     * attempt to fix the detection will be obstructed. As a result, we're left\n     * with little choice but to throw an error. Unfortunately, this also affects\n     * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n     * which rely on core-js.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a native function,\n     *  else `false`.\n     * @example\n     *\n     * _.isNative(Array.prototype.push);\n     * // => true\n     *\n     * _.isNative(_);\n     * // => false\n     */\n    function isNative(value) {\n      if (isMaskable(value)) {\n        throw new Error(CORE_ERROR_TEXT);\n      }\n      return baseIsNative(value);\n    }\n\n    /**\n     * Checks if `value` is `null`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n     * @example\n     *\n     * _.isNull(null);\n     * // => true\n     *\n     * _.isNull(void 0);\n     * // => false\n     */\n    function isNull(value) {\n      return value === null;\n    }\n\n    /**\n     * Checks if `value` is `null` or `undefined`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n     * @example\n     *\n     * _.isNil(null);\n     * // => true\n     *\n     * _.isNil(void 0);\n     * // => true\n     *\n     * _.isNil(NaN);\n     * // => false\n     */\n    function isNil(value) {\n      return value == null;\n    }\n\n    /**\n     * Checks if `value` is classified as a `Number` primitive or object.\n     *\n     * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n     * classified as numbers, use the `_.isFinite` method.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n     * @example\n     *\n     * _.isNumber(3);\n     * // => true\n     *\n     * _.isNumber(Number.MIN_VALUE);\n     * // => true\n     *\n     * _.isNumber(Infinity);\n     * // => true\n     *\n     * _.isNumber('3');\n     * // => false\n     */\n    function isNumber(value) {\n      return typeof value == 'number' ||\n        (isObjectLike(value) && baseGetTag(value) == numberTag);\n    }\n\n    /**\n     * Checks if `value` is a plain object, that is, an object created by the\n     * `Object` constructor or one with a `[[Prototype]]` of `null`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.8.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     * }\n     *\n     * _.isPlainObject(new Foo);\n     * // => false\n     *\n     * _.isPlainObject([1, 2, 3]);\n     * // => false\n     *\n     * _.isPlainObject({ 'x': 0, 'y': 0 });\n     * // => true\n     *\n     * _.isPlainObject(Object.create(null));\n     * // => true\n     */\n    function isPlainObject(value) {\n      if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n        return false;\n      }\n      var proto = getPrototype(value);\n      if (proto === null) {\n        return true;\n      }\n      var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n      return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n        funcToString.call(Ctor) == objectCtorString;\n    }\n\n    /**\n     * Checks if `value` is classified as a `RegExp` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n     * @example\n     *\n     * _.isRegExp(/abc/);\n     * // => true\n     *\n     * _.isRegExp('/abc/');\n     * // => false\n     */\n    var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n    /**\n     * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n     * double precision number which isn't the result of a rounded unsafe integer.\n     *\n     * **Note:** This method is based on\n     * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n     * @example\n     *\n     * _.isSafeInteger(3);\n     * // => true\n     *\n     * _.isSafeInteger(Number.MIN_VALUE);\n     * // => false\n     *\n     * _.isSafeInteger(Infinity);\n     * // => false\n     *\n     * _.isSafeInteger('3');\n     * // => false\n     */\n    function isSafeInteger(value) {\n      return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n    }\n\n    /**\n     * Checks if `value` is classified as a `Set` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.3.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n     * @example\n     *\n     * _.isSet(new Set);\n     * // => true\n     *\n     * _.isSet(new WeakSet);\n     * // => false\n     */\n    var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n    /**\n     * Checks if `value` is classified as a `String` primitive or object.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n     * @example\n     *\n     * _.isString('abc');\n     * // => true\n     *\n     * _.isString(1);\n     * // => false\n     */\n    function isString(value) {\n      return typeof value == 'string' ||\n        (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n    }\n\n    /**\n     * Checks if `value` is classified as a `Symbol` primitive or object.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n     * @example\n     *\n     * _.isSymbol(Symbol.iterator);\n     * // => true\n     *\n     * _.isSymbol('abc');\n     * // => false\n     */\n    function isSymbol(value) {\n      return typeof value == 'symbol' ||\n        (isObjectLike(value) && baseGetTag(value) == symbolTag);\n    }\n\n    /**\n     * Checks if `value` is classified as a typed array.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n     * @example\n     *\n     * _.isTypedArray(new Uint8Array);\n     * // => true\n     *\n     * _.isTypedArray([]);\n     * // => false\n     */\n    var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n    /**\n     * Checks if `value` is `undefined`.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n     * @example\n     *\n     * _.isUndefined(void 0);\n     * // => true\n     *\n     * _.isUndefined(null);\n     * // => false\n     */\n    function isUndefined(value) {\n      return value === undefined;\n    }\n\n    /**\n     * Checks if `value` is classified as a `WeakMap` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.3.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n     * @example\n     *\n     * _.isWeakMap(new WeakMap);\n     * // => true\n     *\n     * _.isWeakMap(new Map);\n     * // => false\n     */\n    function isWeakMap(value) {\n      return isObjectLike(value) && getTag(value) == weakMapTag;\n    }\n\n    /**\n     * Checks if `value` is classified as a `WeakSet` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.3.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n     * @example\n     *\n     * _.isWeakSet(new WeakSet);\n     * // => true\n     *\n     * _.isWeakSet(new Set);\n     * // => false\n     */\n    function isWeakSet(value) {\n      return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n    }\n\n    /**\n     * Checks if `value` is less than `other`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.9.0\n     * @category Lang\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @returns {boolean} Returns `true` if `value` is less than `other`,\n     *  else `false`.\n     * @see _.gt\n     * @example\n     *\n     * _.lt(1, 3);\n     * // => true\n     *\n     * _.lt(3, 3);\n     * // => false\n     *\n     * _.lt(3, 1);\n     * // => false\n     */\n    var lt = createRelationalOperation(baseLt);\n\n    /**\n     * Checks if `value` is less than or equal to `other`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.9.0\n     * @category Lang\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @returns {boolean} Returns `true` if `value` is less than or equal to\n     *  `other`, else `false`.\n     * @see _.gte\n     * @example\n     *\n     * _.lte(1, 3);\n     * // => true\n     *\n     * _.lte(3, 3);\n     * // => true\n     *\n     * _.lte(3, 1);\n     * // => false\n     */\n    var lte = createRelationalOperation(function(value, other) {\n      return value <= other;\n    });\n\n    /**\n     * Converts `value` to an array.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Lang\n     * @param {*} value The value to convert.\n     * @returns {Array} Returns the converted array.\n     * @example\n     *\n     * _.toArray({ 'a': 1, 'b': 2 });\n     * // => [1, 2]\n     *\n     * _.toArray('abc');\n     * // => ['a', 'b', 'c']\n     *\n     * _.toArray(1);\n     * // => []\n     *\n     * _.toArray(null);\n     * // => []\n     */\n    function toArray(value) {\n      if (!value) {\n        return [];\n      }\n      if (isArrayLike(value)) {\n        return isString(value) ? stringToArray(value) : copyArray(value);\n      }\n      if (symIterator && value[symIterator]) {\n        return iteratorToArray(value[symIterator]());\n      }\n      var tag = getTag(value),\n          func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n      return func(value);\n    }\n\n    /**\n     * Converts `value` to a finite number.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.12.0\n     * @category Lang\n     * @param {*} value The value to convert.\n     * @returns {number} Returns the converted number.\n     * @example\n     *\n     * _.toFinite(3.2);\n     * // => 3.2\n     *\n     * _.toFinite(Number.MIN_VALUE);\n     * // => 5e-324\n     *\n     * _.toFinite(Infinity);\n     * // => 1.7976931348623157e+308\n     *\n     * _.toFinite('3.2');\n     * // => 3.2\n     */\n    function toFinite(value) {\n      if (!value) {\n        return value === 0 ? value : 0;\n      }\n      value = toNumber(value);\n      if (value === INFINITY || value === -INFINITY) {\n        var sign = (value < 0 ? -1 : 1);\n        return sign * MAX_INTEGER;\n      }\n      return value === value ? value : 0;\n    }\n\n    /**\n     * Converts `value` to an integer.\n     *\n     * **Note:** This method is loosely based on\n     * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to convert.\n     * @returns {number} Returns the converted integer.\n     * @example\n     *\n     * _.toInteger(3.2);\n     * // => 3\n     *\n     * _.toInteger(Number.MIN_VALUE);\n     * // => 0\n     *\n     * _.toInteger(Infinity);\n     * // => 1.7976931348623157e+308\n     *\n     * _.toInteger('3.2');\n     * // => 3\n     */\n    function toInteger(value) {\n      var result = toFinite(value),\n          remainder = result % 1;\n\n      return result === result ? (remainder ? result - remainder : result) : 0;\n    }\n\n    /**\n     * Converts `value` to an integer suitable for use as the length of an\n     * array-like object.\n     *\n     * **Note:** This method is based on\n     * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to convert.\n     * @returns {number} Returns the converted integer.\n     * @example\n     *\n     * _.toLength(3.2);\n     * // => 3\n     *\n     * _.toLength(Number.MIN_VALUE);\n     * // => 0\n     *\n     * _.toLength(Infinity);\n     * // => 4294967295\n     *\n     * _.toLength('3.2');\n     * // => 3\n     */\n    function toLength(value) {\n      return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n    }\n\n    /**\n     * Converts `value` to a number.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to process.\n     * @returns {number} Returns the number.\n     * @example\n     *\n     * _.toNumber(3.2);\n     * // => 3.2\n     *\n     * _.toNumber(Number.MIN_VALUE);\n     * // => 5e-324\n     *\n     * _.toNumber(Infinity);\n     * // => Infinity\n     *\n     * _.toNumber('3.2');\n     * // => 3.2\n     */\n    function toNumber(value) {\n      if (typeof value == 'number') {\n        return value;\n      }\n      if (isSymbol(value)) {\n        return NAN;\n      }\n      if (isObject(value)) {\n        var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n        value = isObject(other) ? (other + '') : other;\n      }\n      if (typeof value != 'string') {\n        return value === 0 ? value : +value;\n      }\n      value = value.replace(reTrim, '');\n      var isBinary = reIsBinary.test(value);\n      return (isBinary || reIsOctal.test(value))\n        ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n        : (reIsBadHex.test(value) ? NAN : +value);\n    }\n\n    /**\n     * Converts `value` to a plain object flattening inherited enumerable string\n     * keyed properties of `value` to own properties of the plain object.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Lang\n     * @param {*} value The value to convert.\n     * @returns {Object} Returns the converted plain object.\n     * @example\n     *\n     * function Foo() {\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.assign({ 'a': 1 }, new Foo);\n     * // => { 'a': 1, 'b': 2 }\n     *\n     * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n     * // => { 'a': 1, 'b': 2, 'c': 3 }\n     */\n    function toPlainObject(value) {\n      return copyObject(value, keysIn(value));\n    }\n\n    /**\n     * Converts `value` to a safe integer. A safe integer can be compared and\n     * represented correctly.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to convert.\n     * @returns {number} Returns the converted integer.\n     * @example\n     *\n     * _.toSafeInteger(3.2);\n     * // => 3\n     *\n     * _.toSafeInteger(Number.MIN_VALUE);\n     * // => 0\n     *\n     * _.toSafeInteger(Infinity);\n     * // => 9007199254740991\n     *\n     * _.toSafeInteger('3.2');\n     * // => 3\n     */\n    function toSafeInteger(value) {\n      return value\n        ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n        : (value === 0 ? value : 0);\n    }\n\n    /**\n     * Converts `value` to a string. An empty string is returned for `null`\n     * and `undefined` values. The sign of `-0` is preserved.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to convert.\n     * @returns {string} Returns the converted string.\n     * @example\n     *\n     * _.toString(null);\n     * // => ''\n     *\n     * _.toString(-0);\n     * // => '-0'\n     *\n     * _.toString([1, 2, 3]);\n     * // => '1,2,3'\n     */\n    function toString(value) {\n      return value == null ? '' : baseToString(value);\n    }\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Assigns own enumerable string keyed properties of source objects to the\n     * destination object. Source objects are applied from left to right.\n     * Subsequent sources overwrite property assignments of previous sources.\n     *\n     * **Note:** This method mutates `object` and is loosely based on\n     * [`Object.assign`](https://mdn.io/Object/assign).\n     *\n     * @static\n     * @memberOf _\n     * @since 0.10.0\n     * @category Object\n     * @param {Object} object The destination object.\n     * @param {...Object} [sources] The source objects.\n     * @returns {Object} Returns `object`.\n     * @see _.assignIn\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     * }\n     *\n     * function Bar() {\n     *   this.c = 3;\n     * }\n     *\n     * Foo.prototype.b = 2;\n     * Bar.prototype.d = 4;\n     *\n     * _.assign({ 'a': 0 }, new Foo, new Bar);\n     * // => { 'a': 1, 'c': 3 }\n     */\n    var assign = createAssigner(function(object, source) {\n      if (isPrototype(source) || isArrayLike(source)) {\n        copyObject(source, keys(source), object);\n        return;\n      }\n      for (var key in source) {\n        if (hasOwnProperty.call(source, key)) {\n          assignValue(object, key, source[key]);\n        }\n      }\n    });\n\n    /**\n     * This method is like `_.assign` except that it iterates over own and\n     * inherited source properties.\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @alias extend\n     * @category Object\n     * @param {Object} object The destination object.\n     * @param {...Object} [sources] The source objects.\n     * @returns {Object} Returns `object`.\n     * @see _.assign\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     * }\n     *\n     * function Bar() {\n     *   this.c = 3;\n     * }\n     *\n     * Foo.prototype.b = 2;\n     * Bar.prototype.d = 4;\n     *\n     * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n     * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n     */\n    var assignIn = createAssigner(function(object, source) {\n      copyObject(source, keysIn(source), object);\n    });\n\n    /**\n     * This method is like `_.assignIn` except that it accepts `customizer`\n     * which is invoked to produce the assigned values. If `customizer` returns\n     * `undefined`, assignment is handled by the method instead. The `customizer`\n     * is invoked with five arguments: (objValue, srcValue, key, object, source).\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @alias extendWith\n     * @category Object\n     * @param {Object} object The destination object.\n     * @param {...Object} sources The source objects.\n     * @param {Function} [customizer] The function to customize assigned values.\n     * @returns {Object} Returns `object`.\n     * @see _.assignWith\n     * @example\n     *\n     * function customizer(objValue, srcValue) {\n     *   return _.isUndefined(objValue) ? srcValue : objValue;\n     * }\n     *\n     * var defaults = _.partialRight(_.assignInWith, customizer);\n     *\n     * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n     * // => { 'a': 1, 'b': 2 }\n     */\n    var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n      copyObject(source, keysIn(source), object, customizer);\n    });\n\n    /**\n     * This method is like `_.assign` except that it accepts `customizer`\n     * which is invoked to produce the assigned values. If `customizer` returns\n     * `undefined`, assignment is handled by the method instead. The `customizer`\n     * is invoked with five arguments: (objValue, srcValue, key, object, source).\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Object\n     * @param {Object} object The destination object.\n     * @param {...Object} sources The source objects.\n     * @param {Function} [customizer] The function to customize assigned values.\n     * @returns {Object} Returns `object`.\n     * @see _.assignInWith\n     * @example\n     *\n     * function customizer(objValue, srcValue) {\n     *   return _.isUndefined(objValue) ? srcValue : objValue;\n     * }\n     *\n     * var defaults = _.partialRight(_.assignWith, customizer);\n     *\n     * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n     * // => { 'a': 1, 'b': 2 }\n     */\n    var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n      copyObject(source, keys(source), object, customizer);\n    });\n\n    /**\n     * Creates an array of values corresponding to `paths` of `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 1.0.0\n     * @category Object\n     * @param {Object} object The object to iterate over.\n     * @param {...(string|string[])} [paths] The property paths to pick.\n     * @returns {Array} Returns the picked values.\n     * @example\n     *\n     * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n     *\n     * _.at(object, ['a[0].b.c', 'a[1]']);\n     * // => [3, 4]\n     */\n    var at = flatRest(baseAt);\n\n    /**\n     * Creates an object that inherits from the `prototype` object. If a\n     * `properties` object is given, its own enumerable string keyed properties\n     * are assigned to the created object.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.3.0\n     * @category Object\n     * @param {Object} prototype The object to inherit from.\n     * @param {Object} [properties] The properties to assign to the object.\n     * @returns {Object} Returns the new object.\n     * @example\n     *\n     * function Shape() {\n     *   this.x = 0;\n     *   this.y = 0;\n     * }\n     *\n     * function Circle() {\n     *   Shape.call(this);\n     * }\n     *\n     * Circle.prototype = _.create(Shape.prototype, {\n     *   'constructor': Circle\n     * });\n     *\n     * var circle = new Circle;\n     * circle instanceof Circle;\n     * // => true\n     *\n     * circle instanceof Shape;\n     * // => true\n     */\n    function create(prototype, properties) {\n      var result = baseCreate(prototype);\n      return properties == null ? result : baseAssign(result, properties);\n    }\n\n    /**\n     * Assigns own and inherited enumerable string keyed properties of source\n     * objects to the destination object for all destination properties that\n     * resolve to `undefined`. Source objects are applied from left to right.\n     * Once a property is set, additional values of the same property are ignored.\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Object\n     * @param {Object} object The destination object.\n     * @param {...Object} [sources] The source objects.\n     * @returns {Object} Returns `object`.\n     * @see _.defaultsDeep\n     * @example\n     *\n     * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n     * // => { 'a': 1, 'b': 2 }\n     */\n    var defaults = baseRest(function(object, sources) {\n      object = Object(object);\n\n      var index = -1;\n      var length = sources.length;\n      var guard = length > 2 ? sources[2] : undefined;\n\n      if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n        length = 1;\n      }\n\n      while (++index < length) {\n        var source = sources[index];\n        var props = keysIn(source);\n        var propsIndex = -1;\n        var propsLength = props.length;\n\n        while (++propsIndex < propsLength) {\n          var key = props[propsIndex];\n          var value = object[key];\n\n          if (value === undefined ||\n              (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n            object[key] = source[key];\n          }\n        }\n      }\n\n      return object;\n    });\n\n    /**\n     * This method is like `_.defaults` except that it recursively assigns\n     * default properties.\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.10.0\n     * @category Object\n     * @param {Object} object The destination object.\n     * @param {...Object} [sources] The source objects.\n     * @returns {Object} Returns `object`.\n     * @see _.defaults\n     * @example\n     *\n     * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n     * // => { 'a': { 'b': 2, 'c': 3 } }\n     */\n    var defaultsDeep = baseRest(function(args) {\n      args.push(undefined, customDefaultsMerge);\n      return apply(mergeWith, undefined, args);\n    });\n\n    /**\n     * This method is like `_.find` except that it returns the key of the first\n     * element `predicate` returns truthy for instead of the element itself.\n     *\n     * @static\n     * @memberOf _\n     * @since 1.1.0\n     * @category Object\n     * @param {Object} object The object to inspect.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @returns {string|undefined} Returns the key of the matched element,\n     *  else `undefined`.\n     * @example\n     *\n     * var users = {\n     *   'barney':  { 'age': 36, 'active': true },\n     *   'fred':    { 'age': 40, 'active': false },\n     *   'pebbles': { 'age': 1,  'active': true }\n     * };\n     *\n     * _.findKey(users, function(o) { return o.age < 40; });\n     * // => 'barney' (iteration order is not guaranteed)\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.findKey(users, { 'age': 1, 'active': true });\n     * // => 'pebbles'\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.findKey(users, ['active', false]);\n     * // => 'fred'\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.findKey(users, 'active');\n     * // => 'barney'\n     */\n    function findKey(object, predicate) {\n      return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n    }\n\n    /**\n     * This method is like `_.findKey` except that it iterates over elements of\n     * a collection in the opposite order.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.0.0\n     * @category Object\n     * @param {Object} object The object to inspect.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @returns {string|undefined} Returns the key of the matched element,\n     *  else `undefined`.\n     * @example\n     *\n     * var users = {\n     *   'barney':  { 'age': 36, 'active': true },\n     *   'fred':    { 'age': 40, 'active': false },\n     *   'pebbles': { 'age': 1,  'active': true }\n     * };\n     *\n     * _.findLastKey(users, function(o) { return o.age < 40; });\n     * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.findLastKey(users, { 'age': 36, 'active': true });\n     * // => 'barney'\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.findLastKey(users, ['active', false]);\n     * // => 'fred'\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.findLastKey(users, 'active');\n     * // => 'pebbles'\n     */\n    function findLastKey(object, predicate) {\n      return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n    }\n\n    /**\n     * Iterates over own and inherited enumerable string keyed properties of an\n     * object and invokes `iteratee` for each property. The iteratee is invoked\n     * with three arguments: (value, key, object). Iteratee functions may exit\n     * iteration early by explicitly returning `false`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.3.0\n     * @category Object\n     * @param {Object} object The object to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Object} Returns `object`.\n     * @see _.forInRight\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.forIn(new Foo, function(value, key) {\n     *   console.log(key);\n     * });\n     * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n     */\n    function forIn(object, iteratee) {\n      return object == null\n        ? object\n        : baseFor(object, getIteratee(iteratee, 3), keysIn);\n    }\n\n    /**\n     * This method is like `_.forIn` except that it iterates over properties of\n     * `object` in the opposite order.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.0.0\n     * @category Object\n     * @param {Object} object The object to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Object} Returns `object`.\n     * @see _.forIn\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.forInRight(new Foo, function(value, key) {\n     *   console.log(key);\n     * });\n     * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n     */\n    function forInRight(object, iteratee) {\n      return object == null\n        ? object\n        : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n    }\n\n    /**\n     * Iterates over own enumerable string keyed properties of an object and\n     * invokes `iteratee` for each property. The iteratee is invoked with three\n     * arguments: (value, key, object). Iteratee functions may exit iteration\n     * early by explicitly returning `false`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.3.0\n     * @category Object\n     * @param {Object} object The object to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Object} Returns `object`.\n     * @see _.forOwnRight\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.forOwn(new Foo, function(value, key) {\n     *   console.log(key);\n     * });\n     * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n     */\n    function forOwn(object, iteratee) {\n      return object && baseForOwn(object, getIteratee(iteratee, 3));\n    }\n\n    /**\n     * This method is like `_.forOwn` except that it iterates over properties of\n     * `object` in the opposite order.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.0.0\n     * @category Object\n     * @param {Object} object The object to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Object} Returns `object`.\n     * @see _.forOwn\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.forOwnRight(new Foo, function(value, key) {\n     *   console.log(key);\n     * });\n     * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n     */\n    function forOwnRight(object, iteratee) {\n      return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n    }\n\n    /**\n     * Creates an array of function property names from own enumerable properties\n     * of `object`.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Object\n     * @param {Object} object The object to inspect.\n     * @returns {Array} Returns the function names.\n     * @see _.functionsIn\n     * @example\n     *\n     * function Foo() {\n     *   this.a = _.constant('a');\n     *   this.b = _.constant('b');\n     * }\n     *\n     * Foo.prototype.c = _.constant('c');\n     *\n     * _.functions(new Foo);\n     * // => ['a', 'b']\n     */\n    function functions(object) {\n      return object == null ? [] : baseFunctions(object, keys(object));\n    }\n\n    /**\n     * Creates an array of function property names from own and inherited\n     * enumerable properties of `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Object\n     * @param {Object} object The object to inspect.\n     * @returns {Array} Returns the function names.\n     * @see _.functions\n     * @example\n     *\n     * function Foo() {\n     *   this.a = _.constant('a');\n     *   this.b = _.constant('b');\n     * }\n     *\n     * Foo.prototype.c = _.constant('c');\n     *\n     * _.functionsIn(new Foo);\n     * // => ['a', 'b', 'c']\n     */\n    function functionsIn(object) {\n      return object == null ? [] : baseFunctions(object, keysIn(object));\n    }\n\n    /**\n     * Gets the value at `path` of `object`. If the resolved value is\n     * `undefined`, the `defaultValue` is returned in its place.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.7.0\n     * @category Object\n     * @param {Object} object The object to query.\n     * @param {Array|string} path The path of the property to get.\n     * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n     * @returns {*} Returns the resolved value.\n     * @example\n     *\n     * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n     *\n     * _.get(object, 'a[0].b.c');\n     * // => 3\n     *\n     * _.get(object, ['a', '0', 'b', 'c']);\n     * // => 3\n     *\n     * _.get(object, 'a.b.c', 'default');\n     * // => 'default'\n     */\n    function get(object, path, defaultValue) {\n      var result = object == null ? undefined : baseGet(object, path);\n      return result === undefined ? defaultValue : result;\n    }\n\n    /**\n     * Checks if `path` is a direct property of `object`.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Object\n     * @param {Object} object The object to query.\n     * @param {Array|string} path The path to check.\n     * @returns {boolean} Returns `true` if `path` exists, else `false`.\n     * @example\n     *\n     * var object = { 'a': { 'b': 2 } };\n     * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n     *\n     * _.has(object, 'a');\n     * // => true\n     *\n     * _.has(object, 'a.b');\n     * // => true\n     *\n     * _.has(object, ['a', 'b']);\n     * // => true\n     *\n     * _.has(other, 'a');\n     * // => false\n     */\n    function has(object, path) {\n      return object != null && hasPath(object, path, baseHas);\n    }\n\n    /**\n     * Checks if `path` is a direct or inherited property of `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Object\n     * @param {Object} object The object to query.\n     * @param {Array|string} path The path to check.\n     * @returns {boolean} Returns `true` if `path` exists, else `false`.\n     * @example\n     *\n     * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n     *\n     * _.hasIn(object, 'a');\n     * // => true\n     *\n     * _.hasIn(object, 'a.b');\n     * // => true\n     *\n     * _.hasIn(object, ['a', 'b']);\n     * // => true\n     *\n     * _.hasIn(object, 'b');\n     * // => false\n     */\n    function hasIn(object, path) {\n      return object != null && hasPath(object, path, baseHasIn);\n    }\n\n    /**\n     * Creates an object composed of the inverted keys and values of `object`.\n     * If `object` contains duplicate values, subsequent values overwrite\n     * property assignments of previous values.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.7.0\n     * @category Object\n     * @param {Object} object The object to invert.\n     * @returns {Object} Returns the new inverted object.\n     * @example\n     *\n     * var object = { 'a': 1, 'b': 2, 'c': 1 };\n     *\n     * _.invert(object);\n     * // => { '1': 'c', '2': 'b' }\n     */\n    var invert = createInverter(function(result, value, key) {\n      if (value != null &&\n          typeof value.toString != 'function') {\n        value = nativeObjectToString.call(value);\n      }\n\n      result[value] = key;\n    }, constant(identity));\n\n    /**\n     * This method is like `_.invert` except that the inverted object is generated\n     * from the results of running each element of `object` thru `iteratee`. The\n     * corresponding inverted value of each inverted key is an array of keys\n     * responsible for generating the inverted value. The iteratee is invoked\n     * with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.1.0\n     * @category Object\n     * @param {Object} object The object to invert.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {Object} Returns the new inverted object.\n     * @example\n     *\n     * var object = { 'a': 1, 'b': 2, 'c': 1 };\n     *\n     * _.invertBy(object);\n     * // => { '1': ['a', 'c'], '2': ['b'] }\n     *\n     * _.invertBy(object, function(value) {\n     *   return 'group' + value;\n     * });\n     * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n     */\n    var invertBy = createInverter(function(result, value, key) {\n      if (value != null &&\n          typeof value.toString != 'function') {\n        value = nativeObjectToString.call(value);\n      }\n\n      if (hasOwnProperty.call(result, value)) {\n        result[value].push(key);\n      } else {\n        result[value] = [key];\n      }\n    }, getIteratee);\n\n    /**\n     * Invokes the method at `path` of `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Object\n     * @param {Object} object The object to query.\n     * @param {Array|string} path The path of the method to invoke.\n     * @param {...*} [args] The arguments to invoke the method with.\n     * @returns {*} Returns the result of the invoked method.\n     * @example\n     *\n     * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n     *\n     * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n     * // => [2, 3]\n     */\n    var invoke = baseRest(baseInvoke);\n\n    /**\n     * Creates an array of the own enumerable property names of `object`.\n     *\n     * **Note:** Non-object values are coerced to objects. See the\n     * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n     * for more details.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Object\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of property names.\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.keys(new Foo);\n     * // => ['a', 'b'] (iteration order is not guaranteed)\n     *\n     * _.keys('hi');\n     * // => ['0', '1']\n     */\n    function keys(object) {\n      return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n    }\n\n    /**\n     * Creates an array of the own and inherited enumerable property names of `object`.\n     *\n     * **Note:** Non-object values are coerced to objects.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Object\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of property names.\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.keysIn(new Foo);\n     * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n     */\n    function keysIn(object) {\n      return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n    }\n\n    /**\n     * The opposite of `_.mapValues`; this method creates an object with the\n     * same values as `object` and keys generated by running each own enumerable\n     * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n     * with three arguments: (value, key, object).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.8.0\n     * @category Object\n     * @param {Object} object The object to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Object} Returns the new mapped object.\n     * @see _.mapValues\n     * @example\n     *\n     * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n     *   return key + value;\n     * });\n     * // => { 'a1': 1, 'b2': 2 }\n     */\n    function mapKeys(object, iteratee) {\n      var result = {};\n      iteratee = getIteratee(iteratee, 3);\n\n      baseForOwn(object, function(value, key, object) {\n        baseAssignValue(result, iteratee(value, key, object), value);\n      });\n      return result;\n    }\n\n    /**\n     * Creates an object with the same keys as `object` and values generated\n     * by running each own enumerable string keyed property of `object` thru\n     * `iteratee`. The iteratee is invoked with three arguments:\n     * (value, key, object).\n     *\n     * @static\n     * @memberOf _\n     * @since 2.4.0\n     * @category Object\n     * @param {Object} object The object to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Object} Returns the new mapped object.\n     * @see _.mapKeys\n     * @example\n     *\n     * var users = {\n     *   'fred':    { 'user': 'fred',    'age': 40 },\n     *   'pebbles': { 'user': 'pebbles', 'age': 1 }\n     * };\n     *\n     * _.mapValues(users, function(o) { return o.age; });\n     * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.mapValues(users, 'age');\n     * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n     */\n    function mapValues(object, iteratee) {\n      var result = {};\n      iteratee = getIteratee(iteratee, 3);\n\n      baseForOwn(object, function(value, key, object) {\n        baseAssignValue(result, key, iteratee(value, key, object));\n      });\n      return result;\n    }\n\n    /**\n     * This method is like `_.assign` except that it recursively merges own and\n     * inherited enumerable string keyed properties of source objects into the\n     * destination object. Source properties that resolve to `undefined` are\n     * skipped if a destination value exists. Array and plain object properties\n     * are merged recursively. Other objects and value types are overridden by\n     * assignment. Source objects are applied from left to right. Subsequent\n     * sources overwrite property assignments of previous sources.\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.5.0\n     * @category Object\n     * @param {Object} object The destination object.\n     * @param {...Object} [sources] The source objects.\n     * @returns {Object} Returns `object`.\n     * @example\n     *\n     * var object = {\n     *   'a': [{ 'b': 2 }, { 'd': 4 }]\n     * };\n     *\n     * var other = {\n     *   'a': [{ 'c': 3 }, { 'e': 5 }]\n     * };\n     *\n     * _.merge(object, other);\n     * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n     */\n    var merge = createAssigner(function(object, source, srcIndex) {\n      baseMerge(object, source, srcIndex);\n    });\n\n    /**\n     * This method is like `_.merge` except that it accepts `customizer` which\n     * is invoked to produce the merged values of the destination and source\n     * properties. If `customizer` returns `undefined`, merging is handled by the\n     * method instead. The `customizer` is invoked with six arguments:\n     * (objValue, srcValue, key, object, source, stack).\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Object\n     * @param {Object} object The destination object.\n     * @param {...Object} sources The source objects.\n     * @param {Function} customizer The function to customize assigned values.\n     * @returns {Object} Returns `object`.\n     * @example\n     *\n     * function customizer(objValue, srcValue) {\n     *   if (_.isArray(objValue)) {\n     *     return objValue.concat(srcValue);\n     *   }\n     * }\n     *\n     * var object = { 'a': [1], 'b': [2] };\n     * var other = { 'a': [3], 'b': [4] };\n     *\n     * _.mergeWith(object, other, customizer);\n     * // => { 'a': [1, 3], 'b': [2, 4] }\n     */\n    var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n      baseMerge(object, source, srcIndex, customizer);\n    });\n\n    /**\n     * The opposite of `_.pick`; this method creates an object composed of the\n     * own and inherited enumerable property paths of `object` that are not omitted.\n     *\n     * **Note:** This method is considerably slower than `_.pick`.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Object\n     * @param {Object} object The source object.\n     * @param {...(string|string[])} [paths] The property paths to omit.\n     * @returns {Object} Returns the new object.\n     * @example\n     *\n     * var object = { 'a': 1, 'b': '2', 'c': 3 };\n     *\n     * _.omit(object, ['a', 'c']);\n     * // => { 'b': '2' }\n     */\n    var omit = flatRest(function(object, paths) {\n      var result = {};\n      if (object == null) {\n        return result;\n      }\n      var isDeep = false;\n      paths = arrayMap(paths, function(path) {\n        path = castPath(path, object);\n        isDeep || (isDeep = path.length > 1);\n        return path;\n      });\n      copyObject(object, getAllKeysIn(object), result);\n      if (isDeep) {\n        result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n      }\n      var length = paths.length;\n      while (length--) {\n        baseUnset(result, paths[length]);\n      }\n      return result;\n    });\n\n    /**\n     * The opposite of `_.pickBy`; this method creates an object composed of\n     * the own and inherited enumerable string keyed properties of `object` that\n     * `predicate` doesn't return truthy for. The predicate is invoked with two\n     * arguments: (value, key).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Object\n     * @param {Object} object The source object.\n     * @param {Function} [predicate=_.identity] The function invoked per property.\n     * @returns {Object} Returns the new object.\n     * @example\n     *\n     * var object = { 'a': 1, 'b': '2', 'c': 3 };\n     *\n     * _.omitBy(object, _.isNumber);\n     * // => { 'b': '2' }\n     */\n    function omitBy(object, predicate) {\n      return pickBy(object, negate(getIteratee(predicate)));\n    }\n\n    /**\n     * Creates an object composed of the picked `object` properties.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Object\n     * @param {Object} object The source object.\n     * @param {...(string|string[])} [paths] The property paths to pick.\n     * @returns {Object} Returns the new object.\n     * @example\n     *\n     * var object = { 'a': 1, 'b': '2', 'c': 3 };\n     *\n     * _.pick(object, ['a', 'c']);\n     * // => { 'a': 1, 'c': 3 }\n     */\n    var pick = flatRest(function(object, paths) {\n      return object == null ? {} : basePick(object, paths);\n    });\n\n    /**\n     * Creates an object composed of the `object` properties `predicate` returns\n     * truthy for. The predicate is invoked with two arguments: (value, key).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Object\n     * @param {Object} object The source object.\n     * @param {Function} [predicate=_.identity] The function invoked per property.\n     * @returns {Object} Returns the new object.\n     * @example\n     *\n     * var object = { 'a': 1, 'b': '2', 'c': 3 };\n     *\n     * _.pickBy(object, _.isNumber);\n     * // => { 'a': 1, 'c': 3 }\n     */\n    function pickBy(object, predicate) {\n      if (object == null) {\n        return {};\n      }\n      var props = arrayMap(getAllKeysIn(object), function(prop) {\n        return [prop];\n      });\n      predicate = getIteratee(predicate);\n      return basePickBy(object, props, function(value, path) {\n        return predicate(value, path[0]);\n      });\n    }\n\n    /**\n     * This method is like `_.get` except that if the resolved value is a\n     * function it's invoked with the `this` binding of its parent object and\n     * its result is returned.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Object\n     * @param {Object} object The object to query.\n     * @param {Array|string} path The path of the property to resolve.\n     * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n     * @returns {*} Returns the resolved value.\n     * @example\n     *\n     * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n     *\n     * _.result(object, 'a[0].b.c1');\n     * // => 3\n     *\n     * _.result(object, 'a[0].b.c2');\n     * // => 4\n     *\n     * _.result(object, 'a[0].b.c3', 'default');\n     * // => 'default'\n     *\n     * _.result(object, 'a[0].b.c3', _.constant('default'));\n     * // => 'default'\n     */\n    function result(object, path, defaultValue) {\n      path = castPath(path, object);\n\n      var index = -1,\n          length = path.length;\n\n      // Ensure the loop is entered when path is empty.\n      if (!length) {\n        length = 1;\n        object = undefined;\n      }\n      while (++index < length) {\n        var value = object == null ? undefined : object[toKey(path[index])];\n        if (value === undefined) {\n          index = length;\n          value = defaultValue;\n        }\n        object = isFunction(value) ? value.call(object) : value;\n      }\n      return object;\n    }\n\n    /**\n     * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n     * it's created. Arrays are created for missing index properties while objects\n     * are created for all other missing properties. Use `_.setWith` to customize\n     * `path` creation.\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.7.0\n     * @category Object\n     * @param {Object} object The object to modify.\n     * @param {Array|string} path The path of the property to set.\n     * @param {*} value The value to set.\n     * @returns {Object} Returns `object`.\n     * @example\n     *\n     * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n     *\n     * _.set(object, 'a[0].b.c', 4);\n     * console.log(object.a[0].b.c);\n     * // => 4\n     *\n     * _.set(object, ['x', '0', 'y', 'z'], 5);\n     * console.log(object.x[0].y.z);\n     * // => 5\n     */\n    function set(object, path, value) {\n      return object == null ? object : baseSet(object, path, value);\n    }\n\n    /**\n     * This method is like `_.set` except that it accepts `customizer` which is\n     * invoked to produce the objects of `path`.  If `customizer` returns `undefined`\n     * path creation is handled by the method instead. The `customizer` is invoked\n     * with three arguments: (nsValue, key, nsObject).\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Object\n     * @param {Object} object The object to modify.\n     * @param {Array|string} path The path of the property to set.\n     * @param {*} value The value to set.\n     * @param {Function} [customizer] The function to customize assigned values.\n     * @returns {Object} Returns `object`.\n     * @example\n     *\n     * var object = {};\n     *\n     * _.setWith(object, '[0][1]', 'a', Object);\n     * // => { '0': { '1': 'a' } }\n     */\n    function setWith(object, path, value, customizer) {\n      customizer = typeof customizer == 'function' ? customizer : undefined;\n      return object == null ? object : baseSet(object, path, value, customizer);\n    }\n\n    /**\n     * Creates an array of own enumerable string keyed-value pairs for `object`\n     * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n     * entries are returned.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @alias entries\n     * @category Object\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the key-value pairs.\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.toPairs(new Foo);\n     * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n     */\n    var toPairs = createToPairs(keys);\n\n    /**\n     * Creates an array of own and inherited enumerable string keyed-value pairs\n     * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n     * or set, its entries are returned.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @alias entriesIn\n     * @category Object\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the key-value pairs.\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.toPairsIn(new Foo);\n     * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n     */\n    var toPairsIn = createToPairs(keysIn);\n\n    /**\n     * An alternative to `_.reduce`; this method transforms `object` to a new\n     * `accumulator` object which is the result of running each of its own\n     * enumerable string keyed properties thru `iteratee`, with each invocation\n     * potentially mutating the `accumulator` object. If `accumulator` is not\n     * provided, a new object with the same `[[Prototype]]` will be used. The\n     * iteratee is invoked with four arguments: (accumulator, value, key, object).\n     * Iteratee functions may exit iteration early by explicitly returning `false`.\n     *\n     * @static\n     * @memberOf _\n     * @since 1.3.0\n     * @category Object\n     * @param {Object} object The object to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @param {*} [accumulator] The custom accumulator value.\n     * @returns {*} Returns the accumulated value.\n     * @example\n     *\n     * _.transform([2, 3, 4], function(result, n) {\n     *   result.push(n *= n);\n     *   return n % 2 == 0;\n     * }, []);\n     * // => [4, 9]\n     *\n     * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n     *   (result[value] || (result[value] = [])).push(key);\n     * }, {});\n     * // => { '1': ['a', 'c'], '2': ['b'] }\n     */\n    function transform(object, iteratee, accumulator) {\n      var isArr = isArray(object),\n          isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n      iteratee = getIteratee(iteratee, 4);\n      if (accumulator == null) {\n        var Ctor = object && object.constructor;\n        if (isArrLike) {\n          accumulator = isArr ? new Ctor : [];\n        }\n        else if (isObject(object)) {\n          accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n        }\n        else {\n          accumulator = {};\n        }\n      }\n      (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n        return iteratee(accumulator, value, index, object);\n      });\n      return accumulator;\n    }\n\n    /**\n     * Removes the property at `path` of `object`.\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Object\n     * @param {Object} object The object to modify.\n     * @param {Array|string} path The path of the property to unset.\n     * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n     * @example\n     *\n     * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n     * _.unset(object, 'a[0].b.c');\n     * // => true\n     *\n     * console.log(object);\n     * // => { 'a': [{ 'b': {} }] };\n     *\n     * _.unset(object, ['a', '0', 'b', 'c']);\n     * // => true\n     *\n     * console.log(object);\n     * // => { 'a': [{ 'b': {} }] };\n     */\n    function unset(object, path) {\n      return object == null ? true : baseUnset(object, path);\n    }\n\n    /**\n     * This method is like `_.set` except that accepts `updater` to produce the\n     * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n     * is invoked with one argument: (value).\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.6.0\n     * @category Object\n     * @param {Object} object The object to modify.\n     * @param {Array|string} path The path of the property to set.\n     * @param {Function} updater The function to produce the updated value.\n     * @returns {Object} Returns `object`.\n     * @example\n     *\n     * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n     *\n     * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n     * console.log(object.a[0].b.c);\n     * // => 9\n     *\n     * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n     * console.log(object.x[0].y.z);\n     * // => 0\n     */\n    function update(object, path, updater) {\n      return object == null ? object : baseUpdate(object, path, castFunction(updater));\n    }\n\n    /**\n     * This method is like `_.update` except that it accepts `customizer` which is\n     * invoked to produce the objects of `path`.  If `customizer` returns `undefined`\n     * path creation is handled by the method instead. The `customizer` is invoked\n     * with three arguments: (nsValue, key, nsObject).\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.6.0\n     * @category Object\n     * @param {Object} object The object to modify.\n     * @param {Array|string} path The path of the property to set.\n     * @param {Function} updater The function to produce the updated value.\n     * @param {Function} [customizer] The function to customize assigned values.\n     * @returns {Object} Returns `object`.\n     * @example\n     *\n     * var object = {};\n     *\n     * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n     * // => { '0': { '1': 'a' } }\n     */\n    function updateWith(object, path, updater, customizer) {\n      customizer = typeof customizer == 'function' ? customizer : undefined;\n      return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n    }\n\n    /**\n     * Creates an array of the own enumerable string keyed property values of `object`.\n     *\n     * **Note:** Non-object values are coerced to objects.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Object\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of property values.\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.values(new Foo);\n     * // => [1, 2] (iteration order is not guaranteed)\n     *\n     * _.values('hi');\n     * // => ['h', 'i']\n     */\n    function values(object) {\n      return object == null ? [] : baseValues(object, keys(object));\n    }\n\n    /**\n     * Creates an array of the own and inherited enumerable string keyed property\n     * values of `object`.\n     *\n     * **Note:** Non-object values are coerced to objects.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Object\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of property values.\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.valuesIn(new Foo);\n     * // => [1, 2, 3] (iteration order is not guaranteed)\n     */\n    function valuesIn(object) {\n      return object == null ? [] : baseValues(object, keysIn(object));\n    }\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Clamps `number` within the inclusive `lower` and `upper` bounds.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Number\n     * @param {number} number The number to clamp.\n     * @param {number} [lower] The lower bound.\n     * @param {number} upper The upper bound.\n     * @returns {number} Returns the clamped number.\n     * @example\n     *\n     * _.clamp(-10, -5, 5);\n     * // => -5\n     *\n     * _.clamp(10, -5, 5);\n     * // => 5\n     */\n    function clamp(number, lower, upper) {\n      if (upper === undefined) {\n        upper = lower;\n        lower = undefined;\n      }\n      if (upper !== undefined) {\n        upper = toNumber(upper);\n        upper = upper === upper ? upper : 0;\n      }\n      if (lower !== undefined) {\n        lower = toNumber(lower);\n        lower = lower === lower ? lower : 0;\n      }\n      return baseClamp(toNumber(number), lower, upper);\n    }\n\n    /**\n     * Checks if `n` is between `start` and up to, but not including, `end`. If\n     * `end` is not specified, it's set to `start` with `start` then set to `0`.\n     * If `start` is greater than `end` the params are swapped to support\n     * negative ranges.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.3.0\n     * @category Number\n     * @param {number} number The number to check.\n     * @param {number} [start=0] The start of the range.\n     * @param {number} end The end of the range.\n     * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n     * @see _.range, _.rangeRight\n     * @example\n     *\n     * _.inRange(3, 2, 4);\n     * // => true\n     *\n     * _.inRange(4, 8);\n     * // => true\n     *\n     * _.inRange(4, 2);\n     * // => false\n     *\n     * _.inRange(2, 2);\n     * // => false\n     *\n     * _.inRange(1.2, 2);\n     * // => true\n     *\n     * _.inRange(5.2, 4);\n     * // => false\n     *\n     * _.inRange(-3, -2, -6);\n     * // => true\n     */\n    function inRange(number, start, end) {\n      start = toFinite(start);\n      if (end === undefined) {\n        end = start;\n        start = 0;\n      } else {\n        end = toFinite(end);\n      }\n      number = toNumber(number);\n      return baseInRange(number, start, end);\n    }\n\n    /**\n     * Produces a random number between the inclusive `lower` and `upper` bounds.\n     * If only one argument is provided a number between `0` and the given number\n     * is returned. If `floating` is `true`, or either `lower` or `upper` are\n     * floats, a floating-point number is returned instead of an integer.\n     *\n     * **Note:** JavaScript follows the IEEE-754 standard for resolving\n     * floating-point values which can produce unexpected results.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.7.0\n     * @category Number\n     * @param {number} [lower=0] The lower bound.\n     * @param {number} [upper=1] The upper bound.\n     * @param {boolean} [floating] Specify returning a floating-point number.\n     * @returns {number} Returns the random number.\n     * @example\n     *\n     * _.random(0, 5);\n     * // => an integer between 0 and 5\n     *\n     * _.random(5);\n     * // => also an integer between 0 and 5\n     *\n     * _.random(5, true);\n     * // => a floating-point number between 0 and 5\n     *\n     * _.random(1.2, 5.2);\n     * // => a floating-point number between 1.2 and 5.2\n     */\n    function random(lower, upper, floating) {\n      if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n        upper = floating = undefined;\n      }\n      if (floating === undefined) {\n        if (typeof upper == 'boolean') {\n          floating = upper;\n          upper = undefined;\n        }\n        else if (typeof lower == 'boolean') {\n          floating = lower;\n          lower = undefined;\n        }\n      }\n      if (lower === undefined && upper === undefined) {\n        lower = 0;\n        upper = 1;\n      }\n      else {\n        lower = toFinite(lower);\n        if (upper === undefined) {\n          upper = lower;\n          lower = 0;\n        } else {\n          upper = toFinite(upper);\n        }\n      }\n      if (lower > upper) {\n        var temp = lower;\n        lower = upper;\n        upper = temp;\n      }\n      if (floating || lower % 1 || upper % 1) {\n        var rand = nativeRandom();\n        return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n      }\n      return baseRandom(lower, upper);\n    }\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to convert.\n     * @returns {string} Returns the camel cased string.\n     * @example\n     *\n     * _.camelCase('Foo Bar');\n     * // => 'fooBar'\n     *\n     * _.camelCase('--foo-bar--');\n     * // => 'fooBar'\n     *\n     * _.camelCase('__FOO_BAR__');\n     * // => 'fooBar'\n     */\n    var camelCase = createCompounder(function(result, word, index) {\n      word = word.toLowerCase();\n      return result + (index ? capitalize(word) : word);\n    });\n\n    /**\n     * Converts the first character of `string` to upper case and the remaining\n     * to lower case.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to capitalize.\n     * @returns {string} Returns the capitalized string.\n     * @example\n     *\n     * _.capitalize('FRED');\n     * // => 'Fred'\n     */\n    function capitalize(string) {\n      return upperFirst(toString(string).toLowerCase());\n    }\n\n    /**\n     * Deburrs `string` by converting\n     * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n     * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n     * letters to basic Latin letters and removing\n     * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to deburr.\n     * @returns {string} Returns the deburred string.\n     * @example\n     *\n     * _.deburr('déjà vu');\n     * // => 'deja vu'\n     */\n    function deburr(string) {\n      string = toString(string);\n      return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n    }\n\n    /**\n     * Checks if `string` ends with the given target string.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to inspect.\n     * @param {string} [target] The string to search for.\n     * @param {number} [position=string.length] The position to search up to.\n     * @returns {boolean} Returns `true` if `string` ends with `target`,\n     *  else `false`.\n     * @example\n     *\n     * _.endsWith('abc', 'c');\n     * // => true\n     *\n     * _.endsWith('abc', 'b');\n     * // => false\n     *\n     * _.endsWith('abc', 'b', 2);\n     * // => true\n     */\n    function endsWith(string, target, position) {\n      string = toString(string);\n      target = baseToString(target);\n\n      var length = string.length;\n      position = position === undefined\n        ? length\n        : baseClamp(toInteger(position), 0, length);\n\n      var end = position;\n      position -= target.length;\n      return position >= 0 && string.slice(position, end) == target;\n    }\n\n    /**\n     * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n     * corresponding HTML entities.\n     *\n     * **Note:** No other characters are escaped. To escape additional\n     * characters use a third-party library like [_he_](https://mths.be/he).\n     *\n     * Though the \">\" character is escaped for symmetry, characters like\n     * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n     * unless they're part of a tag or unquoted attribute value. See\n     * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n     * (under \"semi-related fun fact\") for more details.\n     *\n     * When working with HTML you should always\n     * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n     * XSS vectors.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category String\n     * @param {string} [string=''] The string to escape.\n     * @returns {string} Returns the escaped string.\n     * @example\n     *\n     * _.escape('fred, barney, & pebbles');\n     * // => 'fred, barney, &amp; pebbles'\n     */\n    function escape(string) {\n      string = toString(string);\n      return (string && reHasUnescapedHtml.test(string))\n        ? string.replace(reUnescapedHtml, escapeHtmlChar)\n        : string;\n    }\n\n    /**\n     * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n     * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to escape.\n     * @returns {string} Returns the escaped string.\n     * @example\n     *\n     * _.escapeRegExp('[lodash](https://lodash.com/)');\n     * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n     */\n    function escapeRegExp(string) {\n      string = toString(string);\n      return (string && reHasRegExpChar.test(string))\n        ? string.replace(reRegExpChar, '\\\\$&')\n        : string;\n    }\n\n    /**\n     * Converts `string` to\n     * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to convert.\n     * @returns {string} Returns the kebab cased string.\n     * @example\n     *\n     * _.kebabCase('Foo Bar');\n     * // => 'foo-bar'\n     *\n     * _.kebabCase('fooBar');\n     * // => 'foo-bar'\n     *\n     * _.kebabCase('__FOO_BAR__');\n     * // => 'foo-bar'\n     */\n    var kebabCase = createCompounder(function(result, word, index) {\n      return result + (index ? '-' : '') + word.toLowerCase();\n    });\n\n    /**\n     * Converts `string`, as space separated words, to lower case.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to convert.\n     * @returns {string} Returns the lower cased string.\n     * @example\n     *\n     * _.lowerCase('--Foo-Bar--');\n     * // => 'foo bar'\n     *\n     * _.lowerCase('fooBar');\n     * // => 'foo bar'\n     *\n     * _.lowerCase('__FOO_BAR__');\n     * // => 'foo bar'\n     */\n    var lowerCase = createCompounder(function(result, word, index) {\n      return result + (index ? ' ' : '') + word.toLowerCase();\n    });\n\n    /**\n     * Converts the first character of `string` to lower case.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to convert.\n     * @returns {string} Returns the converted string.\n     * @example\n     *\n     * _.lowerFirst('Fred');\n     * // => 'fred'\n     *\n     * _.lowerFirst('FRED');\n     * // => 'fRED'\n     */\n    var lowerFirst = createCaseFirst('toLowerCase');\n\n    /**\n     * Pads `string` on the left and right sides if it's shorter than `length`.\n     * Padding characters are truncated if they can't be evenly divided by `length`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to pad.\n     * @param {number} [length=0] The padding length.\n     * @param {string} [chars=' '] The string used as padding.\n     * @returns {string} Returns the padded string.\n     * @example\n     *\n     * _.pad('abc', 8);\n     * // => '  abc   '\n     *\n     * _.pad('abc', 8, '_-');\n     * // => '_-abc_-_'\n     *\n     * _.pad('abc', 3);\n     * // => 'abc'\n     */\n    function pad(string, length, chars) {\n      string = toString(string);\n      length = toInteger(length);\n\n      var strLength = length ? stringSize(string) : 0;\n      if (!length || strLength >= length) {\n        return string;\n      }\n      var mid = (length - strLength) / 2;\n      return (\n        createPadding(nativeFloor(mid), chars) +\n        string +\n        createPadding(nativeCeil(mid), chars)\n      );\n    }\n\n    /**\n     * Pads `string` on the right side if it's shorter than `length`. Padding\n     * characters are truncated if they exceed `length`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to pad.\n     * @param {number} [length=0] The padding length.\n     * @param {string} [chars=' '] The string used as padding.\n     * @returns {string} Returns the padded string.\n     * @example\n     *\n     * _.padEnd('abc', 6);\n     * // => 'abc   '\n     *\n     * _.padEnd('abc', 6, '_-');\n     * // => 'abc_-_'\n     *\n     * _.padEnd('abc', 3);\n     * // => 'abc'\n     */\n    function padEnd(string, length, chars) {\n      string = toString(string);\n      length = toInteger(length);\n\n      var strLength = length ? stringSize(string) : 0;\n      return (length && strLength < length)\n        ? (string + createPadding(length - strLength, chars))\n        : string;\n    }\n\n    /**\n     * Pads `string` on the left side if it's shorter than `length`. Padding\n     * characters are truncated if they exceed `length`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to pad.\n     * @param {number} [length=0] The padding length.\n     * @param {string} [chars=' '] The string used as padding.\n     * @returns {string} Returns the padded string.\n     * @example\n     *\n     * _.padStart('abc', 6);\n     * // => '   abc'\n     *\n     * _.padStart('abc', 6, '_-');\n     * // => '_-_abc'\n     *\n     * _.padStart('abc', 3);\n     * // => 'abc'\n     */\n    function padStart(string, length, chars) {\n      string = toString(string);\n      length = toInteger(length);\n\n      var strLength = length ? stringSize(string) : 0;\n      return (length && strLength < length)\n        ? (createPadding(length - strLength, chars) + string)\n        : string;\n    }\n\n    /**\n     * Converts `string` to an integer of the specified radix. If `radix` is\n     * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n     * hexadecimal, in which case a `radix` of `16` is used.\n     *\n     * **Note:** This method aligns with the\n     * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n     *\n     * @static\n     * @memberOf _\n     * @since 1.1.0\n     * @category String\n     * @param {string} string The string to convert.\n     * @param {number} [radix=10] The radix to interpret `value` by.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {number} Returns the converted integer.\n     * @example\n     *\n     * _.parseInt('08');\n     * // => 8\n     *\n     * _.map(['6', '08', '10'], _.parseInt);\n     * // => [6, 8, 10]\n     */\n    function parseInt(string, radix, guard) {\n      if (guard || radix == null) {\n        radix = 0;\n      } else if (radix) {\n        radix = +radix;\n      }\n      return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n    }\n\n    /**\n     * Repeats the given string `n` times.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to repeat.\n     * @param {number} [n=1] The number of times to repeat the string.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {string} Returns the repeated string.\n     * @example\n     *\n     * _.repeat('*', 3);\n     * // => '***'\n     *\n     * _.repeat('abc', 2);\n     * // => 'abcabc'\n     *\n     * _.repeat('abc', 0);\n     * // => ''\n     */\n    function repeat(string, n, guard) {\n      if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n        n = 1;\n      } else {\n        n = toInteger(n);\n      }\n      return baseRepeat(toString(string), n);\n    }\n\n    /**\n     * Replaces matches for `pattern` in `string` with `replacement`.\n     *\n     * **Note:** This method is based on\n     * [`String#replace`](https://mdn.io/String/replace).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to modify.\n     * @param {RegExp|string} pattern The pattern to replace.\n     * @param {Function|string} replacement The match replacement.\n     * @returns {string} Returns the modified string.\n     * @example\n     *\n     * _.replace('Hi Fred', 'Fred', 'Barney');\n     * // => 'Hi Barney'\n     */\n    function replace() {\n      var args = arguments,\n          string = toString(args[0]);\n\n      return args.length < 3 ? string : string.replace(args[1], args[2]);\n    }\n\n    /**\n     * Converts `string` to\n     * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to convert.\n     * @returns {string} Returns the snake cased string.\n     * @example\n     *\n     * _.snakeCase('Foo Bar');\n     * // => 'foo_bar'\n     *\n     * _.snakeCase('fooBar');\n     * // => 'foo_bar'\n     *\n     * _.snakeCase('--FOO-BAR--');\n     * // => 'foo_bar'\n     */\n    var snakeCase = createCompounder(function(result, word, index) {\n      return result + (index ? '_' : '') + word.toLowerCase();\n    });\n\n    /**\n     * Splits `string` by `separator`.\n     *\n     * **Note:** This method is based on\n     * [`String#split`](https://mdn.io/String/split).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to split.\n     * @param {RegExp|string} separator The separator pattern to split by.\n     * @param {number} [limit] The length to truncate results to.\n     * @returns {Array} Returns the string segments.\n     * @example\n     *\n     * _.split('a-b-c', '-', 2);\n     * // => ['a', 'b']\n     */\n    function split(string, separator, limit) {\n      if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n        separator = limit = undefined;\n      }\n      limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n      if (!limit) {\n        return [];\n      }\n      string = toString(string);\n      if (string && (\n            typeof separator == 'string' ||\n            (separator != null && !isRegExp(separator))\n          )) {\n        separator = baseToString(separator);\n        if (!separator && hasUnicode(string)) {\n          return castSlice(stringToArray(string), 0, limit);\n        }\n      }\n      return string.split(separator, limit);\n    }\n\n    /**\n     * Converts `string` to\n     * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.1.0\n     * @category String\n     * @param {string} [string=''] The string to convert.\n     * @returns {string} Returns the start cased string.\n     * @example\n     *\n     * _.startCase('--foo-bar--');\n     * // => 'Foo Bar'\n     *\n     * _.startCase('fooBar');\n     * // => 'Foo Bar'\n     *\n     * _.startCase('__FOO_BAR__');\n     * // => 'FOO BAR'\n     */\n    var startCase = createCompounder(function(result, word, index) {\n      return result + (index ? ' ' : '') + upperFirst(word);\n    });\n\n    /**\n     * Checks if `string` starts with the given target string.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to inspect.\n     * @param {string} [target] The string to search for.\n     * @param {number} [position=0] The position to search from.\n     * @returns {boolean} Returns `true` if `string` starts with `target`,\n     *  else `false`.\n     * @example\n     *\n     * _.startsWith('abc', 'a');\n     * // => true\n     *\n     * _.startsWith('abc', 'b');\n     * // => false\n     *\n     * _.startsWith('abc', 'b', 1);\n     * // => true\n     */\n    function startsWith(string, target, position) {\n      string = toString(string);\n      position = position == null\n        ? 0\n        : baseClamp(toInteger(position), 0, string.length);\n\n      target = baseToString(target);\n      return string.slice(position, position + target.length) == target;\n    }\n\n    /**\n     * Creates a compiled template function that can interpolate data properties\n     * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n     * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n     * properties may be accessed as free variables in the template. If a setting\n     * object is given, it takes precedence over `_.templateSettings` values.\n     *\n     * **Note:** In the development build `_.template` utilizes\n     * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n     * for easier debugging.\n     *\n     * For more information on precompiling templates see\n     * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n     *\n     * For more information on Chrome extension sandboxes see\n     * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category String\n     * @param {string} [string=''] The template string.\n     * @param {Object} [options={}] The options object.\n     * @param {RegExp} [options.escape=_.templateSettings.escape]\n     *  The HTML \"escape\" delimiter.\n     * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n     *  The \"evaluate\" delimiter.\n     * @param {Object} [options.imports=_.templateSettings.imports]\n     *  An object to import into the template as free variables.\n     * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n     *  The \"interpolate\" delimiter.\n     * @param {string} [options.sourceURL='lodash.templateSources[n]']\n     *  The sourceURL of the compiled template.\n     * @param {string} [options.variable='obj']\n     *  The data object variable name.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Function} Returns the compiled template function.\n     * @example\n     *\n     * // Use the \"interpolate\" delimiter to create a compiled template.\n     * var compiled = _.template('hello <%= user %>!');\n     * compiled({ 'user': 'fred' });\n     * // => 'hello fred!'\n     *\n     * // Use the HTML \"escape\" delimiter to escape data property values.\n     * var compiled = _.template('<b><%- value %></b>');\n     * compiled({ 'value': '<script>' });\n     * // => '<b>&lt;script&gt;</b>'\n     *\n     * // Use the \"evaluate\" delimiter to execute JavaScript and generate HTML.\n     * var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');\n     * compiled({ 'users': ['fred', 'barney'] });\n     * // => '<li>fred</li><li>barney</li>'\n     *\n     * // Use the internal `print` function in \"evaluate\" delimiters.\n     * var compiled = _.template('<% print(\"hello \" + user); %>!');\n     * compiled({ 'user': 'barney' });\n     * // => 'hello barney!'\n     *\n     * // Use the ES template literal delimiter as an \"interpolate\" delimiter.\n     * // Disable support by replacing the \"interpolate\" delimiter.\n     * var compiled = _.template('hello ${ user }!');\n     * compiled({ 'user': 'pebbles' });\n     * // => 'hello pebbles!'\n     *\n     * // Use backslashes to treat delimiters as plain text.\n     * var compiled = _.template('<%= \"\\\\<%- value %\\\\>\" %>');\n     * compiled({ 'value': 'ignored' });\n     * // => '<%- value %>'\n     *\n     * // Use the `imports` option to import `jQuery` as `jq`.\n     * var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';\n     * var compiled = _.template(text, { 'imports': { 'jq': jQuery } });\n     * compiled({ 'users': ['fred', 'barney'] });\n     * // => '<li>fred</li><li>barney</li>'\n     *\n     * // Use the `sourceURL` option to specify a custom sourceURL for the template.\n     * var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });\n     * compiled(data);\n     * // => Find the source of \"greeting.jst\" under the Sources tab or Resources panel of the web inspector.\n     *\n     * // Use the `variable` option to ensure a with-statement isn't used in the compiled template.\n     * var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });\n     * compiled.source;\n     * // => function(data) {\n     * //   var __t, __p = '';\n     * //   __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';\n     * //   return __p;\n     * // }\n     *\n     * // Use custom template delimiters.\n     * _.templateSettings.interpolate = /{{([\\s\\S]+?)}}/g;\n     * var compiled = _.template('hello {{ user }}!');\n     * compiled({ 'user': 'mustache' });\n     * // => 'hello mustache!'\n     *\n     * // Use the `source` property to inline compiled templates for meaningful\n     * // line numbers in error messages and stack traces.\n     * fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\\\n     *   var JST = {\\\n     *     \"main\": ' + _.template(mainText).source + '\\\n     *   };\\\n     * ');\n     */\n    function template(string, options, guard) {\n      // Based on John Resig's `tmpl` implementation\n      // (http://ejohn.org/blog/javascript-micro-templating/)\n      // and Laura Doktorova's doT.js (https://github.com/olado/doT).\n      var settings = lodash.templateSettings;\n\n      if (guard && isIterateeCall(string, options, guard)) {\n        options = undefined;\n      }\n      string = toString(string);\n      options = assignInWith({}, options, settings, customDefaultsAssignIn);\n\n      var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),\n          importsKeys = keys(imports),\n          importsValues = baseValues(imports, importsKeys);\n\n      var isEscaping,\n          isEvaluating,\n          index = 0,\n          interpolate = options.interpolate || reNoMatch,\n          source = \"__p += '\";\n\n      // Compile the regexp to match each delimiter.\n      var reDelimiters = RegExp(\n        (options.escape || reNoMatch).source + '|' +\n        interpolate.source + '|' +\n        (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + '|' +\n        (options.evaluate || reNoMatch).source + '|$'\n      , 'g');\n\n      // Use a sourceURL for easier debugging.\n      var sourceURL = '//# sourceURL=' +\n        ('sourceURL' in options\n          ? options.sourceURL\n          : ('lodash.templateSources[' + (++templateCounter) + ']')\n        ) + '\\n';\n\n      string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {\n        interpolateValue || (interpolateValue = esTemplateValue);\n\n        // Escape characters that can't be included in string literals.\n        source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);\n\n        // Replace delimiters with snippets.\n        if (escapeValue) {\n          isEscaping = true;\n          source += \"' +\\n__e(\" + escapeValue + \") +\\n'\";\n        }\n        if (evaluateValue) {\n          isEvaluating = true;\n          source += \"';\\n\" + evaluateValue + \";\\n__p += '\";\n        }\n        if (interpolateValue) {\n          source += \"' +\\n((__t = (\" + interpolateValue + \")) == null ? '' : __t) +\\n'\";\n        }\n        index = offset + match.length;\n\n        // The JS engine embedded in Adobe products needs `match` returned in\n        // order to produce the correct `offset` value.\n        return match;\n      });\n\n      source += \"';\\n\";\n\n      // If `variable` is not specified wrap a with-statement around the generated\n      // code to add the data object to the top of the scope chain.\n      var variable = options.variable;\n      if (!variable) {\n        source = 'with (obj) {\\n' + source + '\\n}\\n';\n      }\n      // Cleanup code by stripping empty strings.\n      source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source)\n        .replace(reEmptyStringMiddle, '$1')\n        .replace(reEmptyStringTrailing, '$1;');\n\n      // Frame code as the function body.\n      source = 'function(' + (variable || 'obj') + ') {\\n' +\n        (variable\n          ? ''\n          : 'obj || (obj = {});\\n'\n        ) +\n        \"var __t, __p = ''\" +\n        (isEscaping\n           ? ', __e = _.escape'\n           : ''\n        ) +\n        (isEvaluating\n          ? ', __j = Array.prototype.join;\\n' +\n            \"function print() { __p += __j.call(arguments, '') }\\n\"\n          : ';\\n'\n        ) +\n        source +\n        'return __p\\n}';\n\n      var result = attempt(function() {\n        return Function(importsKeys, sourceURL + 'return ' + source)\n          .apply(undefined, importsValues);\n      });\n\n      // Provide the compiled function's source by its `toString` method or\n      // the `source` property as a convenience for inlining compiled templates.\n      result.source = source;\n      if (isError(result)) {\n        throw result;\n      }\n      return result;\n    }\n\n    /**\n     * Converts `string`, as a whole, to lower case just like\n     * [String#toLowerCase](https://mdn.io/toLowerCase).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to convert.\n     * @returns {string} Returns the lower cased string.\n     * @example\n     *\n     * _.toLower('--Foo-Bar--');\n     * // => '--foo-bar--'\n     *\n     * _.toLower('fooBar');\n     * // => 'foobar'\n     *\n     * _.toLower('__FOO_BAR__');\n     * // => '__foo_bar__'\n     */\n    function toLower(value) {\n      return toString(value).toLowerCase();\n    }\n\n    /**\n     * Converts `string`, as a whole, to upper case just like\n     * [String#toUpperCase](https://mdn.io/toUpperCase).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to convert.\n     * @returns {string} Returns the upper cased string.\n     * @example\n     *\n     * _.toUpper('--foo-bar--');\n     * // => '--FOO-BAR--'\n     *\n     * _.toUpper('fooBar');\n     * // => 'FOOBAR'\n     *\n     * _.toUpper('__foo_bar__');\n     * // => '__FOO_BAR__'\n     */\n    function toUpper(value) {\n      return toString(value).toUpperCase();\n    }\n\n    /**\n     * Removes leading and trailing whitespace or specified characters from `string`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to trim.\n     * @param {string} [chars=whitespace] The characters to trim.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {string} Returns the trimmed string.\n     * @example\n     *\n     * _.trim('  abc  ');\n     * // => 'abc'\n     *\n     * _.trim('-_-abc-_-', '_-');\n     * // => 'abc'\n     *\n     * _.map(['  foo  ', '  bar  '], _.trim);\n     * // => ['foo', 'bar']\n     */\n    function trim(string, chars, guard) {\n      string = toString(string);\n      if (string && (guard || chars === undefined)) {\n        return string.replace(reTrim, '');\n      }\n      if (!string || !(chars = baseToString(chars))) {\n        return string;\n      }\n      var strSymbols = stringToArray(string),\n          chrSymbols = stringToArray(chars),\n          start = charsStartIndex(strSymbols, chrSymbols),\n          end = charsEndIndex(strSymbols, chrSymbols) + 1;\n\n      return castSlice(strSymbols, start, end).join('');\n    }\n\n    /**\n     * Removes trailing whitespace or specified characters from `string`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to trim.\n     * @param {string} [chars=whitespace] The characters to trim.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {string} Returns the trimmed string.\n     * @example\n     *\n     * _.trimEnd('  abc  ');\n     * // => '  abc'\n     *\n     * _.trimEnd('-_-abc-_-', '_-');\n     * // => '-_-abc'\n     */\n    function trimEnd(string, chars, guard) {\n      string = toString(string);\n      if (string && (guard || chars === undefined)) {\n        return string.replace(reTrimEnd, '');\n      }\n      if (!string || !(chars = baseToString(chars))) {\n        return string;\n      }\n      var strSymbols = stringToArray(string),\n          end = charsEndIndex(strSymbols, stringToArray(chars)) + 1;\n\n      return castSlice(strSymbols, 0, end).join('');\n    }\n\n    /**\n     * Removes leading whitespace or specified characters from `string`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to trim.\n     * @param {string} [chars=whitespace] The characters to trim.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {string} Returns the trimmed string.\n     * @example\n     *\n     * _.trimStart('  abc  ');\n     * // => 'abc  '\n     *\n     * _.trimStart('-_-abc-_-', '_-');\n     * // => 'abc-_-'\n     */\n    function trimStart(string, chars, guard) {\n      string = toString(string);\n      if (string && (guard || chars === undefined)) {\n        return string.replace(reTrimStart, '');\n      }\n      if (!string || !(chars = baseToString(chars))) {\n        return string;\n      }\n      var strSymbols = stringToArray(string),\n          start = charsStartIndex(strSymbols, stringToArray(chars));\n\n      return castSlice(strSymbols, start).join('');\n    }\n\n    /**\n     * Truncates `string` if it's longer than the given maximum string length.\n     * The last characters of the truncated string are replaced with the omission\n     * string which defaults to \"...\".\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to truncate.\n     * @param {Object} [options={}] The options object.\n     * @param {number} [options.length=30] The maximum string length.\n     * @param {string} [options.omission='...'] The string to indicate text is omitted.\n     * @param {RegExp|string} [options.separator] The separator pattern to truncate to.\n     * @returns {string} Returns the truncated string.\n     * @example\n     *\n     * _.truncate('hi-diddly-ho there, neighborino');\n     * // => 'hi-diddly-ho there, neighbo...'\n     *\n     * _.truncate('hi-diddly-ho there, neighborino', {\n     *   'length': 24,\n     *   'separator': ' '\n     * });\n     * // => 'hi-diddly-ho there,...'\n     *\n     * _.truncate('hi-diddly-ho there, neighborino', {\n     *   'length': 24,\n     *   'separator': /,? +/\n     * });\n     * // => 'hi-diddly-ho there...'\n     *\n     * _.truncate('hi-diddly-ho there, neighborino', {\n     *   'omission': ' [...]'\n     * });\n     * // => 'hi-diddly-ho there, neig [...]'\n     */\n    function truncate(string, options) {\n      var length = DEFAULT_TRUNC_LENGTH,\n          omission = DEFAULT_TRUNC_OMISSION;\n\n      if (isObject(options)) {\n        var separator = 'separator' in options ? options.separator : separator;\n        length = 'length' in options ? toInteger(options.length) : length;\n        omission = 'omission' in options ? baseToString(options.omission) : omission;\n      }\n      string = toString(string);\n\n      var strLength = string.length;\n      if (hasUnicode(string)) {\n        var strSymbols = stringToArray(string);\n        strLength = strSymbols.length;\n      }\n      if (length >= strLength) {\n        return string;\n      }\n      var end = length - stringSize(omission);\n      if (end < 1) {\n        return omission;\n      }\n      var result = strSymbols\n        ? castSlice(strSymbols, 0, end).join('')\n        : string.slice(0, end);\n\n      if (separator === undefined) {\n        return result + omission;\n      }\n      if (strSymbols) {\n        end += (result.length - end);\n      }\n      if (isRegExp(separator)) {\n        if (string.slice(end).search(separator)) {\n          var match,\n              substring = result;\n\n          if (!separator.global) {\n            separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');\n          }\n          separator.lastIndex = 0;\n          while ((match = separator.exec(substring))) {\n            var newEnd = match.index;\n          }\n          result = result.slice(0, newEnd === undefined ? end : newEnd);\n        }\n      } else if (string.indexOf(baseToString(separator), end) != end) {\n        var index = result.lastIndexOf(separator);\n        if (index > -1) {\n          result = result.slice(0, index);\n        }\n      }\n      return result + omission;\n    }\n\n    /**\n     * The inverse of `_.escape`; this method converts the HTML entities\n     * `&amp;`, `&lt;`, `&gt;`, `&quot;`, and `&#39;` in `string` to\n     * their corresponding characters.\n     *\n     * **Note:** No other HTML entities are unescaped. To unescape additional\n     * HTML entities use a third-party library like [_he_](https://mths.be/he).\n     *\n     * @static\n     * @memberOf _\n     * @since 0.6.0\n     * @category String\n     * @param {string} [string=''] The string to unescape.\n     * @returns {string} Returns the unescaped string.\n     * @example\n     *\n     * _.unescape('fred, barney, &amp; pebbles');\n     * // => 'fred, barney, & pebbles'\n     */\n    function unescape(string) {\n      string = toString(string);\n      return (string && reHasEscapedHtml.test(string))\n        ? string.replace(reEscapedHtml, unescapeHtmlChar)\n        : string;\n    }\n\n    /**\n     * Converts `string`, as space separated words, to upper case.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to convert.\n     * @returns {string} Returns the upper cased string.\n     * @example\n     *\n     * _.upperCase('--foo-bar');\n     * // => 'FOO BAR'\n     *\n     * _.upperCase('fooBar');\n     * // => 'FOO BAR'\n     *\n     * _.upperCase('__foo_bar__');\n     * // => 'FOO BAR'\n     */\n    var upperCase = createCompounder(function(result, word, index) {\n      return result + (index ? ' ' : '') + word.toUpperCase();\n    });\n\n    /**\n     * Converts the first character of `string` to upper case.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to convert.\n     * @returns {string} Returns the converted string.\n     * @example\n     *\n     * _.upperFirst('fred');\n     * // => 'Fred'\n     *\n     * _.upperFirst('FRED');\n     * // => 'FRED'\n     */\n    var upperFirst = createCaseFirst('toUpperCase');\n\n    /**\n     * Splits `string` into an array of its words.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to inspect.\n     * @param {RegExp|string} [pattern] The pattern to match words.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Array} Returns the words of `string`.\n     * @example\n     *\n     * _.words('fred, barney, & pebbles');\n     * // => ['fred', 'barney', 'pebbles']\n     *\n     * _.words('fred, barney, & pebbles', /[^, ]+/g);\n     * // => ['fred', 'barney', '&', 'pebbles']\n     */\n    function words(string, pattern, guard) {\n      string = toString(string);\n      pattern = guard ? undefined : pattern;\n\n      if (pattern === undefined) {\n        return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n      }\n      return string.match(pattern) || [];\n    }\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Attempts to invoke `func`, returning either the result or the caught error\n     * object. Any additional arguments are provided to `func` when it's invoked.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Util\n     * @param {Function} func The function to attempt.\n     * @param {...*} [args] The arguments to invoke `func` with.\n     * @returns {*} Returns the `func` result or error object.\n     * @example\n     *\n     * // Avoid throwing errors for invalid selectors.\n     * var elements = _.attempt(function(selector) {\n     *   return document.querySelectorAll(selector);\n     * }, '>_>');\n     *\n     * if (_.isError(elements)) {\n     *   elements = [];\n     * }\n     */\n    var attempt = baseRest(function(func, args) {\n      try {\n        return apply(func, undefined, args);\n      } catch (e) {\n        return isError(e) ? e : new Error(e);\n      }\n    });\n\n    /**\n     * Binds methods of an object to the object itself, overwriting the existing\n     * method.\n     *\n     * **Note:** This method doesn't set the \"length\" property of bound functions.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Util\n     * @param {Object} object The object to bind and assign the bound methods to.\n     * @param {...(string|string[])} methodNames The object method names to bind.\n     * @returns {Object} Returns `object`.\n     * @example\n     *\n     * var view = {\n     *   'label': 'docs',\n     *   'click': function() {\n     *     console.log('clicked ' + this.label);\n     *   }\n     * };\n     *\n     * _.bindAll(view, ['click']);\n     * jQuery(element).on('click', view.click);\n     * // => Logs 'clicked docs' when clicked.\n     */\n    var bindAll = flatRest(function(object, methodNames) {\n      arrayEach(methodNames, function(key) {\n        key = toKey(key);\n        baseAssignValue(object, key, bind(object[key], object));\n      });\n      return object;\n    });\n\n    /**\n     * Creates a function that iterates over `pairs` and invokes the corresponding\n     * function of the first predicate to return truthy. The predicate-function\n     * pairs are invoked with the `this` binding and arguments of the created\n     * function.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Util\n     * @param {Array} pairs The predicate-function pairs.\n     * @returns {Function} Returns the new composite function.\n     * @example\n     *\n     * var func = _.cond([\n     *   [_.matches({ 'a': 1 }),           _.constant('matches A')],\n     *   [_.conforms({ 'b': _.isNumber }), _.constant('matches B')],\n     *   [_.stubTrue,                      _.constant('no match')]\n     * ]);\n     *\n     * func({ 'a': 1, 'b': 2 });\n     * // => 'matches A'\n     *\n     * func({ 'a': 0, 'b': 1 });\n     * // => 'matches B'\n     *\n     * func({ 'a': '1', 'b': '2' });\n     * // => 'no match'\n     */\n    function cond(pairs) {\n      var length = pairs == null ? 0 : pairs.length,\n          toIteratee = getIteratee();\n\n      pairs = !length ? [] : arrayMap(pairs, function(pair) {\n        if (typeof pair[1] != 'function') {\n          throw new TypeError(FUNC_ERROR_TEXT);\n        }\n        return [toIteratee(pair[0]), pair[1]];\n      });\n\n      return baseRest(function(args) {\n        var index = -1;\n        while (++index < length) {\n          var pair = pairs[index];\n          if (apply(pair[0], this, args)) {\n            return apply(pair[1], this, args);\n          }\n        }\n      });\n    }\n\n    /**\n     * Creates a function that invokes the predicate properties of `source` with\n     * the corresponding property values of a given object, returning `true` if\n     * all predicates return truthy, else `false`.\n     *\n     * **Note:** The created function is equivalent to `_.conformsTo` with\n     * `source` partially applied.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Util\n     * @param {Object} source The object of property predicates to conform to.\n     * @returns {Function} Returns the new spec function.\n     * @example\n     *\n     * var objects = [\n     *   { 'a': 2, 'b': 1 },\n     *   { 'a': 1, 'b': 2 }\n     * ];\n     *\n     * _.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } }));\n     * // => [{ 'a': 1, 'b': 2 }]\n     */\n    function conforms(source) {\n      return baseConforms(baseClone(source, CLONE_DEEP_FLAG));\n    }\n\n    /**\n     * Creates a function that returns `value`.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.4.0\n     * @category Util\n     * @param {*} value The value to return from the new function.\n     * @returns {Function} Returns the new constant function.\n     * @example\n     *\n     * var objects = _.times(2, _.constant({ 'a': 1 }));\n     *\n     * console.log(objects);\n     * // => [{ 'a': 1 }, { 'a': 1 }]\n     *\n     * console.log(objects[0] === objects[1]);\n     * // => true\n     */\n    function constant(value) {\n      return function() {\n        return value;\n      };\n    }\n\n    /**\n     * Checks `value` to determine whether a default value should be returned in\n     * its place. The `defaultValue` is returned if `value` is `NaN`, `null`,\n     * or `undefined`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.14.0\n     * @category Util\n     * @param {*} value The value to check.\n     * @param {*} defaultValue The default value.\n     * @returns {*} Returns the resolved value.\n     * @example\n     *\n     * _.defaultTo(1, 10);\n     * // => 1\n     *\n     * _.defaultTo(undefined, 10);\n     * // => 10\n     */\n    function defaultTo(value, defaultValue) {\n      return (value == null || value !== value) ? defaultValue : value;\n    }\n\n    /**\n     * Creates a function that returns the result of invoking the given functions\n     * with the `this` binding of the created function, where each successive\n     * invocation is supplied the return value of the previous.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Util\n     * @param {...(Function|Function[])} [funcs] The functions to invoke.\n     * @returns {Function} Returns the new composite function.\n     * @see _.flowRight\n     * @example\n     *\n     * function square(n) {\n     *   return n * n;\n     * }\n     *\n     * var addSquare = _.flow([_.add, square]);\n     * addSquare(1, 2);\n     * // => 9\n     */\n    var flow = createFlow();\n\n    /**\n     * This method is like `_.flow` except that it creates a function that\n     * invokes the given functions from right to left.\n     *\n     * @static\n     * @since 3.0.0\n     * @memberOf _\n     * @category Util\n     * @param {...(Function|Function[])} [funcs] The functions to invoke.\n     * @returns {Function} Returns the new composite function.\n     * @see _.flow\n     * @example\n     *\n     * function square(n) {\n     *   return n * n;\n     * }\n     *\n     * var addSquare = _.flowRight([square, _.add]);\n     * addSquare(1, 2);\n     * // => 9\n     */\n    var flowRight = createFlow(true);\n\n    /**\n     * This method returns the first argument it receives.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Util\n     * @param {*} value Any value.\n     * @returns {*} Returns `value`.\n     * @example\n     *\n     * var object = { 'a': 1 };\n     *\n     * console.log(_.identity(object) === object);\n     * // => true\n     */\n    function identity(value) {\n      return value;\n    }\n\n    /**\n     * Creates a function that invokes `func` with the arguments of the created\n     * function. If `func` is a property name, the created function returns the\n     * property value for a given element. If `func` is an array or object, the\n     * created function returns `true` for elements that contain the equivalent\n     * source properties, otherwise it returns `false`.\n     *\n     * @static\n     * @since 4.0.0\n     * @memberOf _\n     * @category Util\n     * @param {*} [func=_.identity] The value to convert to a callback.\n     * @returns {Function} Returns the callback.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney', 'age': 36, 'active': true },\n     *   { 'user': 'fred',   'age': 40, 'active': false }\n     * ];\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));\n     * // => [{ 'user': 'barney', 'age': 36, 'active': true }]\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.filter(users, _.iteratee(['user', 'fred']));\n     * // => [{ 'user': 'fred', 'age': 40 }]\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.map(users, _.iteratee('user'));\n     * // => ['barney', 'fred']\n     *\n     * // Create custom iteratee shorthands.\n     * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {\n     *   return !_.isRegExp(func) ? iteratee(func) : function(string) {\n     *     return func.test(string);\n     *   };\n     * });\n     *\n     * _.filter(['abc', 'def'], /ef/);\n     * // => ['def']\n     */\n    function iteratee(func) {\n      return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));\n    }\n\n    /**\n     * Creates a function that performs a partial deep comparison between a given\n     * object and `source`, returning `true` if the given object has equivalent\n     * property values, else `false`.\n     *\n     * **Note:** The created function is equivalent to `_.isMatch` with `source`\n     * partially applied.\n     *\n     * Partial comparisons will match empty array and empty object `source`\n     * values against any array or object value, respectively. See `_.isEqual`\n     * for a list of supported value comparisons.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Util\n     * @param {Object} source The object of property values to match.\n     * @returns {Function} Returns the new spec function.\n     * @example\n     *\n     * var objects = [\n     *   { 'a': 1, 'b': 2, 'c': 3 },\n     *   { 'a': 4, 'b': 5, 'c': 6 }\n     * ];\n     *\n     * _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));\n     * // => [{ 'a': 4, 'b': 5, 'c': 6 }]\n     */\n    function matches(source) {\n      return baseMatches(baseClone(source, CLONE_DEEP_FLAG));\n    }\n\n    /**\n     * Creates a function that performs a partial deep comparison between the\n     * value at `path` of a given object to `srcValue`, returning `true` if the\n     * object value is equivalent, else `false`.\n     *\n     * **Note:** Partial comparisons will match empty array and empty object\n     * `srcValue` values against any array or object value, respectively. See\n     * `_.isEqual` for a list of supported value comparisons.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.2.0\n     * @category Util\n     * @param {Array|string} path The path of the property to get.\n     * @param {*} srcValue The value to match.\n     * @returns {Function} Returns the new spec function.\n     * @example\n     *\n     * var objects = [\n     *   { 'a': 1, 'b': 2, 'c': 3 },\n     *   { 'a': 4, 'b': 5, 'c': 6 }\n     * ];\n     *\n     * _.find(objects, _.matchesProperty('a', 4));\n     * // => { 'a': 4, 'b': 5, 'c': 6 }\n     */\n    function matchesProperty(path, srcValue) {\n      return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));\n    }\n\n    /**\n     * Creates a function that invokes the method at `path` of a given object.\n     * Any additional arguments are provided to the invoked method.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.7.0\n     * @category Util\n     * @param {Array|string} path The path of the method to invoke.\n     * @param {...*} [args] The arguments to invoke the method with.\n     * @returns {Function} Returns the new invoker function.\n     * @example\n     *\n     * var objects = [\n     *   { 'a': { 'b': _.constant(2) } },\n     *   { 'a': { 'b': _.constant(1) } }\n     * ];\n     *\n     * _.map(objects, _.method('a.b'));\n     * // => [2, 1]\n     *\n     * _.map(objects, _.method(['a', 'b']));\n     * // => [2, 1]\n     */\n    var method = baseRest(function(path, args) {\n      return function(object) {\n        return baseInvoke(object, path, args);\n      };\n    });\n\n    /**\n     * The opposite of `_.method`; this method creates a function that invokes\n     * the method at a given path of `object`. Any additional arguments are\n     * provided to the invoked method.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.7.0\n     * @category Util\n     * @param {Object} object The object to query.\n     * @param {...*} [args] The arguments to invoke the method with.\n     * @returns {Function} Returns the new invoker function.\n     * @example\n     *\n     * var array = _.times(3, _.constant),\n     *     object = { 'a': array, 'b': array, 'c': array };\n     *\n     * _.map(['a[2]', 'c[0]'], _.methodOf(object));\n     * // => [2, 0]\n     *\n     * _.map([['a', '2'], ['c', '0']], _.methodOf(object));\n     * // => [2, 0]\n     */\n    var methodOf = baseRest(function(object, args) {\n      return function(path) {\n        return baseInvoke(object, path, args);\n      };\n    });\n\n    /**\n     * Adds all own enumerable string keyed function properties of a source\n     * object to the destination object. If `object` is a function, then methods\n     * are added to its prototype as well.\n     *\n     * **Note:** Use `_.runInContext` to create a pristine `lodash` function to\n     * avoid conflicts caused by modifying the original.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Util\n     * @param {Function|Object} [object=lodash] The destination object.\n     * @param {Object} source The object of functions to add.\n     * @param {Object} [options={}] The options object.\n     * @param {boolean} [options.chain=true] Specify whether mixins are chainable.\n     * @returns {Function|Object} Returns `object`.\n     * @example\n     *\n     * function vowels(string) {\n     *   return _.filter(string, function(v) {\n     *     return /[aeiou]/i.test(v);\n     *   });\n     * }\n     *\n     * _.mixin({ 'vowels': vowels });\n     * _.vowels('fred');\n     * // => ['e']\n     *\n     * _('fred').vowels().value();\n     * // => ['e']\n     *\n     * _.mixin({ 'vowels': vowels }, { 'chain': false });\n     * _('fred').vowels();\n     * // => ['e']\n     */\n    function mixin(object, source, options) {\n      var props = keys(source),\n          methodNames = baseFunctions(source, props);\n\n      if (options == null &&\n          !(isObject(source) && (methodNames.length || !props.length))) {\n        options = source;\n        source = object;\n        object = this;\n        methodNames = baseFunctions(source, keys(source));\n      }\n      var chain = !(isObject(options) && 'chain' in options) || !!options.chain,\n          isFunc = isFunction(object);\n\n      arrayEach(methodNames, function(methodName) {\n        var func = source[methodName];\n        object[methodName] = func;\n        if (isFunc) {\n          object.prototype[methodName] = function() {\n            var chainAll = this.__chain__;\n            if (chain || chainAll) {\n              var result = object(this.__wrapped__),\n                  actions = result.__actions__ = copyArray(this.__actions__);\n\n              actions.push({ 'func': func, 'args': arguments, 'thisArg': object });\n              result.__chain__ = chainAll;\n              return result;\n            }\n            return func.apply(object, arrayPush([this.value()], arguments));\n          };\n        }\n      });\n\n      return object;\n    }\n\n    /**\n     * Reverts the `_` variable to its previous value and returns a reference to\n     * the `lodash` function.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Util\n     * @returns {Function} Returns the `lodash` function.\n     * @example\n     *\n     * var lodash = _.noConflict();\n     */\n    function noConflict() {\n      if (root._ === this) {\n        root._ = oldDash;\n      }\n      return this;\n    }\n\n    /**\n     * This method returns `undefined`.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.3.0\n     * @category Util\n     * @example\n     *\n     * _.times(2, _.noop);\n     * // => [undefined, undefined]\n     */\n    function noop() {\n      // No operation performed.\n    }\n\n    /**\n     * Creates a function that gets the argument at index `n`. If `n` is negative,\n     * the nth argument from the end is returned.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Util\n     * @param {number} [n=0] The index of the argument to return.\n     * @returns {Function} Returns the new pass-thru function.\n     * @example\n     *\n     * var func = _.nthArg(1);\n     * func('a', 'b', 'c', 'd');\n     * // => 'b'\n     *\n     * var func = _.nthArg(-2);\n     * func('a', 'b', 'c', 'd');\n     * // => 'c'\n     */\n    function nthArg(n) {\n      n = toInteger(n);\n      return baseRest(function(args) {\n        return baseNth(args, n);\n      });\n    }\n\n    /**\n     * Creates a function that invokes `iteratees` with the arguments it receives\n     * and returns their results.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Util\n     * @param {...(Function|Function[])} [iteratees=[_.identity]]\n     *  The iteratees to invoke.\n     * @returns {Function} Returns the new function.\n     * @example\n     *\n     * var func = _.over([Math.max, Math.min]);\n     *\n     * func(1, 2, 3, 4);\n     * // => [4, 1]\n     */\n    var over = createOver(arrayMap);\n\n    /**\n     * Creates a function that checks if **all** of the `predicates` return\n     * truthy when invoked with the arguments it receives.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Util\n     * @param {...(Function|Function[])} [predicates=[_.identity]]\n     *  The predicates to check.\n     * @returns {Function} Returns the new function.\n     * @example\n     *\n     * var func = _.overEvery([Boolean, isFinite]);\n     *\n     * func('1');\n     * // => true\n     *\n     * func(null);\n     * // => false\n     *\n     * func(NaN);\n     * // => false\n     */\n    var overEvery = createOver(arrayEvery);\n\n    /**\n     * Creates a function that checks if **any** of the `predicates` return\n     * truthy when invoked with the arguments it receives.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Util\n     * @param {...(Function|Function[])} [predicates=[_.identity]]\n     *  The predicates to check.\n     * @returns {Function} Returns the new function.\n     * @example\n     *\n     * var func = _.overSome([Boolean, isFinite]);\n     *\n     * func('1');\n     * // => true\n     *\n     * func(null);\n     * // => true\n     *\n     * func(NaN);\n     * // => false\n     */\n    var overSome = createOver(arraySome);\n\n    /**\n     * Creates a function that returns the value at `path` of a given object.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.4.0\n     * @category Util\n     * @param {Array|string} path The path of the property to get.\n     * @returns {Function} Returns the new accessor function.\n     * @example\n     *\n     * var objects = [\n     *   { 'a': { 'b': 2 } },\n     *   { 'a': { 'b': 1 } }\n     * ];\n     *\n     * _.map(objects, _.property('a.b'));\n     * // => [2, 1]\n     *\n     * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n     * // => [1, 2]\n     */\n    function property(path) {\n      return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n    }\n\n    /**\n     * The opposite of `_.property`; this method creates a function that returns\n     * the value at a given path of `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Util\n     * @param {Object} object The object to query.\n     * @returns {Function} Returns the new accessor function.\n     * @example\n     *\n     * var array = [0, 1, 2],\n     *     object = { 'a': array, 'b': array, 'c': array };\n     *\n     * _.map(['a[2]', 'c[0]'], _.propertyOf(object));\n     * // => [2, 0]\n     *\n     * _.map([['a', '2'], ['c', '0']], _.propertyOf(object));\n     * // => [2, 0]\n     */\n    function propertyOf(object) {\n      return function(path) {\n        return object == null ? undefined : baseGet(object, path);\n      };\n    }\n\n    /**\n     * Creates an array of numbers (positive and/or negative) progressing from\n     * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n     * `start` is specified without an `end` or `step`. If `end` is not specified,\n     * it's set to `start` with `start` then set to `0`.\n     *\n     * **Note:** JavaScript follows the IEEE-754 standard for resolving\n     * floating-point values which can produce unexpected results.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Util\n     * @param {number} [start=0] The start of the range.\n     * @param {number} end The end of the range.\n     * @param {number} [step=1] The value to increment or decrement by.\n     * @returns {Array} Returns the range of numbers.\n     * @see _.inRange, _.rangeRight\n     * @example\n     *\n     * _.range(4);\n     * // => [0, 1, 2, 3]\n     *\n     * _.range(-4);\n     * // => [0, -1, -2, -3]\n     *\n     * _.range(1, 5);\n     * // => [1, 2, 3, 4]\n     *\n     * _.range(0, 20, 5);\n     * // => [0, 5, 10, 15]\n     *\n     * _.range(0, -4, -1);\n     * // => [0, -1, -2, -3]\n     *\n     * _.range(1, 4, 0);\n     * // => [1, 1, 1]\n     *\n     * _.range(0);\n     * // => []\n     */\n    var range = createRange();\n\n    /**\n     * This method is like `_.range` except that it populates values in\n     * descending order.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Util\n     * @param {number} [start=0] The start of the range.\n     * @param {number} end The end of the range.\n     * @param {number} [step=1] The value to increment or decrement by.\n     * @returns {Array} Returns the range of numbers.\n     * @see _.inRange, _.range\n     * @example\n     *\n     * _.rangeRight(4);\n     * // => [3, 2, 1, 0]\n     *\n     * _.rangeRight(-4);\n     * // => [-3, -2, -1, 0]\n     *\n     * _.rangeRight(1, 5);\n     * // => [4, 3, 2, 1]\n     *\n     * _.rangeRight(0, 20, 5);\n     * // => [15, 10, 5, 0]\n     *\n     * _.rangeRight(0, -4, -1);\n     * // => [-3, -2, -1, 0]\n     *\n     * _.rangeRight(1, 4, 0);\n     * // => [1, 1, 1]\n     *\n     * _.rangeRight(0);\n     * // => []\n     */\n    var rangeRight = createRange(true);\n\n    /**\n     * This method returns a new empty array.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.13.0\n     * @category Util\n     * @returns {Array} Returns the new empty array.\n     * @example\n     *\n     * var arrays = _.times(2, _.stubArray);\n     *\n     * console.log(arrays);\n     * // => [[], []]\n     *\n     * console.log(arrays[0] === arrays[1]);\n     * // => false\n     */\n    function stubArray() {\n      return [];\n    }\n\n    /**\n     * This method returns `false`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.13.0\n     * @category Util\n     * @returns {boolean} Returns `false`.\n     * @example\n     *\n     * _.times(2, _.stubFalse);\n     * // => [false, false]\n     */\n    function stubFalse() {\n      return false;\n    }\n\n    /**\n     * This method returns a new empty object.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.13.0\n     * @category Util\n     * @returns {Object} Returns the new empty object.\n     * @example\n     *\n     * var objects = _.times(2, _.stubObject);\n     *\n     * console.log(objects);\n     * // => [{}, {}]\n     *\n     * console.log(objects[0] === objects[1]);\n     * // => false\n     */\n    function stubObject() {\n      return {};\n    }\n\n    /**\n     * This method returns an empty string.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.13.0\n     * @category Util\n     * @returns {string} Returns the empty string.\n     * @example\n     *\n     * _.times(2, _.stubString);\n     * // => ['', '']\n     */\n    function stubString() {\n      return '';\n    }\n\n    /**\n     * This method returns `true`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.13.0\n     * @category Util\n     * @returns {boolean} Returns `true`.\n     * @example\n     *\n     * _.times(2, _.stubTrue);\n     * // => [true, true]\n     */\n    function stubTrue() {\n      return true;\n    }\n\n    /**\n     * Invokes the iteratee `n` times, returning an array of the results of\n     * each invocation. The iteratee is invoked with one argument; (index).\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Util\n     * @param {number} n The number of times to invoke `iteratee`.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the array of results.\n     * @example\n     *\n     * _.times(3, String);\n     * // => ['0', '1', '2']\n     *\n     *  _.times(4, _.constant(0));\n     * // => [0, 0, 0, 0]\n     */\n    function times(n, iteratee) {\n      n = toInteger(n);\n      if (n < 1 || n > MAX_SAFE_INTEGER) {\n        return [];\n      }\n      var index = MAX_ARRAY_LENGTH,\n          length = nativeMin(n, MAX_ARRAY_LENGTH);\n\n      iteratee = getIteratee(iteratee);\n      n -= MAX_ARRAY_LENGTH;\n\n      var result = baseTimes(length, iteratee);\n      while (++index < n) {\n        iteratee(index);\n      }\n      return result;\n    }\n\n    /**\n     * Converts `value` to a property path array.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Util\n     * @param {*} value The value to convert.\n     * @returns {Array} Returns the new property path array.\n     * @example\n     *\n     * _.toPath('a.b.c');\n     * // => ['a', 'b', 'c']\n     *\n     * _.toPath('a[0].b.c');\n     * // => ['a', '0', 'b', 'c']\n     */\n    function toPath(value) {\n      if (isArray(value)) {\n        return arrayMap(value, toKey);\n      }\n      return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n    }\n\n    /**\n     * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Util\n     * @param {string} [prefix=''] The value to prefix the ID with.\n     * @returns {string} Returns the unique ID.\n     * @example\n     *\n     * _.uniqueId('contact_');\n     * // => 'contact_104'\n     *\n     * _.uniqueId();\n     * // => '105'\n     */\n    function uniqueId(prefix) {\n      var id = ++idCounter;\n      return toString(prefix) + id;\n    }\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Adds two numbers.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.4.0\n     * @category Math\n     * @param {number} augend The first number in an addition.\n     * @param {number} addend The second number in an addition.\n     * @returns {number} Returns the total.\n     * @example\n     *\n     * _.add(6, 4);\n     * // => 10\n     */\n    var add = createMathOperation(function(augend, addend) {\n      return augend + addend;\n    }, 0);\n\n    /**\n     * Computes `number` rounded up to `precision`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.10.0\n     * @category Math\n     * @param {number} number The number to round up.\n     * @param {number} [precision=0] The precision to round up to.\n     * @returns {number} Returns the rounded up number.\n     * @example\n     *\n     * _.ceil(4.006);\n     * // => 5\n     *\n     * _.ceil(6.004, 2);\n     * // => 6.01\n     *\n     * _.ceil(6040, -2);\n     * // => 6100\n     */\n    var ceil = createRound('ceil');\n\n    /**\n     * Divide two numbers.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.7.0\n     * @category Math\n     * @param {number} dividend The first number in a division.\n     * @param {number} divisor The second number in a division.\n     * @returns {number} Returns the quotient.\n     * @example\n     *\n     * _.divide(6, 4);\n     * // => 1.5\n     */\n    var divide = createMathOperation(function(dividend, divisor) {\n      return dividend / divisor;\n    }, 1);\n\n    /**\n     * Computes `number` rounded down to `precision`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.10.0\n     * @category Math\n     * @param {number} number The number to round down.\n     * @param {number} [precision=0] The precision to round down to.\n     * @returns {number} Returns the rounded down number.\n     * @example\n     *\n     * _.floor(4.006);\n     * // => 4\n     *\n     * _.floor(0.046, 2);\n     * // => 0.04\n     *\n     * _.floor(4060, -2);\n     * // => 4000\n     */\n    var floor = createRound('floor');\n\n    /**\n     * Computes the maximum value of `array`. If `array` is empty or falsey,\n     * `undefined` is returned.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Math\n     * @param {Array} array The array to iterate over.\n     * @returns {*} Returns the maximum value.\n     * @example\n     *\n     * _.max([4, 2, 8, 6]);\n     * // => 8\n     *\n     * _.max([]);\n     * // => undefined\n     */\n    function max(array) {\n      return (array && array.length)\n        ? baseExtremum(array, identity, baseGt)\n        : undefined;\n    }\n\n    /**\n     * This method is like `_.max` except that it accepts `iteratee` which is\n     * invoked for each element in `array` to generate the criterion by which\n     * the value is ranked. The iteratee is invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Math\n     * @param {Array} array The array to iterate over.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {*} Returns the maximum value.\n     * @example\n     *\n     * var objects = [{ 'n': 1 }, { 'n': 2 }];\n     *\n     * _.maxBy(objects, function(o) { return o.n; });\n     * // => { 'n': 2 }\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.maxBy(objects, 'n');\n     * // => { 'n': 2 }\n     */\n    function maxBy(array, iteratee) {\n      return (array && array.length)\n        ? baseExtremum(array, getIteratee(iteratee, 2), baseGt)\n        : undefined;\n    }\n\n    /**\n     * Computes the mean of the values in `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Math\n     * @param {Array} array The array to iterate over.\n     * @returns {number} Returns the mean.\n     * @example\n     *\n     * _.mean([4, 2, 8, 6]);\n     * // => 5\n     */\n    function mean(array) {\n      return baseMean(array, identity);\n    }\n\n    /**\n     * This method is like `_.mean` except that it accepts `iteratee` which is\n     * invoked for each element in `array` to generate the value to be averaged.\n     * The iteratee is invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.7.0\n     * @category Math\n     * @param {Array} array The array to iterate over.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {number} Returns the mean.\n     * @example\n     *\n     * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n     *\n     * _.meanBy(objects, function(o) { return o.n; });\n     * // => 5\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.meanBy(objects, 'n');\n     * // => 5\n     */\n    function meanBy(array, iteratee) {\n      return baseMean(array, getIteratee(iteratee, 2));\n    }\n\n    /**\n     * Computes the minimum value of `array`. If `array` is empty or falsey,\n     * `undefined` is returned.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Math\n     * @param {Array} array The array to iterate over.\n     * @returns {*} Returns the minimum value.\n     * @example\n     *\n     * _.min([4, 2, 8, 6]);\n     * // => 2\n     *\n     * _.min([]);\n     * // => undefined\n     */\n    function min(array) {\n      return (array && array.length)\n        ? baseExtremum(array, identity, baseLt)\n        : undefined;\n    }\n\n    /**\n     * This method is like `_.min` except that it accepts `iteratee` which is\n     * invoked for each element in `array` to generate the criterion by which\n     * the value is ranked. The iteratee is invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Math\n     * @param {Array} array The array to iterate over.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {*} Returns the minimum value.\n     * @example\n     *\n     * var objects = [{ 'n': 1 }, { 'n': 2 }];\n     *\n     * _.minBy(objects, function(o) { return o.n; });\n     * // => { 'n': 1 }\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.minBy(objects, 'n');\n     * // => { 'n': 1 }\n     */\n    function minBy(array, iteratee) {\n      return (array && array.length)\n        ? baseExtremum(array, getIteratee(iteratee, 2), baseLt)\n        : undefined;\n    }\n\n    /**\n     * Multiply two numbers.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.7.0\n     * @category Math\n     * @param {number} multiplier The first number in a multiplication.\n     * @param {number} multiplicand The second number in a multiplication.\n     * @returns {number} Returns the product.\n     * @example\n     *\n     * _.multiply(6, 4);\n     * // => 24\n     */\n    var multiply = createMathOperation(function(multiplier, multiplicand) {\n      return multiplier * multiplicand;\n    }, 1);\n\n    /**\n     * Computes `number` rounded to `precision`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.10.0\n     * @category Math\n     * @param {number} number The number to round.\n     * @param {number} [precision=0] The precision to round to.\n     * @returns {number} Returns the rounded number.\n     * @example\n     *\n     * _.round(4.006);\n     * // => 4\n     *\n     * _.round(4.006, 2);\n     * // => 4.01\n     *\n     * _.round(4060, -2);\n     * // => 4100\n     */\n    var round = createRound('round');\n\n    /**\n     * Subtract two numbers.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Math\n     * @param {number} minuend The first number in a subtraction.\n     * @param {number} subtrahend The second number in a subtraction.\n     * @returns {number} Returns the difference.\n     * @example\n     *\n     * _.subtract(6, 4);\n     * // => 2\n     */\n    var subtract = createMathOperation(function(minuend, subtrahend) {\n      return minuend - subtrahend;\n    }, 0);\n\n    /**\n     * Computes the sum of the values in `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.4.0\n     * @category Math\n     * @param {Array} array The array to iterate over.\n     * @returns {number} Returns the sum.\n     * @example\n     *\n     * _.sum([4, 2, 8, 6]);\n     * // => 20\n     */\n    function sum(array) {\n      return (array && array.length)\n        ? baseSum(array, identity)\n        : 0;\n    }\n\n    /**\n     * This method is like `_.sum` except that it accepts `iteratee` which is\n     * invoked for each element in `array` to generate the value to be summed.\n     * The iteratee is invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Math\n     * @param {Array} array The array to iterate over.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {number} Returns the sum.\n     * @example\n     *\n     * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n     *\n     * _.sumBy(objects, function(o) { return o.n; });\n     * // => 20\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.sumBy(objects, 'n');\n     * // => 20\n     */\n    function sumBy(array, iteratee) {\n      return (array && array.length)\n        ? baseSum(array, getIteratee(iteratee, 2))\n        : 0;\n    }\n\n    /*------------------------------------------------------------------------*/\n\n    // Add methods that return wrapped values in chain sequences.\n    lodash.after = after;\n    lodash.ary = ary;\n    lodash.assign = assign;\n    lodash.assignIn = assignIn;\n    lodash.assignInWith = assignInWith;\n    lodash.assignWith = assignWith;\n    lodash.at = at;\n    lodash.before = before;\n    lodash.bind = bind;\n    lodash.bindAll = bindAll;\n    lodash.bindKey = bindKey;\n    lodash.castArray = castArray;\n    lodash.chain = chain;\n    lodash.chunk = chunk;\n    lodash.compact = compact;\n    lodash.concat = concat;\n    lodash.cond = cond;\n    lodash.conforms = conforms;\n    lodash.constant = constant;\n    lodash.countBy = countBy;\n    lodash.create = create;\n    lodash.curry = curry;\n    lodash.curryRight = curryRight;\n    lodash.debounce = debounce;\n    lodash.defaults = defaults;\n    lodash.defaultsDeep = defaultsDeep;\n    lodash.defer = defer;\n    lodash.delay = delay;\n    lodash.difference = difference;\n    lodash.differenceBy = differenceBy;\n    lodash.differenceWith = differenceWith;\n    lodash.drop = drop;\n    lodash.dropRight = dropRight;\n    lodash.dropRightWhile = dropRightWhile;\n    lodash.dropWhile = dropWhile;\n    lodash.fill = fill;\n    lodash.filter = filter;\n    lodash.flatMap = flatMap;\n    lodash.flatMapDeep = flatMapDeep;\n    lodash.flatMapDepth = flatMapDepth;\n    lodash.flatten = flatten;\n    lodash.flattenDeep = flattenDeep;\n    lodash.flattenDepth = flattenDepth;\n    lodash.flip = flip;\n    lodash.flow = flow;\n    lodash.flowRight = flowRight;\n    lodash.fromPairs = fromPairs;\n    lodash.functions = functions;\n    lodash.functionsIn = functionsIn;\n    lodash.groupBy = groupBy;\n    lodash.initial = initial;\n    lodash.intersection = intersection;\n    lodash.intersectionBy = intersectionBy;\n    lodash.intersectionWith = intersectionWith;\n    lodash.invert = invert;\n    lodash.invertBy = invertBy;\n    lodash.invokeMap = invokeMap;\n    lodash.iteratee = iteratee;\n    lodash.keyBy = keyBy;\n    lodash.keys = keys;\n    lodash.keysIn = keysIn;\n    lodash.map = map;\n    lodash.mapKeys = mapKeys;\n    lodash.mapValues = mapValues;\n    lodash.matches = matches;\n    lodash.matchesProperty = matchesProperty;\n    lodash.memoize = memoize;\n    lodash.merge = merge;\n    lodash.mergeWith = mergeWith;\n    lodash.method = method;\n    lodash.methodOf = methodOf;\n    lodash.mixin = mixin;\n    lodash.negate = negate;\n    lodash.nthArg = nthArg;\n    lodash.omit = omit;\n    lodash.omitBy = omitBy;\n    lodash.once = once;\n    lodash.orderBy = orderBy;\n    lodash.over = over;\n    lodash.overArgs = overArgs;\n    lodash.overEvery = overEvery;\n    lodash.overSome = overSome;\n    lodash.partial = partial;\n    lodash.partialRight = partialRight;\n    lodash.partition = partition;\n    lodash.pick = pick;\n    lodash.pickBy = pickBy;\n    lodash.property = property;\n    lodash.propertyOf = propertyOf;\n    lodash.pull = pull;\n    lodash.pullAll = pullAll;\n    lodash.pullAllBy = pullAllBy;\n    lodash.pullAllWith = pullAllWith;\n    lodash.pullAt = pullAt;\n    lodash.range = range;\n    lodash.rangeRight = rangeRight;\n    lodash.rearg = rearg;\n    lodash.reject = reject;\n    lodash.remove = remove;\n    lodash.rest = rest;\n    lodash.reverse = reverse;\n    lodash.sampleSize = sampleSize;\n    lodash.set = set;\n    lodash.setWith = setWith;\n    lodash.shuffle = shuffle;\n    lodash.slice = slice;\n    lodash.sortBy = sortBy;\n    lodash.sortedUniq = sortedUniq;\n    lodash.sortedUniqBy = sortedUniqBy;\n    lodash.split = split;\n    lodash.spread = spread;\n    lodash.tail = tail;\n    lodash.take = take;\n    lodash.takeRight = takeRight;\n    lodash.takeRightWhile = takeRightWhile;\n    lodash.takeWhile = takeWhile;\n    lodash.tap = tap;\n    lodash.throttle = throttle;\n    lodash.thru = thru;\n    lodash.toArray = toArray;\n    lodash.toPairs = toPairs;\n    lodash.toPairsIn = toPairsIn;\n    lodash.toPath = toPath;\n    lodash.toPlainObject = toPlainObject;\n    lodash.transform = transform;\n    lodash.unary = unary;\n    lodash.union = union;\n    lodash.unionBy = unionBy;\n    lodash.unionWith = unionWith;\n    lodash.uniq = uniq;\n    lodash.uniqBy = uniqBy;\n    lodash.uniqWith = uniqWith;\n    lodash.unset = unset;\n    lodash.unzip = unzip;\n    lodash.unzipWith = unzipWith;\n    lodash.update = update;\n    lodash.updateWith = updateWith;\n    lodash.values = values;\n    lodash.valuesIn = valuesIn;\n    lodash.without = without;\n    lodash.words = words;\n    lodash.wrap = wrap;\n    lodash.xor = xor;\n    lodash.xorBy = xorBy;\n    lodash.xorWith = xorWith;\n    lodash.zip = zip;\n    lodash.zipObject = zipObject;\n    lodash.zipObjectDeep = zipObjectDeep;\n    lodash.zipWith = zipWith;\n\n    // Add aliases.\n    lodash.entries = toPairs;\n    lodash.entriesIn = toPairsIn;\n    lodash.extend = assignIn;\n    lodash.extendWith = assignInWith;\n\n    // Add methods to `lodash.prototype`.\n    mixin(lodash, lodash);\n\n    /*------------------------------------------------------------------------*/\n\n    // Add methods that return unwrapped values in chain sequences.\n    lodash.add = add;\n    lodash.attempt = attempt;\n    lodash.camelCase = camelCase;\n    lodash.capitalize = capitalize;\n    lodash.ceil = ceil;\n    lodash.clamp = clamp;\n    lodash.clone = clone;\n    lodash.cloneDeep = cloneDeep;\n    lodash.cloneDeepWith = cloneDeepWith;\n    lodash.cloneWith = cloneWith;\n    lodash.conformsTo = conformsTo;\n    lodash.deburr = deburr;\n    lodash.defaultTo = defaultTo;\n    lodash.divide = divide;\n    lodash.endsWith = endsWith;\n    lodash.eq = eq;\n    lodash.escape = escape;\n    lodash.escapeRegExp = escapeRegExp;\n    lodash.every = every;\n    lodash.find = find;\n    lodash.findIndex = findIndex;\n    lodash.findKey = findKey;\n    lodash.findLast = findLast;\n    lodash.findLastIndex = findLastIndex;\n    lodash.findLastKey = findLastKey;\n    lodash.floor = floor;\n    lodash.forEach = forEach;\n    lodash.forEachRight = forEachRight;\n    lodash.forIn = forIn;\n    lodash.forInRight = forInRight;\n    lodash.forOwn = forOwn;\n    lodash.forOwnRight = forOwnRight;\n    lodash.get = get;\n    lodash.gt = gt;\n    lodash.gte = gte;\n    lodash.has = has;\n    lodash.hasIn = hasIn;\n    lodash.head = head;\n    lodash.identity = identity;\n    lodash.includes = includes;\n    lodash.indexOf = indexOf;\n    lodash.inRange = inRange;\n    lodash.invoke = invoke;\n    lodash.isArguments = isArguments;\n    lodash.isArray = isArray;\n    lodash.isArrayBuffer = isArrayBuffer;\n    lodash.isArrayLike = isArrayLike;\n    lodash.isArrayLikeObject = isArrayLikeObject;\n    lodash.isBoolean = isBoolean;\n    lodash.isBuffer = isBuffer;\n    lodash.isDate = isDate;\n    lodash.isElement = isElement;\n    lodash.isEmpty = isEmpty;\n    lodash.isEqual = isEqual;\n    lodash.isEqualWith = isEqualWith;\n    lodash.isError = isError;\n    lodash.isFinite = isFinite;\n    lodash.isFunction = isFunction;\n    lodash.isInteger = isInteger;\n    lodash.isLength = isLength;\n    lodash.isMap = isMap;\n    lodash.isMatch = isMatch;\n    lodash.isMatchWith = isMatchWith;\n    lodash.isNaN = isNaN;\n    lodash.isNative = isNative;\n    lodash.isNil = isNil;\n    lodash.isNull = isNull;\n    lodash.isNumber = isNumber;\n    lodash.isObject = isObject;\n    lodash.isObjectLike = isObjectLike;\n    lodash.isPlainObject = isPlainObject;\n    lodash.isRegExp = isRegExp;\n    lodash.isSafeInteger = isSafeInteger;\n    lodash.isSet = isSet;\n    lodash.isString = isString;\n    lodash.isSymbol = isSymbol;\n    lodash.isTypedArray = isTypedArray;\n    lodash.isUndefined = isUndefined;\n    lodash.isWeakMap = isWeakMap;\n    lodash.isWeakSet = isWeakSet;\n    lodash.join = join;\n    lodash.kebabCase = kebabCase;\n    lodash.last = last;\n    lodash.lastIndexOf = lastIndexOf;\n    lodash.lowerCase = lowerCase;\n    lodash.lowerFirst = lowerFirst;\n    lodash.lt = lt;\n    lodash.lte = lte;\n    lodash.max = max;\n    lodash.maxBy = maxBy;\n    lodash.mean = mean;\n    lodash.meanBy = meanBy;\n    lodash.min = min;\n    lodash.minBy = minBy;\n    lodash.stubArray = stubArray;\n    lodash.stubFalse = stubFalse;\n    lodash.stubObject = stubObject;\n    lodash.stubString = stubString;\n    lodash.stubTrue = stubTrue;\n    lodash.multiply = multiply;\n    lodash.nth = nth;\n    lodash.noConflict = noConflict;\n    lodash.noop = noop;\n    lodash.now = now;\n    lodash.pad = pad;\n    lodash.padEnd = padEnd;\n    lodash.padStart = padStart;\n    lodash.parseInt = parseInt;\n    lodash.random = random;\n    lodash.reduce = reduce;\n    lodash.reduceRight = reduceRight;\n    lodash.repeat = repeat;\n    lodash.replace = replace;\n    lodash.result = result;\n    lodash.round = round;\n    lodash.runInContext = runInContext;\n    lodash.sample = sample;\n    lodash.size = size;\n    lodash.snakeCase = snakeCase;\n    lodash.some = some;\n    lodash.sortedIndex = sortedIndex;\n    lodash.sortedIndexBy = sortedIndexBy;\n    lodash.sortedIndexOf = sortedIndexOf;\n    lodash.sortedLastIndex = sortedLastIndex;\n    lodash.sortedLastIndexBy = sortedLastIndexBy;\n    lodash.sortedLastIndexOf = sortedLastIndexOf;\n    lodash.startCase = startCase;\n    lodash.startsWith = startsWith;\n    lodash.subtract = subtract;\n    lodash.sum = sum;\n    lodash.sumBy = sumBy;\n    lodash.template = template;\n    lodash.times = times;\n    lodash.toFinite = toFinite;\n    lodash.toInteger = toInteger;\n    lodash.toLength = toLength;\n    lodash.toLower = toLower;\n    lodash.toNumber = toNumber;\n    lodash.toSafeInteger = toSafeInteger;\n    lodash.toString = toString;\n    lodash.toUpper = toUpper;\n    lodash.trim = trim;\n    lodash.trimEnd = trimEnd;\n    lodash.trimStart = trimStart;\n    lodash.truncate = truncate;\n    lodash.unescape = unescape;\n    lodash.uniqueId = uniqueId;\n    lodash.upperCase = upperCase;\n    lodash.upperFirst = upperFirst;\n\n    // Add aliases.\n    lodash.each = forEach;\n    lodash.eachRight = forEachRight;\n    lodash.first = head;\n\n    mixin(lodash, (function() {\n      var source = {};\n      baseForOwn(lodash, function(func, methodName) {\n        if (!hasOwnProperty.call(lodash.prototype, methodName)) {\n          source[methodName] = func;\n        }\n      });\n      return source;\n    }()), { 'chain': false });\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * The semantic version number.\n     *\n     * @static\n     * @memberOf _\n     * @type {string}\n     */\n    lodash.VERSION = VERSION;\n\n    // Assign default placeholders.\n    arrayEach(['bind', 'bindKey', 'curry', 'curryRight', 'partial', 'partialRight'], function(methodName) {\n      lodash[methodName].placeholder = lodash;\n    });\n\n    // Add `LazyWrapper` methods for `_.drop` and `_.take` variants.\n    arrayEach(['drop', 'take'], function(methodName, index) {\n      LazyWrapper.prototype[methodName] = function(n) {\n        n = n === undefined ? 1 : nativeMax(toInteger(n), 0);\n\n        var result = (this.__filtered__ && !index)\n          ? new LazyWrapper(this)\n          : this.clone();\n\n        if (result.__filtered__) {\n          result.__takeCount__ = nativeMin(n, result.__takeCount__);\n        } else {\n          result.__views__.push({\n            'size': nativeMin(n, MAX_ARRAY_LENGTH),\n            'type': methodName + (result.__dir__ < 0 ? 'Right' : '')\n          });\n        }\n        return result;\n      };\n\n      LazyWrapper.prototype[methodName + 'Right'] = function(n) {\n        return this.reverse()[methodName](n).reverse();\n      };\n    });\n\n    // Add `LazyWrapper` methods that accept an `iteratee` value.\n    arrayEach(['filter', 'map', 'takeWhile'], function(methodName, index) {\n      var type = index + 1,\n          isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG;\n\n      LazyWrapper.prototype[methodName] = function(iteratee) {\n        var result = this.clone();\n        result.__iteratees__.push({\n          'iteratee': getIteratee(iteratee, 3),\n          'type': type\n        });\n        result.__filtered__ = result.__filtered__ || isFilter;\n        return result;\n      };\n    });\n\n    // Add `LazyWrapper` methods for `_.head` and `_.last`.\n    arrayEach(['head', 'last'], function(methodName, index) {\n      var takeName = 'take' + (index ? 'Right' : '');\n\n      LazyWrapper.prototype[methodName] = function() {\n        return this[takeName](1).value()[0];\n      };\n    });\n\n    // Add `LazyWrapper` methods for `_.initial` and `_.tail`.\n    arrayEach(['initial', 'tail'], function(methodName, index) {\n      var dropName = 'drop' + (index ? '' : 'Right');\n\n      LazyWrapper.prototype[methodName] = function() {\n        return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1);\n      };\n    });\n\n    LazyWrapper.prototype.compact = function() {\n      return this.filter(identity);\n    };\n\n    LazyWrapper.prototype.find = function(predicate) {\n      return this.filter(predicate).head();\n    };\n\n    LazyWrapper.prototype.findLast = function(predicate) {\n      return this.reverse().find(predicate);\n    };\n\n    LazyWrapper.prototype.invokeMap = baseRest(function(path, args) {\n      if (typeof path == 'function') {\n        return new LazyWrapper(this);\n      }\n      return this.map(function(value) {\n        return baseInvoke(value, path, args);\n      });\n    });\n\n    LazyWrapper.prototype.reject = function(predicate) {\n      return this.filter(negate(getIteratee(predicate)));\n    };\n\n    LazyWrapper.prototype.slice = function(start, end) {\n      start = toInteger(start);\n\n      var result = this;\n      if (result.__filtered__ && (start > 0 || end < 0)) {\n        return new LazyWrapper(result);\n      }\n      if (start < 0) {\n        result = result.takeRight(-start);\n      } else if (start) {\n        result = result.drop(start);\n      }\n      if (end !== undefined) {\n        end = toInteger(end);\n        result = end < 0 ? result.dropRight(-end) : result.take(end - start);\n      }\n      return result;\n    };\n\n    LazyWrapper.prototype.takeRightWhile = function(predicate) {\n      return this.reverse().takeWhile(predicate).reverse();\n    };\n\n    LazyWrapper.prototype.toArray = function() {\n      return this.take(MAX_ARRAY_LENGTH);\n    };\n\n    // Add `LazyWrapper` methods to `lodash.prototype`.\n    baseForOwn(LazyWrapper.prototype, function(func, methodName) {\n      var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName),\n          isTaker = /^(?:head|last)$/.test(methodName),\n          lodashFunc = lodash[isTaker ? ('take' + (methodName == 'last' ? 'Right' : '')) : methodName],\n          retUnwrapped = isTaker || /^find/.test(methodName);\n\n      if (!lodashFunc) {\n        return;\n      }\n      lodash.prototype[methodName] = function() {\n        var value = this.__wrapped__,\n            args = isTaker ? [1] : arguments,\n            isLazy = value instanceof LazyWrapper,\n            iteratee = args[0],\n            useLazy = isLazy || isArray(value);\n\n        var interceptor = function(value) {\n          var result = lodashFunc.apply(lodash, arrayPush([value], args));\n          return (isTaker && chainAll) ? result[0] : result;\n        };\n\n        if (useLazy && checkIteratee && typeof iteratee == 'function' && iteratee.length != 1) {\n          // Avoid lazy use if the iteratee has a \"length\" value other than `1`.\n          isLazy = useLazy = false;\n        }\n        var chainAll = this.__chain__,\n            isHybrid = !!this.__actions__.length,\n            isUnwrapped = retUnwrapped && !chainAll,\n            onlyLazy = isLazy && !isHybrid;\n\n        if (!retUnwrapped && useLazy) {\n          value = onlyLazy ? value : new LazyWrapper(this);\n          var result = func.apply(value, args);\n          result.__actions__.push({ 'func': thru, 'args': [interceptor], 'thisArg': undefined });\n          return new LodashWrapper(result, chainAll);\n        }\n        if (isUnwrapped && onlyLazy) {\n          return func.apply(this, args);\n        }\n        result = this.thru(interceptor);\n        return isUnwrapped ? (isTaker ? result.value()[0] : result.value()) : result;\n      };\n    });\n\n    // Add `Array` methods to `lodash.prototype`.\n    arrayEach(['pop', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) {\n      var func = arrayProto[methodName],\n          chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru',\n          retUnwrapped = /^(?:pop|shift)$/.test(methodName);\n\n      lodash.prototype[methodName] = function() {\n        var args = arguments;\n        if (retUnwrapped && !this.__chain__) {\n          var value = this.value();\n          return func.apply(isArray(value) ? value : [], args);\n        }\n        return this[chainName](function(value) {\n          return func.apply(isArray(value) ? value : [], args);\n        });\n      };\n    });\n\n    // Map minified method names to their real names.\n    baseForOwn(LazyWrapper.prototype, function(func, methodName) {\n      var lodashFunc = lodash[methodName];\n      if (lodashFunc) {\n        var key = (lodashFunc.name + ''),\n            names = realNames[key] || (realNames[key] = []);\n\n        names.push({ 'name': methodName, 'func': lodashFunc });\n      }\n    });\n\n    realNames[createHybrid(undefined, WRAP_BIND_KEY_FLAG).name] = [{\n      'name': 'wrapper',\n      'func': undefined\n    }];\n\n    // Add methods to `LazyWrapper`.\n    LazyWrapper.prototype.clone = lazyClone;\n    LazyWrapper.prototype.reverse = lazyReverse;\n    LazyWrapper.prototype.value = lazyValue;\n\n    // Add chain sequence methods to the `lodash` wrapper.\n    lodash.prototype.at = wrapperAt;\n    lodash.prototype.chain = wrapperChain;\n    lodash.prototype.commit = wrapperCommit;\n    lodash.prototype.next = wrapperNext;\n    lodash.prototype.plant = wrapperPlant;\n    lodash.prototype.reverse = wrapperReverse;\n    lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;\n\n    // Add lazy aliases.\n    lodash.prototype.first = lodash.prototype.head;\n\n    if (symIterator) {\n      lodash.prototype[symIterator] = wrapperToIterator;\n    }\n    return lodash;\n  });\n\n  /*--------------------------------------------------------------------------*/\n\n  // Export lodash.\n  var _ = runInContext();\n\n  // Some AMD build optimizers, like r.js, check for condition patterns like:\n  if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n    // Expose Lodash on the global object to prevent errors when Lodash is\n    // loaded by a script tag in the presence of an AMD loader.\n    // See http://requirejs.org/docs/errors.html#mismatch for more details.\n    // Use `_.noConflict` to remove Lodash from the global object.\n    root._ = _;\n\n    // Define as an anonymous module so, through path mapping, it can be\n    // referenced as the \"underscore\" module.\n    define(function() {\n      return _;\n    });\n  }\n  // Check for `exports` after `define` in case a build optimizer adds it.\n  else if (freeModule) {\n    // Export for Node.js.\n    (freeModule.exports = _)._ = _;\n    // Export for CommonJS support.\n    freeExports._ = _;\n  }\n  else {\n    // Export to the global object.\n    root._ = _;\n  }\n}.call(this));\n","import * as React from \"react\"\nimport Square from \"./Square\"\nimport _ from \"lodash\"\nimport { iPuzzle, Settings } from \"../types\"\n\ninterface Props {\n\tsettings: Settings\n\tpuzzle: iPuzzle\n}\n\nexport default class Puzzle extends React.Component<Props> {\n\tstatic puzzleToDOM(puzzle: string[][][]) {\n\t\tlet squares = 0\n\n\t\treturn puzzle.map((row) => row.map((square) => {\n\t\t\tsquares++\n\t\t\treturn (\n\t\t\t\t<Square\n\t\t\t\t\tkey={squares}\n\t\t\t\t\tnum={squares}\n\t\t\t\t\ttop={square[0]}\n\t\t\t\t\tright={square[1]}\n\t\t\t\t\tbottom={square[2]}\n\t\t\t\t\tleft={square[3]}\n\t\t\t\t/>\n\t\t\t)\n\t\t}))\n\t}\n\n\trender() {\n\t\tconst rows = Puzzle.puzzleToDOM(this.props.puzzle[this.props.settings.shuffled ? \"shuffled\" : \"solved\"])\n\n\t\tconst classes = _.compact([\n\t\t\tthis.props.settings.borders && \"border\",\n\t\t\tthis.props.settings.labelSquares && \"label\",\n\t\t]).join(\" \")\n\n\t\treturn (\n\t\t\t<table className={classes}>\n\t\t\t\t<tbody>\n\t\t\t\t\t<tr>{rows[0]}</tr>\n\t\t\t\t\t<tr>{rows[1]}</tr>\n\t\t\t\t\t<tr>{rows[2]}</tr>\n\t\t\t\t\t<tr>{rows[3]}</tr>\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t)\n\t}\n}\n","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\n/** Alignment along the horizontal axis. */\nexport const Alignment = {\n    CENTER: \"center\" as \"center\",\n    LEFT: \"left\" as \"left\",\n    RIGHT: \"right\" as \"right\",\n};\nexport type Alignment = typeof Alignment[keyof typeof Alignment];\n","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\n// tslint:disable:object-literal-sort-keys\nexport const Elevation = {\n    ZERO: 0 as 0,\n    ONE: 1 as 1,\n    TWO: 2 as 2,\n    THREE: 3 as 3,\n    FOUR: 4 as 4,\n};\nexport type Elevation = typeof Elevation[keyof typeof Elevation];\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\n// tslint:disable:object-literal-sort-keys\n\n/**\n * The four basic intents.\n */\nexport const Intent = {\n    NONE: \"none\" as \"none\",\n    PRIMARY: \"primary\" as \"primary\",\n    SUCCESS: \"success\" as \"success\",\n    WARNING: \"warning\" as \"warning\",\n    DANGER: \"danger\" as \"danger\",\n};\nexport type Intent = typeof Intent[keyof typeof Intent];\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport { Alignment } from \"./alignment\";\nimport { Elevation } from \"./elevation\";\nimport { Intent } from \"./intent\";\n\nconst NS = process.env.BLUEPRINT_NAMESPACE || \"bp3\";\n\n// modifiers\nexport const ACTIVE = `${NS}-active`;\nexport const ALIGN_LEFT = `${NS}-align-left`;\nexport const ALIGN_RIGHT = `${NS}-align-right`;\nexport const CONDENSED = `${NS}-condensed`;\nexport const DARK = `${NS}-dark`;\nexport const DISABLED = `${NS}-disabled`;\nexport const FILL = `${NS}-fill`;\nexport const FIXED = `${NS}-fixed`;\nexport const FIXED_TOP = `${NS}-fixed-top`;\nexport const INLINE = `${NS}-inline`;\nexport const INTERACTIVE = `${NS}-interactive`;\nexport const LARGE = `${NS}-large`;\nexport const LOADING = `${NS}-loading`;\nexport const MINIMAL = `${NS}-minimal`;\nexport const MULTILINE = `${NS}-multiline`;\nexport const ROUND = `${NS}-round`;\nexport const SMALL = `${NS}-small`;\nexport const VERTICAL = `${NS}-vertical`;\n\nexport const ELEVATION_0 = elevationClass(Elevation.ZERO);\nexport const ELEVATION_1 = elevationClass(Elevation.ONE);\nexport const ELEVATION_2 = elevationClass(Elevation.TWO);\nexport const ELEVATION_3 = elevationClass(Elevation.THREE);\nexport const ELEVATION_4 = elevationClass(Elevation.FOUR);\n\nexport const INTENT_PRIMARY = intentClass(Intent.PRIMARY);\nexport const INTENT_SUCCESS = intentClass(Intent.SUCCESS);\nexport const INTENT_WARNING = intentClass(Intent.WARNING);\nexport const INTENT_DANGER = intentClass(Intent.DANGER);\n\nexport const FOCUS_DISABLED = `${NS}-focus-disabled`;\n\n// text utilities\nexport const UI_TEXT = `${NS}-ui-text`;\nexport const RUNNING_TEXT = `${NS}-running-text`;\nexport const MONOSPACE_TEXT = `${NS}-monospace-text`;\nexport const TEXT_LARGE = `${NS}-text-large`;\nexport const TEXT_SMALL = `${NS}-text-small`;\nexport const TEXT_MUTED = `${NS}-text-muted`;\nexport const TEXT_DISABLED = `${NS}-text-disabled`;\nexport const TEXT_OVERFLOW_ELLIPSIS = `${NS}-text-overflow-ellipsis`;\n\n// textual elements\nexport const BLOCKQUOTE = `${NS}-blockquote`;\nexport const CODE = `${NS}-code`;\nexport const CODE_BLOCK = `${NS}-code-block`;\nexport const HEADING = `${NS}-heading`;\nexport const LIST = `${NS}-list`;\nexport const LIST_UNSTYLED = `${NS}-list-unstyled`;\nexport const RTL = `${NS}-rtl`;\n\n// components\nexport const ALERT = `${NS}-alert`;\nexport const ALERT_BODY = `${ALERT}-body`;\nexport const ALERT_CONTENTS = `${ALERT}-contents`;\nexport const ALERT_FOOTER = `${ALERT}-footer`;\n\nexport const BREADCRUMB = `${NS}-breadcrumb`;\nexport const BREADCRUMB_CURRENT = `${BREADCRUMB}-current`;\nexport const BREADCRUMBS = `${BREADCRUMB}s`;\nexport const BREADCRUMBS_COLLAPSED = `${BREADCRUMB}s-collapsed`;\n\nexport const BUTTON = `${NS}-button`;\nexport const BUTTON_GROUP = `${BUTTON}-group`;\nexport const BUTTON_SPINNER = `${BUTTON}-spinner`;\nexport const BUTTON_TEXT = `${BUTTON}-text`;\n\nexport const CALLOUT = `${NS}-callout`;\nexport const CALLOUT_ICON = `${CALLOUT}-icon`;\n\nexport const CARD = `${NS}-card`;\n\nexport const COLLAPSE = `${NS}-collapse`;\nexport const COLLAPSE_BODY = `${COLLAPSE}-body`;\n\nexport const COLLAPSIBLE_LIST = `${NS}-collapse-list`;\n\nexport const CONTEXT_MENU = `${NS}-context-menu`;\nexport const CONTEXT_MENU_POPOVER_TARGET = `${CONTEXT_MENU}-popover-target`;\n\nexport const CONTROL_GROUP = `${NS}-control-group`;\n\nexport const DIALOG = `${NS}-dialog`;\nexport const DIALOG_CONTAINER = `${DIALOG}-container`;\nexport const DIALOG_BODY = `${DIALOG}-body`;\nexport const DIALOG_CLOSE_BUTTON = `${DIALOG}-close-button`;\nexport const DIALOG_FOOTER = `${DIALOG}-footer`;\nexport const DIALOG_FOOTER_ACTIONS = `${DIALOG}-footer-actions`;\nexport const DIALOG_HEADER = `${DIALOG}-header`;\n\nexport const DIVIDER = `${NS}-divider`;\n\nexport const EDITABLE_TEXT = `${NS}-editable-text`;\nexport const EDITABLE_TEXT_CONTENT = `${EDITABLE_TEXT}-content`;\nexport const EDITABLE_TEXT_EDITING = `${EDITABLE_TEXT}-editing`;\nexport const EDITABLE_TEXT_INPUT = `${EDITABLE_TEXT}-input`;\nexport const EDITABLE_TEXT_PLACEHOLDER = `${EDITABLE_TEXT}-placeholder`;\n\nexport const FLEX_EXPANDER = `${NS}-flex-expander`;\n\nexport const HTML_SELECT = `${NS}-html-select`;\n/** @deprecated prefer `<HTMLSelect>` component */\nexport const SELECT = `${NS}-select`;\n\nexport const HTML_TABLE = `${NS}-html-table`;\nexport const HTML_TABLE_STRIPED = `${HTML_TABLE}-striped`;\nexport const HTML_TABLE_BORDERED = `${HTML_TABLE}-bordered`;\n\nexport const INPUT = `${NS}-input`;\nexport const INPUT_GHOST = `${INPUT}-ghost`;\nexport const INPUT_GROUP = `${INPUT}-group`;\nexport const INPUT_ACTION = `${INPUT}-action`;\n\nexport const CONTROL = `${NS}-control`;\nexport const CONTROL_INDICATOR = `${CONTROL}-indicator`;\nexport const CHECKBOX = `${NS}-checkbox`;\nexport const RADIO = `${NS}-radio`;\nexport const SWITCH = `${NS}-switch`;\nexport const FILE_INPUT = `${NS}-file-input`;\nexport const FILE_UPLOAD_INPUT = `${NS}-file-upload-input`;\n\nexport const KEY = `${NS}-key`;\nexport const KEY_COMBO = `${KEY}-combo`;\nexport const MODIFIER_KEY = `${NS}-modifier-key`;\n\nexport const HOTKEY = `${NS}-hotkey`;\nexport const HOTKEY_LABEL = `${HOTKEY}-label`;\nexport const HOTKEY_COLUMN = `${HOTKEY}-column`;\nexport const HOTKEY_DIALOG = `${HOTKEY}-dialog`;\n\nexport const LABEL = `${NS}-label`;\nexport const FORM_GROUP = `${NS}-form-group`;\nexport const FORM_CONTENT = `${NS}-form-content`;\nexport const FORM_HELPER_TEXT = `${NS}-form-helper-text`;\n\nexport const MENU = `${NS}-menu`;\nexport const MENU_ITEM = `${MENU}-item`;\nexport const MENU_ITEM_LABEL = `${MENU_ITEM}-label`;\nexport const MENU_SUBMENU = `${NS}-submenu`;\nexport const MENU_DIVIDER = `${MENU}-divider`;\nexport const MENU_HEADER = `${MENU}-header`;\n\nexport const NAVBAR = `${NS}-navbar`;\nexport const NAVBAR_GROUP = `${NAVBAR}-group`;\nexport const NAVBAR_HEADING = `${NAVBAR}-heading`;\nexport const NAVBAR_DIVIDER = `${NAVBAR}-divider`;\n\nexport const NON_IDEAL_STATE = `${NS}-non-ideal-state`;\nexport const NON_IDEAL_STATE_VISUAL = `${NON_IDEAL_STATE}-visual`;\n\nexport const NUMERIC_INPUT = `${NS}-numeric-input`;\n\nexport const OVERFLOW_LIST = `${NS}-overflow-list`;\nexport const OVERFLOW_LIST_SPACER = `${OVERFLOW_LIST}-spacer`;\n\nexport const OVERLAY = `${NS}-overlay`;\nexport const OVERLAY_BACKDROP = `${OVERLAY}-backdrop`;\nexport const OVERLAY_CONTENT = `${OVERLAY}-content`;\nexport const OVERLAY_INLINE = `${OVERLAY}-inline`;\nexport const OVERLAY_OPEN = `${OVERLAY}-open`;\nexport const OVERLAY_SCROLL_CONTAINER = `${OVERLAY}-scroll-container`;\n\nexport const PANEL_STACK = `${NS}-panel-stack`;\nexport const PANEL_STACK_HEADER = `${PANEL_STACK}-header`;\nexport const PANEL_STACK_HEADER_BACK = `${PANEL_STACK}-header-back`;\nexport const PANEL_STACK_VIEW = `${PANEL_STACK}-view`;\n\nexport const POPOVER = `${NS}-popover`;\nexport const POPOVER_ARROW = `${POPOVER}-arrow`;\nexport const POPOVER_BACKDROP = `${POPOVER}-backdrop`;\nexport const POPOVER_CONTENT = `${POPOVER}-content`;\nexport const POPOVER_CONTENT_SIZING = `${POPOVER_CONTENT}-sizing`;\nexport const POPOVER_DISMISS = `${POPOVER}-dismiss`;\nexport const POPOVER_DISMISS_OVERRIDE = `${POPOVER_DISMISS}-override`;\nexport const POPOVER_OPEN = `${POPOVER}-open`;\nexport const POPOVER_TARGET = `${POPOVER}-target`;\nexport const POPOVER_WRAPPER = `${POPOVER}-wrapper`;\nexport const TRANSITION_CONTAINER = `${NS}-transition-container`;\n\nexport const PROGRESS_BAR = `${NS}-progress-bar`;\nexport const PROGRESS_METER = `${NS}-progress-meter`;\nexport const PROGRESS_NO_STRIPES = `${NS}-no-stripes`;\nexport const PROGRESS_NO_ANIMATION = `${NS}-no-animation`;\n\nexport const PORTAL = `${NS}-portal`;\n\nexport const SKELETON = `${NS}-skeleton`;\n\nexport const SLIDER = `${NS}-slider`;\nexport const SLIDER_AXIS = `${SLIDER}-axis`;\nexport const SLIDER_HANDLE = `${SLIDER}-handle`;\nexport const SLIDER_LABEL = `${SLIDER}-label`;\nexport const SLIDER_TRACK = `${SLIDER}-track`;\nexport const SLIDER_PROGRESS = `${SLIDER}-progress`;\nexport const START = `${NS}-start`;\nexport const END = `${NS}-end`;\n\nexport const SPINNER = `${NS}-spinner`;\nexport const SPINNER_ANIMATION = `${SPINNER}-animation`;\nexport const SPINNER_HEAD = `${SPINNER}-head`;\nexport const SPINNER_NO_SPIN = `${NS}-no-spin`;\nexport const SPINNER_TRACK = `${SPINNER}-track`;\n\nexport const TAB = `${NS}-tab`;\nexport const TAB_INDICATOR = `${TAB}-indicator`;\nexport const TAB_INDICATOR_WRAPPER = `${TAB_INDICATOR}-wrapper`;\nexport const TAB_LIST = `${TAB}-list`;\nexport const TAB_PANEL = `${TAB}-panel`;\nexport const TABS = `${TAB}s`;\n\nexport const TAG = `${NS}-tag`;\nexport const TAG_REMOVE = `${TAG}-remove`;\n\nexport const TAG_INPUT = `${NS}-tag-input`;\nexport const TAG_INPUT_ICON = `${TAG_INPUT}-icon`;\nexport const TAG_INPUT_VALUES = `${TAG_INPUT}-values`;\n\nexport const TOAST = `${NS}-toast`;\nexport const TOAST_CONTAINER = `${TOAST}-container`;\nexport const TOAST_MESSAGE = `${TOAST}-message`;\n\nexport const TOOLTIP = `${NS}-tooltip`;\nexport const TOOLTIP_INDICATOR = `${TOOLTIP}-indicator`;\n\nexport const TREE = `${NS}-tree`;\nexport const TREE_NODE = `${NS}-tree-node`;\nexport const TREE_NODE_CARET = `${TREE_NODE}-caret`;\nexport const TREE_NODE_CARET_CLOSED = `${TREE_NODE_CARET}-closed`;\nexport const TREE_NODE_CARET_NONE = `${TREE_NODE_CARET}-none`;\nexport const TREE_NODE_CARET_OPEN = `${TREE_NODE_CARET}-open`;\nexport const TREE_NODE_CONTENT = `${TREE_NODE}-content`;\nexport const TREE_NODE_EXPANDED = `${TREE_NODE}-expanded`;\nexport const TREE_NODE_ICON = `${TREE_NODE}-icon`;\nexport const TREE_NODE_LABEL = `${TREE_NODE}-label`;\nexport const TREE_NODE_LIST = `${TREE_NODE}-list`;\nexport const TREE_NODE_SECONDARY_LABEL = `${TREE_NODE}-secondary-label`;\nexport const TREE_NODE_SELECTED = `${TREE_NODE}-selected`;\nexport const TREE_ROOT = `${NS}-tree-root`;\n\nexport const ICON = `${NS}-icon`;\nexport const ICON_STANDARD = `${ICON}-standard`;\nexport const ICON_LARGE = `${ICON}-large`;\n\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 */\nexport function getClassNamespace() {\n    return NS;\n}\n\n/** Return CSS class for alignment. */\nexport function alignmentClass(alignment: Alignment) {\n    switch (alignment) {\n        case Alignment.LEFT:\n            return ALIGN_LEFT;\n        case Alignment.RIGHT:\n            return ALIGN_RIGHT;\n        default:\n            return undefined;\n    }\n}\n\nexport function elevationClass(elevation: Elevation) {\n    if (elevation == null) {\n        return undefined;\n    }\n    return `${NS}-elevation-${elevation}`;\n}\n\n/** Returns CSS class for icon name. */\nexport function iconClass(iconName?: string) {\n    if (iconName == null) {\n        return undefined;\n    }\n    return iconName.indexOf(`${NS}-icon-`) === 0 ? iconName : `${NS}-icon-${iconName}`;\n}\n\n/** Return CSS class for intent. */\nexport function intentClass(intent?: Intent) {\n    if (intent == null || intent === Intent.NONE) {\n        return undefined;\n    }\n    return `${NS}-intent-${intent.toLowerCase()}`;\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nconst TAB_KEY_CODE = 9;\n\n/* istanbul ignore next */\n\n/**\n * A nifty little class that maintains event handlers to add a class to the container element\n * when entering \"mouse mode\" (on a `mousedown` event) and remove it when entering \"keyboard mode\"\n * (on a `tab` key `keydown` event).\n */\nexport class InteractionModeEngine {\n    private isRunning = false;\n\n    // tslint:disable-next-line:no-constructor-vars\n    constructor(private container: Element, private className: string) {}\n\n    /** Returns whether the engine is currently running. */\n    public isActive() {\n        return this.isRunning;\n    }\n\n    /** Enable behavior which applies the given className when in mouse mode. */\n    public start() {\n        this.container.addEventListener(\"mousedown\", this.handleMouseDown);\n        this.isRunning = true;\n    }\n\n    /** Disable interaction mode behavior and remove className from container. */\n    public stop() {\n        this.reset();\n        this.isRunning = false;\n    }\n\n    private reset() {\n        this.container.classList.remove(this.className);\n        this.container.removeEventListener(\"keydown\", this.handleKeyDown);\n        this.container.removeEventListener(\"mousedown\", this.handleMouseDown);\n    }\n\n    private handleKeyDown = (e: KeyboardEvent) => {\n        if (e.which === TAB_KEY_CODE) {\n            this.reset();\n            this.container.addEventListener(\"mousedown\", this.handleMouseDown);\n        }\n    };\n\n    private handleMouseDown = () => {\n        this.reset();\n        this.container.classList.add(this.className);\n        this.container.addEventListener(\"keydown\", this.handleKeyDown);\n    };\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport { FOCUS_DISABLED } from \"../common/classes\";\nimport { InteractionModeEngine } from \"../common/interactionMode\";\n\n/* istanbul ignore next */\nconst fakeFocusEngine = {\n    isActive: () => true,\n    start: () => true,\n    stop: () => true,\n};\n\nconst focusEngine =\n    typeof document !== \"undefined\"\n        ? new InteractionModeEngine(document.documentElement, FOCUS_DISABLED)\n        : fakeFocusEngine;\n\nexport const FocusStyleManager = {\n    alwaysShowFocus: () => focusEngine.stop(),\n    isActive: () => focusEngine.isActive(),\n    onlyShowFocusOnTabs: () => focusEngine.start(),\n};\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nexport * from \"./focusStyleManager\";\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n            t[p[i]] = s[p[i]];\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n    if (m) return m.call(o);\r\n    return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n    result.default = mod;\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nconst ns = \"[Blueprint]\";\n\nexport const CLAMP_MIN_MAX = ns + ` clamp: max cannot be less than min`;\n\nexport const ALERT_WARN_CANCEL_PROPS = ns + ` <Alert> cancelButtonText and onCancel should be set together.`;\nexport const ALERT_WARN_CANCEL_ESCAPE_KEY =\n    ns + ` <Alert> canEscapeKeyCancel enabled without onCancel or onClose handler.`;\nexport const ALERT_WARN_CANCEL_OUTSIDE_CLICK =\n    ns + ` <Alert> canOutsideClickCancel enbaled without onCancel or onClose handler.`;\n\nexport const COLLAPSIBLE_LIST_INVALID_CHILD = ns + ` <CollapsibleList> children must be <MenuItem>s`;\n\nexport const CONTEXTMENU_WARN_DECORATOR_NO_METHOD =\n    ns + ` @ContextMenuTarget-decorated class should implement renderContextMenu.`;\nexport const CONTEXTMENU_WARN_DECORATOR_NEEDS_REACT_ELEMENT =\n    ns + ` \"@ContextMenuTarget-decorated components must return a single JSX.Element or an empty render.`;\n\nexport const HOTKEYS_HOTKEY_CHILDREN = ns + ` <Hotkeys> only accepts <Hotkey> children.`;\nexport const HOTKEYS_WARN_DECORATOR_NO_METHOD = ns + ` @HotkeysTarget-decorated class should implement renderHotkeys.`;\nexport const HOTKEYS_WARN_DECORATOR_NEEDS_REACT_ELEMENT =\n    ns + ` \"@HotkeysTarget-decorated components must return a single JSX.Element or an empty render.`;\n\nexport const NUMERIC_INPUT_MIN_MAX =\n    ns + ` <NumericInput> requires min to be strictly less than max if both are defined.`;\nexport const NUMERIC_INPUT_MINOR_STEP_SIZE_BOUND =\n    ns + ` <NumericInput> requires minorStepSize to be strictly less than stepSize.`;\nexport const NUMERIC_INPUT_MAJOR_STEP_SIZE_BOUND =\n    ns + ` <NumericInput> requires majorStepSize to be strictly greater than stepSize.`;\nexport const NUMERIC_INPUT_MINOR_STEP_SIZE_NON_POSITIVE =\n    ns + ` <NumericInput> requires minorStepSize to be strictly greater than zero.`;\nexport const NUMERIC_INPUT_MAJOR_STEP_SIZE_NON_POSITIVE =\n    ns + ` <NumericInput> requires majorStepSize to be strictly greater than zero.`;\nexport const NUMERIC_INPUT_STEP_SIZE_NON_POSITIVE =\n    ns + ` <NumericInput> requires stepSize to be strictly greater than zero.`;\nexport const NUMERIC_INPUT_STEP_SIZE_NULL = ns + ` <NumericInput> requires stepSize to be defined.`;\n\nexport const OVERFLOW_LIST_OBSERVE_PARENTS_CHANGED =\n    ns + ` <OverflowList> does not support changing observeParents after mounting.`;\n\n// TODO (clewis): Migrate old Popover validation errors to the component formerly known as Popover2.\n// See: https://github.com/palantir/blueprint/issues/1940\nexport const POPOVER_REQUIRES_TARGET = ns + ` <Popover> requires target prop or at least one child element.`;\nexport const POPOVER_HAS_BACKDROP_INTERACTION =\n    ns + ` <Popover hasBackdrop={true}> requires interactionKind={PopoverInteractionKind.CLICK}.`;\nexport const POPOVER_WARN_TOO_MANY_CHILDREN =\n    ns +\n    ` <Popover> supports one or two children; additional children are ignored.` +\n    ` First child is the target, second child is the content. You may instead supply these two as props.`;\nexport const POPOVER_WARN_DOUBLE_CONTENT =\n    ns + ` <Popover> with two children ignores content prop; use either prop or children.`;\nexport const POPOVER_WARN_DOUBLE_TARGET =\n    ns + ` <Popover> with children ignores target prop; use either prop or children.`;\nexport const POPOVER_WARN_EMPTY_CONTENT = ns + ` Disabling <Popover> with empty/whitespace content...`;\nexport const POPOVER_WARN_HAS_BACKDROP_INLINE = ns + ` <Popover usePortal={false}> ignores hasBackdrop`;\nexport const POPOVER_WARN_UNCONTROLLED_ONINTERACTION = ns + ` <Popover> onInteraction is ignored when uncontrolled.`;\n\nexport const PORTAL_CONTEXT_CLASS_NAME_STRING = ns + ` <Portal> context blueprintPortalClassName must be string`;\n\nexport const RADIOGROUP_WARN_CHILDREN_OPTIONS_MUTEX =\n    ns + ` <RadioGroup> children and options prop are mutually exclusive, with options taking priority.`;\n\nexport const SLIDER_ZERO_STEP = ns + ` <Slider> stepSize must be greater than zero.`;\nexport const SLIDER_ZERO_LABEL_STEP = ns + ` <Slider> labelStepSize must be greater than zero.`;\nexport const RANGESLIDER_NULL_VALUE = ns + ` <RangeSlider> value prop must be an array of two non-null numbers.`;\nexport const MULTISLIDER_INVALID_CHILD = ns + ` <MultiSlider> children must be <SliderHandle>s or <SliderTrackStop>s`;\n\nexport const SPINNER_WARN_CLASSES_SIZE = ns + ` <Spinner> Classes.SMALL/LARGE are ignored if size prop is set.`;\n\nexport const TOASTER_CREATE_NULL =\n    ns +\n    ` Toaster.create() is not supported inside React lifecycle methods in React 16.` +\n    ` See usage example on the docs site.`;\nexport const TOASTER_WARN_INLINE = ns + ` Toaster.create() ignores inline prop as it always creates a new element.`;\n\nexport const DIALOG_WARN_NO_HEADER_ICON = ns + ` <Dialog> iconName is ignored if title is omitted.`;\nexport const DIALOG_WARN_NO_HEADER_CLOSE_BUTTON =\n    ns + ` <Dialog> isCloseButtonShown prop is ignored if title is omitted.`;\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nexport interface IKeyWhitelist<T> {\n    include: Array<keyof T>;\n}\n\nexport interface IKeyBlacklist<T> {\n    exclude: Array<keyof T>;\n}\n\n/**\n * Returns true if the arrays are equal. Elements will be shallowly compared by\n * default, or they will be compared using the custom `compare` function if one\n * is provided.\n */\nexport function arraysEqual(arrA: any[], arrB: any[], compare = (a: any, b: any) => a === b) {\n    // treat `null` and `undefined` as the same\n    if (arrA == null && arrB == null) {\n        return true;\n    } else if (arrA == null || arrB == null || arrA.length !== arrB.length) {\n        return false;\n    } else {\n        return arrA.every((a, i) => compare(a, arrB[i]));\n    }\n}\n\n/**\n * Shallow comparison between objects. If `keys` is provided, just that subset\n * of keys will be compared; otherwise, all keys will be compared.\n */\nexport function shallowCompareKeys<T extends object>(objA: T, objB: T, keys?: IKeyBlacklist<T> | IKeyWhitelist<T>) {\n    // treat `null` and `undefined` as the same\n    if (objA == null && objB == null) {\n        return true;\n    } else if (objA == null || objB == null) {\n        return false;\n    } else if (Array.isArray(objA) || Array.isArray(objB)) {\n        return false;\n    } else if (keys != null) {\n        return _shallowCompareKeys(objA, objB, keys);\n    } else {\n        // shallowly compare all keys from both objects\n        const keysA = Object.keys(objA) as Array<keyof T>;\n        const keysB = Object.keys(objB) as Array<keyof T>;\n        return (\n            _shallowCompareKeys(objA, objB, { include: keysA }) && _shallowCompareKeys(objA, objB, { include: keysB })\n        );\n    }\n}\n\n/**\n * Deep comparison between objects. If `keys` is provided, just that subset of\n * keys will be compared; otherwise, all keys will be compared.\n */\nexport function deepCompareKeys(objA: any, objB: any, keys?: string[]): boolean {\n    if (objA === objB) {\n        return true;\n    } else if (objA == null && objB == null) {\n        // treat `null` and `undefined` as the same\n        return true;\n    } else if (objA == null || objB == null) {\n        return false;\n    } else if (Array.isArray(objA) || Array.isArray(objB)) {\n        return arraysEqual(objA, objB, deepCompareKeys);\n    } else if (_isSimplePrimitiveType(objA) || _isSimplePrimitiveType(objB)) {\n        return objA === objB;\n    } else if (keys != null) {\n        return _deepCompareKeys(objA, objB, keys);\n    } else if (objA.constructor !== objB.constructor) {\n        return false;\n    } else {\n        const keysA = Object.keys(objA);\n        const keysB = Object.keys(objB);\n        if (keysA == null || keysB == null) {\n            return false;\n        }\n        if (keysA.length === 0 && keysB.length === 0) {\n            return true;\n        }\n        return arraysEqual(keysA, keysB) && _deepCompareKeys(objA, objB, keysA);\n    }\n}\n\n/**\n * Returns a descriptive object for each key whose values are shallowly unequal\n * between two provided objects. Useful for debugging shouldComponentUpdate.\n */\nexport function getShallowUnequalKeyValues<T extends object>(\n    objA: T,\n    objB: T,\n    keys?: IKeyBlacklist<T> | IKeyWhitelist<T>,\n) {\n    // default param values let null values pass through, so we have to take\n    // this more thorough approach\n    const definedObjA = objA == null ? {} : objA;\n    const definedObjB = objB == null ? {} : objB;\n\n    const filteredKeys = _filterKeys(definedObjA, definedObjB, keys == null ? { exclude: [] } : keys);\n    return _getUnequalKeyValues(definedObjA, definedObjB, filteredKeys, (a, b, key) => {\n        return shallowCompareKeys(a, b, { include: [key] });\n    });\n}\n\n/**\n * Returns a descriptive object for each key whose values are deeply unequal\n * between two provided objects. Useful for debugging shouldComponentUpdate.\n */\nexport function getDeepUnequalKeyValues<T extends object>(\n    objA: T = ({} as any) as T,\n    objB: T = ({} as any) as T,\n    keys?: Array<keyof T>,\n) {\n    const filteredKeys = keys == null ? _unionKeys(objA, objB) : keys;\n    return _getUnequalKeyValues(objA, objB, filteredKeys, (a, b, key) => {\n        return deepCompareKeys(a, b, [key]);\n    });\n}\n\n// Private helpers\n// ===============\n\n/**\n * Partial shallow comparison between objects using the given list of keys.\n */\nfunction _shallowCompareKeys<T>(objA: T, objB: T, keys: IKeyBlacklist<T> | IKeyWhitelist<T>) {\n    return _filterKeys(objA, objB, keys).every(key => {\n        return objA.hasOwnProperty(key) === objB.hasOwnProperty(key) && objA[key] === objB[key];\n    });\n}\n\n/**\n * Partial deep comparison between objects using the given list of keys.\n */\nfunction _deepCompareKeys(objA: any, objB: any, keys: string[]): boolean {\n    return keys.every(key => {\n        return objA.hasOwnProperty(key) === objB.hasOwnProperty(key) && deepCompareKeys(objA[key], objB[key]);\n    });\n}\n\nfunction _isSimplePrimitiveType(value: any) {\n    return typeof value === \"number\" || typeof value === \"string\" || typeof value === \"boolean\";\n}\n\nfunction _filterKeys<T>(objA: T, objB: T, keys: IKeyBlacklist<T> | IKeyWhitelist<T>) {\n    if (_isWhitelist(keys)) {\n        return keys.include;\n    } else {\n        const keysA = Object.keys(objA);\n        const keysB = Object.keys(objB);\n\n        // merge keys from both objects into a big set for quick access\n        const keySet = _arrayToObject(keysA.concat(keysB));\n\n        // delete blacklisted keys from the key set\n        keys.exclude.forEach(key => delete keySet[key]);\n\n        // return the remaining keys as an array\n        return Object.keys(keySet) as Array<keyof T>;\n    }\n}\n\nfunction _isWhitelist<T>(keys: any): keys is IKeyWhitelist<T> {\n    return keys != null && (keys as IKeyWhitelist<T>).include != null;\n}\n\nfunction _arrayToObject(arr: any[]) {\n    return arr.reduce((obj: any, element: any) => {\n        obj[element] = true;\n        return obj;\n    }, {});\n}\n\nfunction _getUnequalKeyValues<T extends object>(\n    objA: T,\n    objB: T,\n    keys: Array<keyof T>,\n    compareFn: (objA: any, objB: any, key: keyof T) => boolean,\n) {\n    const unequalKeys = keys.filter(key => !compareFn(objA, objB, key));\n    const unequalKeyValues = unequalKeys.map(key => ({\n        key,\n        valueA: objA[key],\n        valueB: objB[key],\n    }));\n    return unequalKeyValues;\n}\n\nfunction _unionKeys<T extends object>(objA: T, objB: T) {\n    const keysA = Object.keys(objA);\n    const keysB = Object.keys(objB);\n\n    const concatKeys = keysA.concat(keysB);\n    const keySet = _arrayToObject(concatKeys);\n\n    return Object.keys(keySet) as Array<keyof T>;\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport * as React from \"react\";\n\nimport { CLAMP_MIN_MAX } from \"./errors\";\n\nexport * from \"./utils/compareUtils\";\n\n// only accessible within this file, so use `Utils.isNodeEnv(env)` from the outside.\ndeclare var process: { env: any };\n\n/** Returns whether `process.env.NODE_ENV` exists and equals `env`. */\nexport function isNodeEnv(env: string) {\n    return typeof process !== \"undefined\" && process.env && process.env.NODE_ENV === env;\n}\n\n/** Returns whether the value is a function. Acts as a type guard. */\n// tslint:disable-next-line:ban-types\nexport function isFunction(value: any): value is Function {\n    return typeof value === \"function\";\n}\n\n/**\n * Returns true if `node` is null/undefined, false, empty string, or an array\n * composed of those. If `node` is an array, only one level of the array is\n * checked, for performance reasons.\n */\nexport function isReactNodeEmpty(node?: React.ReactNode, skipArray = false): boolean {\n    return (\n        node == null ||\n        node === \"\" ||\n        node === false ||\n        (!skipArray &&\n            Array.isArray(node) &&\n            // only recurse one level through arrays, for performance\n            (node.length === 0 || node.every(n => isReactNodeEmpty(n, true))))\n    );\n}\n\n/**\n * Converts a React child to an element: non-empty string or number or\n * `React.Fragment` (React 16.3+) is wrapped in given tag name; empty strings\n * are discarded.\n */\nexport function ensureElement(child: React.ReactChild | undefined, tagName: keyof JSX.IntrinsicElements = \"span\") {\n    if (child == null) {\n        return undefined;\n    } else if (typeof child === \"string\") {\n        // cull whitespace strings\n        return child.trim().length > 0 ? React.createElement(tagName, {}, child) : undefined;\n    } else if (typeof child === \"number\" || typeof child.type === \"symbol\") {\n        // React.Fragment has a symbol type\n        return React.createElement(tagName, {}, child);\n    } else {\n        return child;\n    }\n}\n\n/**\n * Represents anything that has a `name` property such as Functions.\n */\nexport interface INamed {\n    name?: string;\n}\n\nexport function getDisplayName(ComponentClass: React.ComponentType | INamed) {\n    return (ComponentClass as React.ComponentType).displayName || (ComponentClass as INamed).name || \"Unknown\";\n}\n\n/**\n * Returns true if the given JSX element matches the given component type.\n *\n * NOTE: This function only checks equality of `displayName` for performance and\n * to tolerate multiple minor versions of a component being included in one\n * application bundle.\n * @param element JSX element in question\n * @param ComponentType desired component type of element\n */\nexport function isElementOfType<P = {}>(\n    element: any,\n    ComponentType: React.ComponentType<P>,\n): element is React.ReactElement<P> {\n    return (\n        element != null &&\n        element.type != null &&\n        element.type.displayName != null &&\n        element.type.displayName === ComponentType.displayName\n    );\n}\n\n/**\n * Safely invoke the function with the given arguments, if it is indeed a\n * function, and return its value. Otherwise, return undefined.\n */\nexport function safeInvoke<R>(func: (() => R) | undefined): R | undefined;\nexport function safeInvoke<A, R>(func: ((arg1: A) => R) | undefined, arg1: A): R | undefined;\nexport function safeInvoke<A, B, R>(func: ((arg1: A, arg2: B) => R) | undefined, arg1: A, arg2: B): R | undefined;\nexport function safeInvoke<A, B, C, R>(\n    func: ((arg1: A, arg2: B, arg3: C) => R) | undefined,\n    arg1: A,\n    arg2: B,\n    arg3: C,\n): R | undefined;\nexport function safeInvoke<A, B, C, D, R>(\n    func: ((arg1: A, arg2: B, arg3: C, arg4: D) => R) | undefined,\n    arg1: A,\n    arg2: B,\n    arg3: C,\n    arg4: D,\n): R | undefined;\n// tslint:disable-next-line:ban-types\nexport function safeInvoke(func: Function | undefined, ...args: any[]) {\n    if (isFunction(func)) {\n        return func(...args);\n    }\n    return undefined;\n}\n\n/**\n * Safely invoke the provided entity if it is a function; otherwise, return the\n * entity itself.\n */\nexport function safeInvokeOrValue<R>(funcOrValue: (() => R) | R | undefined): R;\nexport function safeInvokeOrValue<A, R>(funcOrValue: ((arg1: A) => R) | R | undefined, arg1: A): R;\nexport function safeInvokeOrValue<A, B, R>(funcOrValue: ((arg1: A, arg2: B) => R) | R | undefined, arg1: A, arg2: B): R;\nexport function safeInvokeOrValue<A, B, C, R>(\n    funcOrValue: ((arg1: A, arg2: B, arg3: C) => R) | R | undefined,\n    arg1: A,\n    arg2: B,\n    arg3: C,\n): R;\nexport function safeInvokeOrValue<A, B, C, D, R>(\n    funcOrValue: ((arg1: A, arg2: B, arg3: C, arg4: D) => R) | R | undefined,\n    arg1: A,\n    arg2: B,\n    arg3: C,\n    arg4: D,\n): R;\n// tslint:disable-next-line:ban-types\nexport function safeInvokeOrValue(funcOrValue: Function | any | undefined, ...args: any[]) {\n    return isFunction(funcOrValue) ? funcOrValue(...args) : funcOrValue;\n}\n\nexport function elementIsOrContains(element: HTMLElement, testElement: HTMLElement) {\n    return element === testElement || element.contains(testElement);\n}\n\n/**\n * Returns the difference in length between two arrays. A `null` argument is\n * considered an empty list. The return value will be positive if `a` is longer\n * than `b`, negative if the opposite is true, and zero if their lengths are\n * equal.\n */\nexport function arrayLengthCompare(a: any[] = [], b: any[] = []) {\n    return a.length - b.length;\n}\n\n/**\n * Returns true if the two numbers are within the given tolerance of each other.\n * This is useful to correct for floating point precision issues, less useful\n * for integers.\n */\nexport function approxEqual(a: number, b: number, tolerance = 0.00001) {\n    return Math.abs(a - b) <= tolerance;\n}\n\n/**\n * Clamps the given number between min and max values. Returns value if within\n * range, or closest bound.\n */\nexport function clamp(val: number, min: number, max: number) {\n    if (val == null) {\n        return val;\n    }\n    if (max < min) {\n        throw new Error(CLAMP_MIN_MAX);\n    }\n    return Math.min(Math.max(val, min), max);\n}\n\n/** Returns the number of decimal places in the given number. */\nexport function countDecimalPlaces(num: number) {\n    if (typeof num !== \"number\" || Math.floor(num) === num) {\n        return 0;\n    }\n    return num.toString().split(\".\")[1].length;\n}\n\n/**\n * Throttle an event on an EventTarget by wrapping it in a\n * `requestAnimationFrame` call. Returns the event handler that was bound to\n * given eventName so you can clean up after yourself.\n * @see https://developer.mozilla.org/en-US/docs/Web/Events/scroll\n */\nexport function throttleEvent(target: EventTarget, eventName: string, newEventName: string) {\n    const throttledFunc = _throttleHelper((event: Event) => {\n        target.dispatchEvent(new CustomEvent(newEventName, event));\n    });\n    target.addEventListener(eventName, throttledFunc);\n    return throttledFunc;\n}\n\nexport interface IThrottledReactEventOptions {\n    preventDefault?: boolean;\n}\n\n/**\n * Throttle a callback by wrapping it in a `requestAnimationFrame` call. Returns\n * the throttled function.\n * @see https://www.html5rocks.com/en/tutorials/speed/animations/\n */\nexport function throttleReactEventCallback(\n    callback: (event: React.SyntheticEvent<any>, ...otherArgs: any[]) => any,\n    options: IThrottledReactEventOptions = {},\n) {\n    const throttledFunc = _throttleHelper(\n        callback,\n        (event2: React.SyntheticEvent<any>) => {\n            if (options.preventDefault) {\n                event2.preventDefault();\n            }\n        },\n        // prevent React from reclaiming the event object before we reference it\n        (event2: React.SyntheticEvent<any>) => event2.persist(),\n    );\n    return throttledFunc;\n}\n\n/**\n * Throttle a method by wrapping it in a `requestAnimationFrame` call. Returns\n * the throttled function.\n */\n// tslint:disable-next-line:ban-types\nexport function throttle<T extends Function>(method: T): T {\n    return _throttleHelper(method);\n}\n\n// tslint:disable-next-line:ban-types\nfunction _throttleHelper<T extends Function>(\n    onAnimationFrameRequested: T,\n    onBeforeIsRunningCheck?: T,\n    onAfterIsRunningCheck?: T,\n) {\n    let isRunning = false;\n    const func = (...args: any[]) => {\n        // don't use safeInvoke, because we might have more than its max number\n        // of typed params\n        if (isFunction(onBeforeIsRunningCheck)) {\n            onBeforeIsRunningCheck(...args);\n        }\n\n        if (isRunning) {\n            return;\n        }\n        isRunning = true;\n\n        if (isFunction(onAfterIsRunningCheck)) {\n            onAfterIsRunningCheck(...args);\n        }\n\n        requestAnimationFrame(() => {\n            onAnimationFrameRequested(...args);\n            isRunning = false;\n        });\n    };\n    return (func as any) as T;\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport * as React from \"react\";\nimport { isNodeEnv } from \"./utils\";\n\n/**\n * An abstract component that Blueprint components can extend\n * in order to add some common functionality like runtime props validation.\n */\nexport abstract class AbstractComponent<P, S> extends React.Component<P, S> {\n    /** Component displayName should be `public static`. This property exists to prevent incorrect usage. */\n    protected displayName: never;\n\n    // Not bothering to remove entries when their timeouts finish because clearing invalid ID is a no-op\n    private timeoutIds: number[] = [];\n\n    constructor(props?: P, context?: any) {\n        super(props, context);\n        if (!isNodeEnv(\"production\")) {\n            this.validateProps(this.props);\n        }\n    }\n\n    public componentWillReceiveProps(nextProps: P & { children?: React.ReactNode }) {\n        if (!isNodeEnv(\"production\")) {\n            this.validateProps(nextProps);\n        }\n    }\n\n    public componentWillUnmount() {\n        this.clearTimeouts();\n    }\n\n    /**\n     * Set a timeout and remember its ID.\n     * All stored timeouts will be cleared when component unmounts.\n     * @returns a \"cancel\" function that will clear timeout when invoked.\n     */\n    public setTimeout(callback: () => void, timeout?: number) {\n        const handle = window.setTimeout(callback, timeout);\n        this.timeoutIds.push(handle);\n        return () => window.clearTimeout(handle);\n    }\n\n    /**\n     * Clear all known timeouts.\n     */\n    public clearTimeouts = () => {\n        if (this.timeoutIds.length > 0) {\n            for (const timeoutId of this.timeoutIds) {\n                window.clearTimeout(timeoutId);\n            }\n            this.timeoutIds = [];\n        }\n    };\n\n    /**\n     * Ensures that the props specified for a component are valid.\n     * Implementations should check that props are valid and usually throw an Error if they are not.\n     * Implementations should not duplicate checks that the type system already guarantees.\n     *\n     * This method should be used instead of React's\n     * [propTypes](https://facebook.github.io/react/docs/reusable-components.html#prop-validation) feature.\n     * Like propTypes, these runtime checks run only in development mode.\n     */\n    protected validateProps(_: P & { children?: React.ReactNode }) {\n        // implement in subclass\n    }\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport * as React from \"react\";\nimport { isNodeEnv } from \"./utils\";\n\n/**\n * An abstract component that Blueprint components can extend\n * in order to add some common functionality like runtime props validation.\n */\nexport abstract class AbstractPureComponent<P, S = {}> extends React.PureComponent<P, S> {\n    /** Component displayName should be `public static`. This property exists to prevent incorrect usage. */\n    protected displayName: never;\n\n    // Not bothering to remove entries when their timeouts finish because clearing invalid ID is a no-op\n    private timeoutIds: number[] = [];\n\n    constructor(props?: P, context?: any) {\n        super(props, context);\n        if (!isNodeEnv(\"production\")) {\n            this.validateProps(this.props);\n        }\n    }\n\n    public componentWillReceiveProps(nextProps: P & { children?: React.ReactNode }) {\n        if (!isNodeEnv(\"production\")) {\n            this.validateProps(nextProps);\n        }\n    }\n\n    public componentWillUnmount() {\n        this.clearTimeouts();\n    }\n\n    /**\n     * Set a timeout and remember its ID.\n     * All stored timeouts will be cleared when component unmounts.\n     * @returns a \"cancel\" function that will clear timeout when invoked.\n     */\n    public setTimeout(callback: () => void, timeout?: number) {\n        const handle = window.setTimeout(callback, timeout);\n        this.timeoutIds.push(handle);\n        return () => window.clearTimeout(handle);\n    }\n\n    /**\n     * Clear all known timeouts.\n     */\n    public clearTimeouts = () => {\n        if (this.timeoutIds.length > 0) {\n            for (const timeoutId of this.timeoutIds) {\n                window.clearTimeout(timeoutId);\n            }\n            this.timeoutIds = [];\n        }\n    };\n\n    /**\n     * Ensures that the props specified for a component are valid.\n     * Implementations should check that props are valid and usually throw an Error if they are not.\n     * Implementations should not duplicate checks that the type system already guarantees.\n     *\n     * This method should be used instead of React's\n     * [propTypes](https://facebook.github.io/react/docs/reusable-components.html#prop-validation) feature.\n     * Like propTypes, these runtime checks run only in development mode.\n     */\n    protected validateProps(_: P & { children?: React.ReactNode }) {\n        // implement in subclass\n    }\n}\n","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\n/** Boundary of a one-dimensional interval. */\nexport const Boundary = {\n    START: \"start\" as \"start\",\n    // tslint:disable-next-line:object-literal-sort-keys\n    END: \"end\" as \"end\",\n};\nexport type Boundary = typeof Boundary[keyof typeof Boundary];\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nexport const Colors = {\n    BLACK: \"#10161A\",\n\n    BLUE1: \"#0E5A8A\",\n    BLUE2: \"#106BA3\",\n    BLUE3: \"#137CBD\",\n    BLUE4: \"#2B95D6\",\n    BLUE5: \"#48AFF0\",\n\n    COBALT1: \"#1F4B99\",\n    COBALT2: \"#2458B3\",\n    COBALT3: \"#2965CC\",\n    COBALT4: \"#4580E6\",\n    COBALT5: \"#669EFF\",\n\n    DARK_GRAY1: \"#182026\",\n    DARK_GRAY2: \"#202B33\",\n    DARK_GRAY3: \"#293742\",\n    DARK_GRAY4: \"#30404D\",\n    DARK_GRAY5: \"#394B59\",\n\n    FOREST1: \"#1D7324\",\n    FOREST2: \"#238C2C\",\n    FOREST3: \"#29A634\",\n    FOREST4: \"#43BF4D\",\n    FOREST5: \"#62D96B\",\n\n    GOLD1: \"#A67908\",\n    GOLD2: \"#BF8C0A\",\n    GOLD3: \"#D99E0B\",\n    GOLD4: \"#F2B824\",\n    GOLD5: \"#FFC940\",\n\n    GRAY1: \"#5C7080\",\n    GRAY2: \"#738694\",\n    GRAY3: \"#8A9BA8\",\n    GRAY4: \"#A7B6C2\",\n    GRAY5: \"#BFCCD6\",\n\n    GREEN1: \"#0A6640\",\n    GREEN2: \"#0D8050\",\n    GREEN3: \"#0F9960\",\n    GREEN4: \"#15B371\",\n    GREEN5: \"#3DCC91\",\n\n    INDIGO1: \"#5642A6\",\n    INDIGO2: \"#634DBF\",\n    INDIGO3: \"#7157D9\",\n    INDIGO4: \"#9179F2\",\n    INDIGO5: \"#AD99FF\",\n\n    LIGHT_GRAY1: \"#CED9E0\",\n    LIGHT_GRAY2: \"#D8E1E8\",\n    LIGHT_GRAY3: \"#E1E8ED\",\n    LIGHT_GRAY4: \"#EBF1F5\",\n    LIGHT_GRAY5: \"#F5F8FA\",\n\n    LIME1: \"#728C23\",\n    LIME2: \"#87A629\",\n    LIME3: \"#9BBF30\",\n    LIME4: \"#B6D94C\",\n    LIME5: \"#D1F26D\",\n\n    ORANGE1: \"#A66321\",\n    ORANGE2: \"#BF7326\",\n    ORANGE3: \"#D9822B\",\n    ORANGE4: \"#F29D49\",\n    ORANGE5: \"#FFB366\",\n\n    RED1: \"#A82A2A\",\n    RED2: \"#C23030\",\n    RED3: \"#DB3737\",\n    RED4: \"#F55656\",\n    RED5: \"#FF7373\",\n\n    ROSE1: \"#A82255\",\n    ROSE2: \"#C22762\",\n    ROSE3: \"#DB2C6F\",\n    ROSE4: \"#F5498B\",\n    ROSE5: \"#FF66A1\",\n\n    SEPIA1: \"#63411E\",\n    SEPIA2: \"#7D5125\",\n    SEPIA3: \"#96622D\",\n    SEPIA4: \"#B07B46\",\n    SEPIA5: \"#C99765\",\n\n    TURQUOISE1: \"#008075\",\n    TURQUOISE2: \"#00998C\",\n    TURQUOISE3: \"#00B3A4\",\n    TURQUOISE4: \"#14CCBD\",\n    TURQUOISE5: \"#2EE6D6\",\n\n    VERMILION1: \"#9E2B0E\",\n    VERMILION2: \"#B83211\",\n    VERMILION3: \"#D13913\",\n    VERMILION4: \"#EB532D\",\n    VERMILION5: \"#FF6E4A\",\n\n    VIOLET1: \"#5C255C\",\n    VIOLET2: \"#752F75\",\n    VIOLET3: \"#8F398F\",\n    VIOLET4: \"#A854A8\",\n    VIOLET5: \"#C274C2\",\n\n    WHITE: \"#FFFFFF\",\n};\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nexport const Position = {\n    BOTTOM: \"bottom\" as \"bottom\",\n    BOTTOM_LEFT: \"bottom-left\" as \"bottom-left\",\n    BOTTOM_RIGHT: \"bottom-right\" as \"bottom-right\",\n    LEFT: \"left\" as \"left\",\n    LEFT_BOTTOM: \"left-bottom\" as \"left-bottom\",\n    LEFT_TOP: \"left-top\" as \"left-top\",\n    RIGHT: \"right\" as \"right\",\n    RIGHT_BOTTOM: \"right-bottom\" as \"right-bottom\",\n    RIGHT_TOP: \"right-top\" as \"right-top\",\n    TOP: \"top\" as \"top\",\n    TOP_LEFT: \"top-left\" as \"top-left\",\n    TOP_RIGHT: \"top-right\" as \"top-right\",\n};\nexport type Position = typeof Position[keyof typeof Position];\n\nexport function isPositionHorizontal(position: Position) {\n    /* istanbul ignore next */\n    return (\n        position === Position.TOP ||\n        position === Position.TOP_LEFT ||\n        position === Position.TOP_RIGHT ||\n        position === Position.BOTTOM ||\n        position === Position.BOTTOM_LEFT ||\n        position === Position.BOTTOM_RIGHT\n    );\n}\n\nexport function isPositionVertical(position: Position) {\n    /* istanbul ignore next */\n    return (\n        position === Position.LEFT ||\n        position === Position.LEFT_TOP ||\n        position === Position.LEFT_BOTTOM ||\n        position === Position.RIGHT ||\n        position === Position.RIGHT_TOP ||\n        position === Position.RIGHT_BOTTOM\n    );\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport * as React from \"react\";\n\nimport { IconName } from \"@blueprintjs/icons\";\nimport { Intent } from \"./intent\";\n\nexport const DISPLAYNAME_PREFIX = \"Blueprint3\";\n\n/**\n * Alias for all valid HTML props for `<div>` element.\n * Does not include React's `ref` or `key`.\n */\nexport type HTMLDivProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Alias for all valid HTML props for `<input>` element.\n * Does not include React's `ref` or `key`.\n */\nexport type HTMLInputProps = React.InputHTMLAttributes<HTMLInputElement>;\n\n/**\n * A shared base interface for all Blueprint component props.\n */\nexport interface IProps {\n    /** A space-delimited list of class names to pass along to a child element. */\n    className?: string;\n}\n\nexport interface IIntentProps {\n    /** Visual intent color to apply to element. */\n    intent?: Intent;\n}\n\n/**\n * Interface for a clickable action, such as a button or menu item.\n * These props can be spready directly to a `<Button>` or `<MenuItem>` element.\n */\nexport interface IActionProps extends IIntentProps, IProps {\n    /** Whether this action is non-interactive. */\n    disabled?: boolean;\n\n    /** Name of a Blueprint UI icon (or an icon element) to render before the text. */\n    icon?: IconName | JSX.Element;\n\n    /** Click event handler. */\n    onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n\n    /** Action text. Can be any single React renderable. */\n    text?: React.ReactNode;\n}\n\n/** Interface for a link, with support for customizing target window. */\nexport interface ILinkProps {\n    /** Link URL. */\n    href?: string;\n\n    /** Link target attribute. Use `\"_blank\"` to open in a new window. */\n    target?: string;\n}\n\n/** Interface for a controlled input. */\nexport interface IControlledProps {\n    /** Initial value of the input, for uncontrolled usage. */\n    defaultValue?: string;\n\n    /** Change event handler. Use `event.target.value` for new value. */\n    onChange?: React.FormEventHandler<HTMLElement>;\n\n    /** Form value of the input, for controlled usage. */\n    value?: string;\n}\n\n/**\n * An interface for an option in a list, such as in a `<select>` or `RadioGroup`.\n * These props can be spread directly to an `<option>` or `<Radio>` element.\n */\nexport interface IOptionProps extends IProps {\n    /** Whether this option is non-interactive. */\n    disabled?: boolean;\n\n    /** Label text for this option. If omitted, `value` is used as the label. */\n    label?: string;\n\n    /** Value of this option. */\n    value: string | number;\n}\n\n/** A collection of curated prop keys used across our Components which are not valid HTMLElement props. */\nconst INVALID_PROPS = [\n    \"active\",\n    \"alignText\",\n    \"containerRef\",\n    \"elementRef\",\n    \"fill\",\n    \"icon\",\n    \"inputRef\",\n    \"intent\",\n    \"inline\",\n    \"large\",\n    \"loading\",\n    \"leftIcon\",\n    \"minimal\",\n    \"onChildrenMount\",\n    \"onRemove\",\n    \"popoverProps\",\n    \"rightElement\",\n    \"rightIcon\",\n    \"round\",\n    \"small\",\n    \"text\",\n];\n\n/**\n * Typically applied to HTMLElements to filter out blacklisted 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 blacklist (only appropriate for HTMLElements).\n * @param props The original props object to filter down.\n * @param {string[]} invalidProps If supplied, overwrites the default blacklist.\n * @param {boolean} shouldMerge If true, will merge supplied invalidProps and blacklist together.\n */\nexport function removeNonHTMLProps(\n    props: { [key: string]: any },\n    invalidProps = INVALID_PROPS,\n    shouldMerge = false,\n): { [key: string]: any } {\n    if (shouldMerge) {\n        invalidProps = invalidProps.concat(INVALID_PROPS);\n    }\n\n    return invalidProps.reduce(\n        (prev, curr) => {\n            if (prev.hasOwnProperty(curr)) {\n                delete (prev as any)[curr];\n            }\n            return prev;\n        },\n        { ...props },\n    );\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nexport const BACKSPACE = 8;\nexport const TAB = 9;\nexport const ENTER = 13;\nexport const SHIFT = 16;\nexport const ESCAPE = 27;\nexport const SPACE = 32;\nexport const ARROW_LEFT = 37;\nexport const ARROW_UP = 38;\nexport const ARROW_RIGHT = 39;\nexport const ARROW_DOWN = 40;\nexport const DELETE = 46;\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nexport * from \"./abstractComponent\";\nexport * from \"./abstractPureComponent\";\nexport * from \"./alignment\";\nexport * from \"./boundary\";\nexport * from \"./colors\";\nexport * from \"./constructor\";\nexport * from \"./elevation\";\nexport * from \"./intent\";\nexport * from \"./position\";\nexport * from \"./props\";\n\nimport * as Classes from \"./classes\";\nimport * as Keys from \"./keys\";\nimport * as Utils from \"./utils\";\n\nexport { Classes, Keys, Utils };\n// NOTE: Errors is not exported in public API\n","/*!\nCopyright (C) 2013-2015 by Andrea Giammarchi - @WebReflection\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n(function(window){'use strict';\n  /* jshint loopfunc: true, noempty: false*/\n  // http://www.w3.org/TR/dom/#element\n\n  function createDocumentFragment() {\n    return document.createDocumentFragment();\n  }\n\n  function createElement(nodeName) {\n    return document.createElement(nodeName);\n  }\n\n  function enoughArguments(length, name) {\n    if (!length) throw new Error(\n      'Failed to construct ' +\n        name +\n      ': 1 argument required, but only 0 present.'\n    );\n  }\n\n  function mutationMacro(nodes) {\n    if (nodes.length === 1) {\n      return textNodeIfString(nodes[0]);\n    }\n    for (var\n      fragment = createDocumentFragment(),\n      list = slice.call(nodes),\n      i = 0; i < nodes.length; i++\n    ) {\n      fragment.appendChild(textNodeIfString(list[i]));\n    }\n    return fragment;\n  }\n\n  function textNodeIfString(node) {\n    return typeof node === 'string' ? document.createTextNode(node) : node;\n  }\n\n  for(var\n    head,\n    property,\n    TemporaryPrototype,\n    TemporaryTokenList,\n    wrapVerifyToken,\n    document = window.document,\n    hOP = Object.prototype.hasOwnProperty,\n    defineProperty = Object.defineProperty || function (object, property, descriptor) {\n      if (hOP.call(descriptor, 'value')) {\n        object[property] = descriptor.value;\n      } else {\n        if (hOP.call(descriptor, 'get'))\n          object.__defineGetter__(property, descriptor.get);\n        if (hOP.call(descriptor, 'set'))\n          object.__defineSetter__(property, descriptor.set);\n      }\n      return object;\n    },\n    indexOf = [].indexOf || function indexOf(value){\n      var length = this.length;\n      while(length--) {\n        if (this[length] === value) {\n          break;\n        }\n      }\n      return length;\n    },\n    // http://www.w3.org/TR/domcore/#domtokenlist\n    verifyToken = function (token) {\n      if (!token) {\n        throw 'SyntaxError';\n      } else if (spaces.test(token)) {\n        throw 'InvalidCharacterError';\n      }\n      return token;\n    },\n    DOMTokenList = function (node) {\n      var\n        noClassName = typeof node.className === 'undefined',\n        className = noClassName ?\n          (node.getAttribute('class') || '') : node.className,\n        isSVG = noClassName || typeof className === 'object',\n        value = (isSVG ?\n          (noClassName ? className : className.baseVal) :\n          className\n        ).replace(trim, '')\n      ;\n      if (value.length) {\n        properties.push.apply(\n          this,\n          value.split(spaces)\n        );\n      }\n      this._isSVG = isSVG;\n      this._ = node;\n    },\n    classListDescriptor = {\n      get: function get() {\n        return new DOMTokenList(this);\n      },\n      set: function(){}\n    },\n    trim = /^\\s+|\\s+$/g,\n    spaces = /\\s+/,\n    SPACE = '\\x20',\n    CLASS_LIST = 'classList',\n    toggle = function toggle(token, force) {\n      if (this.contains(token)) {\n        if (!force) {\n          // force is not true (either false or omitted)\n          this.remove(token);\n        }\n      } else if(force === undefined || force) {\n        force = true;\n        this.add(token);\n      }\n      return !!force;\n    },\n    DocumentFragmentPrototype = window.DocumentFragment && DocumentFragment.prototype,\n    Node = window.Node,\n    NodePrototype = (Node || Element).prototype,\n    CharacterData = window.CharacterData || Node,\n    CharacterDataPrototype = CharacterData && CharacterData.prototype,\n    DocumentType = window.DocumentType,\n    DocumentTypePrototype = DocumentType && DocumentType.prototype,\n    ElementPrototype = (window.Element || Node || window.HTMLElement).prototype,\n    HTMLSelectElement = window.HTMLSelectElement || createElement('select').constructor,\n    selectRemove = HTMLSelectElement.prototype.remove,\n    SVGElement = window.SVGElement,\n    properties = [\n      'matches', (\n        ElementPrototype.matchesSelector ||\n        ElementPrototype.webkitMatchesSelector ||\n        ElementPrototype.khtmlMatchesSelector ||\n        ElementPrototype.mozMatchesSelector ||\n        ElementPrototype.msMatchesSelector ||\n        ElementPrototype.oMatchesSelector ||\n        function matches(selector) {\n          var parentNode = this.parentNode;\n          return !!parentNode && -1 < indexOf.call(\n            parentNode.querySelectorAll(selector),\n            this\n          );\n        }\n      ),\n      'closest', function closest(selector) {\n        var parentNode = this, matches;\n        while (\n          // document has no .matches\n          (matches = parentNode && parentNode.matches) &&\n          !parentNode.matches(selector)\n        ) {\n          parentNode = parentNode.parentNode;\n        }\n        return matches ? parentNode : null;\n      },\n      'prepend', function prepend() {\n        var firstChild = this.firstChild,\n            node = mutationMacro(arguments);\n        if (firstChild) {\n          this.insertBefore(node, firstChild);\n        } else {\n          this.appendChild(node);\n        }\n      },\n      'append', function append() {\n        this.appendChild(mutationMacro(arguments));\n      },\n      'before', function before() {\n        var parentNode = this.parentNode;\n        if (parentNode) {\n          parentNode.insertBefore(\n            mutationMacro(arguments), this\n          );\n        }\n      },\n      'after', function after() {\n        var parentNode = this.parentNode,\n            nextSibling = this.nextSibling,\n            node = mutationMacro(arguments);\n        if (parentNode) {\n          if (nextSibling) {\n            parentNode.insertBefore(node, nextSibling);\n          } else {\n            parentNode.appendChild(node);\n          }\n        }\n      },\n      // https://dom.spec.whatwg.org/#dom-element-toggleattribute\n      'toggleAttribute', function toggleAttribute(name, force) {\n        var had = this.hasAttribute(name);\n        if (1 < arguments.length) {\n          if (had && !force)\n            this.removeAttribute(name);\n          else if (force && !had)\n            this.setAttribute(name, \"\");\n        }\n        else if (had)\n          this.removeAttribute(name);\n        else\n          this.setAttribute(name, \"\");\n        return this.hasAttribute(name);\n      },\n      // WARNING - DEPRECATED - use .replaceWith() instead\n      'replace', function replace() {\n        this.replaceWith.apply(this, arguments);\n      },\n      'replaceWith', function replaceWith() {\n        var parentNode = this.parentNode;\n        if (parentNode) {\n          parentNode.replaceChild(\n            mutationMacro(arguments),\n            this\n          );\n        }\n      },\n      'remove', function remove() {\n        var parentNode = this.parentNode;\n        if (parentNode) {\n          parentNode.removeChild(this);\n        }\n      }\n    ],\n    slice = properties.slice,\n    i = properties.length; i; i -= 2\n  ) {\n    property = properties[i - 2];\n    if (!(property in ElementPrototype)) {\n      ElementPrototype[property] = properties[i - 1];\n    }\n    if (property === 'remove') {\n      // see https://github.com/WebReflection/dom4/issues/19\n      HTMLSelectElement.prototype[property] = function () {\n        return 0 < arguments.length ?\n          selectRemove.apply(this, arguments) :\n          ElementPrototype.remove.call(this);\n      };\n    }\n    // see https://github.com/WebReflection/dom4/issues/18\n    if (/^(?:before|after|replace|replaceWith|remove)$/.test(property)) {\n      if (CharacterData && !(property in CharacterDataPrototype)) {\n        CharacterDataPrototype[property] = properties[i - 1];\n      }\n      if (DocumentType && !(property in DocumentTypePrototype)) {\n        DocumentTypePrototype[property] = properties[i - 1];\n      }\n    }\n    // see https://github.com/WebReflection/dom4/pull/26\n    if (/^(?:append|prepend)$/.test(property)) {\n      if (DocumentFragmentPrototype) {\n        if (!(property in DocumentFragmentPrototype)) {\n          DocumentFragmentPrototype[property] = properties[i - 1];\n        }\n      } else {\n        try {\n          createDocumentFragment().constructor.prototype[property] = properties[i - 1];\n        } catch(o_O) {}\n      }\n    }\n  }\n\n  // most likely an IE9 only issue\n  // see https://github.com/WebReflection/dom4/issues/6\n  if (!createElement('a').matches('a')) {\n    ElementPrototype[property] = function(matches){\n      return function (selector) {\n        return matches.call(\n          this.parentNode ?\n            this :\n            createDocumentFragment().appendChild(this),\n          selector\n        );\n      };\n    }(ElementPrototype[property]);\n  }\n\n  // used to fix both old webkit and SVG\n  DOMTokenList.prototype = {\n    length: 0,\n    add: function add() {\n      for(var j = 0, token; j < arguments.length; j++) {\n        token = arguments[j];\n        if(!this.contains(token)) {\n          properties.push.call(this, property);\n        }\n      }\n      if (this._isSVG) {\n        this._.setAttribute('class', '' + this);\n      } else {\n        this._.className = '' + this;\n      }\n    },\n    contains: (function(indexOf){\n      return function contains(token) {\n        i = indexOf.call(this, property = verifyToken(token));\n        return -1 < i;\n      };\n    }([].indexOf || function (token) {\n      i = this.length;\n      while(i-- && this[i] !== token){}\n      return i;\n    })),\n    item: function item(i) {\n      return this[i] || null;\n    },\n    remove: function remove() {\n      for(var j = 0, token; j < arguments.length; j++) {\n        token = arguments[j];\n        if(this.contains(token)) {\n          properties.splice.call(this, i, 1);\n        }\n      }\n      if (this._isSVG) {\n        this._.setAttribute('class', '' + this);\n      } else {\n        this._.className = '' + this;\n      }\n    },\n    toggle: toggle,\n    toString: function toString() {\n      return properties.join.call(this, SPACE);\n    }\n  };\n\n  if (SVGElement && !(CLASS_LIST in SVGElement.prototype)) {\n    defineProperty(SVGElement.prototype, CLASS_LIST, classListDescriptor);\n  }\n\n  // http://www.w3.org/TR/dom/#domtokenlist\n  // iOS 5.1 has completely screwed this property\n  // classList in ElementPrototype is false\n  // but it's actually there as getter\n  if (!(CLASS_LIST in document.documentElement)) {\n    defineProperty(ElementPrototype, CLASS_LIST, classListDescriptor);\n  } else {\n    // iOS 5.1 and Nokia ASHA do not support multiple add or remove\n    // trying to detect and fix that in here\n    TemporaryTokenList = createElement('div')[CLASS_LIST];\n    TemporaryTokenList.add('a', 'b', 'a');\n    if ('a\\x20b' != TemporaryTokenList) {\n      // no other way to reach original methods in iOS 5.1\n      TemporaryPrototype = TemporaryTokenList.constructor.prototype;\n      if (!('add' in TemporaryPrototype)) {\n        // ASHA double fails in here\n        TemporaryPrototype = window.TemporaryTokenList.prototype;\n      }\n      wrapVerifyToken = function (original) {\n        return function () {\n          var i = 0;\n          while (i < arguments.length) {\n            original.call(this, arguments[i++]);\n          }\n        };\n      };\n      TemporaryPrototype.add = wrapVerifyToken(TemporaryPrototype.add);\n      TemporaryPrototype.remove = wrapVerifyToken(TemporaryPrototype.remove);\n      // toggle is broken too ^_^ ... let's fix it\n      TemporaryPrototype.toggle = toggle;\n    }\n  }\n\n  if (!('contains' in NodePrototype)) {\n    defineProperty(NodePrototype, 'contains', {\n      value: function (el) {\n        while (el && el !== this) el = el.parentNode;\n        return this === el;\n      }\n    });\n  }\n\n  if (!('head' in document)) {\n    defineProperty(document, 'head', {\n      get: function () {\n        return head || (\n          head = document.getElementsByTagName('head')[0]\n        );\n      }\n    });\n  }\n\n  // requestAnimationFrame partial polyfill\n  (function () {\n    for (var\n      raf,\n      rAF = window.requestAnimationFrame,\n      cAF = window.cancelAnimationFrame,\n      prefixes = ['o', 'ms', 'moz', 'webkit'],\n      i = prefixes.length;\n      !cAF && i--;\n    ) {\n      rAF = rAF || window[prefixes[i] + 'RequestAnimationFrame'];\n      cAF = window[prefixes[i] + 'CancelAnimationFrame'] ||\n            window[prefixes[i] + 'CancelRequestAnimationFrame'];\n    }\n    if (!cAF) {\n      // some FF apparently implemented rAF but no cAF \n      if (rAF) {\n        raf = rAF;\n        rAF = function (callback) {\n          var goOn = true;\n          raf(function () {\n            if (goOn) callback.apply(this, arguments);\n          });\n          return function () {\n            goOn = false;\n          };\n        };\n        cAF = function (id) {\n          id();\n        };\n      } else {\n        rAF = function (callback) {\n          return setTimeout(callback, 15, 15);\n        };\n        cAF = function (id) {\n          clearTimeout(id);\n        };\n      }\n    }\n    window.requestAnimationFrame = rAF;\n    window.cancelAnimationFrame = cAF;\n  }());\n\n  // http://www.w3.org/TR/dom/#customevent\n  try{new window.CustomEvent('?');}catch(o_O){\n    window.CustomEvent = function(\n      eventName,\n      defaultInitDict\n    ){\n\n      // the infamous substitute\n      function CustomEvent(type, eventInitDict) {\n        /*jshint eqnull:true */\n        var event = document.createEvent(eventName);\n        if (typeof type != 'string') {\n          throw new Error('An event name must be provided');\n        }\n        if (eventName == 'Event') {\n          event.initCustomEvent = initCustomEvent;\n        }\n        if (eventInitDict == null) {\n          eventInitDict = defaultInitDict;\n        }\n        event.initCustomEvent(\n          type,\n          eventInitDict.bubbles,\n          eventInitDict.cancelable,\n          eventInitDict.detail\n        );\n        return event;\n      }\n\n      // attached at runtime\n      function initCustomEvent(\n        type, bubbles, cancelable, detail\n      ) {\n        /*jshint validthis:true*/\n        this.initEvent(type, bubbles, cancelable);\n        this.detail = detail;\n      }\n\n      // that's it\n      return CustomEvent;\n    }(\n      // is this IE9 or IE10 ?\n      // where CustomEvent is there\n      // but not usable as construtor ?\n      window.CustomEvent ?\n        // use the CustomEvent interface in such case\n        'CustomEvent' : 'Event',\n        // otherwise the common compatible one\n      {\n        bubbles: false,\n        cancelable: false,\n        detail: null\n      }\n    );\n  }\n\n  // window.Event as constructor\n  try { new Event('_'); } catch (o_O) {\n    /* jshint -W022 */\n    o_O = (function ($Event) {\n      function Event(type, init) {\n        enoughArguments(arguments.length, 'Event');\n        var out = document.createEvent('Event');\n        if (!init) init = {};\n        out.initEvent(\n          type,\n          !!init.bubbles,\n          !!init.cancelable\n        );\n        return out;\n      }\n      Event.prototype = $Event.prototype;\n      return Event;\n    }(window.Event || function Event() {}));\n    defineProperty(window, 'Event', {value: o_O});\n    // Android 4 gotcha\n    if (Event !== o_O) Event = o_O;\n  }\n\n  // window.KeyboardEvent as constructor\n  try { new KeyboardEvent('_', {}); } catch (o_O) {\n    /* jshint -W022 */\n    o_O = (function ($KeyboardEvent) {\n      // code inspired by https://gist.github.com/termi/4654819\n      var\n        initType = 0,\n        defaults = {\n          char: '',\n          key: '',\n          location: 0,\n          ctrlKey: false,\n          shiftKey: false,\n          altKey: false,\n          metaKey: false,\n          altGraphKey: false,\n          repeat: false,\n          locale: navigator.language,\n          detail: 0,\n          bubbles: false,\n          cancelable: false,\n          keyCode: 0,\n          charCode: 0,\n          which: 0\n        },\n        eventType\n      ;\n      try {\n        var e = document.createEvent('KeyboardEvent');\n        e.initKeyboardEvent(\n          'keyup', false, false, window, '+', 3,\n          true, false, true, false, false\n        );\n        initType = (\n          (e.keyIdentifier || e.key) == '+' &&\n          (e.keyLocation || e.location) == 3\n        ) && (\n          e.ctrlKey ? e.altKey ? 1 : 3 : e.shiftKey ? 2 : 4\n        ) || 9;\n      } catch(o_O) {}\n      eventType = 0 < initType ? 'KeyboardEvent' : 'Event';\n\n      function getModifier(init) {\n        for (var\n          out = [],\n          keys = [\n            'ctrlKey',\n            'Control',\n            'shiftKey',\n            'Shift',\n            'altKey',\n            'Alt',\n            'metaKey',\n            'Meta',\n            'altGraphKey',\n            'AltGraph'\n          ],\n          i = 0; i < keys.length; i += 2\n        ) {\n          if (init[keys[i]])\n            out.push(keys[i + 1]);\n        }\n        return out.join(' ');\n      }\n\n      function withDefaults(target, source) {\n        for (var key in source) {\n          if (\n            source.hasOwnProperty(key) &&\n            !source.hasOwnProperty.call(target, key)\n          ) target[key] = source[key];\n        }\n        return target;\n      }\n\n      function withInitValues(key, out, init) {\n        try {\n          out[key] = init[key];\n        } catch(o_O) {}\n      }\n\n      function KeyboardEvent(type, init) {\n        enoughArguments(arguments.length, 'KeyboardEvent');\n        init = withDefaults(init || {}, defaults);\n        var\n          out = document.createEvent(eventType),\n          ctrlKey = init.ctrlKey,\n          shiftKey = init.shiftKey,\n          altKey = init.altKey,\n          metaKey = init.metaKey,\n          altGraphKey = init.altGraphKey,\n          modifiers = initType > 3 ? getModifier(init) : null,\n          key = String(init.key),\n          chr = String(init.char),\n          location = init.location,\n          keyCode = init.keyCode || (\n            (init.keyCode = key) &&\n            key.charCodeAt(0)\n          ) || 0,\n          charCode = init.charCode || (\n            (init.charCode = chr) &&\n            chr.charCodeAt(0)\n          ) || 0,\n          bubbles = init.bubbles,\n          cancelable = init.cancelable,\n          repeat = init.repeat,\n          locale = init.locale,\n          view = init.view || window,\n          args\n        ;\n        if (!init.which) init.which = init.keyCode;\n        if ('initKeyEvent' in out) {\n          out.initKeyEvent(\n            type, bubbles, cancelable, view,\n            ctrlKey, altKey, shiftKey, metaKey, keyCode, charCode\n          );\n        } else if (0 < initType && 'initKeyboardEvent' in out) {\n          args = [type, bubbles, cancelable, view];\n          switch (initType) {\n            case 1:\n              args.push(key, location, ctrlKey, shiftKey, altKey, metaKey, altGraphKey);\n              break;\n            case 2:\n              args.push(ctrlKey, altKey, shiftKey, metaKey, keyCode, charCode);\n              break;\n            case 3:\n              args.push(key, location, ctrlKey, altKey, shiftKey, metaKey, altGraphKey);\n              break;\n            case 4:\n              args.push(key, location, modifiers, repeat, locale);\n              break;\n            default:\n              args.push(char, key, location, modifiers, repeat, locale);\n          }\n          out.initKeyboardEvent.apply(out, args);\n        } else {\n          out.initEvent(type, bubbles, cancelable);\n        }\n        for (key in out) {\n          if (defaults.hasOwnProperty(key) && out[key] !== init[key]) {\n            withInitValues(key, out, init);\n          }\n        }\n        return out;\n      }\n      KeyboardEvent.prototype = $KeyboardEvent.prototype;\n      return KeyboardEvent;\n    }(window.KeyboardEvent || function KeyboardEvent() {}));\n    defineProperty(window, 'KeyboardEvent', {value: o_O});\n    // Android 4 gotcha\n    if (KeyboardEvent !== o_O) KeyboardEvent = o_O;\n  }\n\n  // window.MouseEvent as constructor\n  try { new MouseEvent('_', {}); } catch (o_O) {\n    /* jshint -W022 */\n    o_O = (function ($MouseEvent) {\n      function MouseEvent(type, init) {\n        enoughArguments(arguments.length, 'MouseEvent');\n        var out = document.createEvent('MouseEvent');\n        if (!init) init = {};\n        out.initMouseEvent(\n          type,\n          !!init.bubbles,\n          !!init.cancelable,\n          init.view || window,\n          init.detail || 1,\n          init.screenX || 0,\n          init.screenY || 0,\n          init.clientX || 0,\n          init.clientY || 0,\n          !!init.ctrlKey,\n          !!init.altKey,\n          !!init.shiftKey,\n          !!init.metaKey,\n          init.button || 0,\n          init.relatedTarget || null\n        );\n        return out;\n      }\n      MouseEvent.prototype = $MouseEvent.prototype;\n      return MouseEvent;\n    }(window.MouseEvent || function MouseEvent() {}));\n    defineProperty(window, 'MouseEvent', {value: o_O});\n    // Android 4 gotcha\n    if (MouseEvent !== o_O) MouseEvent = o_O;\n  }\n\n  if (!document.querySelectorAll('*').forEach) {\n    (function () {\n      function patch(what) {\n        var querySelectorAll = what.querySelectorAll;\n        what.querySelectorAll = function qSA(css) {\n          var result = querySelectorAll.call(this, css);\n          result.forEach = Array.prototype.forEach;\n          return result;\n        };\n      }\n      patch(document);\n      patch(Element.prototype);\n    }());\n  }\n\n  try {\n    // https://drafts.csswg.org/selectors-4/#the-scope-pseudo\n    document.querySelector(':scope *');\n  } catch(o_O) {\n    (function () {\n      var dataScope = 'data-scope-' + (Math.random() * 1e9 >>> 0);\n      var proto = Element.prototype;\n      var querySelector = proto.querySelector;\n      var querySelectorAll = proto.querySelectorAll;\n      proto.querySelector = function qS(css) {\n        return find(this, querySelector, css);\n      };\n      proto.querySelectorAll = function qSA(css) {\n        return find(this, querySelectorAll, css);\n      };\n      function find(node, method, css) {\n        node.setAttribute(dataScope, null);\n        var result = method.call(\n          node,\n          String(css).replace(\n            /(^|,\\s*)(:scope([ >]|$))/g,\n            function ($0, $1, $2, $3) {\n              return $1 + '[' + dataScope + ']' + ($3 || ' ');\n            }\n          )\n        );\n        node.removeAttribute(dataScope);\n        return result;\n      }\n    }());\n  }\n}(window));\n(function (global){'use strict';\n\n  // a WeakMap fallback for DOM nodes only used as key\n  var DOMMap = global.WeakMap || (function () {\n\n    var\n      counter = 0,\n      dispatched = false,\n      drop = false,\n      value\n    ;\n\n    function dispatch(key, ce, shouldDrop) {\n      drop = shouldDrop;\n      dispatched = false;\n      value = undefined;\n      key.dispatchEvent(ce);\n    }\n\n    function Handler(value) {\n      this.value = value;\n    }\n\n    Handler.prototype.handleEvent = function handleEvent(e) {\n      dispatched = true;\n      if (drop) {\n        e.currentTarget.removeEventListener(e.type, this, false);\n      } else {\n        value = this.value;\n      }\n    };\n\n    function DOMMap() {\n      counter++;  // make id clashing highly improbable\n      this.__ce__ = new Event(('@DOMMap:' + counter) + Math.random());\n    }\n\n    DOMMap.prototype = {\n      'constructor': DOMMap,\n      'delete': function del(key) {\n        return dispatch(key, this.__ce__, true), dispatched;\n      },\n      'get': function get(key) {\n        dispatch(key, this.__ce__, false);\n        var v = value;\n        value = undefined;\n        return v;\n      },\n      'has': function has(key) {\n        return dispatch(key, this.__ce__, false), dispatched;\n      },\n      'set': function set(key, value) {\n        dispatch(key, this.__ce__, true);\n        key.addEventListener(this.__ce__.type, new Handler(value), false);\n        return this;\n      },\n    };\n\n    return DOMMap;\n\n  }());\n\n  function Dict() {}\n  Dict.prototype = (Object.create || Object)(null);\n\n  // https://dom.spec.whatwg.org/#interface-eventtarget\n\n  function createEventListener(type, callback, options) {\n    function eventListener(e) {\n      if (eventListener.once) {\n        e.currentTarget.removeEventListener(\n          e.type,\n          callback,\n          eventListener\n        );\n        eventListener.removed = true;\n      }\n      if (eventListener.passive) {\n        e.preventDefault = createEventListener.preventDefault;\n      }\n      if (typeof eventListener.callback === 'function') {\n        /* jshint validthis: true */\n        eventListener.callback.call(this, e);\n      } else if (eventListener.callback) {\n        eventListener.callback.handleEvent(e);\n      }\n      if (eventListener.passive) {\n        delete e.preventDefault;\n      }\n    }\n    eventListener.type = type;\n    eventListener.callback = callback;\n    eventListener.capture = !!options.capture;\n    eventListener.passive = !!options.passive;\n    eventListener.once = !!options.once;\n    // currently pointless but specs say to use it, so ...\n    eventListener.removed = false;\n    return eventListener;\n  }\n\n  createEventListener.preventDefault = function preventDefault() {};\n\n  var\n    Event = global.CustomEvent,\n    dE = global.dispatchEvent,\n    aEL = global.addEventListener,\n    rEL = global.removeEventListener,\n    counter = 0,\n    increment = function () { counter++; },\n    indexOf = [].indexOf || function indexOf(value){\n      var length = this.length;\n      while(length--) {\n        if (this[length] === value) {\n          break;\n        }\n      }\n      return length;\n    },\n    getListenerKey = function (options) {\n      return ''.concat(\n        options.capture ? '1' : '0',\n        options.passive ? '1' : '0',\n        options.once ? '1' : '0'\n      );\n    },\n    augment\n  ;\n\n  try {\n    aEL('_', increment, {once: true});\n    dE(new Event('_'));\n    dE(new Event('_'));\n    rEL('_', increment, {once: true});\n  } catch(o_O) {}\n\n  if (counter !== 1) {\n    (function () {\n      var dm = new DOMMap();\n      function createAEL(aEL) {\n        return function addEventListener(type, handler, options) {\n          if (options && typeof options !== 'boolean') {\n            var\n              info = dm.get(this),\n              key = getListenerKey(options),\n              i, tmp, wrap\n            ;\n            if (!info) dm.set(this, (info = new Dict()));\n            if (!(type in info)) info[type] = {\n              handler: [],\n              wrap: []\n            };\n            tmp = info[type];\n            i = indexOf.call(tmp.handler, handler);\n            if (i < 0) {\n              i = tmp.handler.push(handler) - 1;\n              tmp.wrap[i] = (wrap = new Dict());\n            } else {\n              wrap = tmp.wrap[i];\n            }\n            if (!(key in wrap)) {\n              wrap[key] = createEventListener(type, handler, options);\n              aEL.call(this, type, wrap[key], wrap[key].capture);\n            }\n          } else {\n            aEL.call(this, type, handler, options);\n          }\n        };\n      }\n      function createREL(rEL) {\n        return function removeEventListener(type, handler, options) {\n          if (options && typeof options !== 'boolean') {\n            var\n              info = dm.get(this),\n              key, i, tmp, wrap\n            ;\n            if (info && (type in info)) {\n              tmp = info[type];\n              i = indexOf.call(tmp.handler, handler);\n              if (-1 < i) {\n                key = getListenerKey(options);\n                wrap = tmp.wrap[i];\n                if (key in wrap) {\n                  rEL.call(this, type, wrap[key], wrap[key].capture);\n                  delete wrap[key];\n                  // return if there are other wraps\n                  for (key in wrap) return;\n                  // otherwise remove all the things\n                  tmp.handler.splice(i, 1);\n                  tmp.wrap.splice(i, 1);\n                  // if there are no other handlers\n                  if (tmp.handler.length === 0)\n                    // drop the info[type] entirely\n                    delete info[type];\n                }\n              }\n            }\n          } else {\n            rEL.call(this, type, handler, options);\n          }\n        };\n      }\n\n      augment = function (Constructor) {\n        if (!Constructor) return;\n        var proto = Constructor.prototype;\n        proto.addEventListener = createAEL(proto.addEventListener);\n        proto.removeEventListener = createREL(proto.removeEventListener);\n      };\n\n      if (global.EventTarget) {\n        augment(EventTarget);\n      } else {\n        augment(global.Text);\n        augment(global.Element || global.HTMLElement);\n        augment(global.HTMLDocument);\n        augment(global.Window || {prototype:global});\n        augment(global.XMLHttpRequest);\n      }\n\n    }());\n  }\n\n}(self));\n","/*!\n  Copyright (c) 2017 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n  ? window : typeof self != 'undefined' && self.Math == Math ? self\n  // eslint-disable-next-line no-new-func\n  : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var core = module.exports = { version: '2.5.7' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","module.exports = function (it) {\n  if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n  return it;\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n  switch (length) {\n    case 1: return function (a) {\n      return fn.call(that, a);\n    };\n    case 2: return function (a, b) {\n      return fn.call(that, a, b);\n    };\n    case 3: return function (a, b, c) {\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n","module.exports = function (it) {\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n  if (!isObject(it)) throw TypeError(it + ' is not an object!');\n  return it;\n};\n","module.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (e) {\n    return true;\n  }\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n  return is ? document.createElement(it) : {};\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n  return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n  if (!isObject(it)) return it;\n  var fn, val;\n  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return dP(O, P, Attributes);\n  } catch (e) { /* empty */ }\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};\n","module.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n  return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n  var IS_FORCED = type & $export.F;\n  var IS_GLOBAL = type & $export.G;\n  var IS_STATIC = type & $export.S;\n  var IS_PROTO = type & $export.P;\n  var IS_BIND = type & $export.B;\n  var IS_WRAP = type & $export.W;\n  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n  var expProto = exports[PROTOTYPE];\n  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n  var key, own, out;\n  if (IS_GLOBAL) source = name;\n  for (key in source) {\n    // contains in native\n    own = !IS_FORCED && target && target[key] !== undefined;\n    if (own && has(exports, key)) continue;\n    // export native or passed\n    out = own ? target[key] : source[key];\n    // prevent global pollution for namespaces\n    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n    // bind timers to global for call from export context\n    : IS_BIND && own ? ctx(out, global)\n    // wrap global constructors for prevent change them in library\n    : IS_WRAP && target[key] == out ? (function (C) {\n      var F = function (a, b, c) {\n        if (this instanceof C) {\n          switch (arguments.length) {\n            case 0: return new C();\n            case 1: return new C(a);\n            case 2: return new C(a, b);\n          } return new C(a, b, c);\n        } return C.apply(this, arguments);\n      };\n      F[PROTOTYPE] = C[PROTOTYPE];\n      return F;\n    // make static versions for prototype methods\n    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n    if (IS_PROTO) {\n      (exports.virtual || (exports.virtual = {}))[key] = out;\n      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n      if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n    }\n  }\n};\n// type bitmap\n$export.F = 1;   // forced\n$export.G = 2;   // global\n$export.S = 4;   // static\n$export.P = 8;   // proto\n$export.B = 16;  // bind\n$export.W = 32;  // wrap\n$export.U = 64;  // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n  return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on  \" + it);\n  return it;\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n  return IObject(defined(it));\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n  index = toInteger(index);\n  return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// false -> Array#indexOf\n// true  -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIObject($this);\n    var length = toLength(O.length);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n      if (O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n","module.exports = true;\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: core.version,\n  mode: require('./_library') ? 'pure' : 'global',\n  copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n});\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n  return shared[key] || (shared[key] = uid(key));\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n  var O = toIObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (has(O, key = names[i++])) {\n    ~arrayIndexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n  return $keys(O, enumBugKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","exports.f = {}.propertyIsEnumerable;\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n  return Object(defined(it));\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n  var A = {};\n  var B = {};\n  // eslint-disable-next-line no-undef\n  var S = Symbol();\n  var K = 'abcdefghijklmnopqrst';\n  A[S] = 7;\n  K.split('').forEach(function (k) { B[k] = k; });\n  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n  var T = toObject(target);\n  var aLen = arguments.length;\n  var index = 1;\n  var getSymbols = gOPS.f;\n  var isEnum = pIE.f;\n  while (aLen > index) {\n    var S = IObject(arguments[index++]);\n    var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n    while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n  } return T;\n} : $assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || 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};","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true  -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n  return function (that, pos) {\n    var s = String(defined(that));\n    var i = toInteger(pos);\n    var l = s.length;\n    var a, b;\n    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n    a = s.charCodeAt(i);\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n      ? TO_STRING ? s.charAt(i) : a\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n  };\n};\n","module.exports = require('./_hide');\n","module.exports = {};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var keys = getKeys(Properties);\n  var length = keys.length;\n  var i = 0;\n  var P;\n  while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n  return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = require('./_dom-create')('iframe');\n  var i = enumBugKeys.length;\n  var lt = '<';\n  var gt = '>';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  require('./_html').appendChild(iframe);\n  iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n  // createDict = iframe.contentWindow.Object;\n  // html.removeChild(iframe);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n  iframeDocument.close();\n  createDict = iframeDocument.F;\n  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n  return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    Empty[PROTOTYPE] = anObject(O);\n    result = new Empty();\n    Empty[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = createDict();\n  return Properties === undefined ? result : dPs(result, Properties);\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n  return store[name] || (store[name] =\n    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n  setToStringTag(Constructor, NAME + ' Iterator');\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n  O = toObject(O);\n  if (has(O, IE_PROTO)) return O[IE_PROTO];\n  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectProto : null;\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n  $iterCreate(Constructor, NAME, next);\n  var getMethod = function (kind) {\n    if (!BUGGY && kind in proto) return proto[kind];\n    switch (kind) {\n      case KEYS: return function keys() { return new Constructor(this, kind); };\n      case VALUES: return function values() { return new Constructor(this, kind); };\n    } return function entries() { return new Constructor(this, kind); };\n  };\n  var TAG = NAME + ' Iterator';\n  var DEF_VALUES = DEFAULT == VALUES;\n  var VALUES_BUG = false;\n  var proto = Base.prototype;\n  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n  var $default = $native || getMethod(DEFAULT);\n  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n  var methods, key, IteratorPrototype;\n  // Fix native\n  if ($anyNative) {\n    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n      // Set @@toStringTag to native iterators\n      setToStringTag(IteratorPrototype, TAG, true);\n      // fix for some old engines\n      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n    }\n  }\n  // fix Array#{values, @@iterator}.name in V8 / FF\n  if (DEF_VALUES && $native && $native.name !== VALUES) {\n    VALUES_BUG = true;\n    $default = function values() { return $native.call(this); };\n  }\n  // Define iterator\n  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n    hide(proto, ITERATOR, $default);\n  }\n  // Plug for library\n  Iterators[NAME] = $default;\n  Iterators[TAG] = returnThis;\n  if (DEFAULT) {\n    methods = {\n      values: DEF_VALUES ? $default : getMethod(VALUES),\n      keys: IS_SET ? $default : getMethod(KEYS),\n      entries: $entries\n    };\n    if (FORCED) for (key in methods) {\n      if (!(key in proto)) redefine(proto, key, methods[key]);\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n  }\n  return methods;\n};\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n  this._t = String(iterated); // target\n  this._i = 0;                // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n  var O = this._t;\n  var index = this._i;\n  var point;\n  if (index >= O.length) return { value: undefined, done: true };\n  point = $at(O, index);\n  this._i += point.length;\n  return { value: point, done: false };\n});\n","module.exports = function () { /* empty */ };\n","module.exports = function (done, value) {\n  return { value: value, done: !!done };\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n  this._t = toIObject(iterated); // target\n  this._i = 0;                   // next index\n  this._k = kind;                // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n  var O = this._t;\n  var kind = this._k;\n  var index = this._i++;\n  if (!O || index >= O.length) {\n    this._t = undefined;\n    return step(1);\n  }\n  if (kind == 'keys') return step(0, index);\n  if (kind == 'values') return step(0, O[index]);\n  return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n  'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n  'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n  'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n  'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n  var NAME = DOMIterables[i];\n  var Collection = global[NAME];\n  var proto = Collection && Collection.prototype;\n  if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n  Iterators[NAME] = Iterators.Array;\n}\n","exports.f = require('./_wks');\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n  return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n  return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n  setDesc(it, META, { value: {\n    i: 'O' + ++id, // object ID\n    w: {}          // weak collections IDs\n  } });\n};\nvar fastKey = function (it, create) {\n  // return primitive with prefix\n  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n  if (!has(it, META)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return 'F';\n    // not necessary to add metadata\n    if (!create) return 'E';\n    // add missing metadata\n    setMeta(it);\n  // return object ID\n  } return it[META].i;\n};\nvar getWeak = function (it, create) {\n  if (!has(it, META)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return true;\n    // not necessary to add metadata\n    if (!create) return false;\n    // add missing metadata\n    setMeta(it);\n  // return hash weak collections IDs\n  } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n  return it;\n};\nvar meta = module.exports = {\n  KEY: META,\n  NEED: false,\n  fastKey: fastKey,\n  getWeak: getWeak,\n  onFreeze: onFreeze\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n  var result = getKeys(it);\n  var getSymbols = gOPS.f;\n  if (getSymbols) {\n    var symbols = getSymbols(it);\n    var isEnum = pIE.f;\n    var i = 0;\n    var key;\n    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n  } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n  return cof(arg) == 'Array';\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return $keys(O, hiddenKeys);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n  ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n  try {\n    return gOPN(it);\n  } catch (e) {\n    return windowNames.slice();\n  }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n  O = toIObject(O);\n  P = toPrimitive(P, true);\n  if (IE8_DOM_DEFINE) try {\n    return gOPD(O, P);\n  } catch (e) { /* empty */ }\n  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n  return _create(dP({}, 'a', {\n    get: function () { return dP(this, 'a', { value: 7 }).a; }\n  })).a != 7;\n}) ? function (it, key, D) {\n  var protoDesc = gOPD(ObjectProto, key);\n  if (protoDesc) delete ObjectProto[key];\n  dP(it, key, D);\n  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n  sym._k = tag;\n  return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n  anObject(it);\n  key = toPrimitive(key, true);\n  anObject(D);\n  if (has(AllSymbols, key)) {\n    if (!D.enumerable) {\n      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n      it[HIDDEN][key] = true;\n    } else {\n      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n      D = _create(D, { enumerable: createDesc(0, false) });\n    } return setSymbolDesc(it, key, D);\n  } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n  anObject(it);\n  var keys = enumKeys(P = toIObject(P));\n  var i = 0;\n  var l = keys.length;\n  var key;\n  while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n  return it;\n};\nvar $create = function create(it, P) {\n  return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n  var E = isEnum.call(this, key = toPrimitive(key, true));\n  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n  it = toIObject(it);\n  key = toPrimitive(key, true);\n  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n  var D = gOPD(it, key);\n  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n  return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n  var names = gOPN(toIObject(it));\n  var result = [];\n  var i = 0;\n  var key;\n  while (names.length > i) {\n    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n  } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n  var IS_OP = it === ObjectProto;\n  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n  var result = [];\n  var i = 0;\n  var key;\n  while (names.length > i) {\n    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n  } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n  $Symbol = function Symbol() {\n    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n    var $set = function (value) {\n      if (this === ObjectProto) $set.call(OPSymbols, value);\n      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n      setSymbolDesc(this, tag, createDesc(1, value));\n    };\n    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n    return wrap(tag);\n  };\n  redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n    return this._k;\n  });\n\n  $GOPD.f = $getOwnPropertyDescriptor;\n  $DP.f = $defineProperty;\n  require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n  require('./_object-pie').f = $propertyIsEnumerable;\n  require('./_object-gops').f = $getOwnPropertySymbols;\n\n  if (DESCRIPTORS && !require('./_library')) {\n    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n  }\n\n  wksExt.f = function (name) {\n    return wrap(wks(name));\n  };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n  // 19.4.2.1 Symbol.for(key)\n  'for': function (key) {\n    return has(SymbolRegistry, key += '')\n      ? SymbolRegistry[key]\n      : SymbolRegistry[key] = $Symbol(key);\n  },\n  // 19.4.2.5 Symbol.keyFor(sym)\n  keyFor: function keyFor(sym) {\n    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n  },\n  useSetter: function () { setter = true; },\n  useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n  // 19.1.2.2 Object.create(O [, Properties])\n  create: $create,\n  // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n  defineProperty: $defineProperty,\n  // 19.1.2.3 Object.defineProperties(O, Properties)\n  defineProperties: $defineProperties,\n  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n  // 19.1.2.7 Object.getOwnPropertyNames(O)\n  getOwnPropertyNames: $getOwnPropertyNames,\n  // 19.1.2.8 Object.getOwnPropertySymbols(O)\n  getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n  var S = $Symbol();\n  // MS Edge converts symbol values to JSON as {}\n  // WebKit converts symbol values to JSON as null\n  // V8 throws on boxed symbols\n  return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n  stringify: function stringify(it) {\n    var args = [it];\n    var i = 1;\n    var replacer, $replacer;\n    while (arguments.length > i) args.push(arguments[i++]);\n    $replacer = replacer = args[1];\n    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n    if (!isArray(replacer)) replacer = function (key, value) {\n      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n      if (!isSymbol(value)) return value;\n    };\n    args[1] = replacer;\n    return _stringify.apply($JSON, args);\n  }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n  return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n  return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (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 === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n  anObject(O);\n  if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n    function (test, buggy, set) {\n      try {\n        set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n        set(test, []);\n        buggy = !(test instanceof Array);\n      } catch (e) { buggy = true; }\n      return function setPrototypeOf(O, proto) {\n        check(O, proto);\n        if (buggy) O.__proto__ = proto;\n        else set(O, proto);\n        return O;\n      };\n    }({}, false) : undefined),\n  check: check\n};\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n  return $Object.create(P, D);\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (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 === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n  }\n\n  subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","// Utils\nimport debounce from './utils/debounce';\nimport isFunction from './utils/isFunction';\n\n// Methods\nimport update from './methods/update';\nimport destroy from './methods/destroy';\nimport enableEventListeners from './methods/enableEventListeners';\nimport disableEventListeners from './methods/disableEventListeners';\nimport Defaults from './methods/defaults';\nimport placements from './methods/placements';\n\nexport default class Popper {\n  /**\n   * Creates a new Popper.js instance.\n   * @class Popper\n   * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n   * @param {HTMLElement} popper - The HTML element used as the popper\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  constructor(reference, popper, options = {}) {\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = { ...Popper.Defaults, ...options };\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: [],\n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference && reference.jquery ? reference[0] : reference;\n    this.popper = popper && popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys({\n      ...Popper.Defaults.modifiers,\n      ...options.modifiers,\n    }).forEach(name => {\n      this.options.modifiers[name] = {\n        // If it's a built-in modifier, use it as base\n        ...(Popper.Defaults.modifiers[name] || {}),\n        // If there are custom options, override and merge with default ones\n        ...(options.modifiers ? options.modifiers[name] : {}),\n      };\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers)\n      .map(name => ({\n        name,\n        ...this.options.modifiers[name],\n      }))\n      // sort the modifiers by order\n      .sort((a, b) => a.order - b.order);\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(modifierOptions => {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(\n          this.reference,\n          this.popper,\n          this.options,\n          modifierOptions,\n          this.state\n        );\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    const eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n  update() {\n    return update.call(this);\n  }\n  destroy() {\n    return destroy.call(this);\n  }\n  enableEventListeners() {\n    return enableEventListeners.call(this);\n  }\n  disableEventListeners() {\n    return disableEventListeners.call(this);\n  }\n\n  /**\n   * Schedules an update. It will run on the next UI update available.\n   * @method scheduleUpdate\n   * @memberof Popper\n   */\n  scheduleUpdate = () => requestAnimationFrame(this.update);\n\n  /**\n   * Collection of utilities useful when writing custom modifiers.\n   * Starting from version 1.7, this method is available only if you\n   * include `popper-utils.js` before `popper.js`.\n   *\n   * **DEPRECATION**: This way to access PopperUtils is deprecated\n   * and will be removed in v2! Use the PopperUtils module directly instead.\n   * Due to the high instability of the methods contained in Utils, we can't\n   * guarantee them to follow semver. Use them at your own risk!\n   * @static\n   * @private\n   * @type {Object}\n   * @deprecated since version 1.8\n   * @member Utils\n   * @memberof Popper\n   */\n  static Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n\n  static placements = placements;\n\n  static Defaults = Defaults;\n}\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n","import isBrowser from './isBrowser';\n\nconst longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nlet timeoutDuration = 0;\nfor (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nexport function microtaskDebounce(fn) {\n  let called = false\n  return () => {\n    if (called) {\n      return\n    }\n    called = true\n    window.Promise.resolve().then(() => {\n      called = false\n      fn()\n    })\n  }\n}\n\nexport function taskDebounce(fn) {\n  let scheduled = false;\n  return () => {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(() => {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nexport default (supportsMicroTasks\n  ? microtaskDebounce\n  : taskDebounce);\n","export default typeof window !== 'undefined' && typeof document !== 'undefined';\n","/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nexport default function isFunction(functionToCheck) {\n  const getType = {};\n  return (\n    functionToCheck &&\n    getType.toString.call(functionToCheck) === '[object Function]'\n  );\n}\n","/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  const window = element.ownerDocument.defaultView;\n  const css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n","/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nexport default function getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nexport default function getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body\n    case '#document':\n      return element.body\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n  const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nexport default function isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nexport default function getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  const noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  let offsetParent = element.offsetParent || null;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  const nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TH, TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (\n    ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n    getStyleComputedProperty(offsetParent, 'position') === 'static'\n  ) {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n  const { nodeName } = element;\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return (\n    nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element\n  );\n}\n","/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nexport default function getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nexport default function findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  const order =\n    element1.compareDocumentPosition(element2) &\n    Node.DOCUMENT_POSITION_FOLLOWING;\n  const start = order ? element1 : element2;\n  const end = order ? element2 : element1;\n\n  // Get common ancestor container\n  const range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  const { commonAncestorContainer } = range;\n\n  // Both nodes are inside #document\n  if (\n    (element1 !== commonAncestorContainer &&\n      element2 !== commonAncestorContainer) ||\n    start.contains(end)\n  ) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  const element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n","/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nexport default function getScroll(element, side = 'top') {\n  const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  const nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    const html = element.ownerDocument.documentElement;\n    const scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n","import getScroll from './getScroll';\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nexport default function includeScroll(rect, element, subtract = false) {\n  const scrollTop = getScroll(element, 'top');\n  const scrollLeft = getScroll(element, 'left');\n  const modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n","/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nexport default function getBordersSize(styles, axis) {\n  const sideA = axis === 'x' ? 'Left' : 'Top';\n  const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return (\n    parseFloat(styles[`border${sideA}Width`], 10) +\n    parseFloat(styles[`border${sideB}Width`], 10)\n  );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(\n    body[`offset${axis}`],\n    body[`scroll${axis}`],\n    html[`client${axis}`],\n    html[`offset${axis}`],\n    html[`scroll${axis}`],\n    isIE(10)\n      ? (parseInt(html[`offset${axis}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n    : 0 \n  );\n}\n\nexport default function getWindowSizes(document) {\n  const body = document.body;\n  const html = document.documentElement;\n  const computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle),\n  };\n}\n","/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nexport default function getClientRect(offsets) {\n  return {\n    ...offsets,\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height,\n  };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nexport default function getBoundingClientRect(element) {\n  let rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      const scrollTop = getScroll(element, 'top');\n      const scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    }\n    else {\n      rect = element.getBoundingClientRect();\n    }\n  }\n  catch(e){}\n\n  const result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top,\n  };\n\n  // subtract scrollbar size from sizes\n  const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  const width =\n    sizes.width || element.clientWidth || result.right - result.left;\n  const height =\n    sizes.height || element.clientHeight || result.bottom - result.top;\n\n  let horizScrollbar = element.offsetWidth - width;\n  let vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    const styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n  const isIE10 = runIsIE(10);\n  const isHTML = parent.nodeName === 'HTML';\n  const childrenRect = getBoundingClientRect(children);\n  const parentRect = getBoundingClientRect(parent);\n  const scrollParent = getScrollParent(children);\n\n  const styles = getStyleComputedProperty(parent);\n  const borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  const borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if(fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  let offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height,\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    const marginTop = parseFloat(styles.marginTop, 10);\n    const marginLeft = parseFloat(styles.marginLeft, 10);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (\n    isIE10 && !fixedPosition\n      ? parent.contains(scrollParent)\n      : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n  ) {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n  const html = element.ownerDocument.documentElement;\n  const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  const width = Math.max(html.clientWidth, window.innerWidth || 0);\n  const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  const scrollTop = !excludeScroll ? getScroll(html) : 0;\n  const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  const offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width,\n    height,\n  };\n\n  return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nexport default function isFixed(element) {\n  const nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFixed(getParentNode(element));\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nexport default function getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n   if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  let el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nexport default function getBoundaries(\n  popper,\n  reference,\n  padding,\n  boundariesElement,\n  fixedPosition = false\n) {\n  // NOTE: 1 DOM access here\n\n  let boundaries = { top: 0, left: 0 };\n  const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport' ) {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  }\n\n  else {\n    // Handle other cases based on DOM element used as boundaries\n    let boundariesNode;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    const offsets = getOffsetRectRelativeToArbitraryNode(\n      boundariesNode,\n      offsetParent,\n      fixedPosition\n    );\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      const { height, width } = getWindowSizes(popper.ownerDocument);\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  padding = padding || 0;\n  const isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0; \n  boundaries.top += isPaddingNumber ? padding : padding.top || 0; \n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0; \n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; \n\n  return boundaries;\n}\n","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeAutoPlacement(\n  placement,\n  refRect,\n  popper,\n  reference,\n  boundariesElement,\n  padding = 0\n) {\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  const boundaries = getBoundaries(\n    popper,\n    reference,\n    padding,\n    boundariesElement\n  );\n\n  const rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top,\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height,\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom,\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height,\n    },\n  };\n\n  const sortedAreas = Object.keys(rects)\n    .map(key => ({\n      key,\n      ...rects[key],\n      area: getArea(rects[key]),\n    }))\n    .sort((a, b) => b.area - a.area);\n\n  const filteredAreas = sortedAreas.filter(\n    ({ width, height }) =>\n      width >= popper.clientWidth && height >= popper.clientHeight\n  );\n\n  const computedPlacement = filteredAreas.length > 0\n    ? filteredAreas[0].key\n    : sortedAreas[0].key;\n\n  const variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n  const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n","/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nexport default function getOuterSizes(element) {\n  const window = element.ownerDocument.defaultView;\n  const styles = window.getComputedStyle(element);\n  const x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  const y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n  const result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x,\n  };\n  return result;\n}\n","/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nexport default function getOppositePlacement(placement) {\n  const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  const popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  const popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height,\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  const mainSide = isHoriz ? 'top' : 'left';\n  const secondarySide = isHoriz ? 'left' : 'top';\n  const measurement = isHoriz ? 'height' : 'width';\n  const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] =\n    referenceOffsets[mainSide] +\n    referenceOffsets[measurement] / 2 -\n    popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] =\n      referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] =\n      referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n","/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n","import find from './find';\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(cur => cur[prop] === value);\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  const match = find(arr, obj => obj[prop] === value);\n  return arr.indexOf(match);\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nexport default function runModifiers(modifiers, data, ends) {\n  const modifiersToRun = ends === undefined\n    ? modifiers\n    : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(modifier => {\n    if (modifier['function']) { // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nexport default function update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  let data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {},\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(\n    this.state,\n    this.popper,\n    this.reference,\n    this.options.positionFixed\n  );\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(\n    this.options.placement,\n    data.offsets.reference,\n    this.popper,\n    this.reference,\n    this.options.modifiers.flip.boundariesElement,\n    this.options.modifiers.flip.padding\n  );\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  data.positionFixed = this.options.positionFixed;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(\n    this.popper,\n    data.offsets.reference,\n    data.placement\n  );\n\n  data.offsets.popper.position = this.options.positionFixed\n    ? 'fixed'\n    : 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(\n    ({ name, enabled }) => enabled && name === modifierName\n  );\n}\n","/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nexport default function getSupportedPropertyName(property) {\n  const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefix = prefixes[i];\n    const toCheck = prefix ? `${prefix}${upperProp}` : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function destroy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style.left = '';\n    this.popper.style.right = '';\n    this.popper.style.bottom = '';\n    this.popper.style.willChange = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicity asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n  const ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  const isBody = scrollParent.nodeName === 'BODY';\n  const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(\n      getScrollParent(target.parentNode),\n      event,\n      callback,\n      scrollParents\n    );\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function setupEventListeners(\n  reference,\n  options,\n  state,\n  updateBound\n) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  const scrollElement = getScrollParent(reference);\n  attachToScrollParents(\n    scrollElement,\n    'scroll',\n    state.updateBound,\n    state.scrollParents\n  );\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nexport default function enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(\n      this.reference,\n      this.options,\n      this.state,\n      this.scheduleUpdate\n    );\n  }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(target => {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n","import removeEventListeners from '../utils/removeEventListeners';\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nexport default function disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n","/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nexport default function isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setStyles(element, styles) {\n  Object.keys(styles).forEach(prop => {\n    let unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (\n      ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n        -1 &&\n      isNumeric(styles[prop])\n    ) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n","/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function(prop) {\n    const value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nexport default function applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance.popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nexport function applyStyleOnLoad(\n  reference,\n  popper,\n  options,\n  modifierOptions,\n  state\n) {\n  // compute reference element offsets\n  const referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  const placement = computeAutoPlacement(\n    options.placement,\n    referenceOffsets,\n    popper,\n    reference,\n    options.modifiers.flip.boundariesElement,\n    options.modifiers.flip.padding\n  );\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n  return options;\n}\n","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeStyle(data, options) {\n  const { x, y } = options;\n  const { popper } = data.offsets;\n\n  // Remove this legacy support in Popper.js v2\n  const legacyGpuAccelerationOption = find(\n    data.instance.modifiers,\n    modifier => modifier.name === 'applyStyle'\n  ).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn(\n      'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n    );\n  }\n  const gpuAcceleration =\n    legacyGpuAccelerationOption !== undefined\n      ? legacyGpuAccelerationOption\n      : options.gpuAcceleration;\n\n  const offsetParent = getOffsetParent(data.instance.popper);\n  const offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  const styles = {\n    position: popper.position,\n  };\n\n  // Avoid blurry text by using full pixel integers.\n  // For pixel-perfect positioning, top/bottom prefers rounded\n  // values, while left/right prefers floored values.\n  const offsets = {\n    left: Math.floor(popper.left),\n    top: Math.round(popper.top),\n    bottom: Math.round(popper.bottom),\n    right: Math.floor(popper.right),\n  };\n\n  const sideA = x === 'bottom' ? 'top' : 'bottom';\n  const sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  const prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  let left, top;\n  if (sideA === 'bottom') {\n    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n    // and not the bottom of the html element\n    if (offsetParent.nodeName === 'HTML') {\n      top = -offsetParent.clientHeight + offsets.bottom;\n    } else {\n      top = -offsetParentRect.height + offsets.bottom;\n    }\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    if (offsetParent.nodeName === 'HTML') {\n      left = -offsetParent.clientWidth + offsets.right;\n    } else {\n      left = -offsetParentRect.width + offsets.right;\n    }\n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    const invertTop = sideA === 'bottom' ? -1 : 1;\n    const invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = `${sideA}, ${sideB}`;\n  }\n\n  // Attributes\n  const attributes = {\n    'x-placement': data.placement,\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = { ...attributes, ...data.attributes };\n  data.styles = { ...styles, ...data.styles };\n  data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n  return data;\n}\n","import find from './find';\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nexport default function isModifierRequired(\n  modifiers,\n  requestingName,\n  requestedName\n) {\n  const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n  const isRequired =\n    !!requesting &&\n    modifiers.some(modifier => {\n      return (\n        modifier.name === requestedName &&\n        modifier.enabled &&\n        modifier.order < requesting.order\n      );\n    });\n\n  if (!isRequired) {\n    const requesting = `\\`${requestingName}\\``;\n    const requested = `\\`${requestedName}\\``;\n    console.warn(\n      `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n    );\n  }\n  return isRequired;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function arrow(data, options) {\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  let arrowElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn(\n        'WARNING: `arrow.element` must be child of its popper element!'\n      );\n      return data;\n    }\n  }\n\n  const placement = data.placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  const len = isVertical ? 'height' : 'width';\n  const sideCapitalized = isVertical ? 'Top' : 'Left';\n  const side = sideCapitalized.toLowerCase();\n  const altSide = isVertical ? 'left' : 'top';\n  const opSide = isVertical ? 'bottom' : 'right';\n  const arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjunction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -=\n      popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] +=\n      reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  const center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  const css = getStyleComputedProperty(data.instance.popper);\n  const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`], 10);\n  const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`], 10);\n  let sideValue =\n    center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = {\n    [side]: Math.round(sideValue),\n    [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n  };\n\n  return data;\n}\n","/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nexport default function getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n","/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nexport default [\n  'auto-start',\n  'auto',\n  'auto-end',\n  'top-start',\n  'top',\n  'top-end',\n  'right-start',\n  'right',\n  'right-end',\n  'bottom-end',\n  'bottom',\n  'bottom-start',\n  'left-end',\n  'left',\n  'left-start',\n];\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nexport default function clockwise(placement, counter = false) {\n  const index = validPlacements.indexOf(placement);\n  const arr = validPlacements\n    .slice(index + 1)\n    .concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise',\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  const boundaries = getBoundaries(\n    data.instance.popper,\n    data.instance.reference,\n    options.padding,\n    options.boundariesElement,\n    data.positionFixed\n  );\n\n  let placement = data.placement.split('-')[0];\n  let placementOpposite = getOppositePlacement(placement);\n  let variation = data.placement.split('-')[1] || '';\n\n  let flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach((step, index) => {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    const popperOffsets = data.offsets.popper;\n    const refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    const floor = Math.floor;\n    const overlapsRef =\n      (placement === 'left' &&\n        floor(popperOffsets.right) > floor(refOffsets.left)) ||\n      (placement === 'right' &&\n        floor(popperOffsets.left) < floor(refOffsets.right)) ||\n      (placement === 'top' &&\n        floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n      (placement === 'bottom' &&\n        floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n    const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    const overflowsBottom =\n      floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    const overflowsBoundaries =\n      (placement === 'left' && overflowsLeft) ||\n      (placement === 'right' && overflowsRight) ||\n      (placement === 'top' && overflowsTop) ||\n      (placement === 'bottom' && overflowsBottom);\n\n    // flip the variation if required\n    const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n    const flippedVariation =\n      !!options.flipVariations &&\n      ((isVertical && variation === 'start' && overflowsLeft) ||\n        (isVertical && variation === 'end' && overflowsRight) ||\n        (!isVertical && variation === 'start' && overflowsTop) ||\n        (!isVertical && variation === 'end' && overflowsBottom));\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n      data.offsets.popper = {\n        ...data.offsets.popper,\n        ...getPopperOffsets(\n          data.instance.popper,\n          data.offsets.reference,\n          data.placement\n        ),\n      };\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function keepTogether(data) {\n  const { popper, reference } = data.offsets;\n  const placement = data.placement.split('-')[0];\n  const floor = Math.floor;\n  const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  const side = isVertical ? 'right' : 'bottom';\n  const opSide = isVertical ? 'left' : 'top';\n  const measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] =\n      floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  const value = +split[1];\n  const unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    let element;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    const rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    let size;\n    if (unit === 'vh') {\n      size = Math.max(\n        document.documentElement.clientHeight,\n        window.innerHeight || 0\n      );\n    } else {\n      size = Math.max(\n        document.documentElement.clientWidth,\n        window.innerWidth || 0\n      );\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nexport function parseOffset(\n  offset,\n  popperOffsets,\n  referenceOffsets,\n  basePlacement\n) {\n  const offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n  const useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  const divider = fragments.indexOf(\n    find(fragments, frag => frag.search(/,|\\s/) !== -1)\n  );\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn(\n      'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n    );\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  const splitRegex = /\\s*,\\s*|\\s+/;\n  let ops = divider !== -1\n    ? [\n        fragments\n          .slice(0, divider)\n          .concat([fragments[divider].split(splitRegex)[0]]),\n        [fragments[divider].split(splitRegex)[1]].concat(\n          fragments.slice(divider + 1)\n        ),\n      ]\n    : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map((op, index) => {\n    // Most of the units rely on the orientation of the popper\n    const measurement = (index === 1 ? !useHeight : useHeight)\n      ? 'height'\n      : 'width';\n    let mergeWithPrevious = false;\n    return (\n      op\n        // This aggregates any `+` or `-` sign that aren't considered operators\n        // e.g.: 10 + +5 => [10, +, +5]\n        .reduce((a, b) => {\n          if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n            a[a.length - 1] = b;\n            mergeWithPrevious = true;\n            return a;\n          } else if (mergeWithPrevious) {\n            a[a.length - 1] += b;\n            mergeWithPrevious = false;\n            return a;\n          } else {\n            return a.concat(b);\n          }\n        }, [])\n        // Here we convert the string values into number values (in px)\n        .map(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n    );\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach((op, index) => {\n    op.forEach((frag, index2) => {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nexport default function offset(data, { offset }) {\n  const { placement, offsets: { popper, reference } } = data;\n  const basePlacement = placement.split('-')[0];\n\n  let offsets;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function preventOverflow(data, options) {\n  let boundariesElement =\n    options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  // NOTE: DOM access here\n  // resets the popper's position so that the document size can be calculated excluding\n  // the size of the popper element itself\n  const transformProp = getSupportedPropertyName('transform');\n  const popperStyles = data.instance.popper.style; // assignment to help minification\n  const { top, left, [transformProp]: transform } = popperStyles;\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n\n  const boundaries = getBoundaries(\n    data.instance.popper,\n    data.instance.reference,\n    options.padding,\n    boundariesElement,\n    data.positionFixed\n  );\n\n  // NOTE: DOM access here\n  // restores the original style properties after the offsets have been computed\n  popperStyles.top = top;\n  popperStyles.left = left;\n  popperStyles[transformProp] = transform;\n\n  options.boundaries = boundaries;\n\n  const order = options.priority;\n  let popper = data.offsets.popper;\n\n  const check = {\n    primary(placement) {\n      let value = popper[placement];\n      if (\n        popper[placement] < boundaries[placement] &&\n        !options.escapeWithReference\n      ) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return { [placement]: value };\n    },\n    secondary(placement) {\n      const mainSide = placement === 'right' ? 'left' : 'top';\n      let value = popper[mainSide];\n      if (\n        popper[placement] > boundaries[placement] &&\n        !options.escapeWithReference\n      ) {\n        value = Math.min(\n          popper[mainSide],\n          boundaries[placement] -\n            (placement === 'right' ? popper.width : popper.height)\n        );\n      }\n      return { [mainSide]: value };\n    },\n  };\n\n  order.forEach(placement => {\n    const side =\n      ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = { ...popper, ...check[side](placement) };\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function shift(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    const { reference, popper } = data.offsets;\n    const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    const side = isVertical ? 'left' : 'top';\n    const measurement = isVertical ? 'width' : 'height';\n\n    const shiftOffsets = {\n      start: { [side]: reference[side] },\n      end: {\n        [side]: reference[side] + reference[measurement] - popper[measurement],\n      },\n    };\n\n    data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n  }\n\n  return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  const refRect = data.offsets.reference;\n  const bound = find(\n    data.instance.modifiers,\n    modifier => modifier.name === 'preventOverflow'\n  ).boundaries;\n\n  if (\n    refRect.bottom < bound.top ||\n    refRect.left > bound.right ||\n    refRect.top > bound.bottom ||\n    refRect.right < bound.left\n  ) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function inner(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] =\n    reference[basePlacement] -\n    (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nexport default {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift,\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unit-less, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the `height`.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0,\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * A scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper. This makes sure the popper always has a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent',\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near each other\n   * without leaving any gap between the two. Especially useful when the arrow is\n   * enabled and you want to ensure that it points to its reference element.\n   * It cares only about the first axis. You can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether,\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjunction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]',\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations)\n     */\n    behavior: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position.\n     * The popper will never be placed outside of the defined boundaries\n     * (except if `keepTogether` is enabled)\n     */\n    boundariesElement: 'viewport',\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner,\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide,\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right',\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define your own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: undefined,\n  },\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n","import modifiers from '../modifiers/index';\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nexport default {\n  /**\n   * Popper's placement.\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Set this to true if you want popper to position it self in 'fixed' mode\n   * @prop {Boolean} positionFixed=false\n   */\n  positionFixed: false,\n\n  /**\n   * Whether events (resize, scroll) are initially enabled.\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: () => {},\n\n  /**\n   * Callback called when the popper is updated. This callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: () => {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js.\n   * @prop {modifiers}\n   */\n  modifiers,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","// @flow\n'use strict';\n\nvar key = '__global_unique_id__';\n\nmodule.exports = function() {\n  return global[key] = (global[key] || 0) + 1;\n};\n","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n  return function () {\n    return arg;\n  };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n  return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n  return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n  var printWarning = function printWarning(format) {\n    for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    var argIndex = 0;\n    var message = 'Warning: ' + format.replace(/%s/g, function () {\n      return args[argIndex++];\n    });\n    if (typeof console !== 'undefined') {\n      console.error(message);\n    }\n    try {\n      // --- Welcome to debugging React ---\n      // This error was thrown as a convenience so that you can use this stack\n      // to find the callsite that caused this warning to fire.\n      throw new Error(message);\n    } catch (x) {}\n  };\n\n  warning = function warning(condition, format) {\n    if (format === undefined) {\n      throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n    }\n\n    if (format.indexOf('Failed Composite propType: ') === 0) {\n      return; // Ignore CompositeComponent proptype check.\n    }\n\n    if (!condition) {\n      for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n        args[_key2 - 2] = arguments[_key2];\n      }\n\n      printWarning.apply(undefined, [format].concat(args));\n    }\n  };\n}\n\nmodule.exports = warning;","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _gud = require('gud');\n\nvar _gud2 = _interopRequireDefault(_gud);\n\nvar _warning = require('fbjs/lib/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n  if (x === y) {\n    return x !== 0 || 1 / x === 1 / y;\n  } else {\n    return x !== x && y !== y;\n  }\n}\n\nfunction createEventEmitter(value) {\n  var handlers = [];\n  return {\n    on: function on(handler) {\n      handlers.push(handler);\n    },\n    off: function off(handler) {\n      handlers = handlers.filter(function (h) {\n        return h !== handler;\n      });\n    },\n    get: function get() {\n      return value;\n    },\n    set: function set(newValue, changedBits) {\n      value = newValue;\n      handlers.forEach(function (handler) {\n        return handler(value, changedBits);\n      });\n    }\n  };\n}\n\nfunction onlyChild(children) {\n  return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n  var _Provider$childContex, _Consumer$contextType;\n\n  var contextProp = '__create-react-context-' + (0, _gud2.default)() + '__';\n\n  var Provider = function (_Component) {\n    _inherits(Provider, _Component);\n\n    function Provider() {\n      var _temp, _this, _ret;\n\n      _classCallCheck(this, Provider);\n\n      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.emitter = createEventEmitter(_this.props.value), _temp), _possibleConstructorReturn(_this, _ret);\n    }\n\n    Provider.prototype.getChildContext = function getChildContext() {\n      var _ref;\n\n      return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n    };\n\n    Provider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n      if (this.props.value !== nextProps.value) {\n        var oldValue = this.props.value;\n        var newValue = nextProps.value;\n        var changedBits = void 0;\n\n        if (objectIs(oldValue, newValue)) {\n          changedBits = 0; // No change\n        } else {\n          changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n          if (process.env.NODE_ENV !== 'production') {\n            (0, _warning2.default)((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);\n          }\n\n          changedBits |= 0;\n\n          if (changedBits !== 0) {\n            this.emitter.set(nextProps.value, changedBits);\n          }\n        }\n      }\n    };\n\n    Provider.prototype.render = function render() {\n      return this.props.children;\n    };\n\n    return Provider;\n  }(_react.Component);\n\n  Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = _propTypes2.default.object.isRequired, _Provider$childContex);\n\n  var Consumer = function (_Component2) {\n    _inherits(Consumer, _Component2);\n\n    function Consumer() {\n      var _temp2, _this2, _ret2;\n\n      _classCallCheck(this, Consumer);\n\n      for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n\n      return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, _Component2.call.apply(_Component2, [this].concat(args))), _this2), _this2.state = {\n        value: _this2.getValue()\n      }, _this2.onUpdate = function (newValue, changedBits) {\n        var observedBits = _this2.observedBits | 0;\n        if ((observedBits & changedBits) !== 0) {\n          _this2.setState({ value: _this2.getValue() });\n        }\n      }, _temp2), _possibleConstructorReturn(_this2, _ret2);\n    }\n\n    Consumer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n      var observedBits = nextProps.observedBits;\n\n      this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n      : observedBits;\n    };\n\n    Consumer.prototype.componentDidMount = function componentDidMount() {\n      if (this.context[contextProp]) {\n        this.context[contextProp].on(this.onUpdate);\n      }\n      var observedBits = this.props.observedBits;\n\n      this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n      : observedBits;\n    };\n\n    Consumer.prototype.componentWillUnmount = function componentWillUnmount() {\n      if (this.context[contextProp]) {\n        this.context[contextProp].off(this.onUpdate);\n      }\n    };\n\n    Consumer.prototype.getValue = function getValue() {\n      if (this.context[contextProp]) {\n        return this.context[contextProp].get();\n      } else {\n        return defaultValue;\n      }\n    };\n\n    Consumer.prototype.render = function render() {\n      return onlyChild(this.props.children)(this.state.value);\n    };\n\n    return Consumer;\n  }(_react.Component);\n\n  Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = _propTypes2.default.object, _Consumer$contextType);\n\n\n  return {\n    Provider: Provider,\n    Consumer: Consumer\n  };\n}\n\nexports.default = createReactContext;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _implementation = require('./implementation');\n\nvar _implementation2 = _interopRequireDefault(_implementation);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _react2.default.createContext || _implementation2.default;\nmodule.exports = exports['default'];","import _extends from \"babel-runtime/helpers/extends\";\nimport _classCallCheck from \"babel-runtime/helpers/classCallCheck\";\nimport _possibleConstructorReturn from \"babel-runtime/helpers/possibleConstructorReturn\";\nimport _inherits from \"babel-runtime/helpers/inherits\";\nimport * as React from \"react\";\nimport createContext from \"create-react-context\";\n\nexport var ManagerContext = createContext({ getReferenceRef: undefined, referenceNode: undefined });\n\nvar Manager = function (_React$Component) {\n  _inherits(Manager, _React$Component);\n\n  function Manager() {\n    _classCallCheck(this, Manager);\n\n    var _this = _possibleConstructorReturn(this, _React$Component.call(this));\n\n    _this.getReferenceRef = function (referenceNode) {\n      return _this.setState(function (_ref) {\n        var context = _ref.context;\n        return {\n          context: _extends({}, context, { referenceNode: referenceNode })\n        };\n      });\n    };\n\n    _this.state = {\n      context: {\n        getReferenceRef: _this.getReferenceRef,\n        referenceNode: undefined\n      }\n    };\n    return _this;\n  }\n\n  Manager.prototype.render = function render() {\n    return React.createElement(\n      ManagerContext.Provider,\n      { value: this.state.context },\n      this.props.children\n    );\n  };\n\n  return Manager;\n}(React.Component);\n\nexport default Manager;","\n\n/**\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/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\nexport var safeInvoke = function safeInvoke(fn) {\n  for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    args[_key - 1] = arguments[_key];\n  }\n\n  if (typeof fn === \"function\") {\n    return fn.apply(undefined, args);\n  }\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport PopperJS from 'popper.js';\n\nimport { ManagerContext } from './Manager';\nimport { safeInvoke, unwrapArray } from './utils';\n\nvar initialStyle = {\n  position: 'absolute',\n  top: 0,\n  left: 0,\n  opacity: 0,\n  pointerEvents: 'none'\n};\n\nvar initialArrowStyle = {};\n\nexport var InnerPopper = function (_React$Component) {\n  _inherits(InnerPopper, _React$Component);\n\n  function InnerPopper() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, InnerPopper);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n      data: undefined,\n      placement: undefined\n    }, _this.popperNode = null, _this.arrowNode = null, _this.setPopperNode = function (popperNode) {\n      if (_this.popperNode === popperNode) return;\n\n      safeInvoke(_this.props.innerRef, popperNode);\n      _this.popperNode = popperNode;\n\n      _this.updatePopperInstance();\n    }, _this.setArrowNode = function (arrowNode) {\n      if (_this.arrowNode === arrowNode) return;\n      _this.arrowNode = arrowNode;\n\n      if (!_this.popperInstance) _this.updatePopperInstance();\n    }, _this.updateStateModifier = {\n      enabled: true,\n      order: 900,\n      fn: function fn(data) {\n        var placement = data.placement;\n\n        _this.setState({ data: data, placement: placement }, placement !== _this.state.placement ? _this.scheduleUpdate : undefined);\n        return data;\n      }\n    }, _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: { enabled: false },\n          updateStateModifier: _this.updateStateModifier\n        })\n      };\n    }, _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    }, _this.getPopperPlacement = function () {\n      return !_this.state.data ? undefined : _this.state.placement;\n    }, _this.getArrowStyle = function () {\n      return !_this.arrowNode || !_this.state.data ? initialArrowStyle : _this.state.data.arrowStyles;\n    }, _this.getOutOfBoundariesState = function () {\n      return _this.state.data ? _this.state.data.hide : undefined;\n    }, _this.destroyPopperInstance = function () {\n      if (!_this.popperInstance) return;\n\n      _this.popperInstance.destroy();\n      _this.popperInstance = null;\n    }, _this.updatePopperInstance = function () {\n      _this.destroyPopperInstance();\n\n      var _this2 = _this,\n          popperNode = _this2.popperNode;\n      var referenceElement = _this.props.referenceElement;\n\n\n      if (!referenceElement || !popperNode) return;\n\n      _this.popperInstance = new PopperJS(referenceElement, popperNode, _this.getOptions());\n    }, _this.scheduleUpdate = function () {\n      if (_this.popperInstance) {\n        _this.popperInstance.scheduleUpdate();\n      }\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  InnerPopper.prototype.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) {\n      this.updatePopperInstance();\n    } else if (this.props.eventsEnabled !== prevProps.eventsEnabled && this.popperInstance) {\n      this.props.eventsEnabled ? this.popperInstance.enableEventListeners() : this.popperInstance.disableEventListeners();\n    }\n\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    if (prevState.placement !== this.state.placement) {\n      this.scheduleUpdate();\n    }\n  };\n\n  InnerPopper.prototype.componentWillUnmount = function componentWillUnmount() {\n    this.destroyPopperInstance();\n  };\n\n  InnerPopper.prototype.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\nInnerPopper.defaultProps = {\n  placement: 'bottom',\n  eventsEnabled: true,\n  referenceElement: undefined,\n  positionFixed: false\n};\nvar placements = PopperJS.placements;\nexport { placements };\n\nexport default function Popper(props) {\n  return React.createElement(\n    ManagerContext.Consumer,\n    null,\n    function (_ref) {\n      var referenceNode = _ref.referenceNode;\n      return React.createElement(InnerPopper, _extends({ referenceElement: referenceNode }, props));\n    }\n  );\n}","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n  warning = function(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    if (format === undefined) {\n      throw new Error(\n        '`warning(condition, format, ...args)` requires a warning ' +\n        'message argument'\n      );\n    }\n\n    if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n      throw new Error(\n        'The warning format should be able to uniquely identify this ' +\n        'warning. Please, use a more descriptive format than: ' + format\n      );\n    }\n\n    if (!condition) {\n      var argIndex = 0;\n      var message = 'Warning: ' +\n        format.replace(/%s/g, function() {\n          return args[argIndex++];\n        });\n      if (typeof console !== 'undefined') {\n        console.error(message);\n      }\n      try {\n        // This error was thrown as a convenience so that you can use this stack\n        // to find the callsite that caused this warning to fire.\n        throw new Error(message);\n      } catch(x) {}\n    }\n  };\n}\n\nmodule.exports = warning;\n","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport warning from 'warning';\nimport { ManagerContext } from './Manager';\nimport { safeInvoke, unwrapArray } from './utils';\n\nvar InnerReference = function (_React$Component) {\n  _inherits(InnerReference, _React$Component);\n\n  function InnerReference() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, InnerReference);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.refHandler = function (node) {\n      safeInvoke(_this.props.innerRef, node);\n      safeInvoke(_this.props.getReferenceRef, node);\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  InnerReference.prototype.render = function render() {\n    warning(this.props.getReferenceRef, '`Reference` should not be used outside of a `Manager` component.');\n    return unwrapArray(this.props.children)({ ref: this.refHandler });\n  };\n\n  return InnerReference;\n}(React.Component);\n\nexport default function Reference(props) {\n  return React.createElement(\n    ManagerContext.Consumer,\n    null,\n    function (_ref) {\n      var getReferenceRef = _ref.getReferenceRef;\n      return React.createElement(InnerReference, _extends({ getReferenceRef: getReferenceRef }, props));\n    }\n  );\n}","\n\n// Public components\nimport Popper, { placements } from './Popper';\nimport Manager from './Manager';\nimport Reference from './Reference';\nexport { Popper, placements, Manager, Reference };\n\n// Public types","function _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\n\nmodule.exports = _interopRequireDefault;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n  if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n  if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n  return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n  if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n  // Call this.constructor.gDSFP to support sub-classes.\n  var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\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  }\n  // Binding \"this\" is important for shallow renderer support.\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(\n      prevProps,\n      prevState\n    );\n  } finally {\n    this.props = prevProps;\n    this.state = prevState;\n  }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\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 (\n    typeof Component.getDerivedStateFromProps !== 'function' &&\n    typeof prototype.getSnapshotBeforeUpdate !== 'function'\n  ) {\n    return Component;\n  }\n\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  var foundWillMountName = null;\n  var foundWillReceivePropsName = null;\n  var foundWillUpdateName = null;\n  if (typeof prototype.componentWillMount === 'function') {\n    foundWillMountName = 'componentWillMount';\n  } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n    foundWillMountName = 'UNSAFE_componentWillMount';\n  }\n  if (typeof prototype.componentWillReceiveProps === 'function') {\n    foundWillReceivePropsName = 'componentWillReceiveProps';\n  } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n    foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n  }\n  if (typeof prototype.componentWillUpdate === 'function') {\n    foundWillUpdateName = 'componentWillUpdate';\n  } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n    foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n  }\n  if (\n    foundWillMountName !== null ||\n    foundWillReceivePropsName !== null ||\n    foundWillUpdateName !== null\n  ) {\n    var componentName = Component.displayName || Component.name;\n    var newApiName =\n      typeof Component.getDerivedStateFromProps === 'function'\n        ? 'getDerivedStateFromProps()'\n        : 'getSnapshotBeforeUpdate()';\n\n    throw Error(\n      'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n        componentName +\n        ' uses ' +\n        newApiName +\n        ' but also contains the following legacy lifecycles:' +\n        (foundWillMountName !== null ? '\\n  ' + foundWillMountName : '') +\n        (foundWillReceivePropsName !== null\n          ? '\\n  ' + foundWillReceivePropsName\n          : '') +\n        (foundWillUpdateName !== null ? '\\n  ' + foundWillUpdateName : '') +\n        '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n        'https://fb.me/react-async-component-lifecycle-hooks'\n    );\n  }\n\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  if (typeof Component.getDerivedStateFromProps === 'function') {\n    prototype.componentWillMount = componentWillMount;\n    prototype.componentWillReceiveProps = componentWillReceiveProps;\n  }\n\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  if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n    if (typeof prototype.componentDidUpdate !== 'function') {\n      throw new Error(\n        'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n      );\n    }\n\n    prototype.componentWillUpdate = componentWillUpdate;\n\n    var componentDidUpdate = prototype.componentDidUpdate;\n\n    prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n      prevProps,\n      prevState,\n      maybeSnapshot\n    ) {\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\n        ? this.__reactInternalSnapshot\n        : maybeSnapshot;\n\n      componentDidUpdate.call(this, prevProps, prevState, snapshot);\n    };\n  }\n\n  return Component;\n}\n\nexport { polyfill };\n","\"use strict\";\n\nexports.__esModule = true;\nexports.transitionTimeout = transitionTimeout;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction transitionTimeout(transitionType) {\n  var timeoutPropName = 'transition' + transitionType + 'Timeout';\n  var enabledPropName = 'transition' + transitionType;\n  return function (props) {\n    // If the transition is enabled\n    if (props[enabledPropName]) {\n      // If no timeout duration is provided\n      if (props[timeoutPropName] == null) {\n        return new Error(timeoutPropName + ' wasn\\'t supplied to CSSTransitionGroup: ' + 'this can cause unreliable animations and won\\'t be supported in ' + 'a future version of React. See ' + 'https://fb.me/react-animation-transition-group-timeout for more ' + 'information.'); // If the duration isn't a number\n      } else if (typeof props[timeoutPropName] !== 'number') {\n        return new Error(timeoutPropName + ' must be a number (in milliseconds)');\n      }\n    }\n\n    return null;\n  };\n}\n\nvar timeoutsShape = _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n  enter: _propTypes.default.number,\n  exit: _propTypes.default.number\n}).isRequired]);\n\nexports.timeoutsShape = timeoutsShape;\n\nvar classNamesShape = _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n  enter: _propTypes.default.string,\n  exit: _propTypes.default.string,\n  active: _propTypes.default.string\n}), _propTypes.default.shape({\n  enter: _propTypes.default.string,\n  enterDone: _propTypes.default.string,\n  enterActive: _propTypes.default.string,\n  exit: _propTypes.default.string,\n  exitDone: _propTypes.default.string,\n  exitActive: _propTypes.default.string\n})]);\n\nexports.classNamesShape = classNamesShape;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the components.\n * It's up to you to give meaning and effect to those states. For example we can\n * add styles to a component when it enters or exits:\n *\n * ```jsx\n * import Transition from 'react-transition-group/Transition';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n *   transition: `opacity ${duration}ms ease-in-out`,\n *   opacity: 0,\n * }\n *\n * const transitionStyles = {\n *   entering: { opacity: 0 },\n *   entered:  { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n *   <Transition in={inProp} timeout={duration}>\n *     {(state) => (\n *       <div style={{\n *         ...defaultStyle,\n *         ...transitionStyles[state]\n *       }}>\n *         I'm a fade Transition!\n *       </div>\n *     )}\n *   </Transition>\n * );\n * ```\n *\n * As noted the `Transition` component doesn't _do_ anything by itself to its child component.\n * What it does do is track transition states over time so you can update the\n * component (such as by adding styles or classes) when it changes states.\n *\n * There are 4 main states a Transition can be in:\n *  - `'entering'`\n *  - `'entered'`\n *  - `'exiting'`\n *  - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component begins the\n * \"Enter\" stage. During this stage, the component will shift from its current transition state,\n * to `'entering'` for the duration of the transition and then to the `'entered'` stage once\n * it's complete. Let's take the following example:\n *\n * ```jsx\n * state = { in: false };\n *\n * toggleEnterState = () => {\n *   this.setState({ in: true });\n * }\n *\n * render() {\n *   return (\n *     <div>\n *       <Transition in={this.state.in} timeout={500} />\n *       <button onClick={this.toggleEnterState}>Click to Enter</button>\n *     </div>\n *   );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state and\n * stay there for 500ms (the value of `timeout`) before it finally switches to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from `'exiting'` to `'exited'`.\n *\n * ## Timing\n *\n * Timing is often the trickiest part of animation, mistakes can result in slight delays\n * that are hard to pin down. A common example is when you want to add an exit transition,\n * you should set the desired final styles when the state is `'exiting'`. That's when the\n * transition to those styles will start and, if you matched the `timeout` prop with the\n * CSS Transition duration, it will end exactly when the state changes to `'exited'`.\n *\n * > **Note**: For simpler transitions the `Transition` component might be enough, but\n * > take into account that it's platform-agnostic, while the `CSSTransition` component\n * > [forces reflows](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * > in order to make more complex transitions more predictable. For example, even though\n * > classes `example-enter` and `example-enter-active` are applied immediately one after\n * > another, you can still transition from one to the other because of the forced reflow\n * > (read [this issue](https://github.com/reactjs/react-transition-group/issues/159#issuecomment-322761171)\n * > for more info). Take this into account when choosing between `Transition` and\n * > `CSSTransition`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n  _inheritsLoose(Transition, _React$Component);\n\n  function Transition(props, context) {\n    var _this;\n\n    _this = _React$Component.call(this, props, context) || this;\n    var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n    var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n    var initialStatus;\n    _this.appearStatus = null;\n\n    if (props.in) {\n      if (appear) {\n        initialStatus = EXITED;\n        _this.appearStatus = ENTERING;\n      } else {\n        initialStatus = ENTERED;\n      }\n    } else {\n      if (props.unmountOnExit || props.mountOnEnter) {\n        initialStatus = UNMOUNTED;\n      } else {\n        initialStatus = EXITED;\n      }\n    }\n\n    _this.state = {\n      status: initialStatus\n    };\n    _this.nextCallback = null;\n    return _this;\n  }\n\n  var _proto = Transition.prototype;\n\n  _proto.getChildContext = function getChildContext() {\n    return {\n      transitionGroup: null // allows for nested Transitions\n\n    };\n  };\n\n  Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n    var nextIn = _ref.in;\n\n    if (nextIn && prevState.status === UNMOUNTED) {\n      return {\n        status: EXITED\n      };\n    }\n\n    return null;\n  }; // getSnapshotBeforeUpdate(prevProps) {\n  //   let nextStatus = null\n  //   if (prevProps !== this.props) {\n  //     const { status } = this.state\n  //     if (this.props.in) {\n  //       if (status !== ENTERING && status !== ENTERED) {\n  //         nextStatus = ENTERING\n  //       }\n  //     } else {\n  //       if (status === ENTERING || status === ENTERED) {\n  //         nextStatus = EXITING\n  //       }\n  //     }\n  //   }\n  //   return { nextStatus }\n  // }\n\n\n  _proto.componentDidMount = function componentDidMount() {\n    this.updateStatus(true, this.appearStatus);\n  };\n\n  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n    var nextStatus = null;\n\n    if (prevProps !== this.props) {\n      var status = this.state.status;\n\n      if (this.props.in) {\n        if (status !== ENTERING && status !== ENTERED) {\n          nextStatus = ENTERING;\n        }\n      } else {\n        if (status === ENTERING || status === ENTERED) {\n          nextStatus = EXITING;\n        }\n      }\n    }\n\n    this.updateStatus(false, nextStatus);\n  };\n\n  _proto.componentWillUnmount = function componentWillUnmount() {\n    this.cancelNextCallback();\n  };\n\n  _proto.getTimeouts = function getTimeouts() {\n    var timeout = this.props.timeout;\n    var exit, enter, appear;\n    exit = enter = appear = timeout;\n\n    if (timeout != null && typeof timeout !== 'number') {\n      exit = timeout.exit;\n      enter = timeout.enter;\n      appear = timeout.appear;\n    }\n\n    return {\n      exit: exit,\n      enter: enter,\n      appear: appear\n    };\n  };\n\n  _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n    if (mounting === void 0) {\n      mounting = false;\n    }\n\n    if (nextStatus !== null) {\n      // nextStatus will always be ENTERING or EXITING.\n      this.cancelNextCallback();\n\n      var node = _reactDom.default.findDOMNode(this);\n\n      if (nextStatus === ENTERING) {\n        this.performEnter(node, mounting);\n      } else {\n        this.performExit(node);\n      }\n    } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n      this.setState({\n        status: UNMOUNTED\n      });\n    }\n  };\n\n  _proto.performEnter = function performEnter(node, mounting) {\n    var _this2 = this;\n\n    var enter = this.props.enter;\n    var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n    var timeouts = this.getTimeouts(); // no enter animation skip right to ENTERED\n    // if we are mounting and running this it means appear _must_ be set\n\n    if (!mounting && !enter) {\n      this.safeSetState({\n        status: ENTERED\n      }, function () {\n        _this2.props.onEntered(node);\n      });\n      return;\n    }\n\n    this.props.onEnter(node, appearing);\n    this.safeSetState({\n      status: ENTERING\n    }, function () {\n      _this2.props.onEntering(node, appearing); // FIXME: appear timeout?\n\n\n      _this2.onTransitionEnd(node, timeouts.enter, function () {\n        _this2.safeSetState({\n          status: ENTERED\n        }, function () {\n          _this2.props.onEntered(node, appearing);\n        });\n      });\n    });\n  };\n\n  _proto.performExit = function performExit(node) {\n    var _this3 = this;\n\n    var exit = this.props.exit;\n    var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n    if (!exit) {\n      this.safeSetState({\n        status: EXITED\n      }, function () {\n        _this3.props.onExited(node);\n      });\n      return;\n    }\n\n    this.props.onExit(node);\n    this.safeSetState({\n      status: EXITING\n    }, function () {\n      _this3.props.onExiting(node);\n\n      _this3.onTransitionEnd(node, timeouts.exit, function () {\n        _this3.safeSetState({\n          status: EXITED\n        }, function () {\n          _this3.props.onExited(node);\n        });\n      });\n    });\n  };\n\n  _proto.cancelNextCallback = function cancelNextCallback() {\n    if (this.nextCallback !== null) {\n      this.nextCallback.cancel();\n      this.nextCallback = null;\n    }\n  };\n\n  _proto.safeSetState = function safeSetState(nextState, callback) {\n    // This shouldn't be necessary, but there are weird race conditions with\n    // setState callbacks and unmounting in testing, so always make sure that\n    // we can cancel any pending setState callbacks after we unmount.\n    callback = this.setNextCallback(callback);\n    this.setState(nextState, callback);\n  };\n\n  _proto.setNextCallback = function setNextCallback(callback) {\n    var _this4 = this;\n\n    var active = true;\n\n    this.nextCallback = function (event) {\n      if (active) {\n        active = false;\n        _this4.nextCallback = null;\n        callback(event);\n      }\n    };\n\n    this.nextCallback.cancel = function () {\n      active = false;\n    };\n\n    return this.nextCallback;\n  };\n\n  _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n    this.setNextCallback(handler);\n\n    if (node) {\n      if (this.props.addEndListener) {\n        this.props.addEndListener(node, this.nextCallback);\n      }\n\n      if (timeout != null) {\n        setTimeout(this.nextCallback, timeout);\n      }\n    } else {\n      setTimeout(this.nextCallback, 0);\n    }\n  };\n\n  _proto.render = function render() {\n    var status = this.state.status;\n\n    if (status === UNMOUNTED) {\n      return null;\n    }\n\n    var _this$props = this.props,\n        children = _this$props.children,\n        childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n    delete childProps.in;\n    delete childProps.mountOnEnter;\n    delete childProps.unmountOnExit;\n    delete childProps.appear;\n    delete childProps.enter;\n    delete childProps.exit;\n    delete childProps.timeout;\n    delete childProps.addEndListener;\n    delete childProps.onEnter;\n    delete childProps.onEntering;\n    delete childProps.onEntered;\n    delete childProps.onExit;\n    delete childProps.onExiting;\n    delete childProps.onExited;\n\n    if (typeof children === 'function') {\n      return children(status, childProps);\n    }\n\n    var child = _react.default.Children.only(children);\n\n    return _react.default.cloneElement(child, childProps);\n  };\n\n  return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n  transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n  transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * A `function` child can be used instead of a React element.\n   * This function is called with the current transition status\n   * ('entering', 'entered', 'exiting', 'exited', 'unmounted'), which can be used\n   * to apply context specific props to a component.\n   *\n   * ```jsx\n   * <Transition timeout={150}>\n   *   {(status) => (\n   *     <MyComponent className={`fade fade-${status}`} />\n   *   )}\n   * </Transition>\n   * ```\n   */\n  children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n  /**\n   * Show the component; triggers the enter or exit states\n   */\n  in: PropTypes.bool,\n\n  /**\n   * By default the child component is mounted immediately along with\n   * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n   * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n   * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n   */\n  mountOnEnter: PropTypes.bool,\n\n  /**\n   * By default the child component stays mounted after it reaches the `'exited'` state.\n   * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n   */\n  unmountOnExit: PropTypes.bool,\n\n  /**\n   * Normally a component is not transitioned if it is shown when the `<Transition>` component mounts.\n   * If you want to transition on the first mount set `appear` to `true`, and the\n   * component will transition in as soon as the `<Transition>` mounts.\n   *\n   * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n   */\n  appear: PropTypes.bool,\n\n  /**\n   * Enable or disable enter transitions.\n   */\n  enter: PropTypes.bool,\n\n  /**\n   * Enable or disable exit transitions.\n   */\n  exit: PropTypes.bool,\n\n  /**\n   * The duration of the transition, in milliseconds.\n   * Required unless `addEndListener` is provided\n   *\n   * You may specify a single timeout for all transitions like: `timeout={500}`,\n   * or individually like:\n   *\n   * ```jsx\n   * timeout={{\n   *  enter: 300,\n   *  exit: 500,\n   * }}\n   * ```\n   *\n   * @type {number | { enter?: number, exit?: number }}\n   */\n  timeout: function timeout(props) {\n    var pt = process.env.NODE_ENV !== \"production\" ? _PropTypes.timeoutsShape : {};;\n    if (!props.addEndListener) pt = pt.isRequired;\n\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    return pt.apply(void 0, [props].concat(args));\n  },\n\n  /**\n   * Add a custom transition end trigger. Called with the transitioning\n   * DOM node and a `done` callback. Allows for more fine grained transition end\n   * logic. **Note:** Timeouts are still used as a fallback if provided.\n   *\n   * ```jsx\n   * addEndListener={(node, done) => {\n   *   // use the css transitionend event to mark the finish of a transition\n   *   node.addEventListener('transitionend', done, false);\n   * }}\n   * ```\n   */\n  addEndListener: PropTypes.func,\n\n  /**\n   * Callback fired before the \"entering\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool) -> void\n   */\n  onEnter: PropTypes.func,\n\n  /**\n   * Callback fired after the \"entering\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool)\n   */\n  onEntering: PropTypes.func,\n\n  /**\n   * Callback fired after the \"entered\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool) -> void\n   */\n  onEntered: PropTypes.func,\n\n  /**\n   * Callback fired before the \"exiting\" status is applied.\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExit: PropTypes.func,\n\n  /**\n   * Callback fired after the \"exiting\" status is applied.\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExiting: PropTypes.func,\n\n  /**\n   * Callback fired after the \"exited\" status is applied.\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n  in: false,\n  mountOnEnter: false,\n  unmountOnExit: false,\n  appear: false,\n  enter: true,\n  exit: true,\n  onEnter: noop,\n  onEntering: noop,\n  onEntered: noop,\n  onExit: noop,\n  onExiting: noop,\n  onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _addClass = _interopRequireDefault(require(\"dom-helpers/class/addClass\"));\n\nvar _removeClass = _interopRequireDefault(require(\"dom-helpers/class/removeClass\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar addClass = function addClass(node, classes) {\n  return node && classes && classes.split(' ').forEach(function (c) {\n    return (0, _addClass.default)(node, c);\n  });\n};\n\nvar removeClass = function removeClass(node, classes) {\n  return node && classes && classes.split(' ').forEach(function (c) {\n    return (0, _removeClass.default)(node, c);\n  });\n};\n\nvar propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, _Transition.default.propTypes, {\n  /**\n   * The animation classNames applied to the component as it enters, exits or has finished the transition.\n   * A single name can be provided and it will be suffixed for each stage: e.g.\n   *\n   * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`, `fade-enter-done`,\n   * `fade-exit`, `fade-exit-active`, `fade-exit-done`, `fade-appear`, and `fade-appear-active`.\n   * Each individual classNames can also be specified independently like:\n   *\n   * ```js\n   * classNames={{\n   *  appear: 'my-appear',\n   *  appearActive: 'my-active-appear',\n   *  enter: 'my-enter',\n   *  enterActive: 'my-active-enter',\n   *  enterDone: 'my-done-enter',\n   *  exit: 'my-exit',\n   *  exitActive: 'my-active-exit',\n   *  exitDone: 'my-done-exit',\n   * }}\n   * ```\n   *\n   * If you want to set these classes using CSS Modules:\n   *\n   * ```js\n   * import styles from './styles.css';\n   * ```\n   *\n   * you might want to use camelCase in your CSS file, that way could simply spread\n   * them instead of listing them one by one:\n   *\n   * ```js\n   * classNames={{ ...styles }}\n   * ```\n   *\n   * @type {string | {\n   *  appear?: string,\n   *  appearActive?: string,\n   *  enter?: string,\n   *  enterActive?: string,\n   *  enterDone?: string,\n   *  exit?: string,\n   *  exitActive?: string,\n   *  exitDone?: string,\n   * }}\n   */\n  classNames: _PropTypes.classNamesShape,\n\n  /**\n   * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is\n   * applied.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool)\n   */\n  onEnter: PropTypes.func,\n\n  /**\n   * A `<Transition>` callback fired immediately after the 'enter-active' or\n   * 'appear-active' class is applied.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool)\n   */\n  onEntering: PropTypes.func,\n\n  /**\n   * A `<Transition>` callback fired immediately after the 'enter' or\n   * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool)\n   */\n  onEntered: PropTypes.func,\n\n  /**\n   * A `<Transition>` callback fired immediately after the 'exit' class is\n   * applied.\n   *\n   * @type Function(node: HtmlElement)\n   */\n  onExit: PropTypes.func,\n\n  /**\n   * A `<Transition>` callback fired immediately after the 'exit-active' is applied.\n   *\n   * @type Function(node: HtmlElement\n   */\n  onExiting: PropTypes.func,\n\n  /**\n   * A `<Transition>` callback fired immediately after the 'exit' classes\n   * are **removed** and the `exit-done` class is added to the DOM node.\n   *\n   * @type Function(node: HtmlElement)\n   */\n  onExited: PropTypes.func\n}) : {};;\n/**\n * A `Transition` component using CSS transitions and animations.\n * It's inspired by the excellent [ng-animate](http://www.nganimate.org/) library.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` stages of the transition. The first class is applied and then a\n * second \"active\" class in order to activate the css animation. After the animation,\n * matching `done` class names are applied to persist the animation state.\n *\n * When the `in` prop is toggled to `true` the Component will get\n * the `example-enter` CSS class and the `example-enter-active` CSS class\n * added in the next tick. This is a convention based on the `classNames` prop.\n */\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n  _inheritsLoose(CSSTransition, _React$Component);\n\n  function CSSTransition() {\n    var _this;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n    _this.onEnter = function (node, appearing) {\n      var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n          className = _this$getClassNames.className;\n\n      _this.removeClasses(node, 'exit');\n\n      addClass(node, className);\n\n      if (_this.props.onEnter) {\n        _this.props.onEnter(node);\n      }\n    };\n\n    _this.onEntering = function (node, appearing) {\n      var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n          activeClassName = _this$getClassNames2.activeClassName;\n\n      _this.reflowAndAddClass(node, activeClassName);\n\n      if (_this.props.onEntering) {\n        _this.props.onEntering(node);\n      }\n    };\n\n    _this.onEntered = function (node, appearing) {\n      var _this$getClassNames3 = _this.getClassNames('enter'),\n          doneClassName = _this$getClassNames3.doneClassName;\n\n      _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n      addClass(node, doneClassName);\n\n      if (_this.props.onEntered) {\n        _this.props.onEntered(node);\n      }\n    };\n\n    _this.onExit = function (node) {\n      var _this$getClassNames4 = _this.getClassNames('exit'),\n          className = _this$getClassNames4.className;\n\n      _this.removeClasses(node, 'appear');\n\n      _this.removeClasses(node, 'enter');\n\n      addClass(node, className);\n\n      if (_this.props.onExit) {\n        _this.props.onExit(node);\n      }\n    };\n\n    _this.onExiting = function (node) {\n      var _this$getClassNames5 = _this.getClassNames('exit'),\n          activeClassName = _this$getClassNames5.activeClassName;\n\n      _this.reflowAndAddClass(node, activeClassName);\n\n      if (_this.props.onExiting) {\n        _this.props.onExiting(node);\n      }\n    };\n\n    _this.onExited = function (node) {\n      var _this$getClassNames6 = _this.getClassNames('exit'),\n          doneClassName = _this$getClassNames6.doneClassName;\n\n      _this.removeClasses(node, 'exit');\n\n      addClass(node, doneClassName);\n\n      if (_this.props.onExited) {\n        _this.props.onExited(node);\n      }\n    };\n\n    _this.getClassNames = function (type) {\n      var classNames = _this.props.classNames;\n      var className = typeof classNames !== 'string' ? classNames[type] : classNames + '-' + type;\n      var activeClassName = typeof classNames !== 'string' ? classNames[type + 'Active'] : className + '-active';\n      var doneClassName = typeof classNames !== 'string' ? classNames[type + 'Done'] : className + '-done';\n      return {\n        className: className,\n        activeClassName: activeClassName,\n        doneClassName: doneClassName\n      };\n    };\n\n    return _this;\n  }\n\n  var _proto = CSSTransition.prototype;\n\n  _proto.removeClasses = function removeClasses(node, type) {\n    var _this$getClassNames7 = this.getClassNames(type),\n        className = _this$getClassNames7.className,\n        activeClassName = _this$getClassNames7.activeClassName,\n        doneClassName = _this$getClassNames7.doneClassName;\n\n    className && removeClass(node, className);\n    activeClassName && removeClass(node, activeClassName);\n    doneClassName && removeClass(node, doneClassName);\n  };\n\n  _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n    // This is for to force a repaint,\n    // which is necessary in order to transition styles when adding a class name.\n    if (className) {\n      /* eslint-disable no-unused-expressions */\n      node && node.scrollTop;\n      /* eslint-enable no-unused-expressions */\n\n      addClass(node, className);\n    }\n  };\n\n  _proto.render = function render() {\n    var props = _extends({}, this.props);\n\n    delete props.classNames;\n    return _react.default.createElement(_Transition.default, _extends({}, props, {\n      onEnter: this.onEnter,\n      onEntered: this.onEntered,\n      onEntering: this.onEntering,\n      onExit: this.onExit,\n      onExiting: this.onExiting,\n      onExited: this.onExited\n    }));\n  };\n\n  return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? propTypes : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = require(\"react\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n  var mapper = function mapper(child) {\n    return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n  };\n\n  var result = Object.create(null);\n  if (children) _react.Children.map(children, function (c) {\n    return c;\n  }).forEach(function (child) {\n    // run the map function here instead so that the key is the computed one\n    result[child.key] = mapper(child);\n  });\n  return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n  prev = prev || {};\n  next = next || {};\n\n  function getValueForKey(key) {\n    return key in next ? next[key] : prev[key];\n  } // For each key of `next`, the list of keys to insert before that key in\n  // the combined list\n\n\n  var nextKeysPending = Object.create(null);\n  var pendingKeys = [];\n\n  for (var prevKey in prev) {\n    if (prevKey in next) {\n      if (pendingKeys.length) {\n        nextKeysPending[prevKey] = pendingKeys;\n        pendingKeys = [];\n      }\n    } else {\n      pendingKeys.push(prevKey);\n    }\n  }\n\n  var i;\n  var childMapping = {};\n\n  for (var nextKey in next) {\n    if (nextKeysPending[nextKey]) {\n      for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n        var pendingNextKey = nextKeysPending[nextKey][i];\n        childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n      }\n    }\n\n    childMapping[nextKey] = getValueForKey(nextKey);\n  } // Finally, add the keys which didn't appear before any key in `next`\n\n\n  for (i = 0; i < pendingKeys.length; i++) {\n    childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n  }\n\n  return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n  return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n  return getChildMapping(props.children, function (child) {\n    return (0, _react.cloneElement)(child, {\n      onExited: onExited.bind(null, child),\n      in: true,\n      appear: getProp(child, 'appear', props),\n      enter: getProp(child, 'enter', props),\n      exit: getProp(child, 'exit', props)\n    });\n  });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n  var nextChildMapping = getChildMapping(nextProps.children);\n  var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n  Object.keys(children).forEach(function (key) {\n    var child = children[key];\n    if (!(0, _react.isValidElement)(child)) return;\n    var hasPrev = key in prevChildMapping;\n    var hasNext = key in nextChildMapping;\n    var prevChild = prevChildMapping[key];\n    var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n    if (hasNext && (!hasPrev || isLeaving)) {\n      // console.log('entering', key)\n      children[key] = (0, _react.cloneElement)(child, {\n        onExited: onExited.bind(null, child),\n        in: true,\n        exit: getProp(child, 'exit', nextProps),\n        enter: getProp(child, 'enter', nextProps)\n      });\n    } else if (!hasNext && hasPrev && !isLeaving) {\n      // item is old (exiting)\n      // console.log('leaving', key)\n      children[key] = (0, _react.cloneElement)(child, {\n        in: false\n      });\n    } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n      // item hasn't changed transition states\n      // copy over the last transition props;\n      // console.log('unchanged', key)\n      children[key] = (0, _react.cloneElement)(child, {\n        onExited: onExited.bind(null, child),\n        in: prevChild.props.in,\n        exit: getProp(child, 'exit', nextProps),\n        enter: getProp(child, 'enter', nextProps)\n      });\n    }\n  });\n  return children;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n  return Object.keys(obj).map(function (k) {\n    return obj[k];\n  });\n};\n\nvar propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * `<TransitionGroup>` renders a `<div>` by default. You can change this\n   * behavior by providing a `component` prop.\n   * If you use React v16+ and would like to avoid a wrapping `<div>` element\n   * you can pass in `component={null}`. This is useful if the wrapping div\n   * borks your css styles.\n   */\n  component: _propTypes.default.any,\n\n  /**\n   * A set of `<Transition>` components, that are toggled `in` and out as they\n   * leave. the `<TransitionGroup>` will inject specific transition props, so\n   * remember to spread them through if you are wrapping the `<Transition>` as\n   * with our `<Fade>` example.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * A convenience prop that enables or disables appear animations\n   * for all children. Note that specifying this will override any defaults set\n   * on individual children Transitions.\n   */\n  appear: _propTypes.default.bool,\n\n  /**\n   * A convenience prop that enables or disables enter animations\n   * for all children. Note that specifying this will override any defaults set\n   * on individual children Transitions.\n   */\n  enter: _propTypes.default.bool,\n\n  /**\n   * A convenience prop that enables or disables exit animations\n   * for all children. Note that specifying this will override any defaults set\n   * on individual children Transitions.\n   */\n  exit: _propTypes.default.bool,\n\n  /**\n   * You may need to apply reactive updates to a child as it is exiting.\n   * This is generally done by using `cloneElement` however in the case of an exiting\n   * child the element has already been removed and not accessible to the consumer.\n   *\n   * If you do need to update a child as it leaves you can provide a `childFactory`\n   * to wrap every child, even the ones that are leaving.\n   *\n   * @type Function(child: ReactElement) -> ReactElement\n   */\n  childFactory: _propTypes.default.func\n} : {};;\nvar defaultProps = {\n  component: 'div',\n  childFactory: function childFactory(child) {\n    return child;\n  }\n  /**\n   * The `<TransitionGroup>` component manages a set of transition components\n   * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition\n   * components, `<TransitionGroup>` is a state machine for managing the mounting\n   * and unmounting of components over time.\n   *\n   * Consider the example below. As items are removed or added to the TodoList the\n   * `in` prop is toggled automatically by the `<TransitionGroup>`.\n   *\n   * Note that `<TransitionGroup>`  does not define any animation behavior!\n   * Exactly _how_ a list item animates is up to the individual transition\n   * component. This means you can mix and match animations across different list\n   * items.\n   */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n  _inheritsLoose(TransitionGroup, _React$Component);\n\n  function TransitionGroup(props, context) {\n    var _this;\n\n    _this = _React$Component.call(this, props, context) || this;\n\n    var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n    _this.state = {\n      handleExited: handleExited,\n      firstRender: true\n    };\n    return _this;\n  }\n\n  var _proto = TransitionGroup.prototype;\n\n  _proto.getChildContext = function getChildContext() {\n    return {\n      transitionGroup: {\n        isMounting: !this.appeared\n      }\n    };\n  };\n\n  _proto.componentDidMount = function componentDidMount() {\n    this.appeared = true;\n  };\n\n  TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n    var prevChildMapping = _ref.children,\n        handleExited = _ref.handleExited,\n        firstRender = _ref.firstRender;\n    return {\n      children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n      firstRender: false\n    };\n  };\n\n  _proto.handleExited = function handleExited(child, node) {\n    var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n    if (child.key in currentChildMapping) return;\n\n    if (child.props.onExited) {\n      child.props.onExited(node);\n    }\n\n    this.setState(function (state) {\n      var children = _extends({}, state.children);\n\n      delete children[child.key];\n      return {\n        children: children\n      };\n    });\n  };\n\n  _proto.render = function render() {\n    var _this$props = this.props,\n        Component = _this$props.component,\n        childFactory = _this$props.childFactory,\n        props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n    var children = values(this.state.children).map(childFactory);\n    delete props.appear;\n    delete props.enter;\n    delete props.exit;\n\n    if (Component === null) {\n      return children;\n    }\n\n    return _react.default.createElement(Component, props, children);\n  };\n\n  return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n  transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? propTypes : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar propTypes = process.env.NODE_ENV !== \"production\" ? {\n  in: _propTypes.default.bool.isRequired,\n  children: function children(props, propName) {\n    if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n    return null;\n  }\n} : {};;\n/**\n * The `<ReplaceTransition>` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * <ReplaceTransition in>\n *   <Fade><div>I appear first</div></Fade>\n *   <Fade><div>I replace the above</div></Fade>\n * </ReplaceTransition>\n * ```\n */\n\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n  _inheritsLoose(ReplaceTransition, _React$Component);\n\n  function ReplaceTransition() {\n    var _this;\n\n    for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n      _args[_key] = arguments[_key];\n    }\n\n    _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n    _this.handleEnter = function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n\n      return _this.handleLifecycle('onEnter', 0, args);\n    };\n\n    _this.handleEntering = function () {\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n\n      return _this.handleLifecycle('onEntering', 0, args);\n    };\n\n    _this.handleEntered = function () {\n      for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n        args[_key4] = arguments[_key4];\n      }\n\n      return _this.handleLifecycle('onEntered', 0, args);\n    };\n\n    _this.handleExit = function () {\n      for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n        args[_key5] = arguments[_key5];\n      }\n\n      return _this.handleLifecycle('onExit', 1, args);\n    };\n\n    _this.handleExiting = function () {\n      for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n        args[_key6] = arguments[_key6];\n      }\n\n      return _this.handleLifecycle('onExiting', 1, args);\n    };\n\n    _this.handleExited = function () {\n      for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n        args[_key7] = arguments[_key7];\n      }\n\n      return _this.handleLifecycle('onExited', 1, args);\n    };\n\n    return _this;\n  }\n\n  var _proto = ReplaceTransition.prototype;\n\n  _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n    var _child$props;\n\n    var children = this.props.children;\n\n    var child = _react.default.Children.toArray(children)[idx];\n\n    if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n    if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));\n  };\n\n  _proto.render = function render() {\n    var _this$props = this.props,\n        children = _this$props.children,\n        inProp = _this$props.in,\n        props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n    var _React$Children$toArr = _react.default.Children.toArray(children),\n        first = _React$Children$toArr[0],\n        second = _React$Children$toArr[1];\n\n    delete props.onEnter;\n    delete props.onEntering;\n    delete props.onEntered;\n    delete props.onExit;\n    delete props.onExiting;\n    delete props.onExited;\n    return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n      key: 'first',\n      onEnter: this.handleEnter,\n      onEntering: this.handleEntering,\n      onEntered: this.handleEntered\n    }) : _react.default.cloneElement(second, {\n      key: 'second',\n      onEnter: this.handleExit,\n      onEntering: this.handleExiting,\n      onEntered: this.handleExited\n    }));\n  };\n\n  return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? propTypes : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n  Transition: _Transition.default,\n  TransitionGroup: _TransitionGroup.default,\n  ReplaceTransition: _ReplaceTransition.default,\n  CSSTransition: _CSSTransition.default\n};","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport { ValidationMap } from \"prop-types\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\n\nimport * as Classes from \"../../common/classes\";\nimport * as Errors from \"../../common/errors\";\nimport { DISPLAYNAME_PREFIX, IProps } from \"../../common/props\";\nimport { isFunction } from \"../../common/utils\";\n\n/** Detect if `React.createPortal()` API method does not exist. */\nconst cannotCreatePortal = !isFunction(ReactDOM.createPortal);\n\nexport interface IPortalProps extends IProps {\n    /**\n     * Callback invoked when the children of this `Portal` have been added to the DOM.\n     */\n    onChildrenMount?: () => void;\n\n    /**\n     * The HTML element that children will be mounted to.\n     * @default document.body\n     */\n    container?: HTMLElement;\n}\n\nexport interface IPortalState {\n    hasMounted: boolean;\n}\n\nexport interface IPortalContext {\n    /** Additional CSS classes to add to all `Portal` elements in this React context. */\n    blueprintPortalClassName?: string;\n}\n\nconst REACT_CONTEXT_TYPES: ValidationMap<IPortalContext> = {\n    blueprintPortalClassName: (obj: IPortalContext, key: keyof IPortalContext) => {\n        if (obj[key] != null && typeof obj[key] !== \"string\") {\n            return new Error(Errors.PORTAL_CONTEXT_CLASS_NAME_STRING);\n        }\n        return undefined;\n    },\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 */\nexport class Portal extends React.Component<IPortalProps, IPortalState> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Portal`;\n    public static contextTypes = REACT_CONTEXT_TYPES;\n    public static defaultProps: IPortalProps = {\n        container: typeof document !== \"undefined\" ? document.body : null,\n    };\n\n    public context: IPortalContext;\n    public state: IPortalState = { hasMounted: false };\n\n    private portalElement: HTMLElement;\n\n    public render() {\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) {\n            return null;\n        } else {\n            return ReactDOM.createPortal(this.props.children, this.portalElement);\n        }\n    }\n\n    public componentDidMount() {\n        if (!this.props.container) {\n            return;\n        }\n        this.portalElement = this.createContainerElement();\n        this.props.container.appendChild(this.portalElement);\n        this.setState({ hasMounted: true }, this.props.onChildrenMount);\n        if (cannotCreatePortal) {\n            this.unstableRenderNoPortal();\n        }\n    }\n\n    public componentDidUpdate(prevProps: IPortalProps) {\n        // update className prop on portal DOM element\n        if (this.portalElement != null && prevProps.className !== this.props.className) {\n            this.portalElement.classList.remove(prevProps.className);\n            maybeAddClass(this.portalElement.classList, this.props.className);\n        }\n        if (cannotCreatePortal) {\n            this.unstableRenderNoPortal();\n        }\n    }\n\n    public componentWillUnmount() {\n        if (this.portalElement != null) {\n            if (cannotCreatePortal) {\n                ReactDOM.unmountComponentAtNode(this.portalElement);\n            }\n            this.portalElement.remove();\n        }\n    }\n\n    private createContainerElement() {\n        const container = document.createElement(\"div\");\n        container.classList.add(Classes.PORTAL);\n        maybeAddClass(container.classList, this.props.className);\n        if (this.context != null) {\n            maybeAddClass(container.classList, this.context.blueprintPortalClassName);\n        }\n        return container;\n    }\n\n    private unstableRenderNoPortal() {\n        ReactDOM.unstable_renderSubtreeIntoContainer(\n            /* parentComponent */ this,\n            <div>{this.props.children}</div>,\n            this.portalElement,\n        );\n    }\n}\n\nfunction maybeAddClass(classList: DOMTokenList, className?: string) {\n    if (className != null && className !== \"\") {\n        classList.add(...className.split(\" \"));\n    }\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { CSSTransition, TransitionGroup } from \"react-transition-group\";\n\nimport { findDOMNode } from \"react-dom\";\nimport * as Classes from \"../../common/classes\";\nimport * as Keys from \"../../common/keys\";\nimport { DISPLAYNAME_PREFIX, IProps } from \"../../common/props\";\nimport { safeInvoke } from \"../../common/utils\";\nimport { Portal } from \"../portal/portal\";\n\nexport interface IOverlayableProps extends IOverlayLifecycleProps {\n    /**\n     * Whether the overlay should acquire application focus when it first opens.\n     * @default true\n     */\n    autoFocus?: boolean;\n\n    /**\n     * Whether pressing the `esc` key should invoke `onClose`.\n     * @default true\n     */\n    canEscapeKeyClose?: boolean;\n\n    /**\n     * Whether the overlay should prevent focus from leaving itself. That is, if the user attempts\n     * to focus an element outside the overlay and this prop is enabled, then the overlay will\n     * immediately bring focus back to itself. If you are nesting overlay components, either disable\n     * this prop on the \"outermost\" overlays or mark the nested ones `usePortal={false}`.\n     * @default true\n     */\n    enforceFocus?: boolean;\n\n    /**\n     * If `true` and `usePortal={true}`, the `Portal` containing the children is created and attached\n     * to the DOM when the overlay is opened for the first time; otherwise this happens when the\n     * component mounts. Lazy mounting provides noticeable performance improvements if you have lots\n     * of overlays at once, such as on each row of a table.\n     * @default true\n     */\n    lazy?: boolean;\n\n    /**\n     * Indicates how long (in milliseconds) the overlay's enter/leave transition takes.\n     * This is used by React `CSSTransition` to know when a transition completes and must match\n     * the duration of the animation in CSS. Only set this prop if you override Blueprint's default\n     * transitions with new transitions of a different length.\n     * @default 100\n     */\n    transitionDuration?: number;\n\n    /**\n     * Whether the overlay should be wrapped in a `Portal`, which renders its contents in a new\n     * element attached to `portalContainer` prop.\n     *\n     * This prop essentially determines which element is covered by the backdrop: if `false`,\n     * then only its parent is covered; otherwise, the entire page is covered (because the parent\n     * of the `Portal` is the `<body>` itself).\n     *\n     * Set this prop to `false` on nested overlays (such as `Dialog` or `Popover`) to ensure that they\n     * are rendered above their parents.\n     * @default true\n     */\n    usePortal?: boolean;\n\n    /**\n     * The container element into which the overlay renders its contents, when `usePortal` is `true`.\n     * This prop is ignored if `usePortal` is `false`.\n     * @default document.body\n     */\n    portalContainer?: HTMLElement;\n\n    /**\n     * A callback that is invoked when user interaction causes the overlay to close, such as\n     * clicking on the overlay or pressing the `esc` key (if enabled).\n     *\n     * Receives the event from the user's interaction, if there was an event (generally either a\n     * mouse or key event). Note that, since this component is controlled by the `isOpen` prop, it\n     * will not actually close itself until that prop becomes `false`.\n     */\n    onClose?: (event?: React.SyntheticEvent<HTMLElement>) => void;\n}\n\nexport interface IOverlayLifecycleProps {\n    /**\n     * Lifecycle method invoked just before the CSS _close_ transition begins on\n     * a child. Receives the DOM element of the child being closed.\n     */\n    onClosing?: (node: HTMLElement) => void;\n\n    /**\n     * Lifecycle method invoked just after the CSS _close_ transition ends but\n     * before the child has been removed from the DOM. Receives the DOM element\n     * of the child being closed.\n     */\n    onClosed?: (node: HTMLElement) => void;\n\n    /**\n     * Lifecycle method invoked just after mounting the child in the DOM but\n     * just before the CSS _open_ transition begins. Receives the DOM element of\n     * the child being opened.\n     */\n    onOpening?: (node: HTMLElement) => void;\n\n    /**\n     * Lifecycle method invoked just after the CSS _open_ transition ends.\n     * Receives the DOM element of the child being opened.\n     */\n    onOpened?: (node: HTMLElement) => void;\n}\n\nexport interface IBackdropProps {\n    /** CSS class names to apply to backdrop element. */\n    backdropClassName?: string;\n\n    /** HTML props for the backdrop element. */\n    backdropProps?: React.HTMLProps<HTMLDivElement>;\n\n    /**\n     * Whether clicking outside the overlay element (either on backdrop when present or on document)\n     * should invoke `onClose`.\n     * @default true\n     */\n    canOutsideClickClose?: boolean;\n\n    /**\n     * Whether a container-spanning backdrop element should be rendered behind the contents.\n     * @default true\n     */\n    hasBackdrop?: boolean;\n}\n\nexport interface IOverlayProps extends IOverlayableProps, IBackdropProps, IProps {\n    /**\n     * Toggles the visibility of the overlay and its children.\n     * This prop is required because the component is controlled.\n     */\n    isOpen: boolean;\n\n    /**\n     * Name of the transition for internal `CSSTransition`.\n     * Providing your own name here will require defining new CSS transition properties.\n     * @default Classes.OVERLAY\n     */\n    transitionName?: string;\n}\n\nexport interface IOverlayState {\n    hasEverOpened?: boolean;\n}\n\nexport class Overlay extends React.PureComponent<IOverlayProps, IOverlayState> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Overlay`;\n\n    public static defaultProps: IOverlayProps = {\n        autoFocus: true,\n        backdropProps: {},\n        canEscapeKeyClose: true,\n        canOutsideClickClose: true,\n        enforceFocus: true,\n        hasBackdrop: true,\n        isOpen: false,\n        lazy: true,\n        transitionDuration: 300,\n        transitionName: Classes.OVERLAY,\n        usePortal: true,\n    };\n\n    private static openStack: Overlay[] = [];\n    private static getLastOpened = () => Overlay.openStack[Overlay.openStack.length - 1];\n\n    // an HTMLElement that contains the backdrop and any children, to query for focus target\n    public containerElement: HTMLElement;\n    private refHandlers = {\n        container: (ref: React.ReactInstance) => (this.containerElement = findDOMNode(ref) as HTMLElement),\n    };\n\n    public constructor(props?: IOverlayProps, context?: any) {\n        super(props, context);\n        this.state = { hasEverOpened: props.isOpen };\n    }\n\n    public render() {\n        // oh snap! no reason to render anything at all if we're being truly lazy\n        if (this.props.lazy && !this.state.hasEverOpened) {\n            return null;\n        }\n\n        const { children, className, usePortal, portalContainer, isOpen } = this.props;\n\n        // 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        const childrenWithTransitions = isOpen ? React.Children.map(children, this.maybeRenderChild) : [];\n        childrenWithTransitions.unshift(this.maybeRenderBackdrop());\n\n        const containerClasses = classNames(\n            Classes.OVERLAY,\n            {\n                [Classes.OVERLAY_OPEN]: isOpen,\n                [Classes.OVERLAY_INLINE]: !usePortal,\n            },\n            className,\n        );\n\n        const transitionGroup = (\n            <TransitionGroup\n                appear={true}\n                className={containerClasses}\n                component=\"div\"\n                onKeyDown={this.handleKeyDown}\n                ref={this.refHandlers.container}\n            >\n                {childrenWithTransitions}\n            </TransitionGroup>\n        );\n        if (usePortal) {\n            return <Portal container={portalContainer}>{transitionGroup}</Portal>;\n        } else {\n            return transitionGroup;\n        }\n    }\n\n    public componentDidMount() {\n        if (this.props.isOpen) {\n            this.overlayWillOpen();\n        }\n    }\n\n    public componentWillReceiveProps(nextProps: IOverlayProps) {\n        this.setState({ hasEverOpened: this.state.hasEverOpened || nextProps.isOpen });\n    }\n\n    public componentDidUpdate(prevProps: IOverlayProps) {\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    public componentWillUnmount() {\n        this.overlayWillClose();\n    }\n\n    /**\n     * @public for testing\n     * @internal\n     */\n    public bringFocusInsideOverlay() {\n        // always delay focus manipulation to just before repaint to prevent scroll jumping\n        return requestAnimationFrame(() => {\n            // container ref may be undefined between component mounting and Portal rendering\n            // activeElement may be undefined in some rare cases in IE\n            if (this.containerElement == null || document.activeElement == null || !this.props.isOpen) {\n                return;\n            }\n\n            const isFocusOutsideModal = !this.containerElement.contains(document.activeElement);\n            if (isFocusOutsideModal) {\n                // element marked autofocus has higher priority than the other clowns\n                const autofocusElement = this.containerElement.querySelector(\"[autofocus]\") as HTMLElement;\n                const wrapperElement = this.containerElement.querySelector(\"[tabindex]\") as HTMLElement;\n                if (autofocusElement != null) {\n                    autofocusElement.focus();\n                } else if (wrapperElement != null) {\n                    wrapperElement.focus();\n                }\n            }\n        });\n    }\n\n    private maybeRenderChild = (child?: React.ReactChild) => {\n        if (child == null) {\n            return null;\n        }\n        // add a special class to each child element that will automatically set the appropriate\n        // CSS position mode under the hood. also, make the container focusable so we can\n        // trap focus inside it (via `enforceFocus`).\n        const decoratedChild =\n            typeof child === \"object\" ? (\n                React.cloneElement(child, {\n                    className: classNames(child.props.className, Classes.OVERLAY_CONTENT),\n                    tabIndex: 0,\n                })\n            ) : (\n                <span className={Classes.OVERLAY_CONTENT}>{child}</span>\n            );\n        const { onOpening, onOpened, onClosing, onClosed, transitionDuration, transitionName } = this.props;\n        return (\n            <CSSTransition\n                classNames={transitionName}\n                onEntering={onOpening}\n                onEntered={onOpened}\n                onExiting={onClosing}\n                onExited={onClosed}\n                timeout={transitionDuration}\n            >\n                {decoratedChild}\n            </CSSTransition>\n        );\n    };\n\n    private maybeRenderBackdrop() {\n        const {\n            backdropClassName,\n            backdropProps,\n            hasBackdrop,\n            isOpen,\n            transitionDuration,\n            transitionName,\n        } = this.props;\n\n        if (hasBackdrop && isOpen) {\n            return (\n                <CSSTransition classNames={transitionName} key=\"__backdrop\" timeout={transitionDuration}>\n                    <div\n                        {...backdropProps}\n                        className={classNames(Classes.OVERLAY_BACKDROP, backdropClassName, backdropProps.className)}\n                        onMouseDown={this.handleBackdropMouseDown}\n                        tabIndex={this.props.canOutsideClickClose ? 0 : null}\n                    />\n                </CSSTransition>\n            );\n        } else {\n            return null;\n        }\n    }\n\n    private overlayWillClose() {\n        document.removeEventListener(\"focus\", this.handleDocumentFocus, /* useCapture */ true);\n        document.removeEventListener(\"mousedown\", this.handleDocumentClick);\n\n        const { openStack } = Overlay;\n        const stackIndex = openStack.indexOf(this);\n        if (stackIndex !== -1) {\n            openStack.splice(stackIndex, 1);\n            if (openStack.length > 0) {\n                const lastOpenedOverlay = Overlay.getLastOpened();\n                if (lastOpenedOverlay.props.enforceFocus) {\n                    document.addEventListener(\"focus\", lastOpenedOverlay.handleDocumentFocus, /* useCapture */ true);\n                }\n            }\n\n            if (openStack.filter(o => o.props.usePortal && o.props.hasBackdrop).length === 0) {\n                document.body.classList.remove(Classes.OVERLAY_OPEN);\n            }\n        }\n    }\n\n    private overlayWillOpen() {\n        const { openStack } = Overlay;\n        if (openStack.length > 0) {\n            document.removeEventListener(\"focus\", Overlay.getLastOpened().handleDocumentFocus, /* useCapture */ true);\n        }\n        openStack.push(this);\n\n        if (this.props.autoFocus) {\n            this.bringFocusInsideOverlay();\n        }\n        if (this.props.enforceFocus) {\n            document.addEventListener(\"focus\", this.handleDocumentFocus, /* useCapture */ 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\n    private handleBackdropMouseDown = (e: React.MouseEvent<HTMLDivElement>) => {\n        const { backdropProps, canOutsideClickClose, enforceFocus, onClose } = this.props;\n        if (canOutsideClickClose) {\n            safeInvoke(onClose, e);\n        }\n        if (enforceFocus) {\n            // make sure document.activeElement is updated before bringing the focus back\n            this.bringFocusInsideOverlay();\n        }\n        safeInvoke(backdropProps.onMouseDown, e);\n    };\n\n    private handleDocumentClick = (e: MouseEvent) => {\n        const { canOutsideClickClose, isOpen, onClose } = this.props;\n        const eventTarget = e.target as HTMLElement;\n\n        const stackIndex = Overlay.openStack.indexOf(this);\n        const isClickInThisOverlayOrDescendant = Overlay.openStack\n            .slice(stackIndex)\n            .some(({ containerElement: elem }) => {\n                // `elem` is the container of backdrop & content, so clicking on that container\n                // should not count as being \"inside\" the overlay.\n                return elem && elem.contains(eventTarget) && !elem.isSameNode(eventTarget);\n            });\n\n        if (isOpen && canOutsideClickClose && !isClickInThisOverlayOrDescendant) {\n            // casting to any because this is a native event\n            safeInvoke(onClose, e as any);\n        }\n    };\n\n    private handleDocumentFocus = (e: FocusEvent) => {\n        if (\n            this.props.enforceFocus &&\n            this.containerElement != null &&\n            !this.containerElement.contains(e.target as HTMLElement)\n        ) {\n            // prevent default focus behavior (sometimes auto-scrolls the page)\n            e.preventDefault();\n            e.stopImmediatePropagation();\n            this.bringFocusInsideOverlay();\n        }\n    };\n\n    private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n        const { canEscapeKeyClose, onClose } = this.props;\n        if (e.which === Keys.ESCAPE && canEscapeKeyClose) {\n            safeInvoke(onClose, e);\n            // prevent browser-specific escape key behavior (Safari exits fullscreen)\n            e.preventDefault();\n        }\n    };\n}\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\n/* eslint-disable require-jsdoc, valid-jsdoc */\nvar MapShim = (function () {\n    if (typeof Map !== 'undefined') {\n        return Map;\n    }\n\n    /**\r\n     * Returns index in provided array that matches the specified key.\r\n     *\r\n     * @param {Array<Array>} arr\r\n     * @param {*} key\r\n     * @returns {number}\r\n     */\n    function getIndex(arr, key) {\n        var result = -1;\n\n        arr.some(function (entry, index) {\n            if (entry[0] === key) {\n                result = index;\n\n                return true;\n            }\n\n            return false;\n        });\n\n        return result;\n    }\n\n    return (function () {\n        function anonymous() {\n            this.__entries__ = [];\n        }\n\n        var prototypeAccessors = { size: { configurable: true } };\n\n        /**\r\n         * @returns {boolean}\r\n         */\n        prototypeAccessors.size.get = function () {\n            return this.__entries__.length;\n        };\n\n        /**\r\n         * @param {*} key\r\n         * @returns {*}\r\n         */\n        anonymous.prototype.get = function (key) {\n            var index = getIndex(this.__entries__, key);\n            var entry = this.__entries__[index];\n\n            return entry && entry[1];\n        };\n\n        /**\r\n         * @param {*} key\r\n         * @param {*} value\r\n         * @returns {void}\r\n         */\n        anonymous.prototype.set = function (key, value) {\n            var index = getIndex(this.__entries__, key);\n\n            if (~index) {\n                this.__entries__[index][1] = value;\n            } else {\n                this.__entries__.push([key, value]);\n            }\n        };\n\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\n        anonymous.prototype.delete = function (key) {\n            var entries = this.__entries__;\n            var index = getIndex(entries, key);\n\n            if (~index) {\n                entries.splice(index, 1);\n            }\n        };\n\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\n        anonymous.prototype.has = function (key) {\n            return !!~getIndex(this.__entries__, key);\n        };\n\n        /**\r\n         * @returns {void}\r\n         */\n        anonymous.prototype.clear = function () {\n            this.__entries__.splice(0);\n        };\n\n        /**\r\n         * @param {Function} callback\r\n         * @param {*} [ctx=null]\r\n         * @returns {void}\r\n         */\n        anonymous.prototype.forEach = function (callback, ctx) {\n            var this$1 = this;\n            if ( ctx === void 0 ) ctx = null;\n\n            for (var i = 0, list = this$1.__entries__; i < list.length; i += 1) {\n                var entry = list[i];\n\n                callback.call(ctx, entry[1], entry[0]);\n            }\n        };\n\n        Object.defineProperties( anonymous.prototype, prototypeAccessors );\n\n        return anonymous;\n    }());\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\nvar global$1 = (function () {\n    if (typeof global !== 'undefined' && global.Math === Math) {\n        return global;\n    }\n\n    if (typeof self !== 'undefined' && self.Math === Math) {\n        return self;\n    }\n\n    if (typeof window !== 'undefined' && window.Math === Math) {\n        return window;\n    }\n\n    // eslint-disable-next-line no-new-func\n    return Function('return this')();\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\nvar requestAnimationFrame$1 = (function () {\n    if (typeof requestAnimationFrame === 'function') {\n        // It's required to use a bounded function because IE sometimes throws\n        // an \"Invalid calling object\" error if rAF is invoked without the global\n        // object on the left hand side.\n        return requestAnimationFrame.bind(global$1);\n    }\n\n    return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\n})();\n\n// Defines minimum timeout before adding a trailing call.\nvar trailingTimeout = 2;\n\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\nvar throttle = function (callback, delay) {\n    var leadingCall = false,\n        trailingCall = false,\n        lastCallTime = 0;\n\n    /**\r\n     * Invokes the original callback function and schedules new invocation if\r\n     * the \"proxy\" was called during current request.\r\n     *\r\n     * @returns {void}\r\n     */\n    function resolvePending() {\n        if (leadingCall) {\n            leadingCall = false;\n\n            callback();\n        }\n\n        if (trailingCall) {\n            proxy();\n        }\n    }\n\n    /**\r\n     * Callback invoked after the specified delay. It will further postpone\r\n     * invocation of the original function delegating it to the\r\n     * requestAnimationFrame.\r\n     *\r\n     * @returns {void}\r\n     */\n    function timeoutCallback() {\n        requestAnimationFrame$1(resolvePending);\n    }\n\n    /**\r\n     * Schedules invocation of the original function.\r\n     *\r\n     * @returns {void}\r\n     */\n    function proxy() {\n        var timeStamp = Date.now();\n\n        if (leadingCall) {\n            // Reject immediately following calls.\n            if (timeStamp - lastCallTime < trailingTimeout) {\n                return;\n            }\n\n            // Schedule new call to be in invoked when the pending one is resolved.\n            // This is important for \"transitions\" which never actually start\n            // immediately so there is a chance that we might miss one if change\n            // happens amids the pending invocation.\n            trailingCall = true;\n        } else {\n            leadingCall = true;\n            trailingCall = false;\n\n            setTimeout(timeoutCallback, delay);\n        }\n\n        lastCallTime = timeStamp;\n    }\n\n    return proxy;\n};\n\n// Minimum delay before invoking the update of observers.\nvar REFRESH_DELAY = 20;\n\n// A list of substrings of CSS properties used to find transition events that\n// might affect dimensions of observed elements.\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\n\n// Check if MutationObserver is available.\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\n\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\nvar ResizeObserverController = function() {\n    this.connected_ = false;\n    this.mutationEventsAdded_ = false;\n    this.mutationsObserver_ = null;\n    this.observers_ = [];\n\n    this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\n    this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\n};\n\n/**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\n\n\n/**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\n\n\n/**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\n\n/**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\nResizeObserverController.prototype.addObserver = function (observer) {\n    if (!~this.observers_.indexOf(observer)) {\n        this.observers_.push(observer);\n    }\n\n    // Add listeners if they haven't been added yet.\n    if (!this.connected_) {\n        this.connect_();\n    }\n};\n\n/**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\nResizeObserverController.prototype.removeObserver = function (observer) {\n    var observers = this.observers_;\n    var index = observers.indexOf(observer);\n\n    // Remove observer if it's present in registry.\n    if (~index) {\n        observers.splice(index, 1);\n    }\n\n    // Remove listeners if controller has no connected observers.\n    if (!observers.length && this.connected_) {\n        this.disconnect_();\n    }\n};\n\n/**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\nResizeObserverController.prototype.refresh = function () {\n    var changesDetected = this.updateObservers_();\n\n    // Continue running updates if changes have been detected as there might\n    // be future ones caused by CSS transitions.\n    if (changesDetected) {\n        this.refresh();\n    }\n};\n\n/**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n *  dimensions of it's elements.\r\n */\nResizeObserverController.prototype.updateObservers_ = function () {\n    // Collect observers that have active observations.\n    var activeObservers = this.observers_.filter(function (observer) {\n        return observer.gatherActive(), observer.hasActive();\n    });\n\n    // Deliver notifications in a separate cycle in order to avoid any\n    // collisions between observers, e.g. when multiple instances of\n    // ResizeObserver are tracking the same element and the callback of one\n    // of them changes content dimensions of the observed target. Sometimes\n    // this may result in notifications being blocked for the rest of observers.\n    activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\n\n    return activeObservers.length > 0;\n};\n\n/**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\nResizeObserverController.prototype.connect_ = function () {\n    // Do nothing if running in a non-browser environment or if listeners\n    // have been already added.\n    if (!isBrowser || this.connected_) {\n        return;\n    }\n\n    // Subscription to the \"Transitionend\" event is used as a workaround for\n    // delayed transitions. This way it's possible to capture at least the\n    // final state of an element.\n    document.addEventListener('transitionend', this.onTransitionEnd_);\n\n    window.addEventListener('resize', this.refresh);\n\n    if (mutationObserverSupported) {\n        this.mutationsObserver_ = new MutationObserver(this.refresh);\n\n        this.mutationsObserver_.observe(document, {\n            attributes: true,\n            childList: true,\n            characterData: true,\n            subtree: true\n        });\n    } else {\n        document.addEventListener('DOMSubtreeModified', this.refresh);\n\n        this.mutationEventsAdded_ = true;\n    }\n\n    this.connected_ = true;\n};\n\n/**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\nResizeObserverController.prototype.disconnect_ = function () {\n    // Do nothing if running in a non-browser environment or if listeners\n    // have been already removed.\n    if (!isBrowser || !this.connected_) {\n        return;\n    }\n\n    document.removeEventListener('transitionend', this.onTransitionEnd_);\n    window.removeEventListener('resize', this.refresh);\n\n    if (this.mutationsObserver_) {\n        this.mutationsObserver_.disconnect();\n    }\n\n    if (this.mutationEventsAdded_) {\n        document.removeEventListener('DOMSubtreeModified', this.refresh);\n    }\n\n    this.mutationsObserver_ = null;\n    this.mutationEventsAdded_ = false;\n    this.connected_ = false;\n};\n\n/**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\nResizeObserverController.prototype.onTransitionEnd_ = function (ref) {\n        var propertyName = ref.propertyName; if ( propertyName === void 0 ) propertyName = '';\n\n    // Detect whether transition may affect dimensions of an element.\n    var isReflowProperty = transitionKeys.some(function (key) {\n        return !!~propertyName.indexOf(key);\n    });\n\n    if (isReflowProperty) {\n        this.refresh();\n    }\n};\n\n/**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\nResizeObserverController.getInstance = function () {\n    if (!this.instance_) {\n        this.instance_ = new ResizeObserverController();\n    }\n\n    return this.instance_;\n};\n\nResizeObserverController.instance_ = null;\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\nvar defineConfigurable = (function (target, props) {\n    for (var i = 0, list = Object.keys(props); i < list.length; i += 1) {\n        var key = list[i];\n\n        Object.defineProperty(target, key, {\n            value: props[key],\n            enumerable: false,\n            writable: false,\n            configurable: true\n        });\n    }\n\n    return target;\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\nvar getWindowOf = (function (target) {\n    // Assume that the element is an instance of Node, which means that it\n    // has the \"ownerDocument\" property from which we can retrieve a\n    // corresponding global object.\n    var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\n\n    // Return the local global object if it's not possible extract one from\n    // provided element.\n    return ownerGlobal || global$1;\n});\n\n// Placeholder of an empty content rectangle.\nvar emptyRect = createRectInit(0, 0, 0, 0);\n\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\nfunction toFloat(value) {\n    return parseFloat(value) || 0;\n}\n\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\nfunction getBordersSize(styles) {\n    var positions = [], len = arguments.length - 1;\n    while ( len-- > 0 ) positions[ len ] = arguments[ len + 1 ];\n\n    return positions.reduce(function (size, position) {\n        var value = styles['border-' + position + '-width'];\n\n        return size + toFloat(value);\n    }, 0);\n}\n\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\nfunction getPaddings(styles) {\n    var positions = ['top', 'right', 'bottom', 'left'];\n    var paddings = {};\n\n    for (var i = 0, list = positions; i < list.length; i += 1) {\n        var position = list[i];\n\n        var value = styles['padding-' + position];\n\n        paddings[position] = toFloat(value);\n    }\n\n    return paddings;\n}\n\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n *      to be calculated.\r\n * @returns {DOMRectInit}\r\n */\nfunction getSVGContentRect(target) {\n    var bbox = target.getBBox();\n\n    return createRectInit(0, 0, bbox.width, bbox.height);\n}\n\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\nfunction getHTMLElementContentRect(target) {\n    // Client width & height properties can't be\n    // used exclusively as they provide rounded values.\n    var clientWidth = target.clientWidth;\n    var clientHeight = target.clientHeight;\n\n    // By this condition we can catch all non-replaced inline, hidden and\n    // detached elements. Though elements with width & height properties less\n    // than 0.5 will be discarded as well.\n    //\n    // Without it we would need to implement separate methods for each of\n    // those cases and it's not possible to perform a precise and performance\n    // effective test for hidden elements. E.g. even jQuery's ':visible' filter\n    // gives wrong results for elements with width & height less than 0.5.\n    if (!clientWidth && !clientHeight) {\n        return emptyRect;\n    }\n\n    var styles = getWindowOf(target).getComputedStyle(target);\n    var paddings = getPaddings(styles);\n    var horizPad = paddings.left + paddings.right;\n    var vertPad = paddings.top + paddings.bottom;\n\n    // Computed styles of width & height are being used because they are the\n    // only dimensions available to JS that contain non-rounded values. It could\n    // be possible to utilize the getBoundingClientRect if only it's data wasn't\n    // affected by CSS transformations let alone paddings, borders and scroll bars.\n    var width = toFloat(styles.width),\n        height = toFloat(styles.height);\n\n    // Width & height include paddings and borders when the 'border-box' box\n    // model is applied (except for IE).\n    if (styles.boxSizing === 'border-box') {\n        // Following conditions are required to handle Internet Explorer which\n        // doesn't include paddings and borders to computed CSS dimensions.\n        //\n        // We can say that if CSS dimensions + paddings are equal to the \"client\"\n        // properties then it's either IE, and thus we don't need to subtract\n        // anything, or an element merely doesn't have paddings/borders styles.\n        if (Math.round(width + horizPad) !== clientWidth) {\n            width -= getBordersSize(styles, 'left', 'right') + horizPad;\n        }\n\n        if (Math.round(height + vertPad) !== clientHeight) {\n            height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\n        }\n    }\n\n    // Following steps can't be applied to the document's root element as its\n    // client[Width/Height] properties represent viewport area of the window.\n    // Besides, it's as well not necessary as the <html> itself neither has\n    // rendered scroll bars nor it can be clipped.\n    if (!isDocumentElement(target)) {\n        // In some browsers (only in Firefox, actually) CSS width & height\n        // include scroll bars size which can be removed at this step as scroll\n        // bars are the only difference between rounded dimensions + paddings\n        // and \"client\" properties, though that is not always true in Chrome.\n        var vertScrollbar = Math.round(width + horizPad) - clientWidth;\n        var horizScrollbar = Math.round(height + vertPad) - clientHeight;\n\n        // Chrome has a rather weird rounding of \"client\" properties.\n        // E.g. for an element with content width of 314.2px it sometimes gives\n        // the client width of 315px and for the width of 314.7px it may give\n        // 314px. And it doesn't happen all the time. So just ignore this delta\n        // as a non-relevant.\n        if (Math.abs(vertScrollbar) !== 1) {\n            width -= vertScrollbar;\n        }\n\n        if (Math.abs(horizScrollbar) !== 1) {\n            height -= horizScrollbar;\n        }\n    }\n\n    return createRectInit(paddings.left, paddings.top, width, height);\n}\n\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\nvar isSVGGraphicsElement = (function () {\n    // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\n    // interface.\n    if (typeof SVGGraphicsElement !== 'undefined') {\n        return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\n    }\n\n    // If it's so, then check that element is at least an instance of the\n    // SVGElement and that it has the \"getBBox\" method.\n    // eslint-disable-next-line no-extra-parens\n    return function (target) { return target instanceof getWindowOf(target).SVGElement && typeof target.getBBox === 'function'; };\n})();\n\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\nfunction isDocumentElement(target) {\n    return target === getWindowOf(target).document.documentElement;\n}\n\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\nfunction getContentRect(target) {\n    if (!isBrowser) {\n        return emptyRect;\n    }\n\n    if (isSVGGraphicsElement(target)) {\n        return getSVGContentRect(target);\n    }\n\n    return getHTMLElementContentRect(target);\n}\n\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\nfunction createReadOnlyRect(ref) {\n    var x = ref.x;\n    var y = ref.y;\n    var width = ref.width;\n    var height = ref.height;\n\n    // If DOMRectReadOnly is available use it as a prototype for the rectangle.\n    var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\n    var rect = Object.create(Constr.prototype);\n\n    // Rectangle's properties are not writable and non-enumerable.\n    defineConfigurable(rect, {\n        x: x, y: y, width: width, height: height,\n        top: y,\n        right: x + width,\n        bottom: height + y,\n        left: x\n    });\n\n    return rect;\n}\n\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\nfunction createRectInit(x, y, width, height) {\n    return { x: x, y: y, width: width, height: height };\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\nvar ResizeObservation = function(target) {\n    this.broadcastWidth = 0;\n    this.broadcastHeight = 0;\n    this.contentRect_ = createRectInit(0, 0, 0, 0);\n\n    this.target = target;\n};\n\n/**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\n\n\n/**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\n\n\n/**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\nResizeObservation.prototype.isActive = function () {\n    var rect = getContentRect(this.target);\n\n    this.contentRect_ = rect;\n\n    return rect.width !== this.broadcastWidth || rect.height !== this.broadcastHeight;\n};\n\n/**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\nResizeObservation.prototype.broadcastRect = function () {\n    var rect = this.contentRect_;\n\n    this.broadcastWidth = rect.width;\n    this.broadcastHeight = rect.height;\n\n    return rect;\n};\n\nvar ResizeObserverEntry = function(target, rectInit) {\n    var contentRect = createReadOnlyRect(rectInit);\n\n    // According to the specification following properties are not writable\n    // and are also not enumerable in the native implementation.\n    //\n    // Property accessors are not being used as they'd require to define a\n    // private WeakMap storage which may cause memory leaks in browsers that\n    // don't support this type of collections.\n    defineConfigurable(this, { target: target, contentRect: contentRect });\n};\n\nvar ResizeObserverSPI = function(callback, controller, callbackCtx) {\n    this.activeObservations_ = [];\n    this.observations_ = new MapShim();\n\n    if (typeof callback !== 'function') {\n        throw new TypeError('The callback provided as parameter 1 is not a function.');\n    }\n\n    this.callback_ = callback;\n    this.controller_ = controller;\n    this.callbackCtx_ = callbackCtx;\n};\n\n/**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\n\n\n/**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\n\n\n/**\r\n * Public ResizeObserver instance which will be passed to the callback\r\n * function and used as a value of it's \"this\" binding.\r\n *\r\n * @private {ResizeObserver}\r\n */\n\n/**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\nResizeObserverSPI.prototype.observe = function (target) {\n    if (!arguments.length) {\n        throw new TypeError('1 argument required, but only 0 present.');\n    }\n\n    // Do nothing if current environment doesn't have the Element interface.\n    if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n        return;\n    }\n\n    if (!(target instanceof getWindowOf(target).Element)) {\n        throw new TypeError('parameter 1 is not of type \"Element\".');\n    }\n\n    var observations = this.observations_;\n\n    // Do nothing if element is already being observed.\n    if (observations.has(target)) {\n        return;\n    }\n\n    observations.set(target, new ResizeObservation(target));\n\n    this.controller_.addObserver(this);\n\n    // Force the update of observations.\n    this.controller_.refresh();\n};\n\n/**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\nResizeObserverSPI.prototype.unobserve = function (target) {\n    if (!arguments.length) {\n        throw new TypeError('1 argument required, but only 0 present.');\n    }\n\n    // Do nothing if current environment doesn't have the Element interface.\n    if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n        return;\n    }\n\n    if (!(target instanceof getWindowOf(target).Element)) {\n        throw new TypeError('parameter 1 is not of type \"Element\".');\n    }\n\n    var observations = this.observations_;\n\n    // Do nothing if element is not being observed.\n    if (!observations.has(target)) {\n        return;\n    }\n\n    observations.delete(target);\n\n    if (!observations.size) {\n        this.controller_.removeObserver(this);\n    }\n};\n\n/**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\nResizeObserverSPI.prototype.disconnect = function () {\n    this.clearActive();\n    this.observations_.clear();\n    this.controller_.removeObserver(this);\n};\n\n/**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\nResizeObserverSPI.prototype.gatherActive = function () {\n        var this$1 = this;\n\n    this.clearActive();\n\n    this.observations_.forEach(function (observation) {\n        if (observation.isActive()) {\n            this$1.activeObservations_.push(observation);\n        }\n    });\n};\n\n/**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\nResizeObserverSPI.prototype.broadcastActive = function () {\n    // Do nothing if observer doesn't have active observations.\n    if (!this.hasActive()) {\n        return;\n    }\n\n    var ctx = this.callbackCtx_;\n\n    // Create ResizeObserverEntry instance for every active observation.\n    var entries = this.activeObservations_.map(function (observation) {\n        return new ResizeObserverEntry(observation.target, observation.broadcastRect());\n    });\n\n    this.callback_.call(ctx, entries, ctx);\n    this.clearActive();\n};\n\n/**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\nResizeObserverSPI.prototype.clearActive = function () {\n    this.activeObservations_.splice(0);\n};\n\n/**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\nResizeObserverSPI.prototype.hasActive = function () {\n    return this.activeObservations_.length > 0;\n};\n\n// Registry of internal observers. If WeakMap is not available use current shim\n// for the Map collection as it has all required methods and because WeakMap\n// can't be fully polyfilled anyway.\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\n\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\nvar ResizeObserver = function(callback) {\n    if (!(this instanceof ResizeObserver)) {\n        throw new TypeError('Cannot call a class as a function.');\n    }\n    if (!arguments.length) {\n        throw new TypeError('1 argument required, but only 0 present.');\n    }\n\n    var controller = ResizeObserverController.getInstance();\n    var observer = new ResizeObserverSPI(callback, controller, this);\n\n    observers.set(this, observer);\n};\n\n// Expose public methods of ResizeObserver.\n['observe', 'unobserve', 'disconnect'].forEach(function (method) {\n    ResizeObserver.prototype[method] = function () {\n        return (ref = observers.get(this))[method].apply(ref, arguments);\n        var ref;\n    };\n});\n\nvar index = (function () {\n    // Export existing implementation if available.\n    if (typeof global$1.ResizeObserver !== 'undefined') {\n        return global$1.ResizeObserver;\n    }\n\n    return ResizeObserver;\n})();\n\nexport default index;\n","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport * as React from \"react\";\nimport ResizeObserver from \"resize-observer-polyfill\";\n\nimport { findDOMNode } from \"react-dom\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { safeInvoke } from \"../../common/utils\";\n\n/** A parallel type to `ResizeObserverEntry` (from resize-observer-polyfill). */\nexport interface IResizeEntry {\n    /** Measured dimensions of the target. */\n    contentRect: DOMRectReadOnly;\n\n    /** The resized element. */\n    target: Element;\n}\n\n/** `ResizeSensor` requires a single DOM element child and will error otherwise. */\nexport interface IResizeSensorProps {\n    /**\n     * Callback invoked when the wrapped element resizes.\n     *\n     * The `entries` array contains an entry for each observed element. In the\n     * default case (no `observeParents`), the array will contain only one\n     * element: the single child of the `ResizeSensor`.\n     *\n     * Note that this method is called _asynchronously_ after a resize is\n     * detected and typically it will be called no more than once per frame.\n     */\n    onResize: (entries: IResizeEntry[]) => void;\n\n    /**\n     * If `true`, all parent DOM elements of the container will also be\n     * observed for size changes. The array of entries passed to `onResize`\n     * will now contain an entry for each parent element up to the root of the\n     * document.\n     *\n     * Only enable this prop if a parent element resizes in a way that does\n     * not also cause the child element to resize.\n     * @default false\n     */\n    observeParents?: boolean;\n}\n\nexport class ResizeSensor extends React.PureComponent<IResizeSensorProps> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.ResizeSensor`;\n\n    private element: Element | null = null;\n    private observer = new ResizeObserver(entries => safeInvoke(this.props.onResize, entries));\n\n    public render() {\n        // pass-through render of single child\n        return React.Children.only(this.props.children);\n    }\n\n    public componentDidMount() {\n        // using findDOMNode for two reasons:\n        // 1. cloning to insert a ref is unwieldy and not performant.\n        // 2. ensure that we get an actual DOM node for observing.\n        this.observeElement(findDOMNode(this));\n    }\n\n    public componentDidUpdate(prevProps: IResizeSensorProps) {\n        this.observeElement(findDOMNode(this), this.props.observeParents !== prevProps.observeParents);\n    }\n\n    public componentWillUnmount() {\n        this.observer.disconnect();\n    }\n\n    /**\n     * Observe the given 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    private observeElement(element: Element | Text | null, force = false) {\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();\n            // remember element reference for next time\n            this.element = element;\n        }\n\n        // observer callback is invoked immediately when observing new elements\n        this.observer.observe(element);\n\n        if (this.props.observeParents) {\n            let parent = element.parentElement;\n            while (parent != null) {\n                this.observer.observe(parent);\n                parent = parent.parentElement;\n            }\n        }\n    }\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, IIntentProps } from \"../../common/props\";\nimport { Popover, PopoverInteractionKind } from \"../popover/popover\";\nimport { IPopoverSharedProps } from \"../popover/popoverSharedProps\";\n\nexport interface ITooltipProps extends IPopoverSharedProps, IIntentProps {\n    /**\n     * The content that will be displayed inside of the tooltip.\n     */\n    content: JSX.Element | string;\n\n    /**\n     * The amount of time in milliseconds the tooltip should remain open after\n     * the user hovers off the trigger. The timer is canceled if the user mouses\n     * over the target before it expires.\n     * @default 0\n     */\n    hoverCloseDelay?: number;\n\n    /**\n     * The amount of time in milliseconds the tooltip should wait before opening\n     * after the user hovers over the trigger. The timer is canceled if the user\n     * mouses away from the target before it expires.\n     * @default 100\n     */\n    hoverOpenDelay?: number;\n\n    /**\n     * Indicates how long (in milliseconds) the tooltip's appear/disappear\n     * transition takes. This is used by React `CSSTransition` to know when a\n     * transition completes and must match the duration of the animation in CSS.\n     * Only set this prop if you override Blueprint's default transitions with\n     * new transitions of a different length.\n     * @default 100\n     */\n    transitionDuration?: number;\n}\n\nexport class Tooltip extends React.PureComponent<ITooltipProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Tooltip`;\n\n    public static defaultProps: Partial<ITooltipProps> = {\n        hoverCloseDelay: 0,\n        hoverOpenDelay: 100,\n        transitionDuration: 100,\n    };\n\n    public render() {\n        const { children, intent, popoverClassName, ...restProps } = this.props;\n        const classes = classNames(Classes.TOOLTIP, Classes.intentClass(intent), popoverClassName);\n\n        return (\n            <Popover\n                {...restProps}\n                autoFocus={false}\n                canEscapeKeyClose={false}\n                enforceFocus={false}\n                interactionKind={PopoverInteractionKind.HOVER_TARGET_ONLY}\n                lazy={true}\n                popoverClassName={classes}\n                portalContainer={this.props.portalContainer}\n            >\n                {children}\n            </Popover>\n        );\n    }\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport PopperJS from \"popper.js\";\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: PopperJS.Placement) {\n    return placement.split(\"-\")[0] as PopperJS.Position;\n}\n\n/** Returns true if position is left or right. */\nexport function isVerticalPosition(side: PopperJS.Position) {\n    return [\"left\", \"right\"].indexOf(side) !== -1;\n}\n\n/** Returns the opposite position. */\nexport function getOppositePosition(side: PopperJS.Position) {\n    switch (side) {\n        case \"top\":\n            return \"bottom\";\n        case \"left\":\n            return \"right\";\n        case \"bottom\":\n            return \"top\";\n        default:\n            return \"left\";\n    }\n}\n\n/** Returns the CSS alignment keyword corresponding to given placement. */\nexport function getAlignment(placement: PopperJS.Placement) {\n    const align = placement.split(\"-\")[1] as \"start\" | \"end\" | undefined;\n    switch (align) {\n        case \"start\":\n            return \"left\";\n        case \"end\":\n            return \"right\";\n        default:\n            return \"center\";\n    }\n}\n\n// Popper modifiers\n// ================\n\n/** Modifier helper function to compute popper transform-origin based on arrow position */\nexport function getTransformOrigin(data: PopperJS.Data) {\n    const position = getPosition(data.placement);\n    if (data.arrowElement == null) {\n        return isVerticalPosition(position)\n            ? `${getOppositePosition(position)} ${getAlignment(position)}`\n            : `${getAlignment(position)} ${getOppositePosition(position)}`;\n    } else {\n        const arrowSizeShift = data.arrowElement.clientHeight / 2;\n        const { arrow } = data.offsets;\n        // 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        return isVerticalPosition(position)\n            ? `${getOppositePosition(position)} ${arrow.top + arrowSizeShift}px`\n            : `${arrow.left + arrowSizeShift}px ${getOppositePosition(position)}`;\n    }\n}\n\n// additional space between arrow and edge of target\nconst ARROW_SPACING = 4;\n\n/** Popper modifier that offsets popper and arrow so arrow points out of the correct side */\nexport const arrowOffsetModifier: PopperJS.ModifierFn = data => {\n    if (data.arrowElement == null) {\n        return data;\n    }\n    // our arrows have equal width and height\n    const arrowSize = data.arrowElement.clientWidth;\n    // this logic borrowed from original Popper arrow modifier itself\n    const position = getPosition(data.placement);\n    const isVertical = isVerticalPosition(position);\n    const len = isVertical ? \"width\" : \"height\";\n    const offsetSide = isVertical ? \"left\" : \"top\";\n\n    const arrowOffsetSize = Math.round(arrowSize / 2 / Math.sqrt(2));\n    // offset popover by arrow size, offset arrow in the opposite direction\n    if (position === \"top\" || position === \"left\") {\n        // the \"up & back\" directions require negative popper offsets\n        data.offsets.popper[offsetSide] -= arrowOffsetSize + ARROW_SPACING;\n        // can only use left/top on arrow so gotta get clever with 100% + X\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    return data;\n};\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport { Placement } from \"popper.js\";\nimport * as React from \"react\";\nimport { PopperArrowProps } from \"react-popper\";\n\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { getPosition } from \"./popperUtils\";\n\n// these paths come from the Core Kit Sketch file\n// https://github.com/palantir/blueprint/blob/develop/resources/sketch/Core%20Kit.sketch\nconst SVG_SHADOW_PATH =\n    \"M8.11 6.302c1.015-.936 1.887-2.922 1.887-4.297v26c0-1.378\" +\n    \"-.868-3.357-1.888-4.297L.925 17.09c-1.237-1.14-1.233-3.034 0-4.17L8.11 6.302z\";\nconst SVG_ARROW_PATH =\n    \"M8.787 7.036c1.22-1.125 2.21-3.376 2.21-5.03V0v30-2.005\" +\n    \"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\n/** Modifier helper function to compute arrow rotate() transform */\nfunction getArrowAngle(placement?: Placement) {\n    if (placement == null) {\n        return 0;\n    }\n    // can only be top/left/bottom/right - auto is resolved internally\n    switch (getPosition(placement)) {\n        case \"top\":\n            return -90;\n        case \"left\":\n            return 180;\n        case \"bottom\":\n            return 90;\n        default:\n            return 0;\n    }\n}\n\nexport interface IPopoverArrowProps {\n    arrowProps: PopperArrowProps;\n    placement: Placement;\n}\n\nexport const PopoverArrow: React.SFC<IPopoverArrowProps> = ({ arrowProps: { ref, style }, placement }) => (\n    <div className={Classes.POPOVER_ARROW} ref={ref} style={isNaN(+style.left) ? {} : style}>\n        <svg viewBox=\"0 0 30 30\" style={{ transform: `rotate(${getArrowAngle(placement)}deg)` }}>\n            <path className={Classes.POPOVER_ARROW + \"-border\"} d={SVG_SHADOW_PATH} />\n            <path className={Classes.POPOVER_ARROW + \"-fill\"} d={SVG_ARROW_PATH} />\n        </svg>\n    </div>\n);\nPopoverArrow.displayName = `${DISPLAYNAME_PREFIX}.PopoverArrow`;\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport { Placement } from \"popper.js\";\nimport { Position } from \"../../common/position\";\n\n/**\n * Convert a position to a placement.\n * @param position the position to convert\n */\nexport function positionToPlacement(position: Position | \"auto\" | \"auto-start\" | \"auto-end\"): Placement {\n    /* istanbul ignore next */\n    switch (position) {\n        case Position.TOP_LEFT:\n            return \"top-start\";\n        case Position.TOP:\n            return \"top\";\n        case Position.TOP_RIGHT:\n            return \"top-end\";\n        case Position.RIGHT_TOP:\n            return \"right-start\";\n        case Position.RIGHT:\n            return \"right\";\n        case Position.RIGHT_BOTTOM:\n            return \"right-end\";\n        case Position.BOTTOM_RIGHT:\n            return \"bottom-end\";\n        case Position.BOTTOM:\n            return \"bottom\";\n        case Position.BOTTOM_LEFT:\n            return \"bottom-start\";\n        case Position.LEFT_BOTTOM:\n            return \"left-end\";\n        case Position.LEFT:\n            return \"left\";\n        case Position.LEFT_TOP:\n            return \"left-start\";\n        case \"auto\":\n        case \"auto-start\":\n        case \"auto-end\":\n            // Return the string unchanged.\n            return position;\n        default:\n            return assertNever(position);\n    }\n}\n\n/* istanbul ignore next */\nfunction assertNever(x: never): never {\n    throw new Error(\"Unexpected position: \" + x);\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport { ModifierFn } from \"popper.js\";\nimport * as React from \"react\";\nimport { Manager, Popper, PopperChildrenProps, Reference, ReferenceChildrenProps } from \"react-popper\";\n\nimport { AbstractPureComponent } from \"../../common/abstractPureComponent\";\nimport * as Classes from \"../../common/classes\";\nimport * as Errors from \"../../common/errors\";\nimport { DISPLAYNAME_PREFIX, HTMLDivProps } from \"../../common/props\";\nimport * as Utils from \"../../common/utils\";\nimport { Overlay } from \"../overlay/overlay\";\nimport { ResizeSensor } from \"../resize-sensor/resizeSensor\";\nimport { Tooltip } from \"../tooltip/tooltip\";\nimport { PopoverArrow } from \"./popoverArrow\";\nimport { positionToPlacement } from \"./popoverMigrationUtils\";\nimport { IPopoverSharedProps, PopperModifiers } from \"./popoverSharedProps\";\nimport { arrowOffsetModifier, getTransformOrigin } from \"./popperUtils\";\n\nexport const PopoverInteractionKind = {\n    CLICK: \"click\" as \"click\",\n    CLICK_TARGET_ONLY: \"click-target\" as \"click-target\",\n    HOVER: \"hover\" as \"hover\",\n    HOVER_TARGET_ONLY: \"hover-target\" as \"hover-target\",\n};\nexport type PopoverInteractionKind = typeof PopoverInteractionKind[keyof typeof PopoverInteractionKind];\n\nexport interface IPopoverProps extends IPopoverSharedProps {\n    /** HTML props for the backdrop element. Can be combined with `backdropClassName`. */\n    backdropProps?: React.HTMLProps<HTMLDivElement>;\n\n    /**\n     * The content displayed inside the popover. This can instead be provided as\n     * the _second_ element in `children` (first is `target`).\n     */\n    content?: string | JSX.Element;\n\n    /**\n     * The kind of interaction that triggers the display of the popover.\n     * @default PopoverInteractionKind.CLICK\n     */\n    interactionKind?: PopoverInteractionKind;\n\n    /**\n     * Enables an invisible overlay beneath the popover that captures clicks and\n     * prevents interaction with the rest of the document until the popover is\n     * closed. This prop is only available when `interactionKind` is\n     * `PopoverInteractionKind.CLICK`. When popovers with backdrop are opened,\n     * they become focused.\n     * @default false\n     */\n    hasBackdrop?: boolean;\n\n    /**\n     * Whether to apply minimal styles to this popover, which includes removing\n     * the arrow and adding `Classes.MINIMAL` to minimize and accelerate the\n     * transitions.\n     * @default false\n     */\n    minimal?: boolean;\n\n    /**\n     * Ref supplied to the `Classes.POPOVER` element.\n     */\n    popoverRef?: (ref: HTMLDivElement | null) => void;\n\n    /**\n     * The target to which the popover content is attached. This can instead be\n     * provided as the _first_ element in `children`.\n     */\n    target?: string | JSX.Element;\n}\n\nexport interface IPopoverState {\n    transformOrigin: string;\n    isOpen: boolean;\n    hasDarkParent: boolean;\n}\n\nexport class Popover extends AbstractPureComponent<IPopoverProps, IPopoverState> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Popover`;\n\n    public static defaultProps: IPopoverProps = {\n        captureDismiss: false,\n        defaultIsOpen: false,\n        disabled: 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        position: \"auto\",\n        targetTagName: \"span\",\n        transitionDuration: 300,\n        usePortal: true,\n        wrapperTagName: \"span\",\n    };\n\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    public popoverElement: HTMLElement;\n    /** DOM element that contains the target. */\n    public targetElement: HTMLElement;\n\n    public state: IPopoverState = {\n        hasDarkParent: false,\n        isOpen: this.getIsOpen(this.props),\n        transformOrigin: \"\",\n    };\n\n    private cancelOpenTimeout: () => void;\n\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    private isMouseInTargetOrPopover = false;\n\n    // a flag that indicates whether the target previously lost focus to another\n    // element on the same page.\n    private lostFocusOnSamePage = true;\n\n    // Reference to the Poppper.scheduleUpdate() function, this changes every time the popper is mounted\n    private popperScheduleUpdate: () => void;\n\n    private refHandlers = {\n        popover: (ref: HTMLElement) => {\n            this.popoverElement = ref;\n            Utils.safeInvoke(this.props.popoverRef, ref);\n        },\n        target: (ref: HTMLElement) => (this.targetElement = ref),\n    };\n\n    public render() {\n        // 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        const { className, disabled, modifiers, wrapperTagName: WrapperTagName } = this.props;\n        const { isOpen } = this.state;\n\n        const isContentEmpty = Utils.ensureElement(this.understandChildren().content) == null;\n        // need to do this check in render(), because `isOpen` is derived from\n        // state, and state can't necessarily be accessed in validateProps.\n        if (isContentEmpty && !disabled && isOpen !== false && !Utils.isNodeEnv(\"production\")) {\n            console.warn(Errors.POPOVER_WARN_EMPTY_CONTENT);\n        }\n        const allModifiers: PopperModifiers = {\n            ...modifiers,\n            arrowOffset: {\n                enabled: this.isArrowEnabled(),\n                fn: arrowOffsetModifier,\n                order: 510, // arrow is 500\n            },\n            updatePopoverState: {\n                enabled: true,\n                fn: this.updatePopoverState,\n                order: 900,\n            },\n        };\n\n        return (\n            <Manager>\n                <WrapperTagName className={classNames(Classes.POPOVER_WRAPPER, className)}>\n                    <Reference innerRef={this.refHandlers.target}>{this.renderTarget}</Reference>\n                    <Overlay\n                        autoFocus={this.props.autoFocus}\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                    >\n                        <Popper\n                            innerRef={this.refHandlers.popover}\n                            placement={positionToPlacement(this.props.position)}\n                            modifiers={allModifiers}\n                        >\n                            {this.renderPopover}\n                        </Popper>\n                    </Overlay>\n                </WrapperTagName>\n            </Manager>\n        );\n    }\n\n    public componentDidMount() {\n        this.updateDarkParent();\n    }\n\n    public componentWillReceiveProps(nextProps: IPopoverProps) {\n        super.componentWillReceiveProps(nextProps);\n\n        const nextIsOpen = this.getIsOpen(nextProps);\n\n        if (nextProps.isOpen != null && nextIsOpen !== this.state.isOpen) {\n            this.setOpenState(nextIsOpen);\n            // tricky: setOpenState calls setState only if this.props.isOpen is\n            // not controlled, so we need to invoke setState manually here.\n            this.setState({ isOpen: nextIsOpen });\n        } else if (this.state.isOpen && nextProps.isOpen == null && nextProps.disabled) {\n            // special case: close an uncontrolled popover when disabled is set to true\n            this.setOpenState(false);\n        }\n    }\n\n    public componentDidUpdate() {\n        this.updateDarkParent();\n    }\n\n    protected validateProps(props: IPopoverProps & { children?: React.ReactNode }) {\n        if (props.isOpen == null && props.onInteraction != null) {\n            console.warn(Errors.POPOVER_WARN_UNCONTROLLED_ONINTERACTION);\n        }\n        if (props.hasBackdrop && !props.usePortal) {\n            console.warn(Errors.POPOVER_WARN_HAS_BACKDROP_INLINE);\n        }\n        if (props.hasBackdrop && props.interactionKind !== PopoverInteractionKind.CLICK) {\n            throw new Error(Errors.POPOVER_HAS_BACKDROP_INTERACTION);\n        }\n\n        const childrenCount = React.Children.count(props.children);\n        const hasContentProp = props.content !== undefined;\n        const hasTargetProp = props.target !== undefined;\n\n        if (childrenCount === 0 && !hasTargetProp) {\n            throw new Error(Errors.POPOVER_REQUIRES_TARGET);\n        }\n        if (childrenCount > 2) {\n            console.warn(Errors.POPOVER_WARN_TOO_MANY_CHILDREN);\n        }\n        if (childrenCount > 0 && hasTargetProp) {\n            console.warn(Errors.POPOVER_WARN_DOUBLE_TARGET);\n        }\n        if (childrenCount === 2 && hasContentProp) {\n            console.warn(Errors.POPOVER_WARN_DOUBLE_CONTENT);\n        }\n    }\n\n    private updateDarkParent() {\n        if (this.props.usePortal && this.state.isOpen) {\n            const hasDarkParent = this.targetElement != null && this.targetElement.closest(`.${Classes.DARK}`) != null;\n            this.setState({ hasDarkParent });\n        }\n    }\n\n    private renderPopover = (popperProps: PopperChildrenProps) => {\n        const { usePortal, interactionKind } = this.props;\n        const { transformOrigin } = this.state;\n\n        // Need to update our reference to this on every render as it will change.\n        this.popperScheduleUpdate = popperProps.scheduleUpdate;\n\n        const popoverHandlers: HTMLDivProps = {\n            // always check popover clicks for dismiss class\n            onClick: this.handlePopoverClick,\n        };\n        if (\n            interactionKind === PopoverInteractionKind.HOVER ||\n            (!usePortal && interactionKind === PopoverInteractionKind.HOVER_TARGET_ONLY)\n        ) {\n            popoverHandlers.onMouseEnter = this.handleMouseEnter;\n            popoverHandlers.onMouseLeave = this.handleMouseLeave;\n        }\n\n        const popoverClasses = classNames(\n            Classes.POPOVER,\n            {\n                [Classes.DARK]: this.props.inheritDarkTheme && this.state.hasDarkParent,\n                [Classes.MINIMAL]: this.props.minimal,\n            },\n            this.props.popoverClassName,\n        );\n\n        return (\n            <div className={Classes.TRANSITION_CONTAINER} ref={popperProps.ref} style={popperProps.style}>\n                <ResizeSensor onResize={this.handlePopoverResize}>\n                    <div className={popoverClasses} style={{ transformOrigin }} {...popoverHandlers}>\n                        {this.isArrowEnabled() && (\n                            <PopoverArrow arrowProps={popperProps.arrowProps} placement={popperProps.placement} />\n                        )}\n                        <div className={Classes.POPOVER_CONTENT}>{this.understandChildren().content}</div>\n                    </div>\n                </ResizeSensor>\n            </div>\n        );\n    };\n\n    private renderTarget = (referenceProps: ReferenceChildrenProps) => {\n        const { targetClassName, targetTagName: TagName } = this.props;\n        const { isOpen } = this.state;\n        const isHoverInteractionKind = this.isHoverInteractionKind();\n\n        const targetProps: React.HTMLProps<HTMLElement> = isHoverInteractionKind\n            ? {\n                  // HOVER handlers\n                  onBlur: this.handleTargetBlur,\n                  onFocus: this.handleTargetFocus,\n                  onMouseEnter: this.handleMouseEnter,\n                  onMouseLeave: this.handleMouseLeave,\n              }\n            : {\n                  // CLICK needs only one handler\n                  onClick: this.handleTargetClick,\n              };\n        targetProps.className = classNames(Classes.POPOVER_TARGET, { [Classes.POPOVER_OPEN]: isOpen }, targetClassName);\n        targetProps.ref = referenceProps.ref;\n\n        const rawTarget = Utils.ensureElement(this.understandChildren().target);\n        const { tabIndex = 0 } = rawTarget.props;\n        const clonedTarget: JSX.Element = React.cloneElement(rawTarget, {\n            className: classNames(rawTarget.props.className, {\n                [Classes.ACTIVE]: isOpen && !isHoverInteractionKind,\n            }),\n            // force disable single Tooltip child when popover is open (BLUEPRINT-552)\n            disabled: isOpen && Utils.isElementOfType(rawTarget, Tooltip) ? true : rawTarget.props.disabled,\n            tabIndex: this.props.openOnTargetFocus && isHoverInteractionKind ? tabIndex : undefined,\n        });\n        return (\n            <ResizeSensor onResize={this.handlePopoverResize}>\n                <TagName {...targetProps}>{clonedTarget}</TagName>\n            </ResizeSensor>\n        );\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    private understandChildren() {\n        const { children, content: contentProp, target: targetProp } = this.props;\n        // #validateProps asserts that 1 <= children.length <= 2 so content is optional\n        const [targetChild, contentChild] = React.Children.toArray(children);\n        return {\n            content: contentChild == null ? contentProp : contentChild,\n            target: targetChild == null ? targetProp : targetChild,\n        };\n    }\n\n    private getIsOpen(props: IPopoverProps) {\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    private handleTargetFocus = (e: React.FocusEvent<HTMLElement>) => {\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            this.handleMouseEnter(e);\n        }\n    };\n\n    private handleTargetBlur = (e: React.FocusEvent<HTMLElement>) => {\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.\n            if (!this.isElementInPopover(e.relatedTarget as HTMLElement)) {\n                this.handleMouseLeave(e);\n            }\n        }\n        this.lostFocusOnSamePage = e.relatedTarget != null;\n    };\n\n    private handleMouseEnter = (e: React.SyntheticEvent<HTMLElement>) => {\n        this.isMouseInTargetOrPopover = true;\n\n        // 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        if (\n            !this.props.usePortal &&\n            this.isElementInPopover(e.target as Element) &&\n            this.props.interactionKind === PopoverInteractionKind.HOVER_TARGET_ONLY &&\n            !this.props.openOnTargetFocus\n        ) {\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\n    private handleMouseLeave = (e: React.SyntheticEvent<HTMLElement>) => {\n        this.isMouseInTargetOrPopover = false;\n\n        // 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        this.setTimeout(() => {\n            if (this.isMouseInTargetOrPopover) {\n                return;\n            }\n            // user-configurable closing delay is helpful when moving mouse from target to popover\n            this.setOpenState(false, e, this.props.hoverCloseDelay);\n        });\n    };\n\n    private handlePopoverClick = (e: React.MouseEvent<HTMLElement>) => {\n        const eventTarget = e.target as HTMLElement;\n        // an OVERRIDE inside a DISMISS does not dismiss, and a DISMISS inside an OVERRIDE will dismiss.\n        const dismissElement = eventTarget.closest(`.${Classes.POPOVER_DISMISS}, .${Classes.POPOVER_DISMISS_OVERRIDE}`);\n        const shouldDismiss = dismissElement != null && dismissElement.classList.contains(Classes.POPOVER_DISMISS);\n        const isDisabled = eventTarget.closest(`:disabled, .${Classes.DISABLED}`) != null;\n        if (shouldDismiss && !isDisabled && !e.isDefaultPrevented()) {\n            this.setOpenState(false, e);\n            if (this.props.captureDismiss) {\n                e.preventDefault();\n            }\n        }\n    };\n\n    private handlePopoverResize = () => Utils.safeInvoke(this.popperScheduleUpdate);\n\n    private handleOverlayClose = (e: React.SyntheticEvent<HTMLElement>) => {\n        const eventTarget = e.target as HTMLElement;\n        // if click was in target, target event listener will handle things, so don't close\n        if (!Utils.elementIsOrContains(this.targetElement, eventTarget) || e.nativeEvent instanceof KeyboardEvent) {\n            this.setOpenState(false, e);\n        }\n    };\n\n    private handleTargetClick = (e: React.MouseEvent<HTMLElement>) => {\n        // ensure click did not originate from within inline popover before closing\n        if (!this.props.disabled && !this.isElementInPopover(e.target as HTMLElement)) {\n            if (this.props.isOpen == null) {\n                this.setState(prevState => ({ isOpen: !prevState.isOpen }));\n            } else {\n                this.setOpenState(!this.props.isOpen, e);\n            }\n        }\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    private setOpenState(isOpen: boolean, e?: React.SyntheticEvent<HTMLElement>, timeout?: number) {\n        // cancel any existing timeout because we have new state\n        Utils.safeInvoke(this.cancelOpenTimeout);\n        if (timeout > 0) {\n            this.cancelOpenTimeout = this.setTimeout(() => this.setOpenState(isOpen, e), timeout);\n        } else {\n            if (this.props.isOpen == null) {\n                this.setState({ isOpen });\n            } else {\n                Utils.safeInvoke(this.props.onInteraction, isOpen, e);\n            }\n            if (!isOpen) {\n                Utils.safeInvoke(this.props.onClose, e);\n            }\n        }\n    }\n\n    private isArrowEnabled() {\n        const { minimal, modifiers: { arrow } } = this.props;\n        // omitting `arrow` from `modifiers` uses Popper default, which does show an arrow.\n        return !minimal && (arrow == null || arrow.enabled);\n    }\n\n    private isElementInPopover(element: Element) {\n        return this.popoverElement != null && this.popoverElement.contains(element);\n    }\n\n    private isHoverInteractionKind() {\n        return (\n            this.props.interactionKind === PopoverInteractionKind.HOVER ||\n            this.props.interactionKind === PopoverInteractionKind.HOVER_TARGET_ONLY\n        );\n    }\n\n    /** Popper modifier that updates React state (for style properties) based on latest data. */\n    private updatePopoverState: ModifierFn = data => {\n        // always set string; let shouldComponentUpdate determine if update is necessary\n        this.setState({ transformOrigin: getTransformOrigin(data) });\n        return data;\n    };\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\n\nimport { AbstractPureComponent } from \"../../common/abstractPureComponent\";\nimport * as Classes from \"../../common/classes\";\nimport { Position } from \"../../common/position\";\nimport { safeInvoke } from \"../../common/utils\";\nimport { IOverlayLifecycleProps } from \"../overlay/overlay\";\nimport { Popover } from \"../popover/popover\";\nimport { PopperModifiers } from \"../popover/popoverSharedProps\";\n\nexport interface IOffset {\n    left: number;\n    top: number;\n}\n\ninterface IContextMenuState {\n    isOpen: boolean;\n    isDarkTheme: boolean;\n    menu: JSX.Element;\n    offset: IOffset;\n    onClose?: () => void;\n}\n\nconst POPPER_MODIFIERS: PopperModifiers = {\n    preventOverflow: { boundariesElement: \"viewport\" },\n};\nconst TRANSITION_DURATION = 100;\n\n/* istanbul ignore next */\nclass ContextMenu extends AbstractPureComponent<IOverlayLifecycleProps, IContextMenuState> {\n    public state: IContextMenuState = {\n        isDarkTheme: false,\n        isOpen: false,\n        menu: null,\n        offset: null,\n    };\n\n    public render() {\n        // prevent right-clicking in a context menu\n        const content = <div onContextMenu={this.cancelContextMenu}>{this.state.menu}</div>;\n        const popoverClassName = classNames({ [Classes.DARK]: this.state.isDarkTheme });\n\n        // 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        const key = this.state.offset == null ? \"\" : `${this.state.offset.left}x${this.state.offset.top}`;\n\n        // wrap the popover in a positioned div to make sure it is properly\n        // offset on the screen.\n        return (\n            <div className={Classes.CONTEXT_MENU_POPOVER_TARGET} style={this.state.offset}>\n                <Popover\n                    {...this.props}\n                    backdropProps={{ onContextMenu: this.handleBackdropContextMenu }}\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={<div />}\n                    transitionDuration={TRANSITION_DURATION}\n                />\n            </div>\n        );\n    }\n\n    public show(menu: JSX.Element, offset: IOffset, onClose?: () => void, isDarkTheme?: boolean) {\n        this.setState({ isOpen: true, menu, offset, onClose, isDarkTheme });\n    }\n\n    public hide() {\n        safeInvoke(this.state.onClose);\n        this.setState({ isOpen: false, onClose: undefined });\n    }\n\n    private cancelContextMenu = (e: React.SyntheticEvent<HTMLDivElement>) => e.preventDefault();\n\n    private handleBackdropContextMenu = (e: React.MouseEvent<HTMLDivElement>) => {\n        // React function to remove from the event pool, useful when using a event within a callback\n        e.persist();\n        e.preventDefault();\n        // 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        this.setTimeout(() => {\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            const newTarget = document.elementFromPoint(e.clientX, e.clientY);\n            newTarget.dispatchEvent(new MouseEvent(\"contextmenu\", e));\n        }, TRANSITION_DURATION);\n    };\n\n    private handlePopoverInteraction = (nextOpenState: boolean) => {\n        if (!nextOpenState) {\n            // delay the actual hiding till the event queue clears\n            // to avoid flicker of opening twice\n            requestAnimationFrame(() => this.hide());\n        }\n    };\n}\n\nlet contextMenuElement: HTMLElement;\nlet contextMenu: ContextMenu;\n\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 */\nexport function show(menu: JSX.Element, offset: IOffset, onClose?: () => void, isDarkTheme?: boolean) {\n    if (contextMenuElement == null) {\n        contextMenuElement = document.createElement(\"div\");\n        contextMenuElement.classList.add(Classes.CONTEXT_MENU);\n        document.body.appendChild(contextMenuElement);\n        contextMenu = ReactDOM.render(<ContextMenu onClosed={remove} />, contextMenuElement) as ContextMenu;\n    }\n\n    contextMenu.show(menu, offset, onClose, isDarkTheme);\n}\n\n/** Hide the open context menu. */\nexport function hide() {\n    if (contextMenu != null) {\n        contextMenu.hide();\n    }\n}\n\n/** Return whether a context menu is currently open. */\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 = null;\n        contextMenu = null;\n    }\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n */\n\nexport const ADD = \"\\ue63e\";\nexport const ADD_COLUMN_LEFT = \"\\ue6f9\";\nexport const ADD_COLUMN_RIGHT = \"\\ue6fa\";\nexport const ADD_ROW_BOTTOM = \"\\ue6f8\";\nexport const ADD_ROW_TOP = \"\\ue6f7\";\nexport const ADD_TO_ARTIFACT = \"\\ue67c\";\nexport const ADD_TO_FOLDER = \"\\ue6d2\";\nexport const AIRPLANE = \"\\ue74b\";\nexport const ALIGN_CENTER = \"\\ue603\";\nexport const ALIGN_JUSTIFY = \"\\ue605\";\nexport const ALIGN_LEFT = \"\\ue602\";\nexport const ALIGN_RIGHT = \"\\ue604\";\nexport const ALIGNMENT_BOTTOM = \"\\ue727\";\nexport const ALIGNMENT_HORIZONTAL_CENTER = \"\\ue726\";\nexport const ALIGNMENT_LEFT = \"\\ue722\";\nexport const ALIGNMENT_RIGHT = \"\\ue724\";\nexport const ALIGNMENT_TOP = \"\\ue725\";\nexport const ALIGNMENT_VERTICAL_CENTER = \"\\ue723\";\nexport const ANNOTATION = \"\\ue6f0\";\nexport const APPLICATION = \"\\ue735\";\nexport const APPLICATIONS = \"\\ue621\";\nexport const ARROW_BOTTOM_LEFT = \"\\u2199\";\nexport const ARROW_BOTTOM_RIGHT = \"\\u2198\";\nexport const ARROW_DOWN = \"\\u2193 \";\nexport const ARROW_LEFT = \"\\u2190\";\nexport const ARROW_RIGHT = \"\\u2192\";\nexport const ARROW_TOP_LEFT = \"\\u2196\";\nexport const ARROW_TOP_RIGHT = \"\\u2197\";\nexport const ARROW_UP = \"\\u2191 \";\nexport const ARROWS_HORIZONTAL = \"\\u2194 \";\nexport const ARROWS_VERTICAL = \"\\u2195 \";\nexport const ASTERISK = \"\\u002a\";\nexport const AUTOMATIC_UPDATES = \"\\ue65f\";\nexport const BADGE = \"\\ue6e3\";\nexport const BAN_CIRCLE = \"\\ue69d\";\nexport const BANK_ACCOUNT = \"\\ue76f\";\nexport const BARCODE = \"\\ue676\";\nexport const BLANK = \"\\ue900\";\nexport const BLOCKED_PERSON = \"\\ue768\";\nexport const BOLD = \"\\ue606\";\nexport const BOOK = \"\\ue6b8\";\nexport const BOOKMARK = \"\\ue61a\";\nexport const BOX = \"\\ue6bf\";\nexport const BRIEFCASE = \"\\ue674\";\nexport const BUILD = \"\\ue72d\";\nexport const CALCULATOR = \"\\ue70b\";\nexport const CALENDAR = \"\\ue62b\";\nexport const CAMERA = \"\\ue69e\";\nexport const CARET_DOWN = \"\\u2304\";\nexport const CARET_LEFT = \"\\u2329\";\nexport const CARET_RIGHT = \"\\u232A\";\nexport const CARET_UP = \"\\u2303\";\nexport const CELL_TOWER = \"\\ue770\";\nexport const CHANGES = \"\\ue623\";\nexport const CHART = \"\\ue67e\";\nexport const CHAT = \"\\ue689\";\nexport const CHEVRON_BACKWARD = \"\\ue6df\";\nexport const CHEVRON_DOWN = \"\\ue697\";\nexport const CHEVRON_FORWARD = \"\\ue6e0\";\nexport const CHEVRON_LEFT = \"\\ue694\";\nexport const CHEVRON_RIGHT = \"\\ue695\";\nexport const CHEVRON_UP = \"\\ue696\";\nexport const CIRCLE = \"\\ue66a\";\nexport const CIRCLE_ARROW_DOWN = \"\\ue68e\";\nexport const CIRCLE_ARROW_LEFT = \"\\ue68c\";\nexport const CIRCLE_ARROW_RIGHT = \"\\ue68b\";\nexport const CIRCLE_ARROW_UP = \"\\ue68d\";\nexport const CITATION = \"\\ue61b\";\nexport const CLEAN = \"\\ue7c5\";\nexport const CLIPBOARD = \"\\ue61d\";\nexport const CLOUD = \"\\u2601\";\nexport const CLOUD_DOWNLOAD = \"\\ue690\";\nexport const CLOUD_UPLOAD = \"\\ue691\";\nexport const CODE = \"\\ue661\";\nexport const CODE_BLOCK = \"\\ue6c5\";\nexport const COG = \"\\ue645\";\nexport const COLLAPSE_ALL = \"\\ue763\";\nexport const COLUMN_LAYOUT = \"\\ue6da\";\nexport const COMMENT = \"\\ue68a\";\nexport const COMPARISON = \"\\ue637\";\nexport const COMPASS = \"\\ue79c\";\nexport const COMPRESSED = \"\\ue6c0\";\nexport const CONFIRM = \"\\ue639\";\nexport const CONSOLE = \"\\ue79b\";\nexport const CONTRAST = \"\\ue6cb\";\nexport const CONTROL = \"\\ue67f\";\nexport const CREDIT_CARD = \"\\ue649\";\nexport const CROSS = \"\\u2717\";\nexport const CROWN = \"\\ue7b4\";\nexport const CURVED_RANGE_CHART = \"\\ue71b\";\nexport const CUT = \"\\ue6ef\";\nexport const DASHBOARD = \"\\ue751\";\nexport const DATABASE = \"\\ue683\";\nexport const DELETE = \"\\ue644\";\nexport const DELTA = \"\\u0394\";\nexport const DERIVE_COLUMN = \"\\ue739\";\nexport const DESKTOP = \"\\ue6af\";\nexport const DIAGRAM_TREE = \"\\ue7b3\";\nexport const DIRECTION_LEFT = \"\\ue681\";\nexport const DIRECTION_RIGHT = \"\\ue682\";\nexport const DISABLE = \"\\ue600\";\nexport const DOCUMENT = \"\\ue630\";\nexport const DOCUMENT_OPEN = \"\\ue71e\";\nexport const DOCUMENT_SHARE = \"\\ue71f\";\nexport const DOLLAR = \"\\u0024\";\nexport const DOT = \"\\u2022\";\nexport const DOUBLE_CARET_HORIZONTAL = \"\\ue6c7\";\nexport const DOUBLE_CARET_VERTICAL = \"\\ue6c6\";\nexport const DOUBLE_CHEVRON_DOWN = \"\\ue703\";\nexport const DOUBLE_CHEVRON_LEFT = \"\\ue6ff\";\nexport const DOUBLE_CHEVRON_RIGHT = \"\\ue701\";\nexport const DOUBLE_CHEVRON_UP = \"\\ue702\";\nexport const DOUGHNUT_CHART = \"\\ue6ce\";\nexport const DOWNLOAD = \"\\ue62f\";\nexport const DRAG_HANDLE_HORIZONTAL = \"\\ue716\";\nexport const DRAG_HANDLE_VERTICAL = \"\\ue715\";\nexport const DRAW = \"\\ue66b\";\nexport const DRIVE_TIME = \"\\ue615\";\nexport const DUPLICATE = \"\\ue69c\";\nexport const EDIT = \"\\u270E\";\nexport const EJECT = \"\\u23cf\";\nexport const ENDORSED = \"\\ue75f\";\nexport const ENVELOPE = \"\\u2709\";\nexport const ERASER = \"\\ue773\";\nexport const ERROR = \"\\ue648\";\nexport const EURO = \"\\u20ac\";\nexport const EXCHANGE = \"\\ue636\";\nexport const EXCLUDE_ROW = \"\\ue6ea\";\nexport const EXPAND_ALL = \"\\ue764\";\nexport const EXPORT = \"\\ue633\";\nexport const EYE_OFF = \"\\ue6cc\";\nexport const EYE_ON = \"\\ue75a\";\nexport const EYE_OPEN = \"\\ue66f\";\nexport const FAST_BACKWARD = \"\\ue6a8\";\nexport const FAST_FORWARD = \"\\ue6ac\";\nexport const FEED = \"\\ue656\";\nexport const FEED_SUBSCRIBED = \"\\ue78f\";\nexport const FILM = \"\\ue6a1\";\nexport const FILTER = \"\\ue638\";\nexport const FILTER_KEEP = \"\\ue78c\";\nexport const FILTER_LIST = \"\\ue6ee\";\nexport const FILTER_REMOVE = \"\\ue78d\";\nexport const FLAG = \"\\u2691\";\nexport const FLAME = \"\\ue7a9\";\nexport const FLASH = \"\\ue6b3\";\nexport const FLOPPY_DISK = \"\\ue6b7\";\nexport const FLOW_BRANCH = \"\\ue7c1\";\nexport const FLOW_END = \"\\ue7c4\";\nexport const FLOW_LINEAR = \"\\ue7c0\";\nexport const FLOW_REVIEW = \"\\ue7c2\";\nexport const FLOW_REVIEW_BRANCH = \"\\ue7c3\";\nexport const FLOWS = \"\\ue659\";\nexport const FOLDER_CLOSE = \"\\ue652\";\nexport const FOLDER_NEW = \"\\ue7b0\";\nexport const FOLDER_OPEN = \"\\ue651\";\nexport const FOLDER_SHARED = \"\\ue653\";\nexport const FOLDER_SHARED_OPEN = \"\\ue670\";\nexport const FOLLOWER = \"\\ue760\";\nexport const FOLLOWING = \"\\ue761\";\nexport const FONT = \"\\ue6b4\";\nexport const FORK = \"\\ue63a\";\nexport const FORM = \"\\ue795\";\nexport const FULL_CIRCLE = \"\\ue685\";\nexport const FULL_STACKED_CHART = \"\\ue75e\";\nexport const FULLSCREEN = \"\\ue699\";\nexport const FUNCTION = \"\\ue6e5\";\nexport const GANTT_CHART = \"\\ue6f4\";\nexport const GEOLOCATION = \"\\ue640\";\nexport const GEOSEARCH = \"\\ue613\";\nexport const GIT_BRANCH = \"\\ue72a\";\nexport const GIT_COMMIT = \"\\ue72b\";\nexport const GIT_MERGE = \"\\ue729\";\nexport const GIT_NEW_BRANCH = \"\\ue749\";\nexport const GIT_PULL = \"\\ue728\";\nexport const GIT_PUSH = \"\\ue72c\";\nexport const GIT_REPO = \"\\ue748\";\nexport const GLASS = \"\\ue6b1\";\nexport const GLOBE = \"\\ue666\";\nexport const GLOBE_NETWORK = \"\\ue7b5\";\nexport const GRAPH = \"\\ue673\";\nexport const GRAPH_REMOVE = \"\\ue609\";\nexport const GRID = \"\\ue6d0\";\nexport const GRID_VIEW = \"\\ue6e4\";\nexport const GROUP_OBJECTS = \"\\ue60a\";\nexport const GROUPED_BAR_CHART = \"\\ue75d\";\nexport const HAND = \"\\ue6de\";\nexport const HAND_DOWN = \"\\ue6bb\";\nexport const HAND_LEFT = \"\\ue6bc\";\nexport const HAND_RIGHT = \"\\ue6b9\";\nexport const HAND_UP = \"\\ue6ba\";\nexport const HEADER = \"\\ue6b5\";\nexport const HEADER_ONE = \"\\ue793\";\nexport const HEADER_TWO = \"\\ue794\";\nexport const HEADSET = \"\\ue6dc\";\nexport const HEART = \"\\u2665\";\nexport const HEART_BROKEN = \"\\ue7a2\";\nexport const HEAT_GRID = \"\\ue6f3\";\nexport const HEATMAP = \"\\ue614\";\nexport const HELP = \"\\u003F\";\nexport const HELPER_MANAGEMENT = \"\\ue66d\";\nexport const HIGHLIGHT = \"\\ue6ed\";\nexport const HISTORY = \"\\ue64a\";\nexport const HOME = \"\\u2302\";\nexport const HORIZONTAL_BAR_CHART = \"\\ue70c\";\nexport const HORIZONTAL_BAR_CHART_ASC = \"\\ue75c\";\nexport const HORIZONTAL_BAR_CHART_DESC = \"\\ue71d\";\nexport const HORIZONTAL_DISTRIBUTION = \"\\ue720\";\nexport const ID_NUMBER = \"\\ue771\";\nexport const IMAGE_ROTATE_LEFT = \"\\ue73a\";\nexport const IMAGE_ROTATE_RIGHT = \"\\ue73b\";\nexport const IMPORT = \"\\ue632\";\nexport const INBOX = \"\\ue629\";\nexport const INFO_SIGN = \"\\u2139\";\nexport const INNER_JOIN = \"\\ue7a3\";\nexport const INSERT = \"\\ue66c\";\nexport const INTERSECTION = \"\\ue765\";\nexport const IP_ADDRESS = \"\\ue772\";\nexport const ISSUE = \"\\ue774\";\nexport const ISSUE_CLOSED = \"\\ue776\";\nexport const ISSUE_NEW = \"\\ue775\";\nexport const ITALIC = \"\\ue607\";\nexport const JOIN_TABLE = \"\\ue738\";\nexport const KEY = \"\\ue78e\";\nexport const KEY_BACKSPACE = \"\\ue707\";\nexport const KEY_COMMAND = \"\\ue705\";\nexport const KEY_CONTROL = \"\\ue704\";\nexport const KEY_DELETE = \"\\ue708\";\nexport const KEY_ENTER = \"\\ue70a\";\nexport const KEY_ESCAPE = \"\\ue709\";\nexport const KEY_OPTION = \"\\ue742\";\nexport const KEY_SHIFT = \"\\ue706\";\nexport const KEY_TAB = \"\\ue757\";\nexport const KNOWN_VEHICLE = \"\\ue73c\";\nexport const LABEL = \"\\ue665\";\nexport const LAYER = \"\\ue6cf\";\nexport const LAYERS = \"\\ue618\";\nexport const LAYOUT = \"\\ue60c\";\nexport const LAYOUT_AUTO = \"\\ue60d\";\nexport const LAYOUT_BALLOON = \"\\ue6d3\";\nexport const LAYOUT_CIRCLE = \"\\ue60e\";\nexport const LAYOUT_GRID = \"\\ue610\";\nexport const LAYOUT_GROUP_BY = \"\\ue611\";\nexport const LAYOUT_HIERARCHY = \"\\ue60f\";\nexport const LAYOUT_LINEAR = \"\\ue6c3\";\nexport const LAYOUT_SKEW_GRID = \"\\ue612\";\nexport const LAYOUT_SORTED_CLUSTERS = \"\\ue6d4\";\nexport const LEFT_JOIN = \"\\ue7a4\";\nexport const LIGHTBULB = \"\\ue6b0\";\nexport const LINK = \"\\ue62d\";\nexport const LIST = \"\\u2630\";\nexport const LIST_COLUMNS = \"\\ue7b9\";\nexport const LIST_DETAIL_VIEW = \"\\ue743\";\nexport const LOCATE = \"\\ue619\";\nexport const LOCK = \"\\ue625\";\nexport const LOG_IN = \"\\ue69a\";\nexport const LOG_OUT = \"\\ue64c\";\nexport const MANUAL = \"\\ue6f6\";\nexport const MANUALLY_ENTERED_DATA = \"\\ue74a\";\nexport const MAP = \"\\ue662\";\nexport const MAP_CREATE = \"\\ue741\";\nexport const MAP_MARKER = \"\\ue67d\";\nexport const MAXIMIZE = \"\\ue635\";\nexport const MEDIA = \"\\ue62c\";\nexport const MENU = \"\\ue762\";\nexport const MENU_CLOSED = \"\\ue655\";\nexport const MENU_OPEN = \"\\ue654\";\nexport const MERGE_COLUMNS = \"\\ue74f\";\nexport const MERGE_LINKS = \"\\ue60b\";\nexport const MINIMIZE = \"\\ue634\";\nexport const MINUS = \"\\u2212\";\nexport const MOBILE_PHONE = \"\\ue717\";\nexport const MOBILE_VIDEO = \"\\ue69f\";\nexport const MOON = \"\\ue754\";\nexport const MORE = \"\\ue62a\";\nexport const MOUNTAIN = \"\\ue7b1\";\nexport const MOVE = \"\\ue693\";\nexport const MUGSHOT = \"\\ue6db\";\nexport const MULTI_SELECT = \"\\ue680\";\nexport const MUSIC = \"\\ue6a6\";\nexport const NEW_GRID_ITEM = \"\\ue747\";\nexport const NEW_LINK = \"\\ue65c\";\nexport const NEW_OBJECT = \"\\ue65d\";\nexport const NEW_PERSON = \"\\ue6e9\";\nexport const NEW_PRESCRIPTION = \"\\ue78b\";\nexport const NEW_TEXT_BOX = \"\\ue65b\";\nexport const NINJA = \"\\ue675\";\nexport const NOTIFICATIONS = \"\\ue624\";\nexport const NOTIFICATIONS_UPDATED = \"\\ue7b8\";\nexport const NUMBERED_LIST = \"\\ue746\";\nexport const NUMERICAL = \"\\ue756\";\nexport const OFFICE = \"\\ue69b\";\nexport const OFFLINE = \"\\ue67a\";\nexport const OIL_FIELD = \"\\ue73f\";\nexport const ONE_COLUMN = \"\\ue658\";\nexport const OUTDATED = \"\\ue7a8\";\nexport const PAGE_LAYOUT = \"\\ue660\";\nexport const PANEL_STATS = \"\\ue777\";\nexport const PANEL_TABLE = \"\\ue778\";\nexport const PAPERCLIP = \"\\ue664\";\nexport const PARAGRAPH = \"\\ue76c\";\nexport const PATH = \"\\ue753\";\nexport const PATH_SEARCH = \"\\ue65e\";\nexport const PAUSE = \"\\ue6a9\";\nexport const PEOPLE = \"\\ue63d\";\nexport const PERCENTAGE = \"\\ue76a\";\nexport const PERSON = \"\\ue63c\";\nexport const PHONE = \"\\u260e\";\nexport const PIE_CHART = \"\\ue684\";\nexport const PIN = \"\\ue646\";\nexport const PIVOT = \"\\ue6f1\";\nexport const PIVOT_TABLE = \"\\ue6eb\";\nexport const PLAY = \"\\ue6ab\";\nexport const PLUS = \"\\u002b\";\nexport const POLYGON_FILTER = \"\\ue6d1\";\nexport const POWER = \"\\ue6d9\";\nexport const PREDICTIVE_ANALYSIS = \"\\ue617\";\nexport const PRESCRIPTION = \"\\ue78a\";\nexport const PRESENTATION = \"\\ue687\";\nexport const PRINT = \"\\u2399\";\nexport const PROJECTS = \"\\ue622\";\nexport const PROPERTIES = \"\\ue631\";\nexport const PROPERTY = \"\\ue65a\";\nexport const PUBLISH_FUNCTION = \"\\ue752\";\nexport const PULSE = \"\\ue6e8\";\nexport const RANDOM = \"\\ue698\";\nexport const RECORD = \"\\ue6ae\";\nexport const REDO = \"\\ue6c4\";\nexport const REFRESH = \"\\ue643\";\nexport const REGRESSION_CHART = \"\\ue758\";\nexport const REMOVE = \"\\ue63f\";\nexport const REMOVE_COLUMN = \"\\ue755\";\nexport const REMOVE_COLUMN_LEFT = \"\\ue6fd\";\nexport const REMOVE_COLUMN_RIGHT = \"\\ue6fe\";\nexport const REMOVE_ROW_BOTTOM = \"\\ue6fc\";\nexport const REMOVE_ROW_TOP = \"\\ue6fb\";\nexport const REPEAT = \"\\ue692\";\nexport const RESOLVE = \"\\ue672\";\nexport const RIG = \"\\ue740\";\nexport const RIGHT_JOIN = \"\\ue7a5\";\nexport const RING = \"\\ue6f2\";\nexport const ROTATE_DOCUMENT = \"\\ue6e1\";\nexport const ROTATE_PAGE = \"\\ue6e2\";\nexport const SATELLITE = \"\\ue76b\";\nexport const SAVED = \"\\ue6b6\";\nexport const SCATTER_PLOT = \"\\ue73e\";\nexport const SEARCH = \"\\ue64b\";\nexport const SEARCH_AROUND = \"\\ue608\";\nexport const SEARCH_TEMPLATE = \"\\ue628\";\nexport const SEARCH_TEXT = \"\\ue663\";\nexport const SEGMENTED_CONTROL = \"\\ue6ec\";\nexport const SELECT = \"\\ue616\";\nexport const SELECTION = \"\\u29bf\";\nexport const SEND_TO = \"\\ue66e\";\nexport const SEND_TO_GRAPH = \"\\ue736\";\nexport const SEND_TO_MAP = \"\\ue737\";\nexport const SERIES_ADD = \"\\ue796\";\nexport const SERIES_CONFIGURATION = \"\\ue79a\";\nexport const SERIES_DERIVED = \"\\ue799\";\nexport const SERIES_FILTERED = \"\\ue798\";\nexport const SERIES_SEARCH = \"\\ue797\";\nexport const SETTINGS = \"\\ue6a2\";\nexport const SHARE = \"\\ue62e\";\nexport const SHIELD = \"\\ue7b2\";\nexport const SHOP = \"\\ue6c2\";\nexport const SHOPPING_CART = \"\\ue6c1\";\nexport const SIM_CARD = \"\\ue718\";\nexport const SLASH = \"\\ue769\";\nexport const SMALL_CROSS = \"\\ue6d7\";\nexport const SMALL_MINUS = \"\\ue70e\";\nexport const SMALL_PLUS = \"\\ue70d\";\nexport const SMALL_TICK = \"\\ue6d8\";\nexport const SNOWFLAKE = \"\\ue7b6\";\nexport const SOCIAL_MEDIA = \"\\ue671\";\nexport const SORT = \"\\ue64f\";\nexport const SORT_ALPHABETICAL = \"\\ue64d\";\nexport const SORT_ALPHABETICAL_DESC = \"\\ue6c8\";\nexport const SORT_ASC = \"\\ue6d5\";\nexport const SORT_DESC = \"\\ue6d6\";\nexport const SORT_NUMERICAL = \"\\ue64e\";\nexport const SORT_NUMERICAL_DESC = \"\\ue6c9\";\nexport const SPLIT_COLUMNS = \"\\ue750\";\nexport const SQUARE = \"\\ue686\";\nexport const STACKED_CHART = \"\\ue6e7\";\nexport const STAR = \"\\u2605\";\nexport const STAR_EMPTY = \"\\u2606\";\nexport const STEP_BACKWARD = \"\\ue6a7\";\nexport const STEP_CHART = \"\\ue70f\";\nexport const STEP_FORWARD = \"\\ue6ad\";\nexport const STOP = \"\\ue6aa\";\nexport const STRIKETHROUGH = \"\\ue7a6\";\nexport const STYLE = \"\\ue601\";\nexport const SWAP_HORIZONTAL = \"\\ue745\";\nexport const SWAP_VERTICAL = \"\\ue744\";\nexport const SYMBOL_CIRCLE = \"\\ue72e\";\nexport const SYMBOL_CROSS = \"\\ue731\";\nexport const SYMBOL_DIAMOND = \"\\ue730\";\nexport const SYMBOL_SQUARE = \"\\ue72f\";\nexport const SYMBOL_TRIANGLE_DOWN = \"\\ue733\";\nexport const SYMBOL_TRIANGLE_UP = \"\\ue732\";\nexport const TAG = \"\\ue61c\";\nexport const TAKE_ACTION = \"\\ue6ca\";\nexport const TAXI = \"\\ue79e\";\nexport const TEXT_HIGHLIGHT = \"\\ue6dd\";\nexport const TH = \"\\ue667\";\nexport const TH_DERIVED = \"\\ue669\";\nexport const TH_LIST = \"\\ue668\";\nexport const THUMBS_DOWN = \"\\ue6be\";\nexport const THUMBS_UP = \"\\ue6bd\";\nexport const TICK = \"\\u2713\";\nexport const TICK_CIRCLE = \"\\ue779\";\nexport const TIME = \"\\u23F2\";\nexport const TIMELINE_AREA_CHART = \"\\ue6cd\";\nexport const TIMELINE_BAR_CHART = \"\\ue620\";\nexport const TIMELINE_EVENTS = \"\\ue61e\";\nexport const TIMELINE_LINE_CHART = \"\\ue61f\";\nexport const TINT = \"\\ue6b2\";\nexport const TORCH = \"\\ue677\";\nexport const TRAIN = \"\\ue79f\";\nexport const TRANSLATE = \"\\ue759\";\nexport const TRASH = \"\\ue63b\";\nexport const TREE = \"\\ue7b7\";\nexport const TRENDING_DOWN = \"\\ue71a\";\nexport const TRENDING_UP = \"\\ue719\";\nexport const TWO_COLUMNS = \"\\ue657\";\nexport const UNDERLINE = \"\\u2381\";\nexport const UNDO = \"\\u238c\";\nexport const UNGROUP_OBJECTS = \"\\ue688\";\nexport const UNKNOWN_VEHICLE = \"\\ue73d\";\nexport const UNLOCK = \"\\ue626\";\nexport const UNPIN = \"\\ue650\";\nexport const UNRESOLVE = \"\\ue679\";\nexport const UPDATED = \"\\ue7a7\";\nexport const UPLOAD = \"\\ue68f\";\nexport const USER = \"\\ue627\";\nexport const VARIABLE = \"\\ue6f5\";\nexport const VERTICAL_BAR_CHART_ASC = \"\\ue75b\";\nexport const VERTICAL_BAR_CHART_DESC = \"\\ue71c\";\nexport const VERTICAL_DISTRIBUTION = \"\\ue721\";\nexport const VIDEO = \"\\ue6a0\";\nexport const VOLUME_DOWN = \"\\ue6a4\";\nexport const VOLUME_OFF = \"\\ue6a3\";\nexport const VOLUME_UP = \"\\ue6a5\";\nexport const WALK = \"\\ue79d\";\nexport const WARNING_SIGN = \"\\ue647\";\nexport const WATERFALL_CHART = \"\\ue6e6\";\nexport const WIDGET = \"\\ue678\";\nexport const WIDGET_BUTTON = \"\\ue790\";\nexport const WIDGET_FOOTER = \"\\ue792\";\nexport const WIDGET_HEADER = \"\\ue791\";\nexport const WRENCH = \"\\ue734\";\nexport const ZOOM_IN = \"\\ue641\";\nexport const ZOOM_OUT = \"\\ue642\";\nexport const ZOOM_TO_FIT = \"\\ue67b\";\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n */\n\nexport const ADD = \"add\";\nexport const ADD_COLUMN_LEFT = \"add-column-left\";\nexport const ADD_COLUMN_RIGHT = \"add-column-right\";\nexport const ADD_ROW_BOTTOM = \"add-row-bottom\";\nexport const ADD_ROW_TOP = \"add-row-top\";\nexport const ADD_TO_ARTIFACT = \"add-to-artifact\";\nexport const ADD_TO_FOLDER = \"add-to-folder\";\nexport const AIRPLANE = \"airplane\";\nexport const ALIGN_CENTER = \"align-center\";\nexport const ALIGN_JUSTIFY = \"align-justify\";\nexport const ALIGN_LEFT = \"align-left\";\nexport const ALIGN_RIGHT = \"align-right\";\nexport const ALIGNMENT_BOTTOM = \"alignment-bottom\";\nexport const ALIGNMENT_HORIZONTAL_CENTER = \"alignment-horizontal-center\";\nexport const ALIGNMENT_LEFT = \"alignment-left\";\nexport const ALIGNMENT_RIGHT = \"alignment-right\";\nexport const ALIGNMENT_TOP = \"alignment-top\";\nexport const ALIGNMENT_VERTICAL_CENTER = \"alignment-vertical-center\";\nexport const ANNOTATION = \"annotation\";\nexport const APPLICATION = \"application\";\nexport const APPLICATIONS = \"applications\";\nexport const ARROW_BOTTOM_LEFT = \"arrow-bottom-left\";\nexport const ARROW_BOTTOM_RIGHT = \"arrow-bottom-right\";\nexport const ARROW_DOWN = \"arrow-down\";\nexport const ARROW_LEFT = \"arrow-left\";\nexport const ARROW_RIGHT = \"arrow-right\";\nexport const ARROW_TOP_LEFT = \"arrow-top-left\";\nexport const ARROW_TOP_RIGHT = \"arrow-top-right\";\nexport const ARROW_UP = \"arrow-up\";\nexport const ARROWS_HORIZONTAL = \"arrows-horizontal\";\nexport const ARROWS_VERTICAL = \"arrows-vertical\";\nexport const ASTERISK = \"asterisk\";\nexport const AUTOMATIC_UPDATES = \"automatic-updates\";\nexport const BADGE = \"badge\";\nexport const BAN_CIRCLE = \"ban-circle\";\nexport const BANK_ACCOUNT = \"bank-account\";\nexport const BARCODE = \"barcode\";\nexport const BLANK = \"blank\";\nexport const BLOCKED_PERSON = \"blocked-person\";\nexport const BOLD = \"bold\";\nexport const BOOK = \"book\";\nexport const BOOKMARK = \"bookmark\";\nexport const BOX = \"box\";\nexport const BRIEFCASE = \"briefcase\";\nexport const BUILD = \"build\";\nexport const CALCULATOR = \"calculator\";\nexport const CALENDAR = \"calendar\";\nexport const CAMERA = \"camera\";\nexport const CARET_DOWN = \"caret-down\";\nexport const CARET_LEFT = \"caret-left\";\nexport const CARET_RIGHT = \"caret-right\";\nexport const CARET_UP = \"caret-up\";\nexport const CELL_TOWER = \"cell-tower\";\nexport const CHANGES = \"changes\";\nexport const CHART = \"chart\";\nexport const CHAT = \"chat\";\nexport const CHEVRON_BACKWARD = \"chevron-backward\";\nexport const CHEVRON_DOWN = \"chevron-down\";\nexport const CHEVRON_FORWARD = \"chevron-forward\";\nexport const CHEVRON_LEFT = \"chevron-left\";\nexport const CHEVRON_RIGHT = \"chevron-right\";\nexport const CHEVRON_UP = \"chevron-up\";\nexport const CIRCLE = \"circle\";\nexport const CIRCLE_ARROW_DOWN = \"circle-arrow-down\";\nexport const CIRCLE_ARROW_LEFT = \"circle-arrow-left\";\nexport const CIRCLE_ARROW_RIGHT = \"circle-arrow-right\";\nexport const CIRCLE_ARROW_UP = \"circle-arrow-up\";\nexport const CITATION = \"citation\";\nexport const CLEAN = \"clean\";\nexport const CLIPBOARD = \"clipboard\";\nexport const CLOUD = \"cloud\";\nexport const CLOUD_DOWNLOAD = \"cloud-download\";\nexport const CLOUD_UPLOAD = \"cloud-upload\";\nexport const CODE = \"code\";\nexport const CODE_BLOCK = \"code-block\";\nexport const COG = \"cog\";\nexport const COLLAPSE_ALL = \"collapse-all\";\nexport const COLUMN_LAYOUT = \"column-layout\";\nexport const COMMENT = \"comment\";\nexport const COMPARISON = \"comparison\";\nexport const COMPASS = \"compass\";\nexport const COMPRESSED = \"compressed\";\nexport const CONFIRM = \"confirm\";\nexport const CONSOLE = \"console\";\nexport const CONTRAST = \"contrast\";\nexport const CONTROL = \"control\";\nexport const CREDIT_CARD = \"credit-card\";\nexport const CROSS = \"cross\";\nexport const CROWN = \"crown\";\nexport const CURVED_RANGE_CHART = \"curved-range-chart\";\nexport const CUT = \"cut\";\nexport const DASHBOARD = \"dashboard\";\nexport const DATABASE = \"database\";\nexport const DELETE = \"delete\";\nexport const DELTA = \"delta\";\nexport const DERIVE_COLUMN = \"derive-column\";\nexport const DESKTOP = \"desktop\";\nexport const DIAGRAM_TREE = \"diagram-tree\";\nexport const DIRECTION_LEFT = \"direction-left\";\nexport const DIRECTION_RIGHT = \"direction-right\";\nexport const DISABLE = \"disable\";\nexport const DOCUMENT = \"document\";\nexport const DOCUMENT_OPEN = \"document-open\";\nexport const DOCUMENT_SHARE = \"document-share\";\nexport const DOLLAR = \"dollar\";\nexport const DOT = \"dot\";\nexport const DOUBLE_CARET_HORIZONTAL = \"double-caret-horizontal\";\nexport const DOUBLE_CARET_VERTICAL = \"double-caret-vertical\";\nexport const DOUBLE_CHEVRON_DOWN = \"double-chevron-down\";\nexport const DOUBLE_CHEVRON_LEFT = \"double-chevron-left\";\nexport const DOUBLE_CHEVRON_RIGHT = \"double-chevron-right\";\nexport const DOUBLE_CHEVRON_UP = \"double-chevron-up\";\nexport const DOUGHNUT_CHART = \"doughnut-chart\";\nexport const DOWNLOAD = \"download\";\nexport const DRAG_HANDLE_HORIZONTAL = \"drag-handle-horizontal\";\nexport const DRAG_HANDLE_VERTICAL = \"drag-handle-vertical\";\nexport const DRAW = \"draw\";\nexport const DRIVE_TIME = \"drive-time\";\nexport const DUPLICATE = \"duplicate\";\nexport const EDIT = \"edit\";\nexport const EJECT = \"eject\";\nexport const ENDORSED = \"endorsed\";\nexport const ENVELOPE = \"envelope\";\nexport const ERASER = \"eraser\";\nexport const ERROR = \"error\";\nexport const EURO = \"euro\";\nexport const EXCHANGE = \"exchange\";\nexport const EXCLUDE_ROW = \"exclude-row\";\nexport const EXPAND_ALL = \"expand-all\";\nexport const EXPORT = \"export\";\nexport const EYE_OFF = \"eye-off\";\nexport const EYE_ON = \"eye-on\";\nexport const EYE_OPEN = \"eye-open\";\nexport const FAST_BACKWARD = \"fast-backward\";\nexport const FAST_FORWARD = \"fast-forward\";\nexport const FEED = \"feed\";\nexport const FEED_SUBSCRIBED = \"feed-subscribed\";\nexport const FILM = \"film\";\nexport const FILTER = \"filter\";\nexport const FILTER_KEEP = \"filter-keep\";\nexport const FILTER_LIST = \"filter-list\";\nexport const FILTER_REMOVE = \"filter-remove\";\nexport const FLAG = \"flag\";\nexport const FLAME = \"flame\";\nexport const FLASH = \"flash\";\nexport const FLOPPY_DISK = \"floppy-disk\";\nexport const FLOW_BRANCH = \"flow-branch\";\nexport const FLOW_END = \"flow-end\";\nexport const FLOW_LINEAR = \"flow-linear\";\nexport const FLOW_REVIEW = \"flow-review\";\nexport const FLOW_REVIEW_BRANCH = \"flow-review-branch\";\nexport const FLOWS = \"flows\";\nexport const FOLDER_CLOSE = \"folder-close\";\nexport const FOLDER_NEW = \"folder-new\";\nexport const FOLDER_OPEN = \"folder-open\";\nexport const FOLDER_SHARED = \"folder-shared\";\nexport const FOLDER_SHARED_OPEN = \"folder-shared-open\";\nexport const FOLLOWER = \"follower\";\nexport const FOLLOWING = \"following\";\nexport const FONT = \"font\";\nexport const FORK = \"fork\";\nexport const FORM = \"form\";\nexport const FULL_CIRCLE = \"full-circle\";\nexport const FULL_STACKED_CHART = \"full-stacked-chart\";\nexport const FULLSCREEN = \"fullscreen\";\nexport const FUNCTION = \"function\";\nexport const GANTT_CHART = \"gantt-chart\";\nexport const GEOLOCATION = \"geolocation\";\nexport const GEOSEARCH = \"geosearch\";\nexport const GIT_BRANCH = \"git-branch\";\nexport const GIT_COMMIT = \"git-commit\";\nexport const GIT_MERGE = \"git-merge\";\nexport const GIT_NEW_BRANCH = \"git-new-branch\";\nexport const GIT_PULL = \"git-pull\";\nexport const GIT_PUSH = \"git-push\";\nexport const GIT_REPO = \"git-repo\";\nexport const GLASS = \"glass\";\nexport const GLOBE = \"globe\";\nexport const GLOBE_NETWORK = \"globe-network\";\nexport const GRAPH = \"graph\";\nexport const GRAPH_REMOVE = \"graph-remove\";\nexport const GRID = \"grid\";\nexport const GRID_VIEW = \"grid-view\";\nexport const GROUP_OBJECTS = \"group-objects\";\nexport const GROUPED_BAR_CHART = \"grouped-bar-chart\";\nexport const HAND = \"hand\";\nexport const HAND_DOWN = \"hand-down\";\nexport const HAND_LEFT = \"hand-left\";\nexport const HAND_RIGHT = \"hand-right\";\nexport const HAND_UP = \"hand-up\";\nexport const HEADER = \"header\";\nexport const HEADER_ONE = \"header-one\";\nexport const HEADER_TWO = \"header-two\";\nexport const HEADSET = \"headset\";\nexport const HEART = \"heart\";\nexport const HEART_BROKEN = \"heart-broken\";\nexport const HEAT_GRID = \"heat-grid\";\nexport const HEATMAP = \"heatmap\";\nexport const HELP = \"help\";\nexport const HELPER_MANAGEMENT = \"helper-management\";\nexport const HIGHLIGHT = \"highlight\";\nexport const HISTORY = \"history\";\nexport const HOME = \"home\";\nexport const HORIZONTAL_BAR_CHART = \"horizontal-bar-chart\";\nexport const HORIZONTAL_BAR_CHART_ASC = \"horizontal-bar-chart-asc\";\nexport const HORIZONTAL_BAR_CHART_DESC = \"horizontal-bar-chart-desc\";\nexport const HORIZONTAL_DISTRIBUTION = \"horizontal-distribution\";\nexport const ID_NUMBER = \"id-number\";\nexport const IMAGE_ROTATE_LEFT = \"image-rotate-left\";\nexport const IMAGE_ROTATE_RIGHT = \"image-rotate-right\";\nexport const IMPORT = \"import\";\nexport const INBOX = \"inbox\";\nexport const INFO_SIGN = \"info-sign\";\nexport const INNER_JOIN = \"inner-join\";\nexport const INSERT = \"insert\";\nexport const INTERSECTION = \"intersection\";\nexport const IP_ADDRESS = \"ip-address\";\nexport const ISSUE = \"issue\";\nexport const ISSUE_CLOSED = \"issue-closed\";\nexport const ISSUE_NEW = \"issue-new\";\nexport const ITALIC = \"italic\";\nexport const JOIN_TABLE = \"join-table\";\nexport const KEY = \"key\";\nexport const KEY_BACKSPACE = \"key-backspace\";\nexport const KEY_COMMAND = \"key-command\";\nexport const KEY_CONTROL = \"key-control\";\nexport const KEY_DELETE = \"key-delete\";\nexport const KEY_ENTER = \"key-enter\";\nexport const KEY_ESCAPE = \"key-escape\";\nexport const KEY_OPTION = \"key-option\";\nexport const KEY_SHIFT = \"key-shift\";\nexport const KEY_TAB = \"key-tab\";\nexport const KNOWN_VEHICLE = \"known-vehicle\";\nexport const LABEL = \"label\";\nexport const LAYER = \"layer\";\nexport const LAYERS = \"layers\";\nexport const LAYOUT = \"layout\";\nexport const LAYOUT_AUTO = \"layout-auto\";\nexport const LAYOUT_BALLOON = \"layout-balloon\";\nexport const LAYOUT_CIRCLE = \"layout-circle\";\nexport const LAYOUT_GRID = \"layout-grid\";\nexport const LAYOUT_GROUP_BY = \"layout-group-by\";\nexport const LAYOUT_HIERARCHY = \"layout-hierarchy\";\nexport const LAYOUT_LINEAR = \"layout-linear\";\nexport const LAYOUT_SKEW_GRID = \"layout-skew-grid\";\nexport const LAYOUT_SORTED_CLUSTERS = \"layout-sorted-clusters\";\nexport const LEFT_JOIN = \"left-join\";\nexport const LIGHTBULB = \"lightbulb\";\nexport const LINK = \"link\";\nexport const LIST = \"list\";\nexport const LIST_COLUMNS = \"list-columns\";\nexport const LIST_DETAIL_VIEW = \"list-detail-view\";\nexport const LOCATE = \"locate\";\nexport const LOCK = \"lock\";\nexport const LOG_IN = \"log-in\";\nexport const LOG_OUT = \"log-out\";\nexport const MANUAL = \"manual\";\nexport const MANUALLY_ENTERED_DATA = \"manually-entered-data\";\nexport const MAP = \"map\";\nexport const MAP_CREATE = \"map-create\";\nexport const MAP_MARKER = \"map-marker\";\nexport const MAXIMIZE = \"maximize\";\nexport const MEDIA = \"media\";\nexport const MENU = \"menu\";\nexport const MENU_CLOSED = \"menu-closed\";\nexport const MENU_OPEN = \"menu-open\";\nexport const MERGE_COLUMNS = \"merge-columns\";\nexport const MERGE_LINKS = \"merge-links\";\nexport const MINIMIZE = \"minimize\";\nexport const MINUS = \"minus\";\nexport const MOBILE_PHONE = \"mobile-phone\";\nexport const MOBILE_VIDEO = \"mobile-video\";\nexport const MOON = \"moon\";\nexport const MORE = \"more\";\nexport const MOUNTAIN = \"mountain\";\nexport const MOVE = \"move\";\nexport const MUGSHOT = \"mugshot\";\nexport const MULTI_SELECT = \"multi-select\";\nexport const MUSIC = \"music\";\nexport const NEW_GRID_ITEM = \"new-grid-item\";\nexport const NEW_LINK = \"new-link\";\nexport const NEW_OBJECT = \"new-object\";\nexport const NEW_PERSON = \"new-person\";\nexport const NEW_PRESCRIPTION = \"new-prescription\";\nexport const NEW_TEXT_BOX = \"new-text-box\";\nexport const NINJA = \"ninja\";\nexport const NOTIFICATIONS = \"notifications\";\nexport const NOTIFICATIONS_UPDATED = \"notifications-updated\";\nexport const NUMBERED_LIST = \"numbered-list\";\nexport const NUMERICAL = \"numerical\";\nexport const OFFICE = \"office\";\nexport const OFFLINE = \"offline\";\nexport const OIL_FIELD = \"oil-field\";\nexport const ONE_COLUMN = \"one-column\";\nexport const OUTDATED = \"outdated\";\nexport const PAGE_LAYOUT = \"page-layout\";\nexport const PANEL_STATS = \"panel-stats\";\nexport const PANEL_TABLE = \"panel-table\";\nexport const PAPERCLIP = \"paperclip\";\nexport const PARAGRAPH = \"paragraph\";\nexport const PATH = \"path\";\nexport const PATH_SEARCH = \"path-search\";\nexport const PAUSE = \"pause\";\nexport const PEOPLE = \"people\";\nexport const PERCENTAGE = \"percentage\";\nexport const PERSON = \"person\";\nexport const PHONE = \"phone\";\nexport const PIE_CHART = \"pie-chart\";\nexport const PIN = \"pin\";\nexport const PIVOT = \"pivot\";\nexport const PIVOT_TABLE = \"pivot-table\";\nexport const PLAY = \"play\";\nexport const PLUS = \"plus\";\nexport const POLYGON_FILTER = \"polygon-filter\";\nexport const POWER = \"power\";\nexport const PREDICTIVE_ANALYSIS = \"predictive-analysis\";\nexport const PRESCRIPTION = \"prescription\";\nexport const PRESENTATION = \"presentation\";\nexport const PRINT = \"print\";\nexport const PROJECTS = \"projects\";\nexport const PROPERTIES = \"properties\";\nexport const PROPERTY = \"property\";\nexport const PUBLISH_FUNCTION = \"publish-function\";\nexport const PULSE = \"pulse\";\nexport const RANDOM = \"random\";\nexport const RECORD = \"record\";\nexport const REDO = \"redo\";\nexport const REFRESH = \"refresh\";\nexport const REGRESSION_CHART = \"regression-chart\";\nexport const REMOVE = \"remove\";\nexport const REMOVE_COLUMN = \"remove-column\";\nexport const REMOVE_COLUMN_LEFT = \"remove-column-left\";\nexport const REMOVE_COLUMN_RIGHT = \"remove-column-right\";\nexport const REMOVE_ROW_BOTTOM = \"remove-row-bottom\";\nexport const REMOVE_ROW_TOP = \"remove-row-top\";\nexport const REPEAT = \"repeat\";\nexport const RESOLVE = \"resolve\";\nexport const RIG = \"rig\";\nexport const RIGHT_JOIN = \"right-join\";\nexport const RING = \"ring\";\nexport const ROTATE_DOCUMENT = \"rotate-document\";\nexport const ROTATE_PAGE = \"rotate-page\";\nexport const SATELLITE = \"satellite\";\nexport const SAVED = \"saved\";\nexport const SCATTER_PLOT = \"scatter-plot\";\nexport const SEARCH = \"search\";\nexport const SEARCH_AROUND = \"search-around\";\nexport const SEARCH_TEMPLATE = \"search-template\";\nexport const SEARCH_TEXT = \"search-text\";\nexport const SEGMENTED_CONTROL = \"segmented-control\";\nexport const SELECT = \"select\";\nexport const SELECTION = \"selection\";\nexport const SEND_TO = \"send-to\";\nexport const SEND_TO_GRAPH = \"send-to-graph\";\nexport const SEND_TO_MAP = \"send-to-map\";\nexport const SERIES_ADD = \"series-add\";\nexport const SERIES_CONFIGURATION = \"series-configuration\";\nexport const SERIES_DERIVED = \"series-derived\";\nexport const SERIES_FILTERED = \"series-filtered\";\nexport const SERIES_SEARCH = \"series-search\";\nexport const SETTINGS = \"settings\";\nexport const SHARE = \"share\";\nexport const SHIELD = \"shield\";\nexport const SHOP = \"shop\";\nexport const SHOPPING_CART = \"shopping-cart\";\nexport const SIM_CARD = \"sim-card\";\nexport const SLASH = \"slash\";\nexport const SMALL_CROSS = \"small-cross\";\nexport const SMALL_MINUS = \"small-minus\";\nexport const SMALL_PLUS = \"small-plus\";\nexport const SMALL_TICK = \"small-tick\";\nexport const SNOWFLAKE = \"snowflake\";\nexport const SOCIAL_MEDIA = \"social-media\";\nexport const SORT = \"sort\";\nexport const SORT_ALPHABETICAL = \"sort-alphabetical\";\nexport const SORT_ALPHABETICAL_DESC = \"sort-alphabetical-desc\";\nexport const SORT_ASC = \"sort-asc\";\nexport const SORT_DESC = \"sort-desc\";\nexport const SORT_NUMERICAL = \"sort-numerical\";\nexport const SORT_NUMERICAL_DESC = \"sort-numerical-desc\";\nexport const SPLIT_COLUMNS = \"split-columns\";\nexport const SQUARE = \"square\";\nexport const STACKED_CHART = \"stacked-chart\";\nexport const STAR = \"star\";\nexport const STAR_EMPTY = \"star-empty\";\nexport const STEP_BACKWARD = \"step-backward\";\nexport const STEP_CHART = \"step-chart\";\nexport const STEP_FORWARD = \"step-forward\";\nexport const STOP = \"stop\";\nexport const STRIKETHROUGH = \"strikethrough\";\nexport const STYLE = \"style\";\nexport const SWAP_HORIZONTAL = \"swap-horizontal\";\nexport const SWAP_VERTICAL = \"swap-vertical\";\nexport const SYMBOL_CIRCLE = \"symbol-circle\";\nexport const SYMBOL_CROSS = \"symbol-cross\";\nexport const SYMBOL_DIAMOND = \"symbol-diamond\";\nexport const SYMBOL_SQUARE = \"symbol-square\";\nexport const SYMBOL_TRIANGLE_DOWN = \"symbol-triangle-down\";\nexport const SYMBOL_TRIANGLE_UP = \"symbol-triangle-up\";\nexport const TAG = \"tag\";\nexport const TAKE_ACTION = \"take-action\";\nexport const TAXI = \"taxi\";\nexport const TEXT_HIGHLIGHT = \"text-highlight\";\nexport const TH = \"th\";\nexport const TH_DERIVED = \"th-derived\";\nexport const TH_LIST = \"th-list\";\nexport const THUMBS_DOWN = \"thumbs-down\";\nexport const THUMBS_UP = \"thumbs-up\";\nexport const TICK = \"tick\";\nexport const TICK_CIRCLE = \"tick-circle\";\nexport const TIME = \"time\";\nexport const TIMELINE_AREA_CHART = \"timeline-area-chart\";\nexport const TIMELINE_BAR_CHART = \"timeline-bar-chart\";\nexport const TIMELINE_EVENTS = \"timeline-events\";\nexport const TIMELINE_LINE_CHART = \"timeline-line-chart\";\nexport const TINT = \"tint\";\nexport const TORCH = \"torch\";\nexport const TRAIN = \"train\";\nexport const TRANSLATE = \"translate\";\nexport const TRASH = \"trash\";\nexport const TREE = \"tree\";\nexport const TRENDING_DOWN = \"trending-down\";\nexport const TRENDING_UP = \"trending-up\";\nexport const TWO_COLUMNS = \"two-columns\";\nexport const UNDERLINE = \"underline\";\nexport const UNDO = \"undo\";\nexport const UNGROUP_OBJECTS = \"ungroup-objects\";\nexport const UNKNOWN_VEHICLE = \"unknown-vehicle\";\nexport const UNLOCK = \"unlock\";\nexport const UNPIN = \"unpin\";\nexport const UNRESOLVE = \"unresolve\";\nexport const UPDATED = \"updated\";\nexport const UPLOAD = \"upload\";\nexport const USER = \"user\";\nexport const VARIABLE = \"variable\";\nexport const VERTICAL_BAR_CHART_ASC = \"vertical-bar-chart-asc\";\nexport const VERTICAL_BAR_CHART_DESC = \"vertical-bar-chart-desc\";\nexport const VERTICAL_DISTRIBUTION = \"vertical-distribution\";\nexport const VIDEO = \"video\";\nexport const VOLUME_DOWN = \"volume-down\";\nexport const VOLUME_OFF = \"volume-off\";\nexport const VOLUME_UP = \"volume-up\";\nexport const WALK = \"walk\";\nexport const WARNING_SIGN = \"warning-sign\";\nexport const WATERFALL_CHART = \"waterfall-chart\";\nexport const WIDGET = \"widget\";\nexport const WIDGET_BUTTON = \"widget-button\";\nexport const WIDGET_FOOTER = \"widget-footer\";\nexport const WIDGET_HEADER = \"widget-header\";\nexport const WRENCH = \"wrench\";\nexport const ZOOM_IN = \"zoom-in\";\nexport const ZOOM_OUT = \"zoom-out\";\nexport const ZOOM_TO_FIT = \"zoom-to-fit\";\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n */\n\nimport { IconName } from \"../iconName\";\n\nexport const IconSvgPaths16: Record<IconName, string[]> = {\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-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-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 0 0-.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 0 0 1.42 1.42l3.287-3.29v1.59c0 .55.45 1 1 1 .549 0 .999-.45.999-1v-4A1.02 1.02 0 0 0 5.996 9z\"],\n    \"airplane\": [\"M16 1.5A1.498 1.498 0 0 0 13.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    \"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    \"arrow-bottom-left\": [\"M14 3a1.003 1.003 0 0 0-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 0 0-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 0 0-1.42-1.42l-5 5a1.014 1.014 0 0 0 0 1.42l5 5a1.003 1.003 0 0 0 1.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 0 0-.71-.3 1.003 1.003 0 0 0-.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 0 0 1.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 0 0 .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 0 0 1.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 0 0 2 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 0 0 0 8c0 4.42 3.58 8 8 8 .55 0 1-.45 1-1s-.45-1-1-1zM8 2a5.9 5.9 0 0 1 2.95.81l1.47-1.47A7.893 7.893 0 0 0 8 0c-.55 0-1 .45-1 1s.45 1 1 1zm2.71 6.71l5-5a1.003 1.003 0 0 0-1.42-1.42L10 6.59l-1.29-1.3a1.003 1.003 0 0 0-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 0 1 12 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 0 0 16 8z\"],\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 0 0-.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    \"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 0 0 10 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 0 0-.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 0 0 .83-.37v-7c0-.28-.22-.5-.5-.5z\"],\n    \"caret-right\": [\"M11 8c0-.15-.07-.28-.17-.37l-4-3.5A.495.495 0 0 0 6 4.5v7a.495.495 0 0 0 .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 0 0 .37.83h7a.495.495 0 0 0 .37-.83z\"],\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 0 0 1.21-.73L7.53 13h.94l.56 2.24a1 1 0 0 0 1.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 1 0 1.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\",\n\"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 0 0-1.42-1.42L13 7.59V1c0-.55-.45-1-1-1s-1 .45-1 1v6.59l-1.29-1.3a1.003 1.003 0 0 0-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 0 0 .71-1.71l-3-3C4.53.11 4.28 0 4 0s-.53.11-.71.29l-3 3A1.003 1.003 0 0 0 1 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 0 0 1.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 0 0-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 0 0 .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 0 0-1.42 1.42l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0 0 12 5z\"],\n    \"chevron-forward\": [\"M10 3c-.55 0-1 .45-1 1v2.59l-3.29-3.3a1.003 1.003 0 0 0-1.42 1.42L7.59 8 4.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.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 0 0-1.71-.71l-4 4C5.11 7.47 5 7.72 5 8c0 .28.11.53.29.71l4 4a1.003 1.003 0 0 0 1.42-1.42L7.41 8z\"],\n    \"chevron-right\": [\"M10.71 7.29l-4-4a1.003 1.003 0 0 0-1.42 1.42L8.59 8 5.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.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 0 0 1.42 1.42L8 7.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 0 0 .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 0 0-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0 0 11 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 0 0-1.71-.71l-3 3C4.11 7.47 4 7.72 4 8c0 .28.11.53.29.71l3 3a1.003 1.003 0 0 0 1.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 0 0-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 0 0 1.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 0 0 1.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 0 0 .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 0 0 3.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 0 0 3.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    \"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 0 0 2 7c0 .11.01.22.02.33A3.51 3.51 0 0 0 0 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 0 0 5 11a1.003 1.003 0 0 0-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0 0 11 11zm1-7c-.03 0-.07 0-.1.01A5 5 0 0 0 2 5c0 .11.01.22.02.33A3.51 3.51 0 0 0 0 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 0 0 16 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 0 0 1.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 0 0 .71-1.71l-3-3zM12 4c-.03 0-.07 0-.1.01A5 5 0 0 0 2 5c0 .11.01.22.02.33a3.495 3.495 0 0 0 .07 6.37c-.05-.23-.09-.46-.09-.7 0-.83.34-1.58.88-2.12l3-3a2.993 2.993 0 0 1 4.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 0 0-1.42 1.42L13.59 8l-2.29 2.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM5 5a1.003 1.003 0 0 0-1.71-.71l-3 3C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l3 3a1.003 1.003 0 0 0 1.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 0 1-1.42 1.42l-3-3C2.11 9.53 2 9.28 2 9s.11-.53.29-.71l3-3a1.003 1.003 0 0 1 1.42 1.42L4.41 9l2.3 2.29zm7-1.58l-3 3a1.003 1.003 0 0 1-1.42-1.42L11.59 9l-2.3-2.29a1.003 1.003 0 0 1 1.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 0 0-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 0 0-.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 0 0-1.42-1.42L8 4.59l-3.29-3.3a1.003 1.003 0 0 0-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 0 0 1.42 1.42L8 11.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 0 0 .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 0 0 1.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 0 1 0-.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 0 0-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3a1.003 1.003 0 0 0-1.42-1.42L9 9.59V7h5v7z\"],\n    \"confirm\": [\"M8.7 4.29a.965.965 0 0 0-.71-.3 1.003 1.003 0 0 0-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l5-5a1.003 1.003 0 0 0-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 0 0-.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 0 1-1.42-1.42L4.59 9l-1.3-1.29A1.003 1.003 0 0 1 4 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 0 0-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 0 0-.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 0 0-1.71-.71L8 6.59l-3.29-3.3a1.003 1.003 0 0 0-1.42 1.42L6.59 8 3.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.71.71L8 9.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 0 0 .71-1.71L9.41 8z\"],\n    \"crown\": [\"M2 6l3 2 3-4 3 4 3-2-1 6H3L2 6zm6-5a1 1 0 1 1 0 2 1 1 0 0 1 0-2zM1 3a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm14 0a1 1 0 1 1 0 2 1 1 0 0 1 0-2zM3 13h10v2H3v-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 0 0 0 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    \"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    \"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 0 0-1.71-.71l-2.29 2.3L5.7 4.29a.965.965 0 0 0-.71-.3 1.003 1.003 0 0 0-.71 1.71l2.29 2.29-2.29 2.29A1.003 1.003 0 0 0 5.7 11.7l2.29-2.29 2.29 2.29a1.003 1.003 0 0 0 1.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 0 0 8 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 0 0-.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 0 1-.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 0 0-.36-.09c-.2 0-.36.06-.49.18a.59.59 0 0 0-.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    \"diagram-tree\": [\"M15 8v3h-2V9H9v2H7V9H3v2H1V8a1 1 0 0 1 1-1h5V5h2v2h5a1 1 0 0 1 1 1zM1 12h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1zm12 0h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1zm-6 0h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1zM7 0h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V1a1 1 0 0 1 1-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 0 0 1.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 0 0 1.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 1 0 0 6 3 3 0 1 0 0-6z\"],\n    \"double-caret-horizontal\": [\"M13.71 7.29l-3-3A1.003 1.003 0 0 0 9 5v6a1.003 1.003 0 0 0 1.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 0 0 7 11V5c0-.55-.45-1-1-1z\"],\n    \"double-caret-vertical\": [\"M5 7h6a1.003 1.003 0 0 0 .71-1.71l-3-3C8.53 2.11 8.28 2 8 2s-.53.11-.71.29l-3 3A1.003 1.003 0 0 0 5 7zm6 2H5a1.003 1.003 0 0 0-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0 0 11 9z\"],\n    \"double-chevron-down\": [\"M7.29 8.71c.18.18.43.29.71.29s.53-.11.71-.29l4-4a1.003 1.003 0 0 0-1.42-1.42L8 6.59l-3.29-3.3a1.003 1.003 0 0 0-1.42 1.42l4 4zM12 8c-.28 0-.53.11-.71.29L8 11.59l-3.29-3.3a1.003 1.003 0 0 0-1.42 1.42l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0 0 12 8z\"],\n    \"double-chevron-left\": [\"M4.41 8L7.7 4.71c.19-.18.3-.43.3-.71a1.003 1.003 0 0 0-1.71-.71l-4 4C2.11 7.47 2 7.72 2 8c0 .28.11.53.29.71l4 4a1.003 1.003 0 0 0 1.42-1.42L4.41 8zm5 0l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 0 0-1.71-.71l-4 4C7.11 7.47 7 7.72 7 8c0 .28.11.53.29.71l4 4a1.003 1.003 0 0 0 1.42-1.42L9.41 8z\"],\n    \"double-chevron-right\": [\"M9 8c0-.28-.11-.53-.29-.71l-4-4a1.003 1.003 0 0 0-1.42 1.42L6.59 8 3.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.71.71l4-4C8.89 8.53 9 8.28 9 8zm4.71-.71l-4-4a1.003 1.003 0 0 0-1.42 1.42L11.59 8 8.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.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 0 0 .71-1.71l-4-4C8.53 2.11 8.28 2 8 2s-.53.11-.71.29l-4 4A1.003 1.003 0 0 0 4 8zm4.71-.71C8.53 7.11 8.28 7 8 7s-.53.11-.71.29l-4 4a1.003 1.003 0 0 0 1.42 1.42L8 9.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 0 0 .71-1.71l-4-4z\"],\n    \"doughnut-chart\": [\"M11.86 7h4.05C15.45 3.39 12.61.52 9 .07v4.07A4 4 0 0 1 11.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 0 1 5.7 8.28l1.29 1.29V3.99c0-.55.45-1 1-1s1 .45 1 1v5.59l1.29-1.29a1.003 1.003 0 0 1 1.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    \"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 0 0 .71-1.71l-4-4C8.53 3.11 8.28 3 8 3s-.53.11-.71.29l-4 4A1.003 1.003 0 0 0 4 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    \"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 0 0-1 0l-1.39.8H4.52a1 1 0 0 0-.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 0 0 .86-.49l.81-1.41 1.37-.8c.3-.19.49-.51.49-.87V9.93l.81-1.42a.89.89 0 0 0 .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 0 1 1.71-.71l1.3 1.3 3.3-3.3a1.003 1.003 0 0 1 1.71.71.95.95 0 0 1-.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    \"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 0 0-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 0 0 1.25 2.07 5.77 5.77 0 0 0 2 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 1 0 .7-.7L5.7 5.99h5.79c.28 0 .5-.22.5-.5s-.22-.5-.5-.5H5.7l1.15-1.15a.495.495 0 1 0-.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 0 0-.36-.15.495.495 0 0 0-.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 1 0 .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 0 0 1.71.71L3 9.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 0 0 .71-1.71L4.41 8 5.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 0 0-1.71-.71L3 6.59l-1.29-1.3A1.003 1.003 0 0 0 .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 0 0 .71-1.71l-4-4C8.53 1.11 8.28 1 8 1s-.53.11-.71.29l-4 4A1.003 1.003 0 0 0 4 7zm8 2c-.28 0-.53.11-.71.29L8 12.59l-3.29-3.3a1.003 1.003 0 0 0-1.42 1.42l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0 0 12 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 0 0 .71-1.71l-4-4C8.53.11 8.28 0 8 0s-.53.11-.71.29l-4 4A1.003 1.003 0 0 0 4 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 0 0-.17-.36c-.49-.63-1.07-1.2-1.65-1.72l-3.16 2.26a2.978 2.978 0 0 1-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 0 0-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 0 1-.11-.8 2.99 2.99 0 0 1 2.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 0 0-1.71-.71L11 4.58 9.71 3.29A.997.997 0 0 0 9 3c-.55 0-1 .44-1 1a1 1 0 0 0 .3.7l1.99 2zM16 7.96v-.02-.01-.02-.02a.64.64 0 0 0-.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 0 1 6.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 0 1-.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 0 0 0 2.005 1.003 1.003 0 0 0 0-2.005zm7.988.972v-.02-.01-.02-.02a.675.675 0 0 0-.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 0 0-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 0 0 0 .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 0 1-2.995-3.008 2.998 2.998 0 0 1 2.995-3.008 2.998 2.998 0 0 1 2.996 3.008 2.998 2.998 0 0 1-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 0 0 9 3c-.55 0-1 .45-1 1v2.72l-4.38-3.5v.01A.987.987 0 0 0 3 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 0 0-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 0 0 1.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 0 0-.7-.29 1 1 0 0 0-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 0 0 3 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 0 0-.71 1.71l4.71 4.71V14a1.003 1.003 0 0 0 1.71.71l2-2c.18-.18.29-.43.29-.71V7.41L14.7 2.7a1.003 1.003 0 0 0-.71-1.71z\"],\n    \"filter-keep\": [\"M15 10c-.28 0-.53.11-.71.29L12 12.59l-1.29-1.29A.965.965 0 0 0 10 11a1.003 1.003 0 0 0-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0 0 15 10zm-3-8c0-.55-.45-1-1-1H1a1.003 1.003 0 0 0-.71 1.71L4 6.41V12a1.003 1.003 0 0 0 1.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 0 0-.71 1.71L4 6.41V12a1.003 1.003 0 0 0 1.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-remove\": [\"M12 2c0-.55-.45-1-1-1H1a1.003 1.003 0 0 0-.71 1.71L4 6.41V12a1.003 1.003 0 0 0 1.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 0 0-1.71-.71L13 10.59 11.71 9.3A.965.965 0 0 0 11 9a1.003 1.003 0 0 0-.71 1.71l1.3 1.29-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.71.71l1.29-1.3 1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 0 0 .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 0 0 1.42-1.42l-1.5-1.5a1.003 1.003 0 0 0-1.42 1.42l1.5 1.5zm.71 5.29c-.28 0-.53.11-.71.29l-1.5 1.5a1.003 1.003 0 0 0 1.42 1.42l1.5-1.5a1.003 1.003 0 0 0-.71-1.71zm7-5c.28 0 .53-.11.71-.29l1.5-1.5a1.003 1.003 0 0 0-1.42-1.42l-1.5 1.5a1.003 1.003 0 0 0 .71 1.71zm.71 5.29a1.003 1.003 0 0 0-1.42 1.42l1.5 1.5a1.003 1.003 0 0 0 1.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 0 0 13 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 0 1 .314-.68.99.99 0 0 1 1.388.048c.186.2.316.46.3.715l-.009 4.03a.959.959 0 0 1-.3.68.972.972 0 0 1-.698.266l-4.053.002a.97.97 0 0 1-.679-.314 1.031 1.031 0 0 1 .05-1.42.972.972 0 0 1 .698-.266l1.7-.001-3.305-3.35a2.998 2.998 0 0 1-4.228-1.653H.999a1 1 0 0 1 0-2h4.166a2.998 2.998 0 0 1 4.06-1.735l3.449-3.268-1.745.002a.979.979 0 0 1-.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 0 1-.313.68 1.03 1.03 0 0 1-1.42-.05.973.973 0 0 1-.266-.7V3.295l-3.34 3.301z\"],\n    \"flow-end\": [\"M9.702 7.31c.176.176.293.41.293.684a.976.976 0 0 1-.283.695c-1.888 1.91-2.892 2.918-3.011 3.027-.179.164-.42.284-.693.284a.995.995 0 0 1-.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 0 1-.292-.705C5.01 4.45 5.464 4 6 4c.272 0 .52.108.695.294A535.7 535.7 0 0 0 9.702 7.31zM13 11.002c-1.657 0-3-1.347-3-3.008a3.004 3.004 0 0 1 3-3.007c1.657 0 3 1.346 3 3.007a3.004 3.004 0 0 1-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 0 1 6.995 5a3.01 3.01 0 0 1 2.839 2.004h2.98c-.898-.756-1.404-1.193-1.518-1.31a1.03 1.03 0 0 1-.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 0 1 .293.684.975.975 0 0 1-.284.695l-3.018 3.027a.974.974 0 0 1-.694.284c-.553 0-1-.447-1-.985 0-.274.117-.545.293-.72l1.518-1.293H9.833A3.01 3.01 0 0 1 6.996 11 3.01 3.01 0 0 1 4.16 9.002z\"],\n    \"flow-review\": [\"M5.175 7.004a3.003 3.003 0 0 1 2.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 0 1-.292-.705c0-.538.453-.989.99-.989a.95.95 0 0 1 .696.294c.117.124 1.12 1.13 3.008 3.016.176.176.293.41.293.684a.976.976 0 0 1-.283.695l-3.013 3.027a.995.995 0 0 1-1.691-.702c0-.273.116-.544.292-.72l1.515-1.292h-1.98a3.003 3.003 0 0 1-2.835 2.016A3.003 3.003 0 0 1 5.17 9.002H3.18l1.515 1.292c.176.176.292.447.292.72a.995.995 0 0 1-1.69.702L.282 8.69A.976.976 0 0 1 0 7.994c0-.273.117-.508.293-.684A535.858 535.858 0 0 0 3.3 4.294.95.95 0 0 1 3.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 0 1 6.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 0 1 0 7.994a.971.971 0 0 1 .294-.687l3.01-3.028a.973.973 0 0 1 .697-.27c.536.01.998.485.989 1.021a.971.971 0 0 1-.295.687L3.37 6.997h2.79a3.002 3.002 0 0 1 4.106-1.716l2.416-2.277-1.732.004a.99.99 0 0 1-.679-.329.978.978 0 0 1 .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 0 1-.314.679 1.03 1.03 0 0 1-1.421-.048.971.971 0 0 1-.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 0 1 .323-.68.978.978 0 0 1 1.378.049c.187.2.316.46.3.714l-.004 4.011a.983.983 0 0 1-.3.691.972.972 0 0 1-.7.265l-4.046-.001a.987.987 0 0 1-.679-.326 1.017 1.017 0 0 1 .048-1.41.972.972 0 0 1 .699-.265h1.693l-2.315-2.35z\"],\n    \"flows\": [\"M13.5 6a2.5 2.5 0 0 0-2.45 2h-1.3L5.74 4l-.75.75L8.25 8h-3.3a2.5 2.5 0 1 0 0 1h3.3l-3.26 3.25.75.75 4.01-4h1.3a2.5 2.5 0 1 0 2.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 0 0-.71-.3h-4c-.55 0-1 .45-1 1v3h16V5c0-.55-.45-1-1-1z\"],\n    \"folder-new\": [\"M10.165 7a3.003 3.003 0 0 0 2.827 2 3.003 3.003 0 0 0 2.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 0 0 4 2H1c-.55 0-1 .45-1 1v9.84l2.05-6.15h.01zM16 8c0-.55-.45-1-1-1H4a.99.99 0 0 0-.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 0 0-.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 0 0-.29.7 1.003 1.003 0 0 0 1.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 0 0-.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 0 0 4 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 0 0 1.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 0 0-.09-.43 3.02 3.02 0 0 0-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 0 0-1.42 1.42l.3.29H9.99c-.55 0-1 .45-1 1s.45 1 1 1h2.58l-.29.29a1.003 1.003 0 0 0 1.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 0 0-.09-.43 3.02 3.02 0 0 0-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 0 0 11.28.29l-2 2c-.17.18-.29.43-.29.71 0 .28.11.53.29.71l2 2a1.003 1.003 0 0 0 1.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 0 0-1.42 1.42l.29.29H11.4l-5-5h6.17l-.29.29a1.003 1.003 0 0 0 1.42 1.42l2-2c.18-.18.29-.43.29-.71s-.11-.53-.29-.71l-2-2a1.003 1.003 0 0 0-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 0 0 1.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 0 1 .71 1.71l-3 4C3.53 6.89 3.28 7 3 7s-.53-.11-.71-.29l-2-2a1.003 1.003 0 0 1 1.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 1 0 0 16A8 8 0 1 0 8 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 0 0 .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 0 0 10 9a1.003 1.003 0 0 0-.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 0 0 1.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 0 1-.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    \"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 0 1 .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 0 0 0 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 0 0-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 0 0 .57.23c.44 0 .8-.36.8-.8a.895.895 0 0 0-.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 0 1 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.92 0 3.52-1.35 3.91-3.15A2.996 2.996 0 0 0 12 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 0 0 9 10h.18A2.996 2.996 0 0 0 15 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 0 0 9.29.29l-3 3C6.11 3.47 6 3.72 6 4c0 .28.11.53.29.71l3 3a1.003 1.003 0 0 0 1.42-1.42L9.41 5H11c.55 0 1 .45 1 1v4.18A2.996 2.996 0 0 0 13 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 0 0 1.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 0 0-.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 0 1 3.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 0 0 0 .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 0 0-.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 0 1 3.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 0 1 2.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 0 1-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 0 0 8 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 0 0 11 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 0 0 0 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 0 0-1.71-.71l-1.79 1.8L10.71.3A.965.965 0 0 0 10 0a1.003 1.003 0 0 0-.71 1.71l1.79 1.79-1.79 1.79a1.003 1.003 0 0 0 1.42 1.42l1.79-1.79 1.79 1.79a1.003 1.003 0 0 0 1.42-1.42l-1.8-1.79z\"],\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 1 0-1.99-.16v.01L9.18 8H9V1c0-.55-.45-1-1-1S7 .45 7 1v7h-.09l-.93-5.18A1 1 0 0 0 5 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 0 0 13 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    \"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-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 0 0-.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 0 0-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 0 1 6 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 0 0 13.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 0 0 16 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    \"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    \"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 0 0 1.42-1.42L9 7.59V4c0-.55-.45-1-1-1zm0-3a7.95 7.95 0 0 0-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 0 0 1.42 1.42L8 2.41l6.29 6.29c.18.19.43.3.71.3a1.003 1.003 0 0 0 .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    \"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\",\n\"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 0 0-1.71-.71l-2 2C8.11 2.47 8 2.72 8 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 0 0 1.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 0 0-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 0 0 1.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 0 0-1.42-1.42L9 8.59V1c0-.55-.45-1-1-1S7 .45 7 1v7.59l-2.29-2.3a1.003 1.003 0 0 0-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    \"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    \"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 1 1 8 0a8 8 0 0 1 0 16zm0-2A6 6 0 1 0 8 2a6 6 0 0 0 0 12zm1-2H7v-2h2v2zm0-3H7V4h2v5z\"],\n    \"issue-closed\": [\"M9.296.104a2.99 2.99 0 0 0-1.003.664 2.987 2.987 0 0 0-.75 1.25 6 6 0 1 0 6.28 4.527c.043-.039.085-.079.127-.12l1.456-1.456A8 8 0 1 1 9.296.105zm2.532 5.2a.997.997 0 0 1-.707-.294L9.707 3.596a1 1 0 0 1 1.414-1.414l.707.707 1.768-1.768a1 1 0 1 1 1.414 1.415L12.536 5.01a.997.997 0 0 1-.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 1 0 5.27 5.273 2.51 2.51 0 0 0 1.496-1.854c.04-.008.081-.016.121-.026A8 8 0 1 1 10.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 0 0 1.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 0 1-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 0 1-1.42 1.42L10 9.41 8.71 10.7c-.18.19-.43.3-.71.3a1.003 1.003 0 0 1-.71-1.71L8.59 8l-1.3-1.29a1.003 1.003 0 0 1 1.42-1.42L10 6.59l1.29-1.29c.18-.19.43-.3.71-.3a1.003 1.003 0 0 1 .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 0 0 1.42 1.42L8 3.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 0 0 .71-1.71z\"],\n    \"key-delete\": [\"M15.71 7.29l-5-5A.997.997 0 0 0 10 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 0 1-1.42 1.42L6 9.41 4.71 10.7c-.18.19-.43.3-.71.3a1.003 1.003 0 0 1-.71-1.71L4.59 8l-1.3-1.29a1.003 1.003 0 0 1 1.42-1.42L6 6.59 7.29 5.3c.18-.19.43-.3.71-.3a1.003 1.003 0 0 1 .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 0 0-1.71-.71l-3 3c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l3 3a1.003 1.003 0 0 0 1.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 0 0 .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 1 1 3.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 0 0 5 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 0 0 3 9h2v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V9h2a1.003 1.003 0 0 0 .71-1.71z\"],\n    \"key-tab\": [\"M15 10H4.41L5.7 8.71c.19-.18.3-.43.3-.71a1.003 1.003 0 0 0-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 0 0 .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 0 0 11 1a1.003 1.003 0 0 0-.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 0 0 1.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 0 0-.707.293L12 5.586l-1.293-1.293a1 1 0 1 0-1.414 1.414l2 2a.997.997 0 0 0 1.414 0l3-3A1 1 0 0 0 15 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 0 1 7.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    \"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    \"layers\": [\"M.55 4.89l7 3.5c.14.07.29.11.45.11s.31-.04.45-.11l7-3.5a.998.998 0 0 0-.06-1.81L8.4.08a1.006 1.006 0 0 0-.79 0l-6.99 3a.992.992 0 0 0-.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 0 0 1 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 0 0 9.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 0 0 16 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 0 0 0 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 0 0 8 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    \"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    \"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    \"link\": [\"M4.99 11.99c.28 0 .53-.11.71-.29l6-6a1.003 1.003 0 0 0-1.42-1.42l-6 6a1.003 1.003 0 0 0 .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 0 0 1.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 0 0 9 1.1V1c0-.55-.45-1-1-1S7 .45 7 1v.09A6.98 6.98 0 0 0 1.1 7H1c-.55 0-1 .45-1 1s.45 1 1 1h.1A6.969 6.969 0 0 0 7 14.91V15c0 .55.45 1 1 1s1-.45 1-1v-.09A6.98 6.98 0 0 0 14.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 0 1 3.1 8.98c.5-.05.9-.46.9-.98s-.4-.93-.9-.98A5.017 5.017 0 0 1 7.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 0 1-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 0 0-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 0 0 1.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 0 0-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 0 0 1.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    \"map\": [\"M15.55 3.17l-4.49-3A.975.975 0 0 0 9.99.15L5.53 2.82 1.56.17A1.003 1.003 0 0 0 0 1v11c0 .35.18.65.45.83l4.49 3a.975.975 0 0 0 1.07.02l4.46-2.67 3.97 2.65A1.003 1.003 0 0 0 16 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 0 0 0 1v11c0 .35.18.65.45.83l4.49 3a.975.975 0 0 0 1.07.02l4.46-2.67 3.97 2.65A1.003 1.003 0 0 0 16 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 0 1 0-5 2.5 2.5 0 0 1 0 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 0 0-.71-1.71zm9-9h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59l-3.3 3.3a.99.99 0 0 0-.29.7 1.003 1.003 0 0 0 1.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 0 0 0 1.42l2 2a1.003 1.003 0 0 0 1.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 0 0-1.71.71v4a1.003 1.003 0 0 0 1.71.71l2-2c.18-.18.29-.43.29-.71s-.11-.53-.29-.71z\"],\n    \"merge-columns\": [\"M5.71 5.29a1.003 1.003 0 0 0-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 0 0 1.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 0 0-1.71-.71l-2 2C8.11 7.47 8 7.72 8 8c0 .28.11.53.29.71l2 2a1.003 1.003 0 0 0 1.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 0 0-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 0 0 1.42 1.42L5 12.41V14c0 .55.45 1 1 1s1-.45 1-1v-4a1.02 1.02 0 0 0-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    \"moon\": [\"M15 11.38A7.835 7.835 0 0 1 7.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 0 0 7.85 7.85c1.15 0 2.24-.25 3.23-.7z\"],\n    \"more\": [\"M2 6.03a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM14 6.03a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM8 6.03a2 2 0 1 0 0 4 2 2 0 1 0 0-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 0 0-1.42 1.42l.3.29H9V3.41l.29.29c.18.19.43.3.71.3a1.003 1.003 0 0 0 .71-1.71l-2-2C8.53.11 8.28 0 8 0s-.53.11-.71.29l-2 2a1.003 1.003 0 0 0 1.42 1.42l.29-.3V7H3.41l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 0 0-1.71-.71l-2 2C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l2 2a1.003 1.003 0 0 0 1.42-1.42L3.41 9H7v3.59l-.29-.29A.965.965 0 0 0 6 12a1.003 1.003 0 0 0-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2a1.003 1.003 0 0 0-1.42-1.42l-.29.3V9h3.59l-.29.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.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    \"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-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 0 0-2.45 2h-4.1a2.5 2.5 0 1 0 0 1h4.1a2.5 2.5 0 1 0 2.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 0 0-.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 0 0 5.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    \"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 0 0 3 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-updated\": [\"M8 16c1.1 0 2-.9 2-2H6c0 1.1.9 2 2 2zm3.399-13.667l-.413.412A2.99 2.99 0 0 0 9 1.99a3 3 0 0 0-3 2.99c0 .8.32 1.558.876 2.114l2.002 1.992A2.99 2.99 0 0 0 13 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 0 1 2.419 1.233zM10.29 7.67l-2-1.99a.99.99 0 0 1-.29-.7 1 1 0 0 1 1-.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 0 1-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 0 0 1.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 0 0-.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 0 0 0 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 0 0 0 1.42l2 2a1.003 1.003 0 0 0 1.71-.71v-4c0-.55-.45-1-1-1z\"],\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 0 1 8 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\",\n\"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 0 0 11.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 0 0 3.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 0 0 16 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 0 0 .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 0 0 .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 0 0-1.87-.5l-5.99 9.98c-.09.15-.14.33-.14.52a1.003 1.003 0 0 0 1.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 0 0 10.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 0 0-.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\",\n\"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 0 0 1.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 0 0 1.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 0 0-1.71-.71l-2 2c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2 2a1.003 1.003 0 0 0 1.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 0 0 .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 0 0 5 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 0 0 2.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 0 1 2.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 0 1-.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 0 1 1.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 0 0 1.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 0 0 .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 0 0 0 5 2.5 2.5 0 0 0 0-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 0 0 .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 0 0-.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 0 0-.36-.09c-.2 0-.36.06-.49.18a.59.59 0 0 0-.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 0 1-.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 0 1-.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 0 0 2 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 0 0 8 9c-.28 0-.53.11-.71.29l-2 2a1.003 1.003 0 0 0 1.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 0 0 .71-1.71l-2-2z\"],\n    \"pulse\": [\"M15 8h-1.46l-1.7-2.55-.02.01A.984.984 0 0 0 11 5c-.43 0-.79.27-.93.65h-.01l-1.69 4.51-1.38-8.32h-.02A.989.989 0 0 0 6 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    \"random\": [\"M11.48 4h1.11l-.29.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 0 0-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 0 0-1.42 1.42l.3.29h-1.11l-7.7-9.62h-.01A.996.996 0 0 0 3 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 0 0 1.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 1 0 0 10A5 5 0 1 0 8 3z\"],\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 0 0-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 0 0 1.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 0 0 6 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 0 0-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 0 0 1.42-1.42L4.41 8 5.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 0 0-1.71-.71L3 6.59l-1.29-1.3A1.003 1.003 0 0 0 .29 6.71L1.59 8 .29 9.29a1.003 1.003 0 0 0 1.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 0 0 8 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    \"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 0 0 1.71.71L6 12.42V15c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2.58l3.29 3.29a1.003 1.003 0 0 0 1.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    \"rotate-document\": [\"M12 2h-1.59l.29-.29c.19-.18.3-.43.3-.71A1.003 1.003 0 0 0 9.29.29l-2 2C7.11 2.47 7 2.72 7 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 0 0 1.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 0 0 5 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 0 0 9.29.29l-2 2C7.11 2.47 7 2.72 7 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 0 0 1.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    \"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 0 0-1.42 1.42l2 2a.997.997 0 0 0 1.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 0 0 1.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 1 0 2.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 0 0 0-5A2.5 2.5 0 0 0 11 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 0 0-5 0A2.5 2.5 0 0 0 2.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 0 0 0 5A2.5 2.5 0 0 0 5 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 0 0 5 0 2.5 2.5 0 0 0-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 1 0 2.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 1 0 2.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-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 0 0 1.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 0 0 16 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 0 0 1.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 0 0 9.99.15L5.53 2.82 1.56.17A1.003 1.003 0 0 0 0 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 0 0 16 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 0 1 0-.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 0 1 0-.55l.54-.55a.38.38 0 0 1 .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 0 1 8 1.57c0-.31.26-.57.57-.57h6.91z\"],\n    \"series-search\": [\"M9.6 8.94a4.937 4.937 0 0 0 1.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 0 1-.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    \"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 0 0-.3.71 1.003 1.003 0 0 0 1.71.71l5.29-5.29V6c0 .55.45 1 1 1s1-.45 1-1V1c0-.56-.45-1.01-1-1.01z\"],\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    \"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    \"sim-card\": [\"M13.71 4.29l-4-4A.997.997 0 0 0 9 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 0 0-.96.73l-2.99 9.96A1.003 1.003 0 0 0 7 14c.46 0 .85-.31.96-.73l2.99-9.96A1.003 1.003 0 0 0 10 2z\"],\n    \"small-cross\": [\"M9.41 8l2.29-2.29c.19-.18.3-.43.3-.71a1.003 1.003 0 0 0-1.71-.71L8 6.59l-2.29-2.3a1.003 1.003 0 0 0-1.42 1.42L6.59 8 4.3 10.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.71.71L8 9.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 0 0 .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-tick\": [\"M12 5c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 1.003 0 0 0-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0 0 12 5z\"],\n    \"snowflake\": [\"M13.364 9l.879.879a1 1 0 1 1-1.415 1.414l-2.12-2.121A1.003 1.003 0 0 1 10.568 9H9v1.604c.042.03.083.065.121.103l2.122 2.121a1 1 0 0 1-1.415 1.415L9 13.414V15a1 1 0 0 1-2 0v-1.636l-.879.879a1 1 0 1 1-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 1 1 1.707 9.88L2.586 9H1a1 1 0 1 1 0-2h1.536l-.829-.828a1 1 0 0 1 1.414-1.415L5.243 6.88c.038.038.072.079.103.121H7V5.38a1.003 1.003 0 0 1-.172-.137L4.708 3.12A1 1 0 0 1 6.12 1.707L7 2.586V1a1 1 0 1 1 2 0v1.536l.828-.829a1 1 0 0 1 1.415 1.414L9.12 5.243A1.007 1.007 0 0 1 9 5.346V7h1.604c.03-.042.065-.083.103-.121l2.121-2.122a1 1 0 0 1 1.415 1.415L13.414 7H15a1 1 0 0 1 0 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 0 0 1 12a1.003 1.003 0 0 0-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 0 0 5 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 0 0 2 12a1.003 1.003 0 0 0-.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 0 0-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 0 0-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 0 0 1 12a1.003 1.003 0 0 0-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 0 0 5 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 0 0 1 12a1.003 1.003 0 0 0-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 0 0 5 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 0 0-.71 1.71l2 2c.18.18.43.29.71.29.28 0 .53-.11.71-.29l2-2A1.003 1.003 0 0 0 6 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 0 0-.04 1.52 1.623 1.623 0 0 0 .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 0 1-.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 0 1-.27.24c-.11.06-.24.09-.39.09a.75.75 0 0 1-.37-.09.777.777 0 0 1-.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 0 1 .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 0 0-.71-.3 1.003 1.003 0 0 0-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 0 0 6 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 0 1-.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 0 0 1.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 0 0-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 0 0-1.71-.71l-2 2C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l2 2a1.003 1.003 0 0 0 1.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    \"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 0 0 5 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    \"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 0 0 1.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 0 0 11.7 7.7l2.99-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2.99-3a1.07 1.07 0 0 0-.71-.28 1.003 1.003 0 0 0-.71 1.71L11.57 3H2c-.55 0-1 .45-1 1a1 1 0 0 0 1 .99zM15.96 9H16v-.02l-.04.02zM14 11.01H4.43l1.29-1.29A1.003 1.003 0 0 0 4.3 8.3l-2.99 3a.99.99 0 0 0-.29.7c0 .28.11.53.29.71l2.99 3a1.003 1.003 0 0 0 1.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 0 0 1.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 0 0 7.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 0 0-.7-.29 1.003 1.003 0 0 0-.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    \"symbol-circle\": [\"M8 3.01a5 5 0 1 0 0 10 5 5 0 1 0 0-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-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    \"tag\": [\"M1 3a2 2 0 0 1 2-2h4.584a2 2 0 0 1 1.414.586l5.413 5.412a2 2 0 0 1 0 2.829L9.827 14.41a2 2 0 0 1-2.829 0L1.586 8.998A2 2 0 0 1 1 7.584V3zm3.487-.007a1.494 1.494 0 1 0 0 2.988 1.494 1.494 0 0 0 0-2.988z\"],\n    \"take-action\": [\"M9 11a1.003 1.003 0 0 0 1.71.71l4-4a1.003 1.003 0 0 0-1.42-1.42l-4 4c-.18.18-.29.43-.29.71zM4 6c.28 0 .53-.11.71-.29l4-4A1.003 1.003 0 0 0 7.29.29l-4 4A1.003 1.003 0 0 0 4 6zm4 4l5-5-.79-.79.5-.5a1.003 1.003 0 0 0-1.42-1.42l-.5.5L10 2 5 7l.79.79-5.5 5.5a1.003 1.003 0 0 0 1.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    \"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    \"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-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    \"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 0 0-1.42 1.42l4 4c.18.18.43.29.71.29s.53-.11.71-.29l8-8A1.003 1.003 0 0 0 14 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 0 0-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0 0 12 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 0 0 1.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 0 0-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    \"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 0 0 9 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    \"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 0 0-1.71.71v4a1.003 1.003 0 0 0 1.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    \"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 0 0-1.71-.71l-3 3C.11 4.47 0 4.72 0 5c0 .28.11.53.29.71l3 3a1.003 1.003 0 0 0 1.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 0 1-.75-.75zm-5.5.25h-2V8h2v2zm11-4.305zM15.34.826a2.807 2.807 0 0 0-.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 0 0-.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 0 1-.335.408 7.4 7.4 0 0 1-.452.37c-.162.123-.316.27-.463.438a2.556 2.556 0 0 0-.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 0 0 .878-1.117c.102-.255.152-.58.152-.975A2.241 2.241 0 0 0 15.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 0 1 0 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 0 0-.29-.79l-.12-.21c-.14-.27-.31-.52-.51-.76a.7.7 0 0 0-.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 0 0 5 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 0 0-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 0 0-1.42 1.42l2 2c.18.18.43.29.71.29.28 0 .53-.11.71-.29l4-4A1.003 1.003 0 0 0 11 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 0 1-1.42-1.42l3-3C7.47 3.11 7.72 3 8 3s.53.11.71.29l3 3A1.003 1.003 0 0 1 11 8z\"],\n    \"user\": [\"M7.99-.01A7.998 7.998 0 0 0 .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 0 0 .3.65c.07.14.14.27.22.4.04.07.08.13.12.2l.27.42.1.13a7.973 7.973 0 0 0 3.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 0 0 3.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 0 1-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 0 0-.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    \"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 0 0 1.71-.71v-10c-.01-.55-.46-1-1.01-1zm6.74-.99l-1.58 1.22A9.985 9.985 0 0 1 14 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 0 1 5 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    \"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    \"wrench\": [\"M15.83 3.7l-3.06 3.05-2.84-.7-.7-2.83L12.29.17a5.004 5.004 0 0 0-4.83 1.29 4.967 4.967 0 0 0-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 0 0 1.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 1 0 2.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 0 0 1.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 1 0 2.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 0 0 1.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 0 0-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 0 0-1.71-.71l-2 2C1.11 7.47 1 7.72 1 8c0 .28.11.53.29.71l2 2a1.003 1.003 0 0 0 1.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 0 0 .71-1.71l-2-2C8.53 1.11 8.28 1 8 1s-.53.11-.71.29l-2 2A1.003 1.003 0 0 0 6 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 0 0 6 11a1.003 1.003 0 0 0-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 0 0 10 11z\"],\n};\n\nexport const IconSvgPaths20: Record<IconName, string[]> = {\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-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-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 0 1-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    \"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    \"arrow-bottom-left\": [\"M18 3a1.003 1.003 0 0 0-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 0 0-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 0 0-1.71-.71l-6 6c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l6 6a1.003 1.003 0 0 0 1.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 0 0-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 0 0 1.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 0 0 .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 0 0 1.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 0 0 19 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 0 0 2 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 0 0 1 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 0 0 10 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 0 1 15 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 0 0-1.71-.71L12 8.59l-2.29-2.3a1.003 1.003 0 0 0-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l7-7c.18-.18.29-.43.29-.71z\"],\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 0 1-1.38-.28.99.99 0 0 1 .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 0 1 1.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    \"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 0 0 13 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    \"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 1 0 1.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\",\n\"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 1 0-1.36 1.46c1.28 1.19 1.39 3.21-.01 4.54-.39.39-.41 1.02-.03 1.42z\",\n\"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 0 0 .71-1.71l-3-3C6.53.11 6.28 0 6 0s-.53.11-.71.29l-3 3A1.003 1.003 0 0 0 3 5zm7.29 5.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3a1.003 1.003 0 0 0-1.42-1.42L15 10.59V1c0-.55-.45-1-1-1s-1 .45-1 1v9.59L11.71 9.3A.965.965 0 0 0 11 9a1.003 1.003 0 0 0-.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 0 0 1.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 0 0-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 0 0 .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 0 0-1.42 1.42l6 6c.18.18.43.29.71.29s.53-.11.71-.29l6-6A1.003 1.003 0 0 0 16 6z\"],\n    \"chevron-forward\": [\"M13 3c-.55 0-1 .45-1 1v4.59l-5.29-5.3a1.003 1.003 0 0 0-1.42 1.42l5.3 5.29-5.29 5.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.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 0 0-1.71-.71l-6 6c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l6 6a1.003 1.003 0 0 0 1.42-1.42L8.41 10z\"],\n    \"chevron-right\": [\"M13.71 9.29l-6-6a1.003 1.003 0 0 0-1.42 1.42l5.3 5.29-5.29 5.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.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 0 0 1.42 1.42L10 8.41l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 0 0 .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 0 0 6 10a1.003 1.003 0 0 0-.71 1.71l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0 0 14 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 0 0-1.71-.71l-4 4c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l4 4a1.003 1.003 0 0 0 1.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 0 0-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 0 0 1.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 0 0 1.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 0 0 .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    \"clipboard\": [\"M13 2c0-.55-.45-1-1-1h-.78a1.98 1.98 0 0 0-3.44 0H7c-.55 0-1 .45-1 1v2h7V2z\",\n\"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 0 0 0 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 0 0 0 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 0 0 7 15a1.003 1.003 0 0 0-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0 0 13 15z\"],\n    \"cloud-upload\": [\"M10.71 10.29c-.18-.18-.43-.29-.71-.29s-.53.11-.71.29l-3 3a1.003 1.003 0 0 0 1.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 0 0 .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 0 0 0 10c0 2.21 1.79 4 4 4 0-.83.34-1.58.88-2.12l3-3a2.993 2.993 0 0 1 4.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 0 0-1.71-.71l-4 4C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l4 4a1.003 1.003 0 0 0 1.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 0 0-1.42 1.42l3.3 3.29-3.29 3.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.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 0 1-1.42 1.42l-4-4C3.11 12.53 3 12.28 3 12s.11-.53.29-.71l4-4a1.003 1.003 0 0 1 1.42 1.42L5.41 12l3.3 3.29zm8-2.58l-4 4a1.003 1.003 0 0 1-1.42-1.42l3.3-3.29-3.29-3.29A.965.965 0 0 1 11 8a1.003 1.003 0 0 1 1.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 0 0 0-1.41l-1.41-1.41a.996.996 0 0 0-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 0 0-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 0 0 0 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 0 0-1.42-1.42L10 6.59l-5.29-5.3a1.003 1.003 0 0 0-1.42 1.42l6 6zm1.42 2.58c-.18-.18-.43-.29-.71-.29s-.53.11-.71.29l-6 6a1.003 1.003 0 0 0 1.42 1.42l5.29-5.3 5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 0 0 .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 0 0 1.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 0 1-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 0 1 1.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 0 0 6 10a1.003 1.003 0 0 0-.71 1.71l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4a1.003 1.003 0 0 0-1.42-1.42L11 12.59V8h7v10z\"],\n    \"confirm\": [\"M9.71 5.29a1.003 1.003 0 0 0-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l7-7a1.003 1.003 0 0 0-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 0 1 11.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 0 1-1.42-1.42L4.59 11l-1.3-1.29A1.003 1.003 0 0 1 4 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 0 0 0-1.41l-1.41-1.41a.996.996 0 0 0-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 0 0-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 0 0 0 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 0 0-1.71-.71L10 8.59l-4.29-4.3a1.003 1.003 0 0 0-1.42 1.42L8.59 10 4.3 14.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.71.71l4.29-4.3 4.29 4.29c.18.19.43.3.71.3a1.003 1.003 0 0 0 .71-1.71L11.41 10z\"],\n    \"crown\": [\"M2 8l4 2 4-5 4 5 4-2-1 7H3L2 8zm8-6a1 1 0 1 1 0 2 1 1 0 0 1 0-2zM1 5a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm18 0a1 1 0 1 1 0 2 1 1 0 0 1 0-2zM3 16h14v2H3v-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 0 0 1 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    \"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    \"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 0 0-1.71-.71L10 8.59l-3.29-3.3a1.003 1.003 0 0 0-1.42 1.42L8.59 10 5.3 13.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.71.71l3.29-3.3 3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 0 0 .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 0 0-.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 0 0-.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 0 0-.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    \"diagram-tree\": [\"M19 10v5h-2v-4h-6v4H9v-4H3v4H1v-5a1 1 0 0 1 1-1h7V5h2v4h7a1 1 0 0 1 1 1zM1 16h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1zm16 0h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1zm-8 0h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1zM9 0h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V1a1 1 0 0 1 1-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 0 1 2 10zm8 8c-1.85 0-3.55-.63-4.9-1.69L16.31 5.1A7.902 7.902 0 0 1 18 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 0 0 1.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 0 0 1.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 1 0 0 8 4 4 0 1 0 0-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 0 0-1.42-1.42L10 8.59l-5.29-5.3a1.003 1.003 0 0 0-1.42 1.42l6 6zM16 9c-.28 0-.53.11-.71.29L10 14.59l-5.29-5.3a1.003 1.003 0 0 0-1.42 1.42l6 6c.18.18.43.29.71.29s.53-.11.71-.29l6-6A1.003 1.003 0 0 0 16 9z\"],\n    \"double-chevron-left\": [\"M5.41 10l5.29-5.29c.19-.18.3-.43.3-.71a1.003 1.003 0 0 0-1.71-.71l-6 6c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l6 6a1.003 1.003 0 0 0 1.42-1.42L5.41 10zm6 0l5.29-5.29c.19-.18.3-.43.3-.71a1.003 1.003 0 0 0-1.71-.71l-6 6c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l6 6a1.003 1.003 0 0 0 1.42-1.42L11.41 10z\"],\n    \"double-chevron-right\": [\"M11 10c0-.28-.11-.53-.29-.71l-6-6a1.003 1.003 0 0 0-1.42 1.42L8.59 10 3.3 15.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.71.71l6-6c.18-.18.29-.43.29-.71zm5.71-.71l-6-6a1.003 1.003 0 0 0-1.42 1.42l5.3 5.29-5.29 5.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.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 0 0 .71-1.71l-6-6A.997.997 0 0 0 10 3c-.28 0-.53.11-.71.29l-6 6A1.003 1.003 0 0 0 4 11zm6.71-1.71A.997.997 0 0 0 10 9c-.28 0-.53.11-.71.29l-6 6a1.003 1.003 0 0 0 1.42 1.42l5.29-5.3 5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 0 0 .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 0 1 15.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 0 1 1.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 0 1 .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    \"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 0 0 16 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    \"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 0 0-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 0 1 1.42-1.42l2.3 2.3 4.31-4.3a1.003 1.003 0 0 1 1.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    \"eraser\": [\"M18.71 8.43c.39-.4.39-1.05 0-1.45l-5.53-5.72a.967.967 0 0 0-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 0 0 0 5 2.5 2.5 0 0 0 0-5zm10.35 3.15a.495.495 0 1 0-.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 0 0 .85.35l2-2c.09-.09.15-.21.15-.35s-.06-.26-.15-.35l-2-2zM17.5 8a2.5 2.5 0 0 0 0 5 2.5 2.5 0 0 0 0-5zM7.15 9.85a.495.495 0 1 0 .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 0 0-.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 0 0 1.71.71L4 11.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 0 0 .71-1.71L5.41 10 7.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 0 0-1.71-.71L4 8.59l-2.29-2.3A1.003 1.003 0 0 0 .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 0 0 .71-1.71l-6-6C10.53 1.11 10.28 1 10 1s-.53.11-.71.29l-6 6A1.003 1.003 0 0 0 4 9zm12 2c-.28 0-.53.11-.71.29L10 16.59 4.71 11.3A.965.965 0 0 0 4 11a1.003 1.003 0 0 0-.71 1.71l6 6c.18.18.43.29.71.29s.53-.11.71-.29l6-6A1.003 1.003 0 0 0 16 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 0 0 .71-1.71l-5-5C10.53.11 10.28 0 10 0s-.53.11-.71.29l-5 5A1.003 1.003 0 0 0 5 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 0 0-.21-.43c-.55-.69-1.19-1.3-1.85-1.87l-3.93 2.62a3.966 3.966 0 0 1-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 0 0 .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 0 0-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 0 0 0 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 0 0-1.42-1.42L14 6.58l-2.29-2.29a.956.956 0 0 0-.7-.29 1.003 1.003 0 0 0-.71 1.71l3 3zM20 9.96v-.03-.01-.02-.02a.823.823 0 0 0-.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 0 1-3.86 3.02 4.007 4.007 0 0 1-1.66-7.65A2.97 2.97 0 0 1 8.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 0 0 8.012 9.99c0 1.103.9 2.006 1.998 2.006a2.008 2.008 0 0 0 1.998-2.006c0-1.103-.9-2.006-1.998-2.006zM20 9.96v-.03-.01-.02-.02a.827.827 0 0 0-.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 0 0-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 0 1 6.014 9.99a4.003 4.003 0 0 1 3.996-4.011 4.003 4.003 0 0 1 3.996 4.011 4.003 4.003 0 0 1-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 0 0 0 5 2.5 2.5 0 0 0 0-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 0 0 0 5 2.5 2.5 0 0 0 0-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 0 0 1.4 0l4.98-4.98c.19-.17.3-.42.3-.7 0-.55-.45-1-1-1a.99.99 0 0 0-.7.29l-4.27 4.27-2.28-2.28a.99.99 0 0 0-.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 0 1 18 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 0 0-.71 1.71L7 8.41V18a1.003 1.003 0 0 0 1.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 0 0-.71 1.71L5 7.41V16a1.003 1.003 0 0 0 1.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 0 0 13 15a1.003 1.003 0 0 0-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0 0 19 13z\"],\n    \"filter-list\": [\"M15 2c0-.55-.45-1-1-1H1a1.003 1.003 0 0 0-.71 1.71L5 7.41V16a1.003 1.003 0 0 0 1.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-remove\": [\"M15 2c0-.55-.45-1-1-1H1a1.003 1.003 0 0 0-.71 1.71L5 7.41V16a1.003 1.003 0 0 0 1.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 0 0-1.71-.71l-1.79 1.79-1.79-1.79a1.003 1.003 0 0 0-1.42 1.42l1.79 1.79-1.79 1.79a1.003 1.003 0 0 0 1.42 1.42l1.79-1.79 1.79 1.79a1.003 1.003 0 0 0 1.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 0 0 1.42-1.42l-2-2a1.07 1.07 0 0 0-.71-.28 1.003 1.003 0 0 0-.71 1.71l2 1.99zm9.37.3c.28 0 .53-.11.71-.29l2-2a1.003 1.003 0 0 0-1.42-1.42l-2 2a1.003 1.003 0 0 0 .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 0 0-1.42 1.42l2 2a1.003 1.003 0 0 0 1.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 0 0 1.42 1.42l2-2a1.003 1.003 0 0 0-.71-1.71z\"],\n    \"floppy-disk\": [\"M14 1h-3v5h3V1zm5.71 2.29l-3-3A.997.997 0 0 0 16 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 0 1 .562 2.045 3.98 3.98 0 0 1-.583 2.08L18 15.671V12.98c0-.248.097-.496.29-.689.379-.379 1.047-.38 1.426 0a.94.94 0 0 1 .283.696l-.001 5.049a.957.957 0 0 1-.276.69.955.955 0 0 1-.69.273h-5.059a.971.971 0 0 1-.689-.289 1.026 1.026 0 0 1 0-1.417.972.972 0 0 1 .69-.29h2.702l-3.634-3.573a3.998 3.998 0 0 1-5.924-2.431H1a1 1 0 0 1 0-2h6.12a3.998 3.998 0 0 1 5.96-2.409L16.665 3l-2.694-.001a.972.972 0 0 1-.689-.29 1.035 1.035 0 0 1 0-1.425.94.94 0 0 1 .696-.283l5.05.001c.248 0 .497.083.69.276a.954.954 0 0 1 .272.69l.001 5.052a.971.971 0 0 1-.29.689 1.028 1.028 0 0 1-1.419 0 .972.972 0 0 1-.29-.69V4.323l-3.567 3.63z\"],\n    \"flow-end\": [\"M12 9.919a3.998 3.998 0 0 1 4-3.92c2.21 0 4 1.79 4 3.997a3.998 3.998 0 0 1-4 3.996 3.998 3.998 0 0 1-4-3.916.967.967 0 0 1-.28.612L7.685 14.71a.958.958 0 0 1-.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 0 1-.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 0 1 7.752 0h3.776L14.293 6.69a.962.962 0 0 1-.285-.687c0-.537.46-1.001.996-1.001a.96.96 0 0 1 .698.3l4.005 4.015c.176.176.293.41.293.683a.972.972 0 0 1-.283.693L15.702 14.7a.997.997 0 0 1-.698.297c-.537 0-.996-.453-.996-.99 0-.273.107-.517.283-.692l2.371-2.318h-3.787a4.002 4.002 0 0 1-7.75 0z\"],\n    \"flow-review\": [\"M6.13 9.004A4.005 4.005 0 0 1 10.012 6c1.87 0 3.44 1.278 3.881 3.005h2.768l-2.354-2.317a.97.97 0 0 1-.283-.691c0-.536.462-.995 1-.995.273 0 .517.107.693.283l4 4.041a.97.97 0 0 1 .284.692.956.956 0 0 1-.293.682l-3.991 3.997a.944.944 0 0 1-.694.292c-.537 0-1-.46-1-.997a.97.97 0 0 1 .284-.692l2.345-2.29h-2.765a4.005 4.005 0 0 1-3.875 2.981 4.005 4.005 0 0 1-3.874-2.981H3.349l2.376 2.308a.97.97 0 0 1 .283.691 1 1 0 0 1-.994.983.989.989 0 0 1-.713-.291L.293 10.699A.956.956 0 0 1 0 10.017a.97.97 0 0 1 .283-.692l4.03-4.037a.996.996 0 0 1 .701-.283c.537 0 .994.464.994 1a.97.97 0 0 1-.283.691L3.34 9.004h2.79z\"],\n    \"flow-review-branch\": [\"M13.04 13.424c-.6.36-1.302.568-2.052.568a4 4 0 0 1-3.868-2.999H3.342l2.372 2.31c.176.176.283.42.283.694 0 .537-.452.998-.988.998a.935.935 0 0 1-.691-.289L.292 10.683A.96.96 0 0 1 0 9.999c0-.274.107-.518.283-.694l4.035-4.04a.973.973 0 0 1 .691-.288c.536 0 .988.47.988 1.007a.975.975 0 0 1-.283.694L3.332 8.984h3.786a4 4 0 0 1 3.87-3.006c.771 0 1.492.22 2.102.599l3.565-3.57-2.538-.003a.974.974 0 0 1-.69-.29c-.38-.38-.38-1.052-.002-1.431A.94.94 0 0 1 14.122 1l4.896.005a.96.96 0 0 1 .69.277c.193.193.27.442.27.69l.005 4.9a.971.971 0 0 1-.289.69 1.023 1.023 0 0 1-1.416 0 .975.975 0 0 1-.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 0 1 .282.697l-.005 4.9a.927.927 0 0 1-.277.675.974.974 0 0 1-.69.291L13.974 19a.97.97 0 0 1-.69-.29 1.03 1.03 0 0 1 .002-1.42.974.974 0 0 1 .69-.29l2.696-.003-3.632-3.573z\"],\n    \"flows\": [\"M17.5 7.93a2.5 2.5 0 0 0-2.45 2h-2.3l-4.01-4-.75.75 3.26 3.25h-6.3a2.5 2.5 0 1 0 0 1h6.3l-3.26 3.25.75.75 4.01-4h2.3a2.5 2.5 0 1 0 2.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 0 0 7 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 0 0 2.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 0 0 6 2H1c-.55 0-1 .45-1 1v12.31l3.07-7.68z\"],\n    \"folder-shared\": [\"M11 4H9.41l-1.7-1.71A.997.997 0 0 0 7 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 0 0 1.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 1 1-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 0 1 11 4H8.41l-1.7-1.71A.997.997 0 0 0 6 2H1c-.55 0-1 .45-1 1v12.31l3.07-7.68zm13.47 3.07l-1.42 1.42A2.996 2.996 0 0 1 10 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 0 0 1.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 0 0-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 0 0-.7-.29 1.003 1.003 0 0 0-.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 0 0 1.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 0 0-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 0 0 15.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 0 0 .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 0 0-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 0 0 1.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3a1.003 1.003 0 0 0-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 0 0 1.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 0 1 .71 1.71l-5 6C3.53 8.89 3.28 9 3 9s-.53-.11-.71-.29l-2-2a1.003 1.003 0 0 1 1.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 1 0 0 20 10 10 0 1 0 0-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 0 0 .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 0 0 1.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 0 0 12 11a1.003 1.003 0 0 0-.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 0 0 .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 0 1-.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 0 0-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    \"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 0 0 .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 0 0-9.8 0H1c-.55 0-1 .45-1 1s.45 1 1 1h4.1a5 5 0 0 0 9.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 0 0 5 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 0 0 18 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 0 0-1.71-.71l-3 3C7.11 3.47 7 3.72 7 4c0 .28.11.53.29.71l3 3a1.003 1.003 0 0 0 1.42-1.42L10.41 5H13c1.1 0 2 .9 2 2v7.18A2.996 2.996 0 0 0 16 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 0 0 1.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 0 0-.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 0 1 0-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 0 0 0 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 0 1 2.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 0 1-5.35 4.73zM13.89 12a18.419 18.419 0 0 0 0-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 0 0 15 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 0 0-5 0A2.5 2.5 0 0 0 2.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 0 0 5 17.5a2.5 2.5 0 0 0 5 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 0 0 0-5z\"],\n    \"graph-remove\": [\"M17.41 4l2.29-2.29c.19-.18.3-.43.3-.71a1.003 1.003 0 0 0-1.71-.71L16 2.59 13.71.3A.965.965 0 0 0 13 0a1.003 1.003 0 0 0-.71 1.71L14.59 4 12.3 6.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.71.71L16 5.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 0 0 .71-1.71L17.41 4zM19 10c-.83 0-1.55-.36-2.09-.91l-.03.03-.88-.88-.88.88a2.996 2.996 0 1 1-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    \"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 1 0-1.98-.19h-.01L11.57 10H11V1c0-.55-.45-1-1-1S9 .45 9 1v9h-.2L6.97 2.76a.997.997 0 0 0-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 0 0 3 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 0 0 17 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    \"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-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 0 0 1 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 0 0-.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 0 0 0 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 0 0 5.25 1 5.25 5.25 0 0 0 0 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 1 0 0 12A6 6 0 1 0 6 0z\",\n\"M10.5 8a4.5 4.5 0 1 0 0 9 4.5 4.5 0 1 0 0-9z\",\n\"M16.5 7a3.5 3.5 0 1 0 0 7 3.5 3.5 0 1 0 0-7zM18 16a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM2.5 14a2.5 2.5 0 1 0 0 5 2.5 2.5 0 1 0 0-5zM16.5 0a2.5 2.5 0 1 0 0 5 2.5 2.5 0 1 0 0-5z\"],\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    \"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 0 0 1.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 0 0 1.42 1.42L10 2.41l8.29 8.29c.18.19.43.3.71.3a1.003 1.003 0 0 0 .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    \"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\",\n\"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 0 0-1.71-.71l-2 2c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2 2a1.003 1.003 0 0 0 1.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 0 0 1.42 1.42l2-2C8.89 3.53 9 3.28 9 3c0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 0 0-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 0 0-1.42-1.42L11 12.59V1c0-.55-.45-1-1-1S9 .45 9 1v11.59l-3.29-3.3a1.003 1.003 0 0 0-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    \"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    \"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 0 0 0 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 0 0 6 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 1 0 0-16 8 8 0 0 0 0 16zm1-2H9v-2h2v2zm0-3H9V4h2v9z\"],\n    \"issue-closed\": [\"M15.364 5.9a.997.997 0 0 1-.707-.293l-2.121-2.122a1 1 0 1 1 1.414-1.414l1.414 1.414L18.192.657a1 1 0 0 1 1.414 1.414l-3.535 3.536a.997.997 0 0 1-.707.292zM11.78.157a3.002 3.002 0 0 0-1.437 1.85 8 8 0 1 0 7.1 5.055l.042-.042 1.472-1.472A9.959 9.959 0 0 1 20 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 0 0-.131.524c-.74.115-1.39.5-1.848 1.052a8 8 0 1 0 6.724 6.724 2.997 2.997 0 0 0 1.052-1.848 2.98 2.98 0 0 0 .524-.13A9.99 9.99 0 0 1 20 10c0 5.523-4.477 10-10 10S0 15.523 0 10 4.477 0 10 0a9.99 9.99 0 0 1 3.167.512zM11 16H9v-2h2v2zm0-3H9V4h2v9zm6-10h1.5a1 1 0 0 1 0 2H17v1.5a1 1 0 0 1-2 0V5h-1.5a1 1 0 0 1 0-2H15V1.5a1 1 0 0 1 2 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 1 0 2.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 0 0 14 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 0 1-1.42 1.42L13 11.41l-2.29 2.29c-.18.19-.43.3-.71.3a1.003 1.003 0 0 1-.71-1.71l2.3-2.29-2.3-2.29a1.003 1.003 0 0 1 1.42-1.42L13 8.59l2.29-2.29c.18-.19.43-.3.71-.3a1.003 1.003 0 0 1 .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 0 0 1.42 1.42L10 3.41l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 0 0 .71-1.71z\"],\n    \"key-delete\": [\"M19.71 9.29l-6-6A.997.997 0 0 0 13 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 0 1-1.42 1.42L7 11.41 4.71 13.7c-.18.19-.43.3-.71.3a1.003 1.003 0 0 1-.71-1.71L5.59 10l-2.3-2.29a1.003 1.003 0 0 1 1.42-1.42L7 8.59 9.29 6.3c.18-.19.43-.3.71-.3a1.003 1.003 0 0 1 .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 0 0-1.71-.71l-4 4c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l4 4a1.003 1.003 0 0 0 1.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 0 0 .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 0 0 9-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 0 0 6 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 0 0 2 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 0 0-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 0 0 .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 0 0 14 1a1.003 1.003 0 0 0-.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 0 0 1.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 0 0-.707.293L14 8.586l-2.293-2.293a1 1 0 0 0-1.414 1.414l3 3a.997.997 0 0 0 1.414 0l5-5A1 1 0 0 0 19 4zm-2.048 7.291c.011.072.048.134.048.209a1.5 1.5 0 0 1-1.5 1.5c-.225 0-.433-.057-.624-.145-.279.085-.57.145-.876.145a2.99 2.99 0 0 1-2.121-.879l-3-3 .007-.007A3.027 3.027 0 0 1 8.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 0 0 0 2h.333l-.28.84L1 10v7.5a1.5 1.5 0 1 0 3 0V17h12v.5a1.5 1.5 0 0 0 3 0V10l-.19-.568-1.858 1.86zM4.5 13a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z\"],\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    \"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\",\n\"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\",\n\"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 0 0-2.45 2h-4.1A2.5 2.5 0 0 0 5.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 0 0 2 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 0 0 2.45-2h4.1a2.5 2.5 0 0 0 2.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 1 0 0 4 2 2 0 1 0 0-4zM10 0a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM18 0a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM18 8a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM18 16a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM10 16a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM2 16a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM2 8a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM10 8a2 2 0 1 0 0 4 2 2 0 1 0 0-4z\"],\n    \"layout-group-by\": [\"M2 2a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM18 0a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM18 8a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM18 16a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM2 14a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM2 8a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM13 12a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM13 4a2 2 0 1 0 0 4 2 2 0 1 0 0-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 0 0-2.45 2h-2.1a2.5 2.5 0 0 0-4.9 0h-2.1a2.5 2.5 0 1 0 0 1h2.1a2.5 2.5 0 0 0 4.9 0h2.1a2.5 2.5 0 1 0 2.45-3z\"],\n    \"layout-skew-grid\": [\"M2 0a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM18 0a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM18 8a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM18 16a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM2 16a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM2 8a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM10 12a2 2 0 1 0 0 4 2 2 0 1 0 0-4zM10 4a2 2 0 1 0 0 4 2 2 0 1 0 0-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    \"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    \"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    \"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 0 0 1.71.71l8-8a1.003 1.003 0 0 0-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 0 1-4.9 4.91V15c0-.55-.45-1-1-1s-1 .45-1 1v.91A5.98 5.98 0 0 1 4.1 11H5c.55 0 1-.45 1-1s-.45-1-1-1h-.9A5.98 5.98 0 0 1 9 4.09V5c0 .55.45 1 1 1s1-.45 1-1v-.91A5.98 5.98 0 0 1 15.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 0 0-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 0 0 1.71.71l5-5c.18-.18.29-.43.29-.71z\"],\n    \"log-out\": [\"M19.71 9.29l-5-5a1.003 1.003 0 0 0-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 0 0 1.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 0 0-.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 0 0 .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    \"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 0 0 1 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 0 0 1 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 0 0 1.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 0 0 5 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 0 0 15 7v6a1.003 1.003 0 0 0 1.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 0 0-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 0 0 1.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 0 0-1.71-.71l-3 3c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l3 3a1.003 1.003 0 0 0 1.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 0 0 1.71.71L7 14.41V17c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1zM20 1a1.003 1.003 0 0 0-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    \"moon\": [\"M19 14.15A9.94 9.94 0 0 1 9.94 20C4.45 20 0 15.55 0 10.06 0 6.03 2.4 2.56 5.85 1a9.811 9.811 0 0 0-.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 1 0 0 5 2.5 2.5 0 1 0 0-5zM17.5 8a2.5 2.5 0 1 0 0 5 2.5 2.5 0 1 0 0-5zM10.5 8a2.5 2.5 0 1 0 0 5 2.5 2.5 0 1 0 0-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 0 0-1.42 1.42L16.59 9H11V3.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 0 0 .71-1.71l-3-3C10.53.11 10.28 0 10 0s-.53.11-.71.29l-3 3a1.003 1.003 0 0 0 1.42 1.42L9 3.41V9H3.41L4.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 0 0-1.71-.71l-3 3C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l3 3a1.003 1.003 0 0 0 1.42-1.42L3.41 11H9v5.59L7.71 15.3A.965.965 0 0 0 7 15a1.003 1.003 0 0 0-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3a1.003 1.003 0 0 0-1.42-1.42L11 16.59V11h5.59l-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.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 0 0-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    \"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-link\": [\"M14.5 12a2.5 2.5 0 0 0-2.45 2h-7.1a2.5 2.5 0 1 0 0 1h7.1a2.5 2.5 0 1 0 2.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    \"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-updated\": [\"M10 20c1.1 0 2-.9 2-2H8c0 1.1.9 2 2 2zm2-17.834A2.994 2.994 0 0 0 8 4.99c0 .808.319 1.557.876 2.114l2.97 2.99a2.99 2.99 0 0 0 4.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 0 1-.29-.7c0-.55.44-1 .99-1 .27 0 .52.11.7.29l2.28 2.28 4.27-4.27a.99.99 0 0 1 .7-.29c.55 0 1 .45 1 1 0 .28-.11.53-.3.7l-4.98 4.98a.99.99 0 0 1-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 0 0 .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 0 0 7.94 13V7c0-.55-.45-1-1-1z\"],\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 0 1 1 1v15a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V2a1 1 0 0 1 1-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 0 0 14.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 0 0 20 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 0 0 .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 0 0 .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 0 0-.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 0 1 1.4-2.36C6.32 2.25 7.21 2 8 2s1.68.25 2.31.73a3.63 3.63 0 0 1 1.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 0 0-1.88-.48L5.14 16.49a1.003 1.003 0 0 0 1.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 0 0 12.9.92C12.11.32 11 0 10.01 0s-2.1.32-2.89.92a4.55 4.55 0 0 0-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 0 0-.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\",\n\"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 0 0 1.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 0 0 1.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 0 0-1.71-.71l-3 3c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l3 3a1.003 1.003 0 0 0 1.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 0 0 .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 0 0 5 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 0 0 18 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 0 0 18 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 0 0 9.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 0 1-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 0 1 2.39-2.05c.19 0 .39.02.58.07l.4.1.22-.38A2.41 2.41 0 0 1 9.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 0 1 .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 0 0 1.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 0 0 .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 0 0 1.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 0 0 .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 0 0-.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 0 0-.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 0 0 7 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    \"random\": [\"M14.47 5h2.12L15.3 6.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3a1.003 1.003 0 0 0-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 0 0-1.42 1.42l1.3 1.29h-2.12L4.77 3.36l-.01.01A.998.998 0 0 0 4 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 0 0 1.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 1 0 0 14 7 7 0 1 0 0-14z\"],\n    \"redo\": [\"M19.71 5.29l-4-4a1.003 1.003 0 0 0-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 0 0 1.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 0 0 1.42-1.42L5.41 10 7.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 0 0-1.71-.71L4 8.59l-2.29-2.3A1.003 1.003 0 0 0 .29 7.71L2.59 10 .3 12.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.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    \"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 0 0 1.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 0 0 1.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 0 0 0 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    \"rotate-document\": [\"M8.71 6.29A.997.997 0 0 0 8 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 0 0-1.71-.71l-2 2C9.11 2.47 9 2.72 9 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 0 0 1.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 0 0-1.71-.71l-2 2C9.11 2.47 9 2.72 9 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 0 0 1.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    \"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 0 0-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 0 0 16 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 1 0 2.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 1 0 0 6 3 3 0 1 0 0-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\",\n\"M5.379 4.671l5.02 5.02-.707.708-5.02-5.02zM10 10l5-5\",\n\"M14.621 4.671l.707.708-5.02 5.02-.707-.707z\",\n\"M10 10l5 5M10.379 9.671l5.02 5.02-.707.708-5.02-5.02z\",\n\"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 0 0 18 9a9 9 0 1 0-9 9c1.94 0 3.74-.62 5.21-1.67l3.23 3.23a1.498 1.498 0 1 0 2.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 0 0 18 9a9 9 0 1 0-9 9c1.94 0 3.74-.62 5.21-1.67l3.23 3.23a1.498 1.498 0 1 0 2.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 0 0 .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\",\n\"M10 6a4 4 0 1 0 0 8 4 4 0 1 0 0-8z\"],\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 0 0 1.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 0 0 1.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 0 0 1 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 0 1-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 0 1-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 0 1 0-.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 0 1 0-.61l.61-.61c.17-.17.44-.17.61 0l.73.73c.2-.11.4-.2.62-.26V1.45a.44.44 0 0 1 .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 0 1-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 0 1-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 1 1 .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 0 1 .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 0 0 1 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 0 0-.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    \"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 0 0 1.42 1.42L18 3.41V8c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z\"],\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    \"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 0 0 5 0 2.5 2.5 0 0 0 5 0 2.5 2.5 0 0 0 5 0 2.5 2.5 0 0 0 5 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    \"sim-card\": [\"M16.71 5.29l-5-5A.997.997 0 0 0 11 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 0 0-1.71-.71L10 8.59l-3.29-3.3a1.003 1.003 0 0 0-1.42 1.42L8.59 10 5.3 13.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.71.71l3.29-3.3 3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 0 0 .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-tick\": [\"M15 5c-.28 0-.53.11-.71.29L8 11.59l-2.29-2.3a1.003 1.003 0 0 0-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l7-7A1.003 1.003 0 0 0 15 5z\"],\n    \"snowflake\": [\"M11 11.776v2.81l2.31 2.242a.987.987 0 0 1 0 1.415c-.399.39-1.044.39-1.442 0L11 17.414V19a.99.99 0 0 1-.996 1A.996.996 0 0 1 9 19v-1.636l-.912.879c-.398.39-1.043.39-1.441 0a.987.987 0 0 1 0-1.415L9 14.536v-2.79l-2.548 1.435-.837 3.063c-.146.534-.705.85-1.248.707a.998.998 0 0 1-.721-1.224l.309-1.132-1.4.793a1.03 1.03 0 0 1-1.393-.366.99.99 0 0 1 .373-1.366l1.445-.818-1.224-.322a.998.998 0 0 1-.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 0 1-1.249-.706.998.998 0 0 1 .721-1.225L2.91 7.18l-1.4-.793a.99.99 0 0 1-.373-1.366 1.03 1.03 0 0 1 1.392-.366l1.445.818-.328-1.2a.998.998 0 0 1 .72-1.225 1.022 1.022 0 0 1 1.25.707l.855 3.132L9 8.311V5.414L6.647 3.121a.987.987 0 0 1 0-1.414 1.033 1.033 0 0 1 1.441 0L9 2.586V1c0-.552.44-1 1.004-1A.99.99 0 0 1 11 1l-.007 1.536.875-.829a1.033 1.033 0 0 1 1.441 0 .987.987 0 0 1 0 1.414L11 5.364v2.918l2.53-1.42.855-3.131c.146-.534.705-.85 1.249-.707a.998.998 0 0 1 .72 1.224l-.327 1.2 1.4-.792a1.03 1.03 0 0 1 1.392.366.99.99 0 0 1-.373 1.366l-1.355.768 1.153.303a.998.998 0 0 1 .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 0 1 1.249.707.998.998 0 0 1-.72 1.225l-1.224.322 1.4.793a.99.99 0 0 1 .373 1.366 1.03 1.03 0 0 1-1.393.366l-1.356-.768.31 1.132a.998.998 0 0 1-.721 1.224 1.022 1.022 0 0 1-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 0 0 1 15a1.003 1.003 0 0 0-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0 0 7 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 0 0-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0 0 8 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 0 0-.71 1.71l3 3a1.014 1.014 0 0 0 1.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 0 0 1 14a1.003 1.003 0 0 0-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0 0 7 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 0 0 1 14a1.003 1.003 0 0 0-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0 0 7 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 0 0-.71-.3 1.003 1.003 0 0 0-.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 0 0-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 0 0-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 0 0 1.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 0 1-.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 0 1 .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 0 0-.71 1.71l3 3c.18.18.43.29.71.29.28 0 .53-.11.71-.29l3-3A1.003 1.003 0 0 0 9 15zm6.7-1.33a1.5 1.5 0 0 1-.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 0 0 2.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 0 0 1.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3a1.003 1.003 0 0 0-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 0 0-1.71-.71l-3 3C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l3 3a1.003 1.003 0 0 0 1.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    \"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    \"strikethrough\": [\"M18 9h-4.46a4.7 4.7 0 0 0-.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 0 0-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 0 0-.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 0 0-.3.71 1.003 1.003 0 0 0 1.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-4-4a1.003 1.003 0 0 0-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 0 0 .3-.71 1.003 1.003 0 0 0-1.71-.71l-4 4c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l4 4a1.003 1.003 0 0 0 1.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 0 0 5 1.01c-.28 0-.53.11-.71.29l-4 4a1.003 1.003 0 0 0 1.42 1.42L4 4.42V18c0 .55.45 1 1 1s1-.45 1-1V4.42l2.29 2.29a1 1 0 0 0 .71.3 1.003 1.003 0 0 0 .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 0 0-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    \"symbol-circle\": [\"M10 4.01a6 6 0 1 0 0 12 6 6 0 1 0 0-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-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    \"tag\": [\"M2 4a2 2 0 0 1 2-2h4.588a2 2 0 0 1 1.414.586l7.41 7.41a2 2 0 0 1 0 2.828l-4.588 4.588a2 2 0 0 1-2.829 0l-7.41-7.41A2 2 0 0 1 2 8.588V4zm3.489-.006a1.495 1.495 0 1 0 0 2.99 1.495 1.495 0 0 0 0-2.99z\"],\n    \"take-action\": [\"M5 7c.28 0 .53-.11.71-.29l5-5A1.003 1.003 0 0 0 9.29.29l-5 5A1.003 1.003 0 0 0 5 7zm6 6a1.003 1.003 0 0 0 1.71.71l5-5a1.003 1.003 0 0 0-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 0 0-1.42-1.42L12 2 6 8l1.29 1.29-7 7a1.003 1.003 0 0 0 1.42 1.42l7-7L10 12z\"],\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    \"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-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    \"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 0 0 3 10a1.003 1.003 0 0 0-.71 1.71l4 4c.18.18.43.29.71.29s.53-.11.71-.29l10-10A1.003 1.003 0 0 0 17 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 0 0-1.42 1.42l3 3c.18.18.43.29.71.29.28 0 .53-.11.71-.29l7-7A1.003 1.003 0 0 0 15 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 0 0 1.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 0 0 7 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 0 0-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 0 0 1 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    \"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 0 0 11 5c-.23 0-.42.09-.59.21l-.01-.01-3.43 2.58-5.42-3.61-.01.01A.969.969 0 0 0 1 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    \"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 0 0 15 7v6a1.003 1.003 0 0 0 1.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    \"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 0 0-1.71-.71l-4 4C.11 5.47 0 5.72 0 6c0 .28.11.53.29.71l4 4a1.003 1.003 0 0 0 1.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 0 0-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 1 0 0 2h.333l-.28.84-.053.16v7.5a1.5 1.5 0 1 0 3 0v-.5h12v.5a1.5 1.5 0 1 0 3 0v-4.5h-5a1 1 0 0 1-1-1zm-8.5 1a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zM19.83 2.782a2.392 2.392 0 0 0-.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 0 0-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 0 1-.527.41 3.53 3.53 0 0 0-.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 0 1 .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 0 0-.61-1.03c0-.01-.01-.01-.01-.02a6.308 6.308 0 0 0-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 0 0-.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 0 0 2.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 0 1 0 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 0 0-1.42 1.42l3 3c.18.18.43.29.71.29.28 0 .53-.11.71-.29l5-5A1.003 1.003 0 0 0 14 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 0 1-1.42-1.42l4-4c.18-.18.43-.29.71-.29s.53.11.71.29l4 4A1.003 1.003 0 0 1 14 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 0 1-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 0 1-.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 0 1 10 18z\"],\n    \"variable\": [\"M4.93 3.79a9.1 9.1 0 0 1 2.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 0 1-.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 0 0-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    \"volume-down\": [\"M15.92 3.93l-1.6 1.18A7.948 7.948 0 0 1 16 10c0 1.84-.63 3.54-1.68 4.89l1.6 1.18A9.878 9.878 0 0 0 18 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 0 0 1.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 0 1 14 10.43c0 1.84-.63 3.54-1.68 4.89l1.6 1.18A9.94 9.94 0 0 0 16 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 0 1 5 0A2.5 2.5 0 0 1 12.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 0 0 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\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    \"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 0 0 2 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 0 0 16 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 1 0 2.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 0 0 16 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 1 0 2.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 0 0-1.71-.71l-2 2c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2 2a1.003 1.003 0 0 0 1.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 0 0 .71-1.71l-2-2C10.53 2.11 10.28 2 10 2s-.53.11-.71.29l-2 2A1.003 1.003 0 0 0 8 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 0 0 1.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 0 0-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 0 0 8 14a1.003 1.003 0 0 0-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 0 0 12 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","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport * as IconContents from \"./generated/iconContents\";\nimport * as IconNames from \"./generated/iconNames\";\n\nexport { IconContents, IconNames };\nexport { IconSvgPaths16, IconSvgPaths20 } from \"./generated/iconSvgPaths\";\nexport { IconName } from \"./iconName\";\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { IconName, IconSvgPaths16, IconSvgPaths20 } from \"@blueprintjs/icons\";\nimport { Classes, DISPLAYNAME_PREFIX, IIntentProps, IProps } from \"../../common\";\n\nexport { IconName };\n\nexport interface IIconProps extends IIntentProps, IProps {\n    /** This component does not support custom children. Use the `icon` prop. */\n    children?: never;\n\n    /**\n     * Color of icon. This is used as the `fill` attribute on the `<svg>` image\n     * so it will override any CSS `color` property, including that set by\n     * `intent`. If this prop is omitted, icon color is inherited from\n     * surrounding text.\n     */\n    color?: string;\n\n    /**\n     * Name of a Blueprint UI icon, or an icon element, to render. This prop is\n     * required because it determines the content of the component, but it can\n     * be explicitly set to falsy values to render nothing.\n     *\n     * - If `null` or `undefined` or `false`, this component will render\n     *   nothing.\n     * - If given an `IconName` (a string literal union of all icon names), that\n     *   icon will be rendered as an `<svg>` with `<path>` tags. Unknown strings\n     *   will render a blank icon to occupy space.\n     * - If given a `JSX.Element`, that element will be rendered and _all other\n     *   props on this component are ignored._ This type is supported to\n     *   simplify icon support in other Blueprint components. As a consumer, you\n     *   should avoid using `<Icon icon={<Element />}` directly; simply render\n     *   `<Element />` instead.\n     */\n    icon: IconName | JSX.Element | false | null | undefined;\n\n    /**\n     * Size of the icon, in pixels. Blueprint contains 16px and 20px SVG icon\n     * images, and chooses the appropriate resolution based on this prop.\n     * @default Icon.SIZE_STANDARD = 16\n     */\n    iconSize?: number;\n\n    /** CSS style properties. */\n    style?: React.CSSProperties;\n\n    /**\n     * HTML tag to use for the rendered element.\n     * @default \"span\"\n     */\n    tagName?: keyof JSX.IntrinsicElements;\n\n    /**\n     * Description string. This string does not appear in normal browsers, but\n     * it increases accessibility. For instance, screen readers will use it for\n     * aural feedback. By default, this is set to the icon's name. Pass an\n     * explicit falsy value to disable.\n     */\n    title?: string | false | null;\n}\n\nexport class Icon extends React.PureComponent<IIconProps & React.DOMAttributes<HTMLElement>> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Icon`;\n\n    public static readonly SIZE_STANDARD = 16;\n    public static readonly SIZE_LARGE = 20;\n\n    public render() {\n        const { icon } = this.props;\n        if (icon == null) {\n            return null;\n        } else if (typeof icon !== \"string\") {\n            return icon;\n        }\n\n        const {\n            className,\n            color,\n            iconSize = Icon.SIZE_STANDARD,\n            intent,\n            title = icon,\n            tagName: TagName = \"span\",\n            ...htmlprops\n        } = this.props;\n\n        // choose which pixel grid is most appropriate for given icon size\n        const pixelGridSize = iconSize >= Icon.SIZE_LARGE ? Icon.SIZE_LARGE : Icon.SIZE_STANDARD;\n        // render path elements, or nothing if icon name is unknown.\n        const paths = this.renderSvgPaths(pixelGridSize, icon);\n\n        const classes = classNames(Classes.ICON, Classes.iconClass(icon), Classes.intentClass(intent), className);\n        const viewBox = `0 0 ${pixelGridSize} ${pixelGridSize}`;\n\n        return (\n            <TagName className={classes} {...htmlprops}>\n                <svg fill={color} data-icon={icon} width={iconSize} height={iconSize} viewBox={viewBox}>\n                    {title && <desc>{title}</desc>}\n                    {paths}\n                </svg>\n            </TagName>\n        );\n    }\n\n    /** Render `<path>` elements for the given icon name. Returns `null` if name is unknown. */\n    private renderSvgPaths(pathsSize: number, iconName: IconName): JSX.Element[] | null {\n        const svgPathsRecord = pathsSize === Icon.SIZE_STANDARD ? IconSvgPaths16 : IconSvgPaths20;\n        const pathStrings = svgPathsRecord[iconName];\n        if (pathStrings == null) {\n            return null;\n        }\n        return pathStrings.map((d, i) => <path key={i} d={d} fillRule=\"evenodd\" />);\n    }\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { AbstractPureComponent } from \"../../common/abstractPureComponent\";\nimport * as Classes from \"../../common/classes\";\nimport { SPINNER_WARN_CLASSES_SIZE } from \"../../common/errors\";\nimport { DISPLAYNAME_PREFIX, IIntentProps, IProps } from \"../../common/props\";\nimport { clamp } from \"../../common/utils\";\n\n// see http://stackoverflow.com/a/18473154/3124288 for calculating arc path\nconst R = 45;\nconst SPINNER_TRACK = `M 50,50 m 0,-${R} a ${R},${R} 0 1 1 0,${R * 2} a ${R},${R} 0 1 1 0,-${R * 2}`;\n\n// 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 `<path d={SPINNER_TRACK} />.getTotalLength()` and works in all browsers:\nconst PATH_LENGTH = 280;\n\nconst MIN_SIZE = 10;\nconst STROKE_WIDTH = 4;\nconst MIN_STROKE_WIDTH = 16;\n\nexport interface ISpinnerProps extends IProps, IIntentProps {\n    /**\n     * Width and height of the spinner in pixels. The size cannot be less than\n     * 10px. Constants are available for common sizes: `Spinner.SIZE_SMALL`,\n     * `Spinner.SIZE_STANDARD`, `Spinner.SIZE_LARGE`.\n     * @default Spinner.SIZE_STANDARD = 50\n     */\n    size?: number;\n\n    /**\n     * HTML tag for the two wrapper elements. If rendering a `<Spinner>` inside\n     * an `<svg>`, change this to an SVG element like `\"g\"`.\n     * @default \"div\"\n     */\n    tagName?: keyof JSX.IntrinsicElements;\n\n    /**\n     * A value between 0 and 1 (inclusive) representing how far along the operation is.\n     * Values below 0 or above 1 will be interpreted as 0 or 1 respectively.\n     * Omitting this prop will result in an \"indeterminate\" spinner where the head spins indefinitely.\n     */\n    value?: number;\n}\n\nexport class Spinner extends AbstractPureComponent<ISpinnerProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Spinner`;\n\n    public static readonly SIZE_SMALL = 24;\n    public static readonly SIZE_STANDARD = 50;\n    public static readonly SIZE_LARGE = 100;\n\n    public componentDidUpdate(prevProps: ISpinnerProps) {\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    public render() {\n        const { className, intent, value, tagName: TagName = \"div\" } = this.props;\n        const size = this.getSize();\n\n        const classes = classNames(\n            Classes.SPINNER,\n            Classes.intentClass(intent),\n            { [Classes.SPINNER_NO_SPIN]: value != null },\n            className,\n        );\n\n        // keep spinner track width consistent at all sizes (down to about 10px).\n        const strokeWidth = Math.min(MIN_STROKE_WIDTH, STROKE_WIDTH * Spinner.SIZE_LARGE / size);\n\n        const strokeOffset = PATH_LENGTH - PATH_LENGTH * (value == null ? 0.25 : clamp(value, 0, 1));\n\n        // 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        return (\n            <TagName className={classes}>\n                <TagName className={Classes.SPINNER_ANIMATION}>\n                    <svg\n                        width={size}\n                        height={size}\n                        strokeWidth={strokeWidth.toFixed(2)}\n                        viewBox={this.getViewBox(strokeWidth)}\n                    >\n                        <path className={Classes.SPINNER_TRACK} d={SPINNER_TRACK} />\n                        <path\n                            className={Classes.SPINNER_HEAD}\n                            d={SPINNER_TRACK}\n                            pathLength={PATH_LENGTH}\n                            strokeDasharray={`${PATH_LENGTH} ${PATH_LENGTH}`}\n                            strokeDashoffset={strokeOffset}\n                        />\n                    </svg>\n                </TagName>\n            </TagName>\n        );\n    }\n\n    protected validateProps({ className = \"\", size }: ISpinnerProps) {\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    /**\n     * Resolve size to a pixel value.\n     * Size can be set by className, props, default, or minimum constant.\n     */\n    private getSize() {\n        const { className = \"\", size } = this.props;\n        if (size == null) {\n            // allow Classes constants to determine default size.\n            if (className.indexOf(Classes.SMALL) >= 0) {\n                return Spinner.SIZE_SMALL;\n            } else if (className.indexOf(Classes.LARGE) >= 0) {\n                return Spinner.SIZE_LARGE;\n            }\n            return Spinner.SIZE_STANDARD;\n        }\n        return Math.max(MIN_SIZE, size);\n    }\n\n    /** Compute viewbox such that stroked track sits exactly at edge of image frame. */\n    private getViewBox(strokeWidth: number) {\n        const radius = R + strokeWidth / 2;\n        const viewBoxX = (50 - radius).toFixed(2);\n        const viewBoxWidth = (radius * 2).toFixed(2);\n        return `${viewBoxX} ${viewBoxX} ${viewBoxWidth} ${viewBoxWidth}`;\n    }\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { Alignment } from \"../../common/alignment\";\nimport * as Classes from \"../../common/classes\";\nimport * as Keys from \"../../common/keys\";\nimport { IActionProps } from \"../../common/props\";\nimport { isReactNodeEmpty, safeInvoke } from \"../../common/utils\";\nimport { Icon, IconName } from \"../icon/icon\";\nimport { Spinner } from \"../spinner/spinner\";\n\nexport interface IButtonProps extends IActionProps {\n    /**\n     * If set to `true`, the button will display in an active state.\n     * This is equivalent to setting `className={Classes.ACTIVE}`.\n     * @default false\n     */\n    active?: boolean;\n\n    /**\n     * Text alignment within button. By default, icons and text will be centered\n     * within the button. Passing `\"left\"` or `\"right\"` will align the button\n     * text to that side and push `icon` and `rightIcon` to either edge. Passing\n     * `\"center\"` will center the text and icons together.\n     * @default Alignment.CENTER\n     */\n    alignText?: Alignment;\n\n    /** A ref handler that receives the native HTML element backing this component. */\n    elementRef?: (ref: HTMLElement | null) => any;\n\n    /** Whether this button should expand to fill its container. */\n    fill?: boolean;\n\n    /** Whether this button should use large styles. */\n    large?: boolean;\n\n    /**\n     * If set to `true`, the button will display a centered loading spinner instead of its contents.\n     * The width of the button is not affected by the value of this prop.\n     * @default false\n     */\n    loading?: boolean;\n\n    /** Whether this button should use minimal styles. */\n    minimal?: boolean;\n\n    /** Name of a Blueprint UI icon (or an icon element) to render after the text. */\n    rightIcon?: IconName | JSX.Element;\n\n    /** Whether this button should use small styles. */\n    small?: boolean;\n\n    /**\n     * HTML `type` attribute of button. Common values are `\"button\"` and `\"submit\"`.\n     * Note that this prop has no effect on `AnchorButton`; it only affects `Button`.\n     * @default \"button\"\n     */\n    type?: string;\n}\n\nexport interface IButtonState {\n    isActive: boolean;\n}\n\nexport abstract class AbstractButton<H extends React.HTMLAttributes<any>> extends React.PureComponent<\n    IButtonProps & H,\n    IButtonState\n> {\n    public state = {\n        isActive: false,\n    };\n\n    protected buttonRef: HTMLElement;\n    protected refHandlers = {\n        button: (ref: HTMLElement) => {\n            this.buttonRef = ref;\n            safeInvoke(this.props.elementRef, ref);\n        },\n    };\n\n    private currentKeyDown: number = null;\n\n    public abstract render(): JSX.Element;\n\n    protected getCommonButtonProps() {\n        const { alignText, fill, large, loading, minimal, small, tabIndex } = this.props;\n        const disabled = this.props.disabled || loading;\n\n        const className = classNames(\n            Classes.BUTTON,\n            {\n                [Classes.ACTIVE]: this.state.isActive || this.props.active,\n                [Classes.DISABLED]: disabled,\n                [Classes.FILL]: fill,\n                [Classes.LARGE]: large,\n                [Classes.LOADING]: loading,\n                [Classes.MINIMAL]: minimal,\n                [Classes.SMALL]: small,\n            },\n            Classes.alignmentClass(alignText),\n            Classes.intentClass(this.props.intent),\n            this.props.className,\n        );\n\n        return {\n            className,\n            disabled,\n            onClick: disabled ? undefined : this.props.onClick,\n            onKeyDown: this.handleKeyDown,\n            onKeyUp: this.handleKeyUp,\n            ref: this.refHandlers.button,\n            tabIndex: disabled ? -1 : tabIndex,\n        };\n    }\n\n    // we're casting as `any` to get around a somewhat opaque safeInvoke error\n    // that \"Type argument candidate 'KeyboardEvent<T>' is not a valid type\n    // argument because it is not a supertype of candidate\n    // 'KeyboardEvent<HTMLElement>'.\"\n    protected handleKeyDown = (e: React.KeyboardEvent<any>) => {\n        if (isKeyboardClick(e.which)) {\n            e.preventDefault();\n            if (e.which !== this.currentKeyDown) {\n                this.setState({ isActive: true });\n            }\n        }\n        this.currentKeyDown = e.which;\n        safeInvoke(this.props.onKeyDown, e);\n    };\n\n    protected handleKeyUp = (e: React.KeyboardEvent<any>) => {\n        if (isKeyboardClick(e.which)) {\n            this.setState({ isActive: false });\n            this.buttonRef.click();\n        }\n        this.currentKeyDown = null;\n        safeInvoke(this.props.onKeyUp, e);\n    };\n\n    protected renderChildren(): React.ReactNode {\n        const { children, icon, loading, rightIcon, text } = this.props;\n        return [\n            loading && <Spinner key=\"loading\" className={Classes.BUTTON_SPINNER} size={Icon.SIZE_LARGE} />,\n            <Icon key=\"leftIcon\" icon={icon} />,\n            (!isReactNodeEmpty(text) || !isReactNodeEmpty(children)) && (\n                <span key=\"text\" className={Classes.BUTTON_TEXT}>\n                    {text}\n                    {children}\n                </span>\n            ),\n            <Icon key=\"rightIcon\" icon={rightIcon} />,\n        ];\n    }\n}\n\nfunction isKeyboardClick(keyCode: number) {\n    return keyCode === Keys.ENTER || keyCode === Keys.SPACE;\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\n// HACKHACK: these components should go in separate files\n// tslint:disable max-classes-per-file\n\nimport * as React from \"react\";\n\nimport { DISPLAYNAME_PREFIX, removeNonHTMLProps } from \"../../common/props\";\nimport { AbstractButton, IButtonProps } from \"./abstractButton\";\n\nexport { IButtonProps };\n\nexport class Button extends AbstractButton<React.ButtonHTMLAttributes<HTMLButtonElement>> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Button`;\n\n    public render() {\n        return (\n            <button type=\"button\" {...removeNonHTMLProps(this.props)} {...this.getCommonButtonProps()}>\n                {this.renderChildren()}\n            </button>\n        );\n    }\n}\n\nexport class AnchorButton extends AbstractButton<React.AnchorHTMLAttributes<HTMLAnchorElement>> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.AnchorButton`;\n\n    public render() {\n        const { href, tabIndex = 0 } = this.props;\n        const commonProps = this.getCommonButtonProps();\n\n        return (\n            <a\n                role=\"button\"\n                {...removeNonHTMLProps(this.props)}\n                {...commonProps}\n                href={commonProps.disabled ? undefined : href}\n                tabIndex={commonProps.disabled ? -1 : tabIndex}\n            >\n                {this.renderChildren()}\n            </a>\n        );\n    }\n}\n","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { BLOCKQUOTE, CODE, CODE_BLOCK, HEADING, LABEL, LIST } from \"../../common/classes\";\n\nexport interface IElementRefProps<E extends HTMLElement> {\n    /** Ref handler to access the instance of the internal HTML element. */\n    elementRef?: (ref: E | null) => void;\n}\n\nfunction htmlElement<E extends HTMLElement>(\n    tagName: keyof JSX.IntrinsicElements,\n    tagClassName: string,\n): React.SFC<React.HTMLProps<E> & IElementRefProps<E>> {\n    return props => {\n        const { className, elementRef, ...htmlProps } = props;\n        return React.createElement(tagName, {\n            ...htmlProps,\n            className: classNames(tagClassName, className),\n            ref: elementRef,\n        });\n    };\n}\n\n// the following components are linted by blueprint-html-components because\n// they should rarely be used without the Blueprint classes/styles:\n\nexport const H1 = htmlElement<HTMLHeadingElement>(\"h1\", HEADING);\nexport const H2 = htmlElement<HTMLHeadingElement>(\"h2\", HEADING);\nexport const H3 = htmlElement<HTMLHeadingElement>(\"h3\", HEADING);\nexport const H4 = htmlElement<HTMLHeadingElement>(\"h4\", HEADING);\nexport const H5 = htmlElement<HTMLHeadingElement>(\"h5\", HEADING);\nexport const H6 = htmlElement<HTMLHeadingElement>(\"h6\", HEADING);\n\nexport const Blockquote = htmlElement<HTMLElement>(\"blockquote\", BLOCKQUOTE);\nexport const Code = htmlElement<HTMLElement>(\"code\", CODE);\nexport const Pre = htmlElement<HTMLElement>(\"pre\", CODE_BLOCK);\nexport const Label = htmlElement<HTMLLabelElement>(\"label\", LABEL);\n\n// these two are not linted by blueprint-html-components because there are valid\n// uses of these elements without Blueprint styles:\nexport const OL = htmlElement<HTMLOListElement>(\"ol\", LIST);\nexport const UL = htmlElement<HTMLUListElement>(\"ul\", LIST);\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { AbstractPureComponent } from \"../../common/abstractPureComponent\";\nimport * as Classes from \"../../common/classes\";\nimport * as Errors from \"../../common/errors\";\nimport { DISPLAYNAME_PREFIX, IProps } from \"../../common/props\";\nimport { Button } from \"../button/buttons\";\nimport { H4 } from \"../html/html\";\nimport { Icon, IconName } from \"../icon/icon\";\nimport { IBackdropProps, IOverlayableProps, Overlay } from \"../overlay/overlay\";\n\nexport interface IDialogProps extends IOverlayableProps, IBackdropProps, IProps {\n    /**\n     * Toggles the visibility of the overlay and its children.\n     * This prop is required because the component is controlled.\n     */\n    isOpen: boolean;\n\n    /**\n     * Dialog always has a backdrop so this prop is excluded from the public API.\n     * @internal\n     */\n    hasBackdrop?: boolean;\n\n    /**\n     * Name of a Blueprint UI icon (or an icon element) to render in the\n     * dialog's header. Note that the header will only be rendered if `title` is\n     * provided.\n     */\n    icon?: IconName | JSX.Element;\n\n    /**\n     * Whether to show the close button in the dialog's header.\n     * Note that the header will only be rendered if `title` is provided.\n     * @default true\n     */\n    isCloseButtonShown?: boolean;\n\n    /**\n     * CSS styles to apply to the dialog.\n     * @default {}\n     */\n    style?: React.CSSProperties;\n\n    /**\n     * Title of the dialog. If provided, an element with `Classes.DIALOG_HEADER`\n     * will be rendered inside the dialog before any children elements.\n     */\n    title?: React.ReactNode;\n\n    /**\n     * Name of the transition for internal `CSSTransition`. Providing your own\n     * name here will require defining new CSS transition properties.\n     */\n    transitionName?: string;\n}\n\nexport class Dialog extends AbstractPureComponent<IDialogProps, {}> {\n    public static defaultProps: IDialogProps = {\n        canOutsideClickClose: true,\n        isOpen: false,\n    };\n\n    public static displayName = `${DISPLAYNAME_PREFIX}.Dialog`;\n\n    public render() {\n        return (\n            <Overlay {...this.props} className={Classes.OVERLAY_SCROLL_CONTAINER} hasBackdrop={true}>\n                <div className={Classes.DIALOG_CONTAINER}>\n                    <div className={classNames(Classes.DIALOG, this.props.className)} style={this.props.style}>\n                        {this.maybeRenderHeader()}\n                        {this.props.children}\n                    </div>\n                </div>\n            </Overlay>\n        );\n    }\n\n    protected validateProps(props: IDialogProps) {\n        if (props.title == null) {\n            if (props.icon != null) {\n                console.warn(Errors.DIALOG_WARN_NO_HEADER_ICON);\n            }\n            if (props.isCloseButtonShown != null) {\n                console.warn(Errors.DIALOG_WARN_NO_HEADER_CLOSE_BUTTON);\n            }\n        }\n    }\n\n    private maybeRenderCloseButton() {\n        // show close button if prop is undefined or null\n        // this gives us a behavior as if the default value were `true`\n        if (this.props.isCloseButtonShown !== false) {\n            return (\n                <Button\n                    aria-label=\"Close\"\n                    className={Classes.DIALOG_CLOSE_BUTTON}\n                    icon={<Icon icon=\"small-cross\" iconSize={Icon.SIZE_LARGE} />}\n                    minimal={true}\n                    onClick={this.props.onClose}\n                />\n            );\n        } else {\n            return undefined;\n        }\n    }\n\n    private maybeRenderHeader() {\n        const { icon, title } = this.props;\n        if (title == null) {\n            return undefined;\n        }\n        return (\n            <div className={Classes.DIALOG_HEADER}>\n                <Icon icon={icon} iconSize={Icon.SIZE_LARGE} />\n                <H4>{title}</H4>\n                {this.maybeRenderCloseButton()}\n            </div>\n        );\n    }\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { AbstractPureComponent, Classes, DISPLAYNAME_PREFIX, Intent, IProps } from \"../../common\";\nimport {\n    ALERT_WARN_CANCEL_ESCAPE_KEY,\n    ALERT_WARN_CANCEL_OUTSIDE_CLICK,\n    ALERT_WARN_CANCEL_PROPS,\n} from \"../../common/errors\";\nimport { safeInvoke } from \"../../common/utils\";\nimport { Button } from \"../button/buttons\";\nimport { Dialog } from \"../dialog/dialog\";\nimport { Icon, IconName } from \"../icon/icon\";\nimport { IOverlayLifecycleProps } from \"../overlay/overlay\";\n\nexport interface IAlertProps extends IOverlayLifecycleProps, IProps {\n    /**\n     * Whether pressing <kbd>escape</kbd> when focused on the Alert should cancel the alert.\n     * If this prop is enabled, then either `onCancel` or `onClose` must also be defined.\n     * @default false\n     */\n    canEscapeKeyCancel?: boolean;\n\n    /**\n     * Whether clicking outside the Alert should cancel the alert.\n     * If this prop is enabled, then either `onCancel` or `onClose` must also be defined.\n     * @default false\n     */\n    canOutsideClickCancel?: boolean;\n\n    /**\n     * The text for the cancel button.\n     * If this prop is defined, then either `onCancel` or `onClose` must also be defined.\n     */\n    cancelButtonText?: string;\n\n    /**\n     * The text for the confirm (right-most) button.\n     * This button will always appear, and uses the value of the `intent` prop below.\n     * @default \"OK\"\n     */\n    confirmButtonText?: string;\n\n    /** Name of a Blueprint UI icon (or an icon element) to display on the left side. */\n    icon?: IconName | JSX.Element;\n\n    /**\n     * The intent to be applied to the confirm (right-most) button.\n     */\n    intent?: Intent;\n\n    /**\n     * Toggles the visibility of the alert.\n     * This prop is required because the component is controlled.\n     */\n    isOpen: boolean;\n\n    /**\n     * CSS styles to apply to the alert.\n     */\n    style?: React.CSSProperties;\n\n    /**\n     * Indicates how long (in milliseconds) the overlay's enter/leave transition takes.\n     * This is used by React `CSSTransition` to know when a transition completes and must match\n     * the duration of the animation in CSS. Only set this prop if you override Blueprint's default\n     * transitions with new transitions of a different length.\n     * @default 300\n     */\n    transitionDuration?: number;\n\n    /**\n     * The container element into which the overlay renders its contents, when `usePortal` is `true`.\n     * This prop is ignored if `usePortal` is `false`.\n     * @default document.body\n     */\n    portalContainer?: HTMLElement;\n\n    /**\n     * Handler invoked when the alert is canceled. Alerts can be **canceled** in the following ways:\n     * - clicking the cancel button (if `cancelButtonText` is defined)\n     * - pressing the escape key (if `canEscapeKeyCancel` is enabled)\n     * - clicking on the overlay backdrop (if `canOutsideClickCancel` is enabled)\n     *\n     * If any of the `cancel` props are defined, then either `onCancel` or `onClose` must be defined.\n     */\n    onCancel?(evt?: React.SyntheticEvent<HTMLElement>): void;\n\n    /**\n     * Handler invoked when the confirm button is clicked. Alerts can be **confirmed** in the following ways:\n     * - clicking the confirm button\n     * - focusing on the confirm button and pressing `enter` or `space`\n     */\n    onConfirm?(evt?: React.SyntheticEvent<HTMLElement>): void;\n\n    /**\n     * Handler invoked when the Alert is confirmed or canceled; see `onConfirm` and `onCancel` for more details.\n     * First argument is `true` if confirmed, `false` otherwise.\n     * This is an alternative to defining separate `onConfirm` and `onCancel` handlers.\n     */\n    onClose?(confirmed: boolean, evt?: React.SyntheticEvent<HTMLElement>): void;\n}\n\nexport class Alert extends AbstractPureComponent<IAlertProps, {}> {\n    public static defaultProps: IAlertProps = {\n        canEscapeKeyCancel: false,\n        canOutsideClickCancel: false,\n        confirmButtonText: \"OK\",\n        isOpen: false,\n    };\n\n    public static displayName = `${DISPLAYNAME_PREFIX}.Alert`;\n\n    public render() {\n        const {\n            canEscapeKeyCancel,\n            canOutsideClickCancel,\n            children,\n            className,\n            icon,\n            intent,\n            cancelButtonText,\n            confirmButtonText,\n            onClose,\n            ...overlayProps\n        } = this.props;\n        return (\n            <Dialog\n                {...overlayProps}\n                className={classNames(Classes.ALERT, className)}\n                canEscapeKeyClose={canEscapeKeyCancel}\n                canOutsideClickClose={canOutsideClickCancel}\n                onClose={this.handleCancel}\n                portalContainer={this.props.portalContainer}\n            >\n                <div className={Classes.ALERT_BODY}>\n                    <Icon icon={icon} iconSize={40} intent={intent} />\n                    <div className={Classes.ALERT_CONTENTS}>{children}</div>\n                </div>\n                <div className={Classes.ALERT_FOOTER}>\n                    <Button intent={intent} text={confirmButtonText} onClick={this.handleConfirm} />\n                    {cancelButtonText && <Button text={cancelButtonText} onClick={this.handleCancel} />}\n                </div>\n            </Dialog>\n        );\n    }\n\n    protected validateProps(props: IAlertProps) {\n        if (props.onClose == null && (props.cancelButtonText == null) !== (props.onCancel == null)) {\n            console.warn(ALERT_WARN_CANCEL_PROPS);\n        }\n\n        const hasCancelHandler = props.onCancel != null || props.onClose != null;\n        if (props.canEscapeKeyCancel && !hasCancelHandler) {\n            console.warn(ALERT_WARN_CANCEL_ESCAPE_KEY);\n        }\n        if (props.canOutsideClickCancel && !hasCancelHandler) {\n            console.warn(ALERT_WARN_CANCEL_OUTSIDE_CLICK);\n        }\n    }\n\n    private handleCancel = (evt: React.SyntheticEvent<HTMLElement>) => this.internalHandleCallbacks(false, evt);\n    private handleConfirm = (evt: React.SyntheticEvent<HTMLElement>) => this.internalHandleCallbacks(true, evt);\n\n    private internalHandleCallbacks(confirmed: boolean, evt?: React.SyntheticEvent<HTMLElement>) {\n        const { onCancel, onClose, onConfirm } = this.props;\n        safeInvoke(confirmed ? onConfirm : onCancel, evt);\n        safeInvoke(onClose, confirmed, evt);\n    }\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport * as Classes from \"../../common/classes\";\nimport { IActionProps, ILinkProps } from \"../../common/props\";\n\nexport interface IBreadcrumbProps extends IActionProps, ILinkProps {\n    /** Whether this breadcrumb is the current breadcrumb. */\n    current?: boolean;\n}\n\nexport const Breadcrumb: React.SFC<IBreadcrumbProps> = breadcrumbProps => {\n    const classes = classNames(\n        Classes.BREADCRUMB,\n        {\n            [Classes.BREADCRUMB_CURRENT]: breadcrumbProps.current,\n            [Classes.DISABLED]: breadcrumbProps.disabled,\n        },\n        breadcrumbProps.className,\n    );\n    if (breadcrumbProps.href == null && breadcrumbProps.onClick == null) {\n        return (\n            <span className={classes}>\n                {breadcrumbProps.text}\n                {breadcrumbProps.children}\n            </span>\n        );\n    }\n    return (\n        <a\n            className={classes}\n            href={breadcrumbProps.href}\n            onClick={breadcrumbProps.disabled ? null : breadcrumbProps.onClick}\n            tabIndex={breadcrumbProps.disabled ? null : 0}\n            target={breadcrumbProps.target}\n        >\n            {breadcrumbProps.text}\n            {breadcrumbProps.children}\n        </a>\n    );\n};\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, IProps } from \"../../common/props\";\nimport { H6 } from \"../html/html\";\n\nexport interface IMenuDividerProps extends IProps {\n    /** This component does not support children. */\n    children?: never;\n\n    /** Optional header title. */\n    title?: React.ReactNode;\n}\n\nexport class MenuDivider extends React.Component<IMenuDividerProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.MenuDivider`;\n\n    public render() {\n        const { className, title } = this.props;\n        if (title == null) {\n            // simple divider\n            return <li className={classNames(Classes.MENU_DIVIDER, className)} />;\n        } else {\n            // section header with title\n            return (\n                <li className={classNames(Classes.MENU_HEADER, className)}>\n                    <H6>{title}</H6>\n                </li>\n            );\n        }\n    }\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, IProps } from \"../../common/props\";\n\nexport interface ITextProps extends IProps {\n    /**\n     * Indicates that this component should be truncated with an ellipsis if it overflows its container.\n     * The `title` attribute will also be added when content overflows to show the full text of the children on hover.\n     * @default false\n     */\n    ellipsize?: boolean;\n\n    /**\n     * HTML tag name to use for rendered element.\n     * @default \"div\"\n     */\n    tagName?: keyof JSX.IntrinsicElements;\n}\n\nexport interface ITextState {\n    textContent: string;\n    isContentOverflowing: boolean;\n}\n\nexport class Text extends React.PureComponent<ITextProps, ITextState> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Text`;\n\n    public state: ITextState = {\n        isContentOverflowing: false,\n        textContent: \"\",\n    };\n\n    private textRef: HTMLElement | null = null;\n\n    public componentDidMount() {\n        this.update();\n    }\n\n    public componentDidUpdate() {\n        this.update();\n    }\n\n    public render() {\n        const classes = classNames(\n            {\n                [Classes.TEXT_OVERFLOW_ELLIPSIS]: this.props.ellipsize,\n            },\n            this.props.className,\n        );\n        const { tagName: TagName = \"div\" } = this.props;\n        return (\n            <TagName\n                className={classes}\n                ref={(ref: HTMLElement | null) => (this.textRef = ref)}\n                title={this.state.isContentOverflowing ? this.state.textContent : undefined}\n            >\n                {this.props.children}\n            </TagName>\n        );\n    }\n\n    private update() {\n        if (this.textRef == null) {\n            return;\n        }\n        const newState = {\n            isContentOverflowing: this.props.ellipsize && this.textRef.scrollWidth > this.textRef.clientWidth,\n            textContent: this.textRef.textContent,\n        };\n        this.setState(newState);\n    }\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { Modifiers } from \"popper.js\";\nimport * as Classes from \"../../common/classes\";\nimport { Position } from \"../../common/position\";\nimport { DISPLAYNAME_PREFIX, IActionProps, ILinkProps } from \"../../common/props\";\nimport { Icon } from \"../icon/icon\";\nimport { IPopoverProps, Popover, PopoverInteractionKind } from \"../popover/popover\";\nimport { Text } from \"../text/text\";\nimport { Menu } from \"./menu\";\n\nexport interface IMenuItemProps extends IActionProps, ILinkProps {\n    // override from IActionProps to make it required\n    /** Item text, required for usability. */\n    text: React.ReactNode;\n\n    /** Whether this menu item should appear with an active state. */\n    active?: boolean;\n\n    /**\n     * Children of this component will be rendered in a __submenu__ that appears when hovering or\n     * clicking on this menu item.\n     *\n     * Use `text` prop for the content of the menu item itself.\n     */\n    children?: React.ReactNode;\n\n    /**\n     * Whether this menu item is non-interactive. Enabling this prop will ignore `href`, `tabIndex`,\n     * and mouse event handlers (in particular click, down, enter, leave).\n     */\n    disabled?: boolean;\n\n    /**\n     * Right-aligned label text content, useful for displaying hotkeys.\n     *\n     * This prop actually supports JSX elements, but TypeScript will throw an error because\n     * `HTMLAttributes` only allows strings. Use `labelElement` to supply a JSX element in TypeScript.\n     */\n    label?: string;\n\n    /**\n     * Right-aligned label content, useful for displaying hotkeys.\n     */\n    labelElement?: React.ReactNode;\n\n    /**\n     * Whether the text should be allowed to wrap to multiple lines.\n     * If `false`, text will be truncated with an ellipsis when it reaches `max-width`.\n     * @default false\n     */\n    multiline?: boolean;\n\n    /**\n     * Props to spread to `Popover`. Note that `content` and `minimal` cannot be\n     * changed and `usePortal` defaults to `false` so all submenus will live in\n     * the same container.\n     */\n    popoverProps?: Partial<IPopoverProps>;\n\n    /**\n     * Whether an enabled item without a submenu should automatically close its parent popover when clicked.\n     * @default true\n     */\n    shouldDismissPopover?: boolean;\n}\n\nexport class MenuItem extends React.PureComponent<IMenuItemProps & React.AnchorHTMLAttributes<HTMLAnchorElement>> {\n    public static defaultProps: IMenuItemProps = {\n        disabled: false,\n        multiline: false,\n        popoverProps: {},\n        shouldDismissPopover: true,\n        text: \"\",\n    };\n    public static displayName = `${DISPLAYNAME_PREFIX}.MenuItem`;\n\n    public render() {\n        const {\n            active,\n            className,\n            children,\n            disabled,\n            icon,\n            intent,\n            labelElement,\n            multiline,\n            popoverProps,\n            shouldDismissPopover,\n            text,\n            ...htmlProps\n        } = this.props;\n        const hasSubmenu = children != null;\n\n        const intentClass = Classes.intentClass(intent);\n        const anchorClasses = classNames(\n            Classes.MENU_ITEM,\n            intentClass,\n            {\n                [Classes.ACTIVE]: active,\n                [Classes.INTENT_PRIMARY]: active && intentClass == null,\n                [Classes.DISABLED]: disabled,\n                // prevent popover from closing when clicking on submenu trigger or disabled item\n                [Classes.POPOVER_DISMISS]: shouldDismissPopover && !disabled && !hasSubmenu,\n            },\n            className,\n        );\n\n        const target = (\n            <a {...htmlProps} {...(disabled ? DISABLED_PROPS : {})} className={anchorClasses}>\n                <Icon icon={icon} />\n                <Text className={Classes.FILL} ellipsize={!multiline}>\n                    {text}\n                </Text>\n                {this.maybeRenderLabel(labelElement)}\n                {hasSubmenu && <Icon icon=\"caret-right\" />}\n            </a>\n        );\n\n        const liClasses = classNames({ [Classes.MENU_SUBMENU]: hasSubmenu });\n        return <li className={liClasses}>{this.maybeRenderPopover(target, children)}</li>;\n    }\n\n    private maybeRenderLabel(labelElement?: React.ReactNode) {\n        const { label } = this.props;\n        if (label == null && labelElement == null) {\n            return null;\n        }\n        return (\n            <span className={Classes.MENU_ITEM_LABEL}>\n                {label}\n                {labelElement}\n            </span>\n        );\n    }\n\n    private maybeRenderPopover(target: JSX.Element, children?: React.ReactNode) {\n        if (children == null) {\n            return target;\n        }\n        const { disabled, popoverProps } = this.props;\n        return (\n            <Popover\n                autoFocus={false}\n                captureDismiss={false}\n                disabled={disabled}\n                enforceFocus={false}\n                hoverCloseDelay={0}\n                interactionKind={PopoverInteractionKind.HOVER}\n                modifiers={SUBMENU_POPOVER_MODIFIERS}\n                position={Position.RIGHT_TOP}\n                usePortal={false}\n                {...popoverProps}\n                content={<Menu>{children}</Menu>}\n                minimal={true}\n                popoverClassName={classNames(Classes.MENU_SUBMENU, popoverProps.popoverClassName)}\n                target={target}\n            />\n        );\n    }\n}\n\nconst SUBMENU_POPOVER_MODIFIERS: Modifiers = {\n    // 20px padding - scrollbar width + a bit\n    flip: { boundariesElement: \"viewport\", padding: 20 },\n    // shift popover up 5px so MenuItems align\n    offset: { offset: -5 },\n    preventOverflow: { boundariesElement: \"viewport\", padding: 20 },\n};\n\n// props to ignore when disabled\nconst DISABLED_PROPS: React.AnchorHTMLAttributes<HTMLAnchorElement> = {\n    href: undefined,\n    onClick: undefined,\n    onMouseDown: undefined,\n    onMouseEnter: undefined,\n    onMouseLeave: undefined,\n    tabIndex: -1,\n};\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, IProps } from \"../../common/props\";\nimport { MenuDivider } from \"./menuDivider\";\nimport { MenuItem } from \"./menuItem\";\n\nexport interface IMenuProps extends IProps, React.HTMLAttributes<HTMLUListElement> {\n    /** Whether the menu items in this menu should use a large appearance. */\n    large?: boolean;\n\n    /** Ref handler that receives the HTML `<ul>` element backing this component. */\n    ulRef?: (ref: HTMLUListElement | null) => any;\n}\n\nexport class Menu extends React.Component<IMenuProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Menu`;\n\n    public static Divider = MenuDivider;\n    public static Item = MenuItem;\n\n    public render() {\n        const { className, children, large, ulRef, ...htmlProps } = this.props;\n        const classes = classNames(Classes.MENU, { [Classes.LARGE]: large }, className);\n        return (\n            <ul {...htmlProps} className={classes} ref={ulRef}>\n                {children}\n            </ul>\n        );\n    }\n}\n","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { Boundary } from \"../../common/boundary\";\nimport * as Classes from \"../../common/classes\";\nimport { OVERFLOW_LIST_OBSERVE_PARENTS_CHANGED } from \"../../common/errors\";\nimport { DISPLAYNAME_PREFIX, IProps } from \"../../common/props\";\nimport { safeInvoke } from \"../../common/utils\";\nimport { IResizeEntry, ResizeSensor } from \"../resize-sensor/resizeSensor\";\n\n/** @internal - do not expose this type */\nexport enum OverflowDirection {\n    NONE,\n    GROW,\n    SHRINK,\n}\n\nexport interface IOverflowListProps<T> extends IProps {\n    /**\n     * Which direction the items should collapse from: start or end of the\n     * children. This also determines whether `overflowRenderer` appears before\n     * (`START`) or after (`END`) the visible items.\n     * @default Boundary.START\n     */\n    collapseFrom?: Boundary;\n\n    /**\n     * All items to display in the list. Items that do not fit in the container\n     * will be rendered in the overflow instead.\n     */\n    items: T[];\n\n    /**\n     * The minimum number of visible items that should never collapse into the\n     * overflow menu, regardless of DOM dimensions.\n     * @default 0\n     */\n    minVisibleItems?: number;\n\n    /**\n     * If `true`, all parent DOM elements of the container will also be\n     * observed. If changes to a parent's size is detected, the overflow will be\n     * recalculated.\n     *\n     * Only enable this prop if the overflow should be recalculated when a\n     * parent element resizes in a way that does not also cause the\n     * `OverflowList` to resize.\n     * @default false\n     */\n    observeParents?: boolean;\n\n    /**\n     * Callback invoked when the overflowed items change. This is called once\n     * after the DOM has settled, rather that on every intermediate change. It\n     * is not invoked if resizing produces an unchanged overflow state.\n     */\n    onOverflow?: (overflowItems: T[]) => void;\n\n    /**\n     * Callback invoked to render the overflowed items. Unlike\n     * `visibleItemRenderer`, this prop is invoked once with all items that do\n     * not fit in the container.\n     *\n     * Typical use cases for this prop will put overflowed items in a dropdown\n     * menu or display a \"+X items\" label.\n     */\n    overflowRenderer: (overflowItems: T[]) => React.ReactNode;\n\n    /** CSS properties to apply to the root element. */\n    style?: React.CSSProperties;\n\n    /**\n     * HTML tag name for the container element.\n     * @default \"div\"\n     */\n    tagName?: keyof JSX.IntrinsicElements;\n\n    /**\n     * Callback invoked to render each visible item.\n     * Remember to set a `key` on the rendered element!\n     */\n    visibleItemRenderer: (item: T, index: number) => React.ReactChild;\n}\n\nexport interface IOverflowListState<T> {\n    /**\n     * Direction of current overflow operation. An overflow can take several frames to settle.\n     * @internal don't expose the type\n     */\n    direction: OverflowDirection;\n    /** Length of last overflow to dedupe `onOverflow` calls during smooth resizing. */\n    lastOverflowCount: number;\n    overflow: T[];\n    visible: T[];\n}\n\nexport class OverflowList<T> extends React.PureComponent<IOverflowListProps<T>, IOverflowListState<T>> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.OverflowList`;\n\n    public static defaultProps: Partial<IOverflowListProps<any>> = {\n        collapseFrom: Boundary.START,\n        minVisibleItems: 0,\n    };\n\n    public static ofType<T>() {\n        return OverflowList as new (props: IOverflowListProps<T>) => OverflowList<T>;\n    }\n\n    public state: IOverflowListState<T> = {\n        direction: OverflowDirection.NONE,\n        lastOverflowCount: 0,\n        overflow: [],\n        visible: this.props.items,\n    };\n\n    /** A cache containing the widths of all elements being observed to detect growing/shrinking */\n    private previousWidths = new Map<Element, number>();\n    private spacer: Element | null = null;\n\n    public componentDidMount() {\n        this.repartition(false);\n    }\n\n    public componentWillReceiveProps(nextProps: IOverflowListProps<T>) {\n        const {\n            collapseFrom,\n            items,\n            minVisibleItems,\n            observeParents,\n            overflowRenderer,\n            visibleItemRenderer,\n        } = this.props;\n        if (observeParents !== nextProps.observeParents) {\n            console.warn(OVERFLOW_LIST_OBSERVE_PARENTS_CHANGED);\n        }\n        if (\n            collapseFrom !== nextProps.collapseFrom ||\n            items !== nextProps.items ||\n            minVisibleItems !== nextProps.minVisibleItems ||\n            overflowRenderer !== nextProps.overflowRenderer ||\n            visibleItemRenderer !== nextProps.visibleItemRenderer\n        ) {\n            // reset visible state if the above props change.\n            this.setState({\n                direction: OverflowDirection.GROW,\n                lastOverflowCount: 0,\n                overflow: [],\n                visible: nextProps.items,\n            });\n        }\n    }\n\n    public componentDidUpdate(_prevProps: IOverflowListProps<T>, prevState: IOverflowListState<T>) {\n        this.repartition(false);\n        const { direction, overflow, lastOverflowCount } = this.state;\n        if (\n            // if a resize operation has just completed (transition to NONE)\n            direction === OverflowDirection.NONE &&\n            direction !== prevState.direction &&\n            overflow.length !== lastOverflowCount\n        ) {\n            safeInvoke(this.props.onOverflow, overflow);\n        }\n    }\n\n    public render() {\n        const {\n            className,\n            collapseFrom,\n            observeParents,\n            style,\n            tagName: TagName = \"div\",\n            visibleItemRenderer,\n        } = this.props;\n        const overflow = this.maybeRenderOverflow();\n        return (\n            <ResizeSensor onResize={this.resize} observeParents={observeParents}>\n                <TagName className={classNames(Classes.OVERFLOW_LIST, className)} style={style}>\n                    {collapseFrom === Boundary.START ? overflow : null}\n                    {this.state.visible.map(visibleItemRenderer)}\n                    {collapseFrom === Boundary.END ? overflow : null}\n                    <div className={Classes.OVERFLOW_LIST_SPACER} ref={ref => (this.spacer = ref)} />\n                </TagName>\n            </ResizeSensor>\n        );\n    }\n\n    private maybeRenderOverflow() {\n        const { overflow } = this.state;\n        if (overflow.length === 0) {\n            return null;\n        }\n        return this.props.overflowRenderer(overflow);\n    }\n\n    private resize = (entries: IResizeEntry[]) => {\n        // if any parent is growing, assume we have more room than before\n        const growing = entries.some(entry => {\n            const previousWidth = this.previousWidths.get(entry.target) || 0;\n            return entry.contentRect.width > previousWidth;\n        });\n        this.repartition(growing);\n        entries.forEach(entry => this.previousWidths.set(entry.target, entry.contentRect.width));\n    };\n\n    private repartition(growing: boolean) {\n        if (this.spacer == null) {\n            return;\n        }\n        if (growing) {\n            this.setState(state => ({\n                direction: OverflowDirection.GROW,\n                // store last overflow if this is the beginning of a resize (for check in componentDidUpdate).\n                lastOverflowCount:\n                    state.direction === OverflowDirection.NONE ? state.overflow.length : state.lastOverflowCount,\n                overflow: [],\n                visible: this.props.items,\n            }));\n        } else if (this.spacer.getBoundingClientRect().width < 0.9) {\n            // spacer has flex-shrink and width 1px so if it's much smaller then we know to shrink\n            this.setState(state => {\n                if (state.visible.length <= this.props.minVisibleItems) {\n                    return null;\n                }\n                const collapseFromStart = this.props.collapseFrom === Boundary.START;\n                const visible = state.visible.slice();\n                const next = collapseFromStart ? visible.shift() : visible.pop();\n                if (next === undefined) {\n                    return null;\n                }\n                const overflow = collapseFromStart ? [...state.overflow, next] : [next, ...state.overflow];\n                return {\n                    // set SHRINK mode unless a GROW is already in progress.\n                    // GROW shows all items then shrinks until it settles, so we\n                    // preserve the fact that the original trigger was a GROW.\n                    direction: state.direction === OverflowDirection.NONE ? OverflowDirection.SHRINK : state.direction,\n                    overflow,\n                    visible,\n                };\n            });\n        } else {\n            // repartition complete!\n            this.setState({ direction: OverflowDirection.NONE });\n        }\n    }\n}\n","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { Boundary } from \"../../common/boundary\";\nimport * as Classes from \"../../common/classes\";\nimport { Position } from \"../../common/position\";\nimport { IProps } from \"../../common/props\";\nimport { Menu } from \"../menu/menu\";\nimport { MenuItem } from \"../menu/menuItem\";\nimport { IOverflowListProps, OverflowList } from \"../overflow-list/overflowList\";\nimport { IPopoverProps, Popover } from \"../popover/popover\";\nimport { Breadcrumb, IBreadcrumbProps } from \"./breadcrumb\";\n\nexport interface IBreadcrumbsProps extends IProps {\n    /**\n     * Callback invoked to render visible breadcrumbs. Best practice is to\n     * render a `<Breadcrumb>` element. If `currentBreadcrumbRenderer` is also\n     * supplied, that callback will be used for the current breadcrumb instead.\n     * @default Breadcrumb\n     */\n    breadcrumbRenderer?: (props: IBreadcrumbProps) => JSX.Element;\n\n    /**\n     * Which direction the breadcrumbs should collapse from: start or end.\n     * @default Boundary.START\n     */\n    collapseFrom?: Boundary;\n\n    /**\n     * Callback invoked to render the current breadcrumb, which is the last\n     * element in the `items` array.\n     *\n     * If this prop is omitted, `breadcrumbRenderer` will be invoked for the\n     * current breadcrumb instead.\n     */\n    currentBreadcrumbRenderer?: (props: IBreadcrumbProps) => JSX.Element;\n\n    /**\n     * All breadcrumbs to display. Breadcrumbs that do not fit in the container\n     * will be rendered in an overflow menu instead.\n     */\n    items: IBreadcrumbProps[];\n\n    /**\n     * The minimum number of visible breadcrumbs that should never collapse into\n     * the overflow menu, regardless of DOM dimensions.\n     * @default 0\n     */\n    minVisibleItems?: number;\n\n    /**\n     * Props to spread to `OverflowList`. Note that `items`,\n     * `overflowRenderer`, and `visibleItemRenderer` cannot be changed.\n     */\n    overflowListProps?: Partial<IOverflowListProps<IBreadcrumbProps>>;\n\n    /**\n     * Props to spread to the `Popover` showing the overflow menu.\n     */\n    popoverProps?: IPopoverProps;\n}\n\nexport class Breadcrumbs extends React.PureComponent<IBreadcrumbsProps> {\n    public static defaultProps: Partial<IBreadcrumbsProps> = {\n        collapseFrom: Boundary.START,\n    };\n\n    public render() {\n        const { className, collapseFrom, items, minVisibleItems, overflowListProps = {} } = this.props;\n        return (\n            <OverflowList\n                collapseFrom={collapseFrom}\n                minVisibleItems={minVisibleItems}\n                tagName=\"ul\"\n                {...overflowListProps}\n                className={classNames(Classes.BREADCRUMBS, overflowListProps.className, className)}\n                items={items}\n                overflowRenderer={this.renderOverflow}\n                visibleItemRenderer={this.renderBreadcrumbWrapper}\n            />\n        );\n    }\n\n    private renderOverflow = (items: IBreadcrumbProps[]) => {\n        const { collapseFrom } = this.props;\n        const position = collapseFrom === Boundary.END ? Position.BOTTOM_RIGHT : Position.BOTTOM_LEFT;\n        let orderedItems = items;\n        if (collapseFrom === Boundary.START) {\n            // If we're collapsing from the start, the menu should be read from the bottom to the\n            // top, continuing with the breadcrumbs to the right. Since this means the first\n            // breadcrumb in the props must be the last in the menu, we need to reverse the overlow\n            // order.\n            orderedItems = items.slice().reverse();\n        }\n        return (\n            <li>\n                <Popover position={position} {...this.props.popoverProps}>\n                    <span className={Classes.BREADCRUMBS_COLLAPSED} />\n                    <Menu>{orderedItems.map(this.renderOverflowBreadcrumb)}</Menu>\n                </Popover>\n            </li>\n        );\n    };\n\n    private renderOverflowBreadcrumb = (props: IBreadcrumbProps, index: number) => {\n        const isClickable = props.href != null || props.onClick != null;\n        return <MenuItem disabled={!isClickable} {...props} text={props.text} key={index} />;\n    };\n\n    private renderBreadcrumbWrapper = (props: IBreadcrumbProps, index: number) => {\n        const isCurrent = this.props.items[this.props.items.length - 1] === props;\n        return <li key={index}>{this.renderBreadcrumb(props, isCurrent)}</li>;\n    };\n\n    private renderBreadcrumb(props: IBreadcrumbProps, isCurrent: boolean) {\n        if (isCurrent && this.props.currentBreadcrumbRenderer != null) {\n            return this.props.currentBreadcrumbRenderer(props);\n        } else if (this.props.breadcrumbRenderer != null) {\n            return this.props.breadcrumbRenderer(props);\n        } else {\n            return <Breadcrumb {...props} current={isCurrent} />;\n        }\n    }\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { Alignment } from \"../../common/alignment\";\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, HTMLDivProps, IProps } from \"../../common/props\";\n\nexport interface IButtonGroupProps extends IProps, HTMLDivProps {\n    /**\n     * Text alignment within button. By default, icons and text will be centered\n     * within the button. Passing `\"left\"` or `\"right\"` will align the button\n     * text to that side and push `icon` and `rightIcon` to either edge. Passing\n     * `\"center\"` will center the text and icons together.\n     */\n    alignText?: Alignment;\n\n    /**\n     * Whether the button group should take up the full width of its container.\n     * @default false\n     */\n    fill?: boolean;\n\n    /**\n     * Whether the child buttons should appear with minimal styling.\n     * @default false\n     */\n    minimal?: boolean;\n\n    /**\n     * Whether the child buttons should appear with large styling.\n     * @default false\n     */\n    large?: boolean;\n\n    /**\n     * Whether the button group should appear with vertical styling.\n     * @default false\n     */\n    vertical?: boolean;\n}\n\n// this component is simple enough that tests would be purely tautological.\n/* istanbul ignore next */\nexport class ButtonGroup extends React.PureComponent<IButtonGroupProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.ButtonGroup`;\n\n    public render() {\n        const { alignText, className, fill, minimal, large, vertical, ...htmlProps } = this.props;\n        const buttonGroupClasses = classNames(\n            Classes.BUTTON_GROUP,\n            {\n                [Classes.FILL]: fill,\n                [Classes.LARGE]: large,\n                [Classes.MINIMAL]: minimal,\n                [Classes.VERTICAL]: vertical,\n            },\n            Classes.alignmentClass(alignText),\n            className,\n        );\n        return (\n            <div {...htmlProps} className={buttonGroupClasses}>\n                {this.props.children}\n            </div>\n        );\n    }\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { Classes, DISPLAYNAME_PREFIX, HTMLDivProps, IIntentProps, Intent, IProps } from \"../../common\";\nimport { Icon } from \"../../index\";\nimport { H4 } from \"../html/html\";\nimport { IconName } from \"../icon/icon\";\n\n/** This component also supports the full range of HTML `<div>` props. */\nexport interface ICalloutProps extends IIntentProps, IProps, HTMLDivProps {\n    /**\n     * Name of a Blueprint UI icon (or an icon element) to render on the left side.\n     *\n     * If this prop is omitted or `undefined`, the `intent` prop will determine a default icon.\n     * If this prop is explicitly `null`, no icon will be displayed (regardless of `intent`).\n     */\n    icon?: IconName | JSX.Element | null;\n\n    /**\n     * Visual intent color to apply to background, title, and icon.\n     *\n     * Defining this prop also applies a default icon, if the `icon` prop is omitted.\n     */\n    intent?: Intent;\n\n    /**\n     * String content of optional title element.\n     *\n     * Due to a conflict with the HTML prop types, to provide JSX content simply\n     * pass `<H4>JSX title content</H4>` as first `children` element instead of\n     * using this prop (note uppercase tag name to use the Blueprint Heading\n     * component).\n     */\n    title?: string;\n}\n\nexport class Callout extends React.PureComponent<ICalloutProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Callout`;\n\n    public render() {\n        const { className, children, icon, intent, title, ...htmlProps } = this.props;\n        const iconName = this.getIconName(icon, intent);\n        const classes = classNames(\n            Classes.CALLOUT,\n            Classes.intentClass(intent),\n            { [Classes.CALLOUT_ICON]: iconName != null },\n            className,\n        );\n\n        return (\n            <div className={classes} {...htmlProps}>\n                {iconName && <Icon icon={iconName} iconSize={Icon.SIZE_LARGE} />}\n                {title && <H4>{title}</H4>}\n                {children}\n            </div>\n        );\n    }\n\n    private getIconName(icon?: ICalloutProps[\"icon\"], intent?: Intent): JSX.Element | IconName | undefined {\n        // 1. no icon\n        if (icon === null) {\n            return undefined;\n        }\n        // 2. defined iconName prop\n        if (icon !== undefined) {\n            return icon;\n        }\n        // 3. default intent icon\n        switch (intent) {\n            case Intent.DANGER:\n                return \"error\";\n            case Intent.PRIMARY:\n                return \"info-sign\";\n            case Intent.WARNING:\n                return \"warning-sign\";\n            case Intent.SUCCESS:\n                return \"tick\";\n            default:\n                return undefined;\n        }\n    }\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport * as Classes from \"../../common/classes\";\nimport { Elevation } from \"../../common/elevation\";\nimport { DISPLAYNAME_PREFIX, HTMLDivProps, IProps } from \"../../common/props\";\n\nexport interface ICardProps extends IProps, HTMLDivProps {\n    /**\n     * Controls the intensity of the drop shadow beneath the card: the higher\n     * the elevation, the higher the drop shadow. At elevation `0`, no drop\n     * shadow is applied.\n     *\n     * @default 0\n     */\n    elevation?: Elevation;\n\n    /**\n     * Whether the card should respond to user interactions. If set to `true`,\n     * hovering over the card will increase the card's elevation\n     * and change the mouse cursor to a pointer.\n     *\n     * Recommended when `onClick` is also defined.\n     *\n     * @default false\n     */\n    interactive?: boolean;\n\n    /**\n     * Callback invoked when the card is clicked.\n     * Recommended when `interactive` is `true`.\n     */\n    onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;\n}\n\nexport class Card extends React.PureComponent<ICardProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Card`;\n    public static defaultProps: ICardProps = {\n        elevation: Elevation.ZERO,\n        interactive: false,\n    };\n\n    public render() {\n        const { className, elevation, interactive, ...htmlProps } = this.props;\n        const classes = classNames(\n            Classes.CARD,\n            { [Classes.INTERACTIVE]: interactive },\n            Classes.elevationClass(elevation),\n            className,\n        );\n        return <div className={classes} {...htmlProps} />;\n    }\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { AbstractPureComponent } from \"../../common/abstractPureComponent\";\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, IProps } from \"../../common/props\";\n\nexport interface ICollapseProps extends IProps {\n    /**\n     * Component to render as the root element.\n     * Useful when rendering a `Collapse` inside a `<table>`, for instance.\n     * @default \"div\"\n     */\n    component?: React.ReactType;\n\n    /**\n     * Whether the component is open or closed.\n     * @default false\n     */\n    isOpen?: boolean;\n\n    /**\n     * Whether the child components will remain mounted when the `Collapse` is closed.\n     * Setting to true may improve performance by avoiding re-mounting children.\n     * @default false\n     */\n    keepChildrenMounted?: boolean;\n\n    /**\n     * The length of time the transition takes, in milliseconds. This must match\n     * the duration of the animation in CSS. Only set this prop if you override\n     * Blueprint's default transitions with new transitions of a different\n     * length.\n     * @default 200\n     */\n    transitionDuration?: number;\n}\n\nexport interface ICollapseState {\n    /** The height that should be used for the content animations. This is a CSS value, not just a number. */\n    height: string;\n\n    /** The state the element is currently in. */\n    animationState: AnimationStates;\n}\n\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 */\nexport enum 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    OPEN_START,\n\n    /**\n     * Animation begins, height is set to auto. This is all animated, and on\n     * complete, the state changes to OPEN.\n     */\n    OPENING,\n\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    OPEN,\n\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    CLOSING_START,\n\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    CLOSING,\n\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    CLOSED,\n}\n\nexport class Collapse extends AbstractPureComponent<ICollapseProps, ICollapseState> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Collapse`;\n\n    public static defaultProps: ICollapseProps = {\n        component: \"div\",\n        isOpen: false,\n        keepChildrenMounted: false,\n        transitionDuration: 200,\n    };\n\n    public state = {\n        animationState: this.props.isOpen ? AnimationStates.OPEN : AnimationStates.CLOSED,\n        height: \"0px\",\n    };\n\n    // The element containing the contents of the collapse.\n    private contents: HTMLElement;\n    // The most recent non-0 height (once a height has been measured - is 0 until then)\n    private height: number = 0;\n\n    public componentWillReceiveProps(nextProps: ICollapseProps) {\n        if (this.props.isOpen !== nextProps.isOpen) {\n            this.clearTimeouts();\n            if (this.state.animationState !== AnimationStates.CLOSED && !nextProps.isOpen) {\n                this.setState({\n                    animationState: AnimationStates.CLOSING_START,\n                    height: `${this.height}px`,\n                });\n            } else if (this.state.animationState !== AnimationStates.OPEN && nextProps.isOpen) {\n                this.setState({\n                    animationState: AnimationStates.OPEN_START,\n                });\n            }\n        }\n    }\n\n    public render() {\n        const isContentVisible = this.state.animationState !== AnimationStates.CLOSED;\n        const shouldRenderChildren = isContentVisible || this.props.keepChildrenMounted;\n        const displayWithTransform = isContentVisible && this.state.animationState !== AnimationStates.CLOSING;\n        const isAutoHeight = this.state.height === \"auto\";\n\n        const containerStyle = {\n            height: isContentVisible ? this.state.height : undefined,\n            overflowY: (isAutoHeight ? \"visible\" : undefined) as \"visible\" | undefined,\n            transition: isAutoHeight ? \"none\" : undefined,\n        };\n\n        const contentsStyle = {\n            transform: displayWithTransform ? \"translateY(0)\" : `translateY(-${this.height}px)`,\n            transition: isAutoHeight ? \"none\" : undefined,\n        };\n\n        return React.createElement(\n            this.props.component,\n            {\n                className: classNames(Classes.COLLAPSE, this.props.className),\n                style: containerStyle,\n            },\n            <div\n                className={Classes.COLLAPSE_BODY}\n                ref={this.contentsRefHandler}\n                style={contentsStyle}\n                aria-hidden={!isContentVisible && this.props.keepChildrenMounted}\n            >\n                {shouldRenderChildren ? this.props.children : null}\n            </div>,\n        );\n    }\n\n    public componentDidMount() {\n        this.forceUpdate();\n        if (this.props.isOpen) {\n            this.setState({ animationState: AnimationStates.OPEN, height: \"auto\" });\n        } else {\n            this.setState({ animationState: AnimationStates.CLOSED });\n        }\n    }\n\n    public componentDidUpdate() {\n        if (this.contents != null && this.contents.clientHeight !== 0) {\n            this.height = this.contents.clientHeight;\n        }\n        if (this.state.animationState === AnimationStates.CLOSING_START) {\n            this.setTimeout(() =>\n                this.setState({\n                    animationState: AnimationStates.CLOSING,\n                    height: \"0px\",\n                }),\n            );\n            this.setTimeout(() => this.onDelayedStateChange(), this.props.transitionDuration);\n        }\n        if (this.state.animationState === AnimationStates.OPEN_START) {\n            this.setState({\n                animationState: AnimationStates.OPENING,\n                height: this.height + \"px\",\n            });\n            this.setTimeout(() => this.onDelayedStateChange(), this.props.transitionDuration);\n        }\n    }\n\n    private contentsRefHandler = (el: HTMLElement) => {\n        this.contents = el;\n        if (el != null) {\n            this.height = this.contents.clientHeight;\n            this.setState({\n                animationState: this.props.isOpen ? AnimationStates.OPEN : AnimationStates.CLOSED,\n                height: `${this.height}px`,\n            });\n        }\n    };\n\n    private onDelayedStateChange() {\n        switch (this.state.animationState) {\n            case AnimationStates.OPENING:\n                this.setState({ animationState: AnimationStates.OPEN, height: \"auto\" });\n                break;\n            case AnimationStates.CLOSING:\n                this.setState({ animationState: AnimationStates.CLOSED });\n                break;\n            default:\n                break;\n        }\n    }\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { Boundary } from \"../../common/boundary\";\nimport * as Classes from \"../../common/classes\";\nimport * as Errors from \"../../common/errors\";\nimport { Position } from \"../../common/position\";\nimport { DISPLAYNAME_PREFIX, IProps } from \"../../common/props\";\nimport { isElementOfType } from \"../../common/utils\";\nimport { Menu } from \"../menu/menu\";\nimport { IMenuItemProps, MenuItem } from \"../menu/menuItem\";\nimport { IPopoverProps, Popover } from \"../popover/popover\";\n\ntype CollapsibleItem = React.ReactElement<IMenuItemProps>;\n\nexport interface ICollapsibleListProps extends IProps {\n    /**\n     * Element to render as dropdown target with `CLICK` interaction to show collapsed menu.\n     */\n    dropdownTarget: JSX.Element;\n\n    /**\n     * Props to pass to the dropdown.\n     */\n    dropdownProps?: IPopoverProps;\n\n    /**\n     * Callback invoked to render each visible item. The item will be wrapped in an `li` with\n     * the optional `visibleItemClassName` prop.\n     */\n    visibleItemRenderer: (props: IMenuItemProps, index: number) => JSX.Element;\n\n    /**\n     * Which direction the items should collapse from: start or end of the children.\n     * @default Boundary.START\n     */\n    collapseFrom?: Boundary;\n\n    /**\n     * CSS class names to add to `<li>` tags containing each visible item and the dropdown.\n     */\n    visibleItemClassName?: string;\n\n    /**\n     * Exact number of visible items.\n     * @default 3\n     */\n    visibleItemCount?: number;\n}\n\n/** @deprecated use `<OverflowList>` for automatic overflow based on available space. */\nexport class CollapsibleList extends React.Component<ICollapsibleListProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.CollapsibleList`;\n\n    public static defaultProps: ICollapsibleListProps = {\n        collapseFrom: Boundary.START,\n        dropdownTarget: null,\n        visibleItemCount: 3,\n        visibleItemRenderer: null,\n    };\n\n    public render() {\n        const { collapseFrom } = this.props;\n        const childrenLength = React.Children.count(this.props.children);\n        const [visibleChildren, collapsedChildren] = this.partitionChildren();\n\n        const visibleItems = visibleChildren.map((child: CollapsibleItem, index: number) => {\n            const absoluteIndex = collapseFrom === Boundary.START ? childrenLength - 1 - index : index;\n            return (\n                <li className={this.props.visibleItemClassName} key={absoluteIndex}>\n                    {this.props.visibleItemRenderer(child.props, absoluteIndex)}\n                </li>\n            );\n        });\n        if (collapseFrom === Boundary.START) {\n            // reverse START list so separators appear before items\n            visibleItems.reverse();\n        }\n\n        // construct dropdown menu for collapsed items\n        let collapsedPopover: JSX.Element;\n        if (collapsedChildren.length > 0) {\n            const position = collapseFrom === Boundary.END ? Position.BOTTOM_RIGHT : Position.BOTTOM_LEFT;\n            collapsedPopover = (\n                <li className={this.props.visibleItemClassName}>\n                    <Popover\n                        content={<Menu>{collapsedChildren}</Menu>}\n                        position={position}\n                        {...this.props.dropdownProps}\n                    >\n                        {this.props.dropdownTarget}\n                    </Popover>\n                </li>\n            );\n        }\n\n        return (\n            <ul className={classNames(Classes.COLLAPSIBLE_LIST, this.props.className)}>\n                {collapseFrom === Boundary.START ? collapsedPopover : null}\n                {visibleItems}\n                {collapseFrom === Boundary.END ? collapsedPopover : null}\n            </ul>\n        );\n    }\n\n    // splits the list of children into two arrays: visible and collapsed\n    private partitionChildren(): [CollapsibleItem[], CollapsibleItem[]] {\n        if (this.props.children == null) {\n            return [[], []];\n        }\n        const childrenArray = React.Children.map(this.props.children, (child: JSX.Element, index: number) => {\n            if (!isElementOfType(child, MenuItem)) {\n                throw new Error(Errors.COLLAPSIBLE_LIST_INVALID_CHILD);\n            }\n            return React.cloneElement(child as JSX.Element, { key: `visible-${index}` });\n        });\n        if (this.props.collapseFrom === Boundary.START) {\n            // reverse START list so we can always slice visible items from the front of the list\n            childrenArray.reverse();\n        }\n        const { visibleItemCount } = this.props;\n        return [childrenArray.slice(0, visibleItemCount), childrenArray.slice(visibleItemCount)];\n    }\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport { Classes } from \"../\";\n\nexport function isDarkTheme(element: Element | Text | null): boolean {\n    return element instanceof Element && element.closest(`.${Classes.DARK}`) != null;\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\n\nimport { IConstructor } from \"../../common/constructor\";\nimport {\n    CONTEXTMENU_WARN_DECORATOR_NEEDS_REACT_ELEMENT,\n    CONTEXTMENU_WARN_DECORATOR_NO_METHOD,\n} from \"../../common/errors\";\nimport { getDisplayName, isFunction, safeInvoke } from \"../../common/utils\";\nimport { isDarkTheme } from \"../../common/utils/isDarkTheme\";\nimport * as ContextMenu from \"./contextMenu\";\n\nexport interface IContextMenuTargetComponent extends React.Component {\n    render(): React.ReactElement<any> | null | undefined;\n    renderContextMenu(e: React.MouseEvent<HTMLElement>): JSX.Element | undefined;\n    onContextMenuClose?(): void;\n}\n\nexport function ContextMenuTarget<T extends IConstructor<IContextMenuTargetComponent>>(WrappedComponent: T) {\n    if (!isFunction(WrappedComponent.prototype.renderContextMenu)) {\n        console.warn(CONTEXTMENU_WARN_DECORATOR_NO_METHOD);\n    }\n\n    return class ContextMenuTargetClass extends WrappedComponent {\n        public static displayName = `ContextMenuTarget(${getDisplayName(WrappedComponent)})`;\n\n        public render() {\n            const element = super.render();\n\n            if (element == null) {\n                // always return `element` in case caller is distinguishing between `null` and `undefined`\n                return element;\n            }\n\n            if (!React.isValidElement<any>(element)) {\n                console.warn(CONTEXTMENU_WARN_DECORATOR_NEEDS_REACT_ELEMENT);\n                return element;\n            }\n            const oldOnContextMenu = element.props.onContextMenu as React.MouseEventHandler<HTMLElement>;\n            const onContextMenu = (e: React.MouseEvent<HTMLElement>) => {\n                // support nested menus (inner menu target would have called preventDefault())\n                if (e.defaultPrevented) {\n                    return;\n                }\n\n                if (isFunction(this.renderContextMenu)) {\n                    const menu = this.renderContextMenu(e);\n                    if (menu != null) {\n                        const darkTheme = isDarkTheme(ReactDOM.findDOMNode(this));\n                        e.preventDefault();\n                        ContextMenu.show(menu, { left: e.clientX, top: e.clientY }, this.onContextMenuClose, darkTheme);\n                    }\n                }\n\n                safeInvoke(oldOnContextMenu, e);\n            };\n\n            return React.cloneElement(element, { onContextMenu });\n        }\n    };\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { DIVIDER } from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, IProps } from \"../../common/props\";\n\nexport interface IDividerProps extends IProps, React.HTMLAttributes<HTMLElement> {\n    /**\n     * HTML tag to use for element.\n     * @default \"div\"\n     */\n    tagName?: keyof JSX.IntrinsicElements;\n}\n\n// this component is simple enough that tests would be purely tautological.\n/* istanbul ignore next */\nexport class Divider extends React.PureComponent<IDividerProps> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Divider`;\n\n    public render() {\n        const { className, tagName: TagName = \"div\", ...htmlProps } = this.props;\n        const classes = classNames(DIVIDER, className);\n        return <TagName {...htmlProps} className={classes} />;\n    }\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nconst userAgent = typeof navigator !== \"undefined\" ? navigator.userAgent : \"\";\nconst browser = {\n    isEdge: /Edge/.test(userAgent),\n    isInternetExplorer: /Trident|rv:11/.test(userAgent),\n    isWebkit: /AppleWebKit/.test(userAgent),\n};\n\nexport const Browser = {\n    isEdge: () => browser.isEdge,\n    isInternetExplorer: () => browser.isInternetExplorer,\n    isWebkit: () => browser.isWebkit,\n};\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nexport * from \"./browser\";\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { AbstractPureComponent } from \"../../common/abstractPureComponent\";\nimport * as Classes from \"../../common/classes\";\nimport * as Keys from \"../../common/keys\";\nimport { DISPLAYNAME_PREFIX, IIntentProps, IProps } from \"../../common/props\";\nimport { clamp, safeInvoke } from \"../../common/utils\";\nimport { Browser } from \"../../compatibility\";\n\nexport interface IEditableTextProps extends IIntentProps, IProps {\n    /**\n     * If `true` and in multiline mode, the `enter` key will trigger onConfirm and `mod+enter`\n     * will insert a newline. If `false`, the key bindings are inverted such that `enter`\n     * adds a newline.\n     * @default false\n     */\n    confirmOnEnterKey?: boolean;\n\n    /** Default text value of uncontrolled input. */\n    defaultValue?: string;\n\n    /**\n     * Whether the text can be edited.\n     * @default false\n     */\n    disabled?: boolean;\n\n    /** Whether the component is currently being edited. */\n    isEditing?: boolean;\n\n    /** Maximum number of characters allowed. Unlimited by default. */\n    maxLength?: number;\n\n    /** Minimum width in pixels of the input, when not `multiline`. */\n    minWidth?: number;\n\n    /**\n     * Whether the component supports multiple lines of text.\n     * This prop should not be changed during the component's lifetime.\n     * @default false\n     */\n    multiline?: boolean;\n\n    /**\n     * Maximum number of lines before scrolling begins, when `multiline`.\n     */\n    maxLines?: number;\n\n    /**\n     * Minimum number of lines (essentially minimum height), when `multiline`.\n     * @default 1\n     */\n    minLines?: number;\n\n    /**\n     * Placeholder text when there is no value.\n     * @default \"Click to Edit\"\n     */\n    placeholder?: string;\n\n    /**\n     * Whether the entire text field should be selected on focus.\n     * If `false`, the cursor is placed at the end of the text.\n     * @default false\n     */\n    selectAllOnFocus?: boolean;\n\n    /** Text value of controlled input. */\n    value?: string;\n\n    /** Callback invoked when user cancels input with the `esc` key. Receives last confirmed value. */\n    onCancel?(value: string): void;\n\n    /** Callback invoked when user changes input in any way. */\n    onChange?(value: string): void;\n\n    /** Callback invoked when user confirms value with `enter` key or by blurring input. */\n    onConfirm?(value: string): void;\n\n    /** Callback invoked after the user enters edit mode. */\n    onEdit?(value: string): void;\n}\n\nexport interface IEditableTextState {\n    /** Pixel height of the input, measured from span size */\n    inputHeight?: number;\n    /** Pixel width of the input, measured from span size */\n    inputWidth?: number;\n    /** Whether the value is currently being edited */\n    isEditing?: boolean;\n    /** The last confirmed value */\n    lastValue?: string;\n    /** The controlled input value, may be different from prop during editing */\n    value?: string;\n}\n\nconst BUFFER_WIDTH_EDGE = 5;\nconst BUFFER_WIDTH_IE = 30;\n\nexport class EditableText extends AbstractPureComponent<IEditableTextProps, IEditableTextState> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.EditableText`;\n\n    public static defaultProps: IEditableTextProps = {\n        confirmOnEnterKey: false,\n        defaultValue: \"\",\n        disabled: false,\n        maxLines: Infinity,\n        minLines: 1,\n        minWidth: 80,\n        multiline: false,\n        placeholder: \"Click to Edit\",\n    };\n\n    private valueElement: HTMLSpanElement;\n    private refHandlers = {\n        content: (spanElement: HTMLSpanElement) => {\n            this.valueElement = spanElement;\n        },\n        input: (input: HTMLInputElement | HTMLTextAreaElement) => {\n            if (input != null) {\n                input.focus();\n                const { length } = input.value;\n                input.setSelectionRange(this.props.selectAllOnFocus ? 0 : length, length);\n                if (!this.props.selectAllOnFocus) {\n                    input.scrollLeft = input.scrollWidth;\n                }\n            }\n        },\n    };\n\n    public constructor(props?: IEditableTextProps, context?: any) {\n        super(props, context);\n\n        const 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,\n        };\n    }\n\n    public render() {\n        const { disabled, multiline } = this.props;\n        const value = this.props.value == null ? this.state.value : this.props.value;\n        const hasValue = value != null && value !== \"\";\n\n        const classes = classNames(\n            Classes.EDITABLE_TEXT,\n            Classes.intentClass(this.props.intent),\n            {\n                [Classes.DISABLED]: disabled,\n                [Classes.EDITABLE_TEXT_EDITING]: this.state.isEditing,\n                [Classes.EDITABLE_TEXT_PLACEHOLDER]: !hasValue,\n                [Classes.MULTILINE]: multiline,\n            },\n            this.props.className,\n        );\n\n        let contentStyle: React.CSSProperties;\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 = { height: !this.state.isEditing ? this.state.inputHeight : null };\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 ? `${this.state.inputHeight}px` : null,\n                minWidth: this.props.minWidth,\n            };\n        }\n\n        // make enclosing div focusable when not editing, so it can still be tabbed to focus\n        // (when editing, input itself is focusable so div doesn't need to be)\n        const tabIndex = this.state.isEditing || disabled ? null : 0;\n        return (\n            <div className={classes} onFocus={this.handleFocus} tabIndex={tabIndex}>\n                {this.maybeRenderInput(value)}\n                <span className={Classes.EDITABLE_TEXT_CONTENT} ref={this.refHandlers.content} style={contentStyle}>\n                    {hasValue ? value : this.props.placeholder}\n                </span>\n            </div>\n        );\n    }\n\n    public componentDidMount() {\n        this.updateInputDimensions();\n    }\n\n    public componentDidUpdate(_: IEditableTextProps, prevState: IEditableTextState) {\n        if (this.state.isEditing && !prevState.isEditing) {\n            safeInvoke(this.props.onEdit, this.state.value);\n        }\n        this.updateInputDimensions();\n    }\n\n    public componentWillReceiveProps(nextProps: IEditableTextProps) {\n        const state: IEditableTextState = {};\n        if (nextProps.value != null) {\n            state.value = nextProps.value;\n        }\n        if (nextProps.isEditing != null) {\n            state.isEditing = nextProps.isEditing;\n        }\n        if (nextProps.disabled || (nextProps.disabled == null && this.props.disabled)) {\n            state.isEditing = false;\n        }\n        this.setState(state);\n    }\n\n    public cancelEditing = () => {\n        const { lastValue, value } = this.state;\n        this.setState({ isEditing: false, value: lastValue });\n        if (value !== lastValue) {\n            safeInvoke(this.props.onChange, lastValue);\n        }\n        safeInvoke(this.props.onCancel, lastValue);\n    };\n\n    public toggleEditing = () => {\n        if (this.state.isEditing) {\n            const { value } = this.state;\n            this.setState({ isEditing: false, lastValue: value });\n            safeInvoke(this.props.onConfirm, value);\n        } else if (!this.props.disabled) {\n            this.setState({ isEditing: true });\n        }\n    };\n\n    private handleFocus = () => {\n        if (!this.props.disabled) {\n            this.setState({ isEditing: true });\n        }\n    };\n\n    private handleTextChange = (event: React.FormEvent<HTMLElement>) => {\n        const value = (event.target as HTMLInputElement).value;\n        // state value should be updated only when uncontrolled\n        if (this.props.value == null) {\n            this.setState({ value });\n        }\n        safeInvoke(this.props.onChange, value);\n    };\n\n    private handleKeyEvent = (event: React.KeyboardEvent<HTMLElement>) => {\n        const { altKey, ctrlKey, metaKey, shiftKey, which } = event;\n        if (which === Keys.ESCAPE) {\n            this.cancelEditing();\n            return;\n        }\n\n        const hasModifierKey = altKey || ctrlKey || metaKey || shiftKey;\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 as HTMLTextAreaElement, \"\\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    private maybeRenderInput(value: string) {\n        const { maxLength, multiline, placeholder } = this.props;\n        if (!this.state.isEditing) {\n            return undefined;\n        }\n        const props: React.InputHTMLAttributes<HTMLInputElement | HTMLTextAreaElement> = {\n            className: Classes.EDITABLE_TEXT_INPUT,\n            maxLength,\n            onBlur: this.toggleEditing,\n            onChange: this.handleTextChange,\n            onKeyDown: this.handleKeyEvent,\n            placeholder,\n            style: {\n                height: this.state.inputHeight,\n                lineHeight: !multiline && this.state.inputHeight != null ? `${this.state.inputHeight}px` : null,\n                width: multiline ? \"100%\" : this.state.inputWidth,\n            },\n            value,\n        };\n        return multiline ? (\n            <textarea ref={this.refHandlers.input} {...props} />\n        ) : (\n            <input ref={this.refHandlers.input} type=\"text\" {...props} />\n        );\n    }\n\n    private updateInputDimensions() {\n        if (this.valueElement != null) {\n            const { maxLines, minLines, minWidth, multiline } = this.props;\n            const { parentElement, textContent } = this.valueElement;\n            let { scrollHeight, scrollWidth } = this.valueElement;\n            const lineHeight = getLineHeight(this.valueElement);\n            // add one line to computed <span> height if text ends in newline\n            // because <span> collapses that trailing whitespace but <textarea> shows it\n            if (multiline && this.state.isEditing && /\\n$/.test(textContent)) {\n                scrollHeight += lineHeight;\n            }\n            if (lineHeight > 0) {\n                // line height could be 0 if the isNaN block from getLineHeight kicks in\n                scrollHeight = clamp(scrollHeight, minLines * lineHeight, maxLines * lineHeight);\n            }\n            // Chrome's input caret height misaligns text so the line-height must be larger than font-size.\n            // The computed scrollHeight must also account for a larger inherited line-height from the parent.\n            scrollHeight = Math.max(scrollHeight, getFontSize(this.valueElement) + 1, getLineHeight(parentElement));\n            // IE11 & Edge needs a small buffer so text does not shift prior to resizing\n            if (Browser.isEdge()) {\n                scrollWidth += BUFFER_WIDTH_EDGE;\n            } else if (Browser.isInternetExplorer()) {\n                scrollWidth += BUFFER_WIDTH_IE;\n            }\n            this.setState({\n                inputHeight: scrollHeight,\n                inputWidth: Math.max(scrollWidth, minWidth),\n            });\n            // synchronizes the ::before pseudo-element's height while editing for Chrome 53\n            if (multiline && this.state.isEditing) {\n                this.setTimeout(() => (parentElement.style.height = `${scrollHeight}px`));\n            }\n        }\n    }\n}\n\nfunction getFontSize(element: HTMLElement) {\n    const fontSize = getComputedStyle(element).fontSize;\n    return fontSize === \"\" ? 0 : parseInt(fontSize.slice(0, -2), 10);\n}\n\nfunction getLineHeight(element: HTMLElement) {\n    // getComputedStyle() => 18.0001px => 18\n    let lineHeight = parseInt(getComputedStyle(element).lineHeight.slice(0, -2), 10);\n    // this check will be true if line-height is a keyword like \"normal\"\n    if (isNaN(lineHeight)) {\n        // @see http://stackoverflow.com/a/18430767/6342931\n        const line = document.createElement(\"span\");\n        line.innerHTML = \"<br>\";\n        element.appendChild(line);\n        const singleLineHeight = element.offsetHeight;\n        line.innerHTML = \"<br><br>\";\n        const doubleLineHeight = element.offsetHeight;\n        element.removeChild(line);\n        // this can return 0 in edge cases\n        lineHeight = doubleLineHeight - singleLineHeight;\n    }\n    return lineHeight;\n}\n\nfunction insertAtCaret(el: HTMLTextAreaElement, text: string) {\n    const { selectionEnd, selectionStart, value } = el;\n    if (selectionStart >= 0) {\n        const before = value.substring(0, selectionStart);\n        const after = value.substring(selectionEnd, value.length);\n        const len = text.length;\n        el.value = `${before}${text}${after}`;\n        el.selectionStart = selectionStart + len;\n        el.selectionEnd = selectionStart + len;\n    }\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, HTMLDivProps, IProps } from \"../../common/props\";\n\nexport interface IControlGroupProps extends IProps, HTMLDivProps {\n    /**\n     * Whether the control group should take up the full width of its container.\n     * @default false\n     */\n    fill?: boolean;\n\n    /**\n     * Whether the control group should appear with vertical styling.\n     * @default false\n     */\n    vertical?: boolean;\n}\n\n// this component is simple enough that tests would be purely tautological.\n/* istanbul ignore next */\nexport class ControlGroup extends React.PureComponent<IControlGroupProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.ControlGroup`;\n\n    public render() {\n        const { children, className, fill, vertical, ...htmlProps } = this.props;\n\n        const rootClasses = classNames(\n            Classes.CONTROL_GROUP,\n            {\n                [Classes.FILL]: fill,\n                [Classes.VERTICAL]: vertical,\n            },\n            className,\n        );\n\n        return (\n            <div {...htmlProps} className={rootClasses}>\n                {children}\n            </div>\n        );\n    }\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\n// we need some empty interfaces to show up in docs\n// HACKHACK: these components should go in separate files\n// tslint:disable max-classes-per-file no-empty-interface\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { Alignment } from \"../../common/alignment\";\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, HTMLInputProps, IProps } from \"../../common/props\";\nimport { safeInvoke } from \"../../common/utils\";\n\nexport interface IControlProps extends IProps, HTMLInputProps {\n    // NOTE: HTML props are duplicated here to provide control-specific documentation\n\n    /**\n     * Alignment of the indicator within container.\n     * @default Alignment.LEFT\n     */\n    alignIndicator?: Alignment;\n\n    /** Whether the control is checked. */\n    checked?: boolean;\n\n    /** JSX label for the control. */\n    children?: React.ReactNode;\n\n    /** Whether the control is initially checked (uncontrolled mode). */\n    defaultChecked?: boolean;\n\n    /** Whether the control is non-interactive. */\n    disabled?: boolean;\n\n    /** Ref handler that receives HTML `<input>` element backing this component. */\n    inputRef?: (ref: HTMLInputElement | null) => any;\n\n    /** Whether the control should appear as an inline element. */\n    inline?: boolean;\n\n    /**\n     * Text label for the control.\n     *\n     * Use `children` or `labelElement` to supply JSX content. This prop actually supports JSX elements,\n     * but TypeScript will throw an error because `HTMLAttributes` only allows strings.\n     */\n    label?: string;\n\n    /**\n     * JSX Element label for the control.\n     *\n     * This prop is a workaround for TypeScript consumers as the type definition for `label` only\n     * accepts strings. JavaScript consumers can provide a JSX element directly to `label`.\n     */\n    labelElement?: React.ReactNode;\n\n    /** Whether this control should use large styles. */\n    large?: boolean;\n\n    /** Event handler invoked when input value is changed. */\n    onChange?: React.FormEventHandler<HTMLInputElement>;\n\n    /**\n     * Name of the HTML tag that wraps the checkbox.\n     *\n     * By default a `<label>` is used, which effectively enlarges the click\n     * target to include all of its children. Supply a different tag name if\n     * this behavior is undesirable or you're listening to click events from a\n     * parent element (as the label can register duplicate clicks).\n     *\n     * @default \"label\"\n     */\n    tagName?: keyof JSX.IntrinsicElements;\n}\n\n/** Internal props for Checkbox/Radio/Switch to render correctly. */\ninterface IControlInternalProps extends IControlProps {\n    type: \"checkbox\" | \"radio\";\n    typeClassName: string;\n}\n\n/**\n * Renders common control elements, with additional props to customize appearance.\n * This component is not exported and is only used in this file for `Checkbox`, `Radio`, and `Switch` below.\n */\nconst Control: React.SFC<IControlInternalProps> = ({\n    alignIndicator,\n    children,\n    className,\n    inline,\n    inputRef,\n    label,\n    labelElement,\n    large,\n    style,\n    type,\n    typeClassName,\n    tagName: TagName = \"label\",\n    ...htmlProps\n}) => {\n    const classes = classNames(\n        Classes.CONTROL,\n        typeClassName,\n        {\n            [Classes.DISABLED]: htmlProps.disabled,\n            [Classes.INLINE]: inline,\n            [Classes.LARGE]: large,\n        },\n        Classes.alignmentClass(alignIndicator),\n        className,\n    );\n    return (\n        <TagName className={classes} style={style}>\n            <input {...htmlProps} ref={inputRef} type={type} />\n            <span className={Classes.CONTROL_INDICATOR} />\n            {label}\n            {labelElement}\n            {children}\n        </TagName>\n    );\n};\n\n//\n// Switch\n//\n\nexport interface ISwitchProps extends IControlProps {}\n\nexport class Switch extends React.PureComponent<ISwitchProps> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Switch`;\n\n    public render() {\n        return <Control {...this.props} type=\"checkbox\" typeClassName={Classes.SWITCH} />;\n    }\n}\n\n//\n// Radio\n//\n\nexport interface IRadioProps extends IControlProps {}\n\nexport class Radio extends React.PureComponent<IRadioProps> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Radio`;\n\n    public render() {\n        return <Control {...this.props} type=\"radio\" typeClassName={Classes.RADIO} />;\n    }\n}\n\n//\n// Checkbox\n//\n\nexport interface ICheckboxProps extends IControlProps {\n    /** Whether this checkbox is initially indeterminate (uncontrolled mode). */\n    defaultIndeterminate?: boolean;\n\n    /**\n     * Whether this checkbox is indeterminate, or \"partially checked.\"\n     * The checkbox will appear with a small dash instead of a tick to indicate that the value\n     * is not exactly true or false.\n     *\n     * Note that this prop takes precendence over `checked`: if a checkbox is marked both\n     * `checked` and `indeterminate` via props, it will appear as indeterminate in the DOM.\n     */\n    indeterminate?: boolean;\n}\n\nexport interface ICheckboxState {\n    // Checkbox adds support for uncontrolled indeterminate state\n    indeterminate: boolean;\n}\n\nexport class Checkbox extends React.PureComponent<ICheckboxProps, ICheckboxState> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Checkbox`;\n\n    public state: ICheckboxState = {\n        indeterminate: this.props.indeterminate || this.props.defaultIndeterminate || false,\n    };\n\n    // must maintain internal reference for `indeterminate` support\n    private input: HTMLInputElement;\n\n    public render() {\n        const { defaultIndeterminate, indeterminate, ...controlProps } = this.props;\n        return (\n            <Control\n                {...controlProps}\n                inputRef={this.handleInputRef}\n                onChange={this.handleChange}\n                type=\"checkbox\"\n                typeClassName={Classes.CHECKBOX}\n            />\n        );\n    }\n\n    public componentWillReceiveProps({ indeterminate }: ICheckboxProps) {\n        // put props into state if controlled by props\n        if (indeterminate != null) {\n            this.setState({ indeterminate });\n        }\n    }\n\n    public componentDidMount() {\n        this.updateIndeterminate();\n    }\n\n    public componentDidUpdate() {\n        this.updateIndeterminate();\n    }\n\n    private updateIndeterminate() {\n        if (this.state.indeterminate != null) {\n            this.input.indeterminate = this.state.indeterminate;\n        }\n    }\n\n    private handleChange = (evt: React.ChangeEvent<HTMLInputElement>) => {\n        const { indeterminate } = evt.target;\n        // update state immediately only if uncontrolled\n        if (this.props.indeterminate == null) {\n            this.setState({ indeterminate });\n        }\n        // otherwise wait for props change. always invoke handler.\n        safeInvoke(this.props.onChange, evt);\n    };\n\n    private handleInputRef = (ref: HTMLInputElement) => {\n        this.input = ref;\n        safeInvoke(this.props.inputRef, ref);\n    };\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { Utils } from \"../../common\";\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, IProps } from \"../../common/props\";\n\nexport interface IFileInputProps extends React.LabelHTMLAttributes<HTMLLabelElement>, IProps {\n    /**\n     * Whether the file input is non-interactive.\n     * Setting this to `true` will automatically disable the child input too.\n     */\n    disabled?: boolean;\n\n    /**\n     * Whether the file input should take up the full width of its container.\n     */\n    fill?: boolean;\n\n    /**\n     * The props to pass to the child input.\n     * `disabled` will be ignored in favor of the top-level prop.\n     * `type` will be ignored, because the input _must_ be `type=\"file\"`.\n     * Pass `onChange` here to be notified when the user selects a file.\n     */\n    inputProps?: React.HTMLProps<HTMLInputElement>;\n\n    /**\n     * Whether the file input should appear with large styling.\n     */\n    large?: boolean;\n\n    /**\n     * Callback invoked on `<input>` `change` events.\n     *\n     * This callback is offered as a convenience; it is equivalent to passing\n     * `onChange` to `inputProps`.\n     *\n     * __Note:__ The top-level `onChange` prop is passed to the wrapping\n     * `<label>` rather than the `<input>`, which may not be what you expect.\n     */\n    onInputChange?: React.FormEventHandler<HTMLInputElement>;\n\n    /**\n     * The text to display.\n     * @default \"Choose file...\"\n     */\n    text?: React.ReactNode;\n}\n\n// TODO: write tests (ignoring for now to get a build passing quickly)\n/* istanbul ignore next */\nexport class FileInput extends React.PureComponent<IFileInputProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.FileInput`;\n\n    public static defaultProps: IFileInputProps = {\n        inputProps: {},\n        text: \"Choose file...\",\n    };\n\n    public render() {\n        const { className, fill, disabled, inputProps, onInputChange, large, text, ...htmlProps } = this.props;\n\n        const rootClasses = classNames(\n            Classes.FILE_INPUT,\n            {\n                [Classes.DISABLED]: disabled,\n                [Classes.FILL]: fill,\n                [Classes.LARGE]: large,\n            },\n            className,\n        );\n\n        return (\n            <label {...htmlProps} className={rootClasses}>\n                <input {...inputProps} onChange={this.handleInputChange} type=\"file\" disabled={disabled} />\n                <span className={Classes.FILE_UPLOAD_INPUT}>{text}</span>\n            </label>\n        );\n    }\n\n    private handleInputChange = (e: React.FormEvent<HTMLInputElement>) => {\n        Utils.safeInvoke(this.props.onInputChange, e);\n        Utils.safeInvoke(this.props.inputProps.onChange, e);\n    };\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, IIntentProps, IProps } from \"../../common/props\";\n\nexport interface IFormGroupProps extends IIntentProps, IProps {\n    /**\n     * A space-delimited list of class names to pass along to the\n     * `Classes.FORM_CONTENT` element that contains `children`.\n     */\n    contentClassName?: string;\n\n    /**\n     * Whether form group should appear as non-interactive.\n     * Remember that `input` elements must be disabled separately.\n     */\n    disabled?: boolean;\n\n    /**\n     * Optional helper text. The given content will be wrapped in\n     * `Classes.FORM_HELPER_TEXT` and displayed beneath `children`.\n     * Helper text color is determined by the `intent`.\n     */\n    helperText?: React.ReactNode;\n\n    /** Whether to render the label and children on a single line. */\n    inline?: boolean;\n\n    /** Label of this form group. */\n    label?: React.ReactNode;\n\n    /**\n     * `id` attribute of the labelable form element that this `FormGroup` controls,\n     * used as `<label for>` attribute.\n     */\n    labelFor?: string;\n\n    /**\n     * Optional secondary text that appears after the label.\n     */\n    labelInfo?: React.ReactNode;\n\n    /** CSS properties to apply to the root element. */\n    style?: React.CSSProperties;\n}\n\nexport class FormGroup extends React.PureComponent<IFormGroupProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.FormGroup`;\n\n    public render() {\n        const { children, contentClassName, helperText, label, labelFor, labelInfo, style } = this.props;\n        return (\n            <div className={this.getClassName()} style={style}>\n                {label && (\n                    <label className={Classes.LABEL} htmlFor={labelFor}>\n                        {label} <span className={Classes.TEXT_MUTED}>{labelInfo}</span>\n                    </label>\n                )}\n                <div className={classNames(Classes.FORM_CONTENT, contentClassName)}>\n                    {children}\n                    {helperText && <div className={Classes.FORM_HELPER_TEXT}>{helperText}</div>}\n                </div>\n            </div>\n        );\n    }\n\n    private getClassName() {\n        const { className, disabled, inline, intent } = this.props;\n        return classNames(\n            Classes.FORM_GROUP,\n            Classes.intentClass(intent),\n            {\n                [Classes.DISABLED]: disabled,\n                [Classes.INLINE]: inline,\n            },\n            className,\n        );\n    }\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport * as Classes from \"../../common/classes\";\nimport {\n    DISPLAYNAME_PREFIX,\n    HTMLInputProps,\n    IControlledProps,\n    IIntentProps,\n    IProps,\n    removeNonHTMLProps,\n} from \"../../common/props\";\nimport { Icon, IconName } from \"../icon/icon\";\n\nconst DEFAULT_RIGHT_ELEMENT_WIDTH = 10;\n\n// NOTE: This interface does not extend HTMLInputProps due to incompatiblity with `IControlledProps`.\n// Instead, we union the props in the component definition, which does work and properly disallows `string[]` values.\nexport interface IInputGroupProps extends IControlledProps, IIntentProps, IProps {\n    /**\n     * Whether the input is non-interactive.\n     * Note that `rightElement` must be disabled separately; this prop will not affect it.\n     * @default false\n     */\n    disabled?: boolean;\n\n    /** Ref handler that receives HTML `<input>` element backing this component. */\n    inputRef?: (ref: HTMLInputElement | null) => any;\n\n    /**\n     * Name of a Blueprint UI icon (or an icon element) to render on the left side of the input group,\n     * before the user's cursor.\n     */\n    leftIcon?: IconName | JSX.Element;\n\n    /** Whether this input should use large styles. */\n    large?: boolean;\n\n    /** Whether this input should use small styles. */\n    small?: boolean;\n\n    /** Placeholder text in the absence of any value. */\n    placeholder?: string;\n\n    /**\n     * Element to render on right side of input.\n     * For best results, use a minimal button, tag, or small spinner.\n     */\n    rightElement?: JSX.Element;\n\n    /** Whether the input (and any buttons) should appear with rounded caps. */\n    round?: boolean;\n\n    /**\n     * HTML `input` type attribute.\n     * @default \"text\"\n     */\n    type?: string;\n}\n\nexport interface IInputGroupState {\n    rightElementWidth: number;\n}\n\nexport class InputGroup extends React.PureComponent<IInputGroupProps & HTMLInputProps, IInputGroupState> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.InputGroup`;\n\n    public state: IInputGroupState = {\n        rightElementWidth: DEFAULT_RIGHT_ELEMENT_WIDTH,\n    };\n\n    private rightElement: HTMLElement;\n    private refHandlers = {\n        rightElement: (ref: HTMLSpanElement) => (this.rightElement = ref),\n    };\n\n    public render() {\n        const { className, intent, large, small, leftIcon, round } = this.props;\n        const classes = classNames(\n            Classes.INPUT_GROUP,\n            Classes.intentClass(intent),\n            {\n                [Classes.DISABLED]: this.props.disabled,\n                [Classes.LARGE]: large,\n                [Classes.SMALL]: small,\n                [Classes.ROUND]: round,\n            },\n            className,\n        );\n        const style: React.CSSProperties = { ...this.props.style, paddingRight: this.state.rightElementWidth };\n\n        return (\n            <div className={classes}>\n                <Icon icon={leftIcon} />\n                <input\n                    type=\"text\"\n                    {...removeNonHTMLProps(this.props)}\n                    className={Classes.INPUT}\n                    ref={this.props.inputRef}\n                    style={style}\n                />\n                {this.maybeRenderRightElement()}\n            </div>\n        );\n    }\n\n    public componentDidMount() {\n        this.updateInputWidth();\n    }\n\n    public componentDidUpdate() {\n        this.updateInputWidth();\n    }\n\n    private maybeRenderRightElement() {\n        const { rightElement } = this.props;\n        if (rightElement == null) {\n            return undefined;\n        }\n        return (\n            <span className={Classes.INPUT_ACTION} ref={this.refHandlers.rightElement}>\n                {rightElement}\n            </span>\n        );\n    }\n\n    private updateInputWidth() {\n        if (this.rightElement != null) {\n            const { clientWidth } = this.rightElement;\n            // small threshold to prevent infinite loops\n            if (Math.abs(clientWidth - this.state.rightElementWidth) > 2) {\n                this.setState({ rightElementWidth: clientWidth });\n            }\n        } else {\n            this.setState({ rightElementWidth: DEFAULT_RIGHT_ELEMENT_WIDTH });\n        }\n    }\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { IconName } from \"@blueprintjs/icons\";\nimport {\n    AbstractPureComponent,\n    Classes,\n    DISPLAYNAME_PREFIX,\n    HTMLInputProps,\n    IIntentProps,\n    IProps,\n    Keys,\n    Position,\n    removeNonHTMLProps,\n    Utils,\n} from \"../../common\";\nimport * as Errors from \"../../common/errors\";\n\nimport { ButtonGroup } from \"../button/buttonGroup\";\nimport { Button } from \"../button/buttons\";\nimport { InputGroup } from \"./inputGroup\";\n\nexport interface INumericInputProps extends IIntentProps, IProps {\n    /**\n     * Whether to allow only floating-point number characters in the field,\n     * mimicking the native `input[type=\"number\"]`.\n     * @default true\n     */\n    allowNumericCharactersOnly?: boolean;\n\n    /**\n     * The position of the buttons with respect to the input field.\n     * @default Position.RIGHT\n     */\n    buttonPosition?: typeof Position.LEFT | typeof Position.RIGHT | \"none\";\n\n    /**\n     * Whether the value should be clamped to `[min, max]` on blur.\n     * The value will be clamped to each bound only if the bound is defined.\n     * Note that native `input[type=\"number\"]` controls do *NOT* clamp on blur.\n     * @default false\n     */\n    clampValueOnBlur?: boolean;\n\n    /**\n     * Whether the input is non-interactive.\n     * @default false\n     */\n    disabled?: boolean;\n\n    /** Whether the numeric input should take up the full width of its container. */\n    fill?: boolean;\n\n    /**\n     * Ref handler that receives HTML `<input>` element backing this component.\n     */\n    inputRef?: (ref: HTMLInputElement | null) => any;\n\n    /**\n     * If set to `true`, the input will display with larger styling.\n     * This is equivalent to setting `Classes.LARGE` via className on the\n     * parent control group and on the child input group.\n     * @default false\n     */\n    large?: boolean;\n\n    /**\n     * Name of a Blueprint UI icon (or an icon element) to render on the left side of input.\n     */\n    leftIcon?: IconName | JSX.Element;\n\n    /** The placeholder text in the absence of any value. */\n    placeholder?: string;\n\n    /**\n     * The increment between successive values when <kbd>shift</kbd> is held.\n     * Pass explicit `null` value to disable this interaction.\n     * @default 10\n     */\n    majorStepSize?: number | null;\n\n    /** The maximum value of the input. */\n    max?: number;\n\n    /** The minimum value of the input. */\n    min?: number;\n\n    /**\n     * The increment between successive values when <kbd>alt</kbd> is held.\n     * Pass explicit `null` value to disable this interaction.\n     * @default 0.1\n     */\n    minorStepSize?: number | null;\n\n    /**\n     * Whether the entire text field should be selected on focus.\n     * @default false\n     */\n    selectAllOnFocus?: boolean;\n\n    /**\n     * Whether the entire text field should be selected on increment.\n     * @default false\n     */\n    selectAllOnIncrement?: boolean;\n\n    /**\n     * The increment between successive values when no modifier keys are held.\n     * @default 1\n     */\n    stepSize?: number;\n\n    /** The value to display in the input field. */\n    value?: number | string;\n\n    /** The callback invoked when the value changes due to a button click. */\n    onButtonClick?(valueAsNumber: number, valueAsString: string): void;\n\n    /** The callback invoked when the value changes due to typing, arrow keys, or button clicks. */\n    onValueChange?(valueAsNumber: number, valueAsString: string): void;\n}\n\nexport interface INumericInputState {\n    isInputGroupFocused?: boolean;\n    isButtonGroupFocused?: boolean;\n    shouldSelectAfterUpdate?: boolean;\n    stepMaxPrecision?: number;\n    value?: string;\n}\n\nenum IncrementDirection {\n    DOWN = -1,\n    UP = +1,\n}\n\nexport class NumericInput extends AbstractPureComponent<HTMLInputProps & INumericInputProps, INumericInputState> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.NumericInput`;\n\n    public static VALUE_EMPTY = \"\";\n    public static VALUE_ZERO = \"0\";\n\n    public static defaultProps: INumericInputProps = {\n        allowNumericCharactersOnly: true,\n        buttonPosition: Position.RIGHT,\n        clampValueOnBlur: false,\n        large: false,\n        majorStepSize: 10,\n        minorStepSize: 0.1,\n        selectAllOnFocus: false,\n        selectAllOnIncrement: false,\n        stepSize: 1,\n        value: NumericInput.VALUE_EMPTY,\n    };\n\n    private static DECREMENT_KEY = \"decrement\";\n    private static INCREMENT_KEY = \"increment\";\n\n    private static DECREMENT_ICON_NAME: IconName = \"chevron-down\";\n    private static INCREMENT_ICON_NAME: IconName = \"chevron-up\";\n\n    /**\n     * A regex that matches a string of length 1 (i.e. a standalone character)\n     * if and only if it is a floating-point number character as defined by W3C:\n     * https://www.w3.org/TR/2012/WD-html-markup-20120329/datatypes.html#common.data.float\n     *\n     * Floating-point number characters are the only characters that can be\n     * printed within a default input[type=\"number\"]. This component should\n     * behave the same way when this.props.allowNumericCharactersOnly = true.\n     * See here for the input[type=\"number\"].value spec:\n     * https://www.w3.org/TR/2012/WD-html-markup-20120329/input.number.html#input.number.attrs.value\n     */\n    private static FLOATING_POINT_NUMBER_CHARACTER_REGEX = /^[Ee0-9\\+\\-\\.]$/;\n\n    private static CONTINUOUS_CHANGE_DELAY = 300;\n    private static CONTINUOUS_CHANGE_INTERVAL = 100;\n\n    private inputElement: HTMLInputElement;\n\n    // updating these flags need not trigger re-renders, so don't include them in this.state.\n    private didPasteEventJustOccur = false;\n    private shouldSelectAfterUpdate = false;\n    private delta = 0;\n    private intervalId: number | null = null;\n\n    public constructor(props?: HTMLInputProps & INumericInputProps, context?: any) {\n        super(props, context);\n        this.state = {\n            stepMaxPrecision: this.getStepMaxPrecision(props),\n            value: this.getValueOrEmptyValue(props.value),\n        };\n    }\n\n    public componentWillReceiveProps(nextProps: HTMLInputProps & INumericInputProps) {\n        super.componentWillReceiveProps(nextProps);\n\n        const value = this.getValueOrEmptyValue(nextProps.value);\n\n        const didMinChange = nextProps.min !== this.props.min;\n        const didMaxChange = nextProps.max !== this.props.max;\n        const didBoundsChange = didMinChange || didMaxChange;\n\n        const sanitizedValue =\n            value !== NumericInput.VALUE_EMPTY\n                ? this.getSanitizedValue(value, /* delta */ 0, nextProps.min, nextProps.max)\n                : NumericInput.VALUE_EMPTY;\n\n        const stepMaxPrecision = this.getStepMaxPrecision(nextProps);\n\n        // if a new min and max were provided that cause the existing value to fall\n        // outside of the new bounds, then clamp the value to the new valid range.\n        if (didBoundsChange && sanitizedValue !== this.state.value) {\n            this.setState({ stepMaxPrecision, value: sanitizedValue });\n            this.invokeValueCallback(sanitizedValue, this.props.onValueChange);\n        } else {\n            this.setState({ stepMaxPrecision, value });\n        }\n    }\n\n    public render() {\n        const { buttonPosition, className, fill, large } = this.props;\n\n        const inputGroupHtmlProps = removeNonHTMLProps(\n            this.props,\n            [\n                \"allowNumericCharactersOnly\",\n                \"buttonPosition\",\n                \"clampValueOnBlur\",\n                \"className\",\n                \"large\",\n                \"majorStepSize\",\n                \"minorStepSize\",\n                \"onButtonClick\",\n                \"onValueChange\",\n                \"selectAllOnFocus\",\n                \"selectAllOnIncrement\",\n                \"stepSize\",\n            ],\n            true,\n        );\n\n        const inputGroup = (\n            <InputGroup\n                autoComplete=\"off\"\n                {...inputGroupHtmlProps}\n                intent={this.props.intent}\n                inputRef={this.inputRef}\n                key=\"input-group\"\n                large={large}\n                leftIcon={this.props.leftIcon}\n                onFocus={this.handleInputFocus}\n                onBlur={this.handleInputBlur}\n                onChange={this.handleInputChange}\n                onKeyDown={this.handleInputKeyDown}\n                onKeyPress={this.handleInputKeyPress}\n                onPaste={this.handleInputPaste}\n                value={this.state.value}\n            />\n        );\n\n        // the strict null check here is intentional; an undefined value should\n        // fall back to the default button position on the right side.\n        if (buttonPosition === \"none\" || buttonPosition === null) {\n            // If there are no buttons, then the control group will render the\n            // text field with squared border-radii on the left side, causing it\n            // to look weird. This problem goes away if we simply don't nest within\n            // a control group.\n            return <div className={className}>{inputGroup}</div>;\n        } else {\n            const incrementButton = this.renderButton(\n                NumericInput.INCREMENT_KEY,\n                NumericInput.INCREMENT_ICON_NAME,\n                this.handleIncrementButtonMouseDown,\n                this.handleIncrementButtonKeyDown,\n                this.handleIncrementButtonKeyUp,\n            );\n            const decrementButton = this.renderButton(\n                NumericInput.DECREMENT_KEY,\n                NumericInput.DECREMENT_ICON_NAME,\n                this.handleDecrementButtonMouseDown,\n                this.handleDecrementButtonKeyDown,\n                this.handleDecrementButtonKeyUp,\n            );\n\n            const buttonGroup = (\n                <ButtonGroup className={Classes.FIXED} key=\"button-group\" vertical={true}>\n                    {incrementButton}\n                    {decrementButton}\n                </ButtonGroup>\n            );\n\n            const inputElems = buttonPosition === Position.LEFT ? [buttonGroup, inputGroup] : [inputGroup, buttonGroup];\n\n            const classes = classNames(\n                Classes.NUMERIC_INPUT,\n                Classes.CONTROL_GROUP,\n                {\n                    [Classes.FILL]: fill,\n                    [Classes.LARGE]: large,\n                },\n                className,\n            );\n\n            return <div className={classes}>{inputElems}</div>;\n        }\n    }\n\n    public componentDidUpdate() {\n        if (this.shouldSelectAfterUpdate) {\n            this.inputElement.setSelectionRange(0, this.state.value.length);\n        }\n    }\n\n    protected validateProps(nextProps: HTMLInputProps & INumericInputProps) {\n        const { majorStepSize, max, min, minorStepSize, stepSize } = nextProps;\n        if (min != null && max != null && min >= max) {\n            throw new Error(Errors.NUMERIC_INPUT_MIN_MAX);\n        }\n        if (stepSize == null) {\n            throw new Error(Errors.NUMERIC_INPUT_STEP_SIZE_NULL);\n        }\n        if (stepSize <= 0) {\n            throw new Error(Errors.NUMERIC_INPUT_STEP_SIZE_NON_POSITIVE);\n        }\n        if (minorStepSize && minorStepSize <= 0) {\n            throw new Error(Errors.NUMERIC_INPUT_MINOR_STEP_SIZE_NON_POSITIVE);\n        }\n        if (majorStepSize && majorStepSize <= 0) {\n            throw new Error(Errors.NUMERIC_INPUT_MAJOR_STEP_SIZE_NON_POSITIVE);\n        }\n        if (minorStepSize && minorStepSize > stepSize) {\n            throw new Error(Errors.NUMERIC_INPUT_MINOR_STEP_SIZE_BOUND);\n        }\n        if (majorStepSize && majorStepSize < stepSize) {\n            throw new Error(Errors.NUMERIC_INPUT_MAJOR_STEP_SIZE_BOUND);\n        }\n    }\n\n    // Render Helpers\n    // ==============\n\n    private renderButton(\n        key: string,\n        iconName: IconName,\n        onMouseDown: React.MouseEventHandler<HTMLElement>,\n        onKeyDown: React.KeyboardEventHandler<HTMLElement>,\n        onKeyUp: React.KeyboardEventHandler<HTMLElement>,\n    ) {\n        return (\n            <Button\n                disabled={this.props.disabled || this.props.readOnly}\n                icon={iconName}\n                intent={this.props.intent}\n                key={key}\n                onBlur={this.handleButtonBlur}\n                onMouseDown={onMouseDown}\n                onFocus={this.handleButtonFocus}\n                onKeyDown={onKeyDown}\n                onKeyUp={onKeyUp}\n            />\n        );\n    }\n\n    private inputRef = (input: HTMLInputElement) => {\n        this.inputElement = input;\n        Utils.safeInvoke(this.props.inputRef, input);\n    };\n\n    // Callbacks - Buttons\n    // ===================\n\n    private handleDecrementButtonClick = (e: React.MouseEvent<HTMLInputElement>) => {\n        this.handleButtonClick(e, IncrementDirection.DOWN);\n    };\n\n    private handleDecrementButtonMouseDown = (e: React.MouseEvent<HTMLInputElement>) => {\n        this.handleButtonClick(e, IncrementDirection.DOWN);\n        this.startContinuousChange();\n    };\n\n    private handleDecrementButtonKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n        this.updateDelta(IncrementDirection.DOWN, e);\n    };\n\n    private handleDecrementButtonKeyUp = (e: React.KeyboardEvent<HTMLInputElement>) => {\n        this.handleButtonKeyUp(e, IncrementDirection.DOWN, this.handleDecrementButtonClick);\n    };\n\n    private handleIncrementButtonClick = (e: React.MouseEvent<HTMLInputElement>) => {\n        this.handleButtonClick(e, IncrementDirection.UP);\n    };\n\n    private handleIncrementButtonMouseDown = (e: React.MouseEvent<HTMLInputElement>) => {\n        this.handleButtonClick(e, IncrementDirection.UP);\n        this.startContinuousChange();\n    };\n\n    private handleIncrementButtonKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n        this.updateDelta(IncrementDirection.UP, e);\n    };\n\n    private handleIncrementButtonKeyUp = (e: React.KeyboardEvent<HTMLInputElement>) => {\n        this.handleButtonKeyUp(e, IncrementDirection.UP, this.handleIncrementButtonClick);\n    };\n\n    private handleButtonClick = (e: React.MouseEvent<HTMLInputElement>, direction: IncrementDirection) => {\n        const delta = this.updateDelta(direction, e);\n        const nextValue = this.incrementValue(delta);\n        this.invokeValueCallback(nextValue, this.props.onButtonClick);\n    };\n\n    private handleButtonFocus = () => {\n        this.setState({ isButtonGroupFocused: true });\n    };\n\n    private handleButtonBlur = () => {\n        this.setState({ isButtonGroupFocused: false });\n    };\n\n    private handleButtonKeyUp = (\n        e: React.KeyboardEvent<HTMLInputElement>,\n        direction: IncrementDirection,\n        onClick: React.MouseEventHandler<HTMLInputElement>,\n    ) => {\n        this.updateDelta(direction, e);\n        // respond explicitly on key *up*, because onKeyDown triggers multiple\n        // times and doesn't always receive modifier-key flags, leading to an\n        // unintuitive/out-of-control incrementing experience.\n        if (e.keyCode === Keys.SPACE || e.keyCode === Keys.ENTER) {\n            // prevent the page from scrolling (this is the default browser\n            // behavior for shift + space or alt + space).\n            e.preventDefault();\n\n            // trigger a click event to update the input value appropriately,\n            // based on the active modifier keys.\n            const fakeClickEvent = {\n                altKey: e.altKey,\n                currentTarget: e.currentTarget,\n                shiftKey: e.shiftKey,\n                target: e.target,\n            };\n            onClick(fakeClickEvent as React.MouseEvent<HTMLInputElement>);\n        }\n    };\n\n    private startContinuousChange() {\n        // The button's onMouseUp event handler doesn't fire if the user\n        // releases outside of the button, so we need to watch all the way\n        // from the top.\n        document.addEventListener(\"mouseup\", this.stopContinuousChange);\n\n        // Initial delay is slightly longer to prevent the user from\n        // accidentally triggering the continuous increment/decrement.\n        this.setTimeout(() => {\n            this.intervalId = window.setInterval(this.handleContinuousChange, NumericInput.CONTINUOUS_CHANGE_INTERVAL);\n        }, NumericInput.CONTINUOUS_CHANGE_DELAY);\n    }\n\n    private stopContinuousChange = () => {\n        this.delta = 0;\n        this.clearTimeouts();\n        clearInterval(this.intervalId);\n        document.removeEventListener(\"mouseup\", this.stopContinuousChange);\n    };\n\n    private handleContinuousChange = () => {\n        const nextValue = this.incrementValue(this.delta);\n        this.invokeValueCallback(nextValue, this.props.onButtonClick);\n    };\n\n    // Callbacks - Input\n    // =================\n\n    private handleInputFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n        this.shouldSelectAfterUpdate = this.props.selectAllOnFocus;\n        this.setState({ isInputGroupFocused: true });\n        Utils.safeInvoke(this.props.onFocus, e);\n    };\n\n    private handleInputBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n        // explicitly set `shouldSelectAfterUpdate` to `false` to prevent focus\n        // hoarding on IE11 (#704)\n        this.shouldSelectAfterUpdate = false;\n\n        const baseStateChange: INumericInputState = { isInputGroupFocused: false };\n        if (this.props.clampValueOnBlur) {\n            const value = (e.target as HTMLInputElement).value;\n            const sanitizedValue = this.getSanitizedValue(value);\n            this.setState({ ...baseStateChange, value: sanitizedValue });\n            if (value !== sanitizedValue) {\n                this.invokeValueCallback(sanitizedValue, this.props.onValueChange);\n            }\n        } else {\n            this.setState(baseStateChange);\n        }\n\n        Utils.safeInvoke(this.props.onBlur, e);\n    };\n\n    private handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n        if (this.props.disabled || this.props.readOnly) {\n            return;\n        }\n\n        const { keyCode } = e;\n\n        let direction: IncrementDirection;\n\n        if (keyCode === Keys.ARROW_UP) {\n            direction = IncrementDirection.UP;\n        } else if (keyCode === Keys.ARROW_DOWN) {\n            direction = IncrementDirection.DOWN;\n        }\n\n        if (direction != null) {\n            // when the input field has focus, some key combinations will modify\n            // the field's selection range. we'll actually want to select all\n            // text in the field after we modify the value on the following\n            // lines. preventing the default selection behavior lets us do that\n            // without interference.\n            e.preventDefault();\n\n            const delta = this.updateDelta(direction, e);\n            this.incrementValue(delta);\n        }\n\n        Utils.safeInvoke(this.props.onKeyDown, e);\n    };\n\n    private handleInputKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\n        // we prohibit keystrokes in onKeyPress instead of onKeyDown, because\n        // e.key is not trustworthy in onKeyDown in all browsers.\n        if (this.props.allowNumericCharactersOnly && this.isKeyboardEventDisabledForBasicNumericEntry(e)) {\n            e.preventDefault();\n        }\n\n        Utils.safeInvoke(this.props.onKeyPress, e);\n    };\n\n    private handleInputPaste = (e: React.ClipboardEvent<HTMLInputElement>) => {\n        this.didPasteEventJustOccur = true;\n        Utils.safeInvoke(this.props.onPaste, e);\n    };\n\n    private handleInputChange = (e: React.FormEvent<HTMLInputElement>) => {\n        const value = (e.target as HTMLInputElement).value;\n\n        let nextValue: string;\n\n        if (this.props.allowNumericCharactersOnly && this.didPasteEventJustOccur) {\n            this.didPasteEventJustOccur = false;\n            const valueChars = value.split(\"\");\n            const sanitizedValueChars = valueChars.filter(this.isFloatingPointNumericCharacter);\n            const sanitizedValue = sanitizedValueChars.join(\"\");\n            nextValue = sanitizedValue;\n        } else {\n            nextValue = value;\n        }\n\n        this.shouldSelectAfterUpdate = false;\n        this.setState({ value: nextValue });\n        this.invokeValueCallback(nextValue, this.props.onValueChange);\n    };\n\n    private invokeValueCallback(value: string, callback: (valueAsNumber: number, valueAsString: string) => void) {\n        Utils.safeInvoke(callback, +value, value);\n    }\n\n    // Value Helpers\n    // =============\n\n    private incrementValue(delta: number) {\n        // pretend we're incrementing from 0 if currValue is empty\n        const currValue = this.state.value || NumericInput.VALUE_ZERO;\n        const nextValue = this.getSanitizedValue(currValue, delta);\n\n        this.shouldSelectAfterUpdate = this.props.selectAllOnIncrement;\n        this.setState({ value: nextValue });\n        this.invokeValueCallback(nextValue, this.props.onValueChange);\n\n        return nextValue;\n    }\n\n    private getIncrementDelta(direction: IncrementDirection, isShiftKeyPressed: boolean, isAltKeyPressed: boolean) {\n        const { majorStepSize, minorStepSize, stepSize } = this.props;\n\n        if (isShiftKeyPressed && majorStepSize != null) {\n            return direction * majorStepSize;\n        } else if (isAltKeyPressed && minorStepSize != null) {\n            return direction * minorStepSize;\n        } else {\n            return direction * stepSize;\n        }\n    }\n\n    private getSanitizedValue(value: string, delta = 0, min = this.props.min, max = this.props.max) {\n        if (!this.isValueNumeric(value)) {\n            return NumericInput.VALUE_EMPTY;\n        }\n\n        let nextValue = this.toMaxPrecision(parseFloat(value) + delta);\n\n        // defaultProps won't work if the user passes in null, so just default\n        // to +/- infinity here instead, as a catch-all.\n        const adjustedMin = min != null ? min : -Infinity;\n        const adjustedMax = max != null ? max : Infinity;\n        nextValue = Utils.clamp(nextValue, adjustedMin, adjustedMax);\n\n        return nextValue.toString();\n    }\n\n    private getValueOrEmptyValue(value: number | string) {\n        return value != null ? value.toString() : NumericInput.VALUE_EMPTY;\n    }\n\n    private isValueNumeric(value: string) {\n        // checking if a string is numeric in Typescript is a big pain, because\n        // we can't simply toss a string parameter to isFinite. below is the\n        // essential approach that jQuery uses, which involves subtracting a\n        // parsed numeric value from the string representation of the value. we\n        // need to cast the value to the `any` type to allow this operation\n        // between dissimilar types.\n        return value != null && (value as any) - parseFloat(value) + 1 >= 0;\n    }\n\n    private isKeyboardEventDisabledForBasicNumericEntry(e: React.KeyboardEvent<HTMLInputElement>) {\n        // unit tests may not include e.key. don't bother disabling those events.\n        if (e.key == null) {\n            return false;\n        }\n\n        // allow modified key strokes that may involve letters and other\n        // non-numeric/invalid characters (Cmd + A, Cmd + C, Cmd + V, Cmd + X).\n        if (e.ctrlKey || e.altKey || e.metaKey) {\n            return false;\n        }\n\n        // keys that print a single character when pressed have a `key` name of\n        // length 1. every other key has a longer `key` name (e.g. \"Backspace\",\n        // \"ArrowUp\", \"Shift\"). since none of those keys can print a character\n        // to the field--and since they may have important native behaviors\n        // beyond printing a character--we don't want to disable their effects.\n        const isSingleCharKey = e.key.length === 1;\n        if (!isSingleCharKey) {\n            return false;\n        }\n\n        // now we can simply check that the single character that wants to be printed\n        // is a floating-point number character that we're allowed to print.\n        return !this.isFloatingPointNumericCharacter(e.key);\n    }\n\n    private isFloatingPointNumericCharacter(character: string) {\n        return NumericInput.FLOATING_POINT_NUMBER_CHARACTER_REGEX.test(character);\n    }\n\n    private getStepMaxPrecision(props: HTMLInputProps & INumericInputProps) {\n        if (props.minorStepSize != null) {\n            return Utils.countDecimalPlaces(props.minorStepSize);\n        } else {\n            return Utils.countDecimalPlaces(props.stepSize);\n        }\n    }\n\n    private toMaxPrecision(value: number) {\n        // round the value to have the specified maximum precision (toFixed is the wrong choice,\n        // because it would show trailing zeros in the decimal part out to the specified precision)\n        // source: http://stackoverflow.com/a/18358056/5199574\n        const scaleFactor = Math.pow(10, this.state.stepMaxPrecision);\n        return Math.round(value * scaleFactor) / scaleFactor;\n    }\n\n    private updateDelta(\n        direction: IncrementDirection,\n        e: React.MouseEvent<HTMLInputElement> | React.KeyboardEvent<HTMLInputElement>,\n    ) {\n        this.delta = this.getIncrementDelta(direction, e.shiftKey, e.altKey);\n        return this.delta;\n    }\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport * as React from \"react\";\n\nimport { AbstractPureComponent } from \"../../common/abstractPureComponent\";\nimport * as Classes from \"../../common/classes\";\nimport * as Errors from \"../../common/errors\";\nimport { DISPLAYNAME_PREFIX, IOptionProps, IProps } from \"../../common/props\";\nimport { isElementOfType } from \"../../common/utils\";\nimport { IRadioProps, Radio } from \"./controls\";\n\nexport interface IRadioGroupProps extends IProps {\n    /**\n     * Whether the group and _all_ its radios are disabled.\n     * Individual radios can be disabled using their `disabled` prop.\n     */\n    disabled?: boolean;\n\n    /**\n     * Whether the radio buttons are to be displayed inline horizontally.\n     */\n    inline?: boolean;\n\n    /** Optional label text to display above the radio buttons. */\n    label?: string;\n\n    /**\n     * Name of the group, used to link radio buttons together in HTML.\n     * If omitted, a unique name will be generated internally.\n     */\n    name?: string;\n\n    /**\n     * Callback invoked when the currently selected radio changes.\n     * Use `event.currentTarget.value` to read the currently selected value.\n     * This prop is required because this component only supports controlled usage.\n     */\n    onChange: (event: React.FormEvent<HTMLInputElement>) => void;\n\n    /**\n     * Array of options to render in the group. This prop is mutually exclusive\n     * with `children`: either provide an array of `IOptionProps` objects or\n     * provide `<Radio>` children elements.\n     */\n    options?: IOptionProps[];\n\n    /** Value of the selected radio. The child with this value will be `:checked`. */\n    selectedValue?: string | number;\n}\n\nlet counter = 0;\nfunction nextName() {\n    return `${RadioGroup.displayName}-${counter++}`;\n}\n\nexport class RadioGroup extends AbstractPureComponent<IRadioGroupProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.RadioGroup`;\n\n    // a unique name for this group, which can be overridden by `name` prop.\n    private autoGroupName = nextName();\n\n    public render() {\n        const { label } = this.props;\n        return (\n            <div className={this.props.className}>\n                {label == null ? null : <label className={Classes.LABEL}>{label}</label>}\n                {Array.isArray(this.props.options) ? this.renderOptions() : this.renderChildren()}\n            </div>\n        );\n    }\n\n    protected validateProps() {\n        if (this.props.children != null && this.props.options != null) {\n            console.warn(Errors.RADIOGROUP_WARN_CHILDREN_OPTIONS_MUTEX);\n        }\n    }\n\n    private renderChildren() {\n        return React.Children.map(this.props.children, child => {\n            if (isElementOfType(child, Radio)) {\n                return React.cloneElement(child, this.getRadioProps(child.props as IOptionProps));\n            } else {\n                return child;\n            }\n        });\n    }\n\n    private renderOptions() {\n        return this.props.options.map(option => (\n            <Radio {...this.getRadioProps(option)} key={option.value} labelElement={option.label || option.value} />\n        ));\n    }\n\n    private getRadioProps(optionProps: IOptionProps): IRadioProps {\n        const { name } = this.props;\n        const { className, disabled, value } = optionProps;\n        return {\n            checked: value === this.props.selectedValue,\n            className,\n            disabled: disabled || this.props.disabled,\n            inline: this.props.inline,\n            name: name == null ? this.autoGroupName : name,\n            onChange: this.props.onChange,\n            value,\n        };\n    }\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, IIntentProps, IProps } from \"../../common/props\";\n\nexport interface ITextAreaProps extends IIntentProps, IProps, React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n    /**\n     * Whether the text area should take up the full width of its container.\n     */\n    fill?: boolean;\n\n    /**\n     * Whether the text area should appear with large styling.\n     */\n    large?: boolean;\n\n    /**\n     * Whether the text area should appear with small styling.\n     */\n    small?: boolean;\n\n    /**\n     * Ref handler that receives HTML `<textarea>` element backing this component.\n     */\n    inputRef?: (ref: HTMLTextAreaElement | null) => any;\n}\n\n// this component is simple enough that tests would be purely tautological.\n/* istanbul ignore next */\nexport class TextArea extends React.PureComponent<ITextAreaProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.TextArea`;\n\n    public render() {\n        const { className, fill, inputRef, intent, large, small, ...htmlProps } = this.props;\n\n        const rootClasses = classNames(\n            Classes.INPUT,\n            Classes.intentClass(intent),\n            {\n                [Classes.FILL]: fill,\n                [Classes.LARGE]: large,\n                [Classes.SMALL]: small,\n            },\n            className,\n        );\n\n        return <textarea {...htmlProps} className={rootClasses} ref={inputRef} />;\n    }\n}\n","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { DISABLED, FILL, HTML_SELECT, LARGE, MINIMAL } from \"../../common/classes\";\nimport { IOptionProps } from \"../../common/props\";\nimport { IElementRefProps } from \"../html/html\";\nimport { Icon, IIconProps } from \"../icon/icon\";\n\nexport interface IHTMLSelectProps\n    extends IElementRefProps<HTMLSelectElement>,\n        React.SelectHTMLAttributes<HTMLSelectElement> {\n    /** Whether this element is non-interactive. */\n    disabled?: boolean;\n\n    /** Whether this element should fill its container. */\n    fill?: boolean;\n\n    /** Props to spread to the `<Icon>` element. */\n    iconProps?: Partial<IIconProps>;\n\n    /** Whether to use large styles. */\n    large?: boolean;\n\n    /** Whether to use minimal styles. */\n    minimal?: boolean;\n\n    /** Multiple select is not supported. */\n    multiple?: never;\n\n    /** Change event handler. Use `event.currentTarget.value` to access the new value. */\n    onChange?: React.ChangeEventHandler<HTMLSelectElement>;\n\n    /**\n     * Shorthand for supplying options: an array of basic types or\n     * `{ label?, value }` objects. If no `label` is supplied, `value`\n     * will be used as the label.\n     */\n    options?: Array<string | number | IOptionProps>;\n\n    /** Controlled value of this component. */\n    value?: string | number;\n}\n\n// this component is simple enough that tests would be purely tautological.\n/* istanbul ignore next */\nexport class HTMLSelect extends React.PureComponent<IHTMLSelectProps> {\n    public render() {\n        const {\n            className,\n            disabled,\n            elementRef,\n            fill,\n            iconProps,\n            large,\n            minimal,\n            options = [],\n            ...htmlProps\n        } = this.props;\n        const classes = classNames(\n            HTML_SELECT,\n            {\n                [DISABLED]: disabled,\n                [FILL]: fill,\n                [LARGE]: large,\n                [MINIMAL]: minimal,\n            },\n            className,\n        );\n\n        const optionChildren = options.map(option => {\n            const props: IOptionProps = typeof option === \"object\" ? option : { value: option };\n            return <option {...props} key={props.value} children={props.label || props.value} />;\n        });\n\n        return (\n            <div className={classes}>\n                <select disabled={disabled} ref={elementRef} {...htmlProps} multiple={false}>\n                    {optionChildren}\n                    {htmlProps.children}\n                </select>\n                <Icon icon=\"double-caret-vertical\" {...iconProps} />\n            </div>\n        );\n    }\n}\n","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport {\n    CONDENSED,\n    HTML_TABLE,\n    HTML_TABLE_BORDERED,\n    HTML_TABLE_STRIPED,\n    INTERACTIVE,\n    SMALL,\n} from \"../../common/classes\";\nimport { IElementRefProps } from \"../html/html\";\n\nexport interface IHTMLTableProps extends React.HTMLAttributes<HTMLTableElement>, IElementRefProps<HTMLTableElement> {\n    /** Enables borders between rows and cells. */\n    bordered?: boolean;\n\n    /** Use small, condensed appearance. */\n    condensed?: boolean;\n\n    /** Enables hover styles on row. */\n    interactive?: boolean;\n\n    /**\n     * Use small, condensed appearance for this element and all child elements.\n     * @deprecated\n     */\n    small?: boolean;\n\n    /** Use an alternate background color on odd rows. */\n    striped?: boolean;\n}\n\n// this component is simple enough that tests would be purely tautological.\n/* istanbul ignore next */\nexport class HTMLTable extends React.PureComponent<IHTMLTableProps> {\n    public render() {\n        const { bordered, className, condensed, elementRef, interactive, small, striped, ...htmlProps } = this.props;\n        const classes = classNames(\n            HTML_TABLE,\n            {\n                [CONDENSED]: condensed,\n                [HTML_TABLE_BORDERED]: bordered,\n                [HTML_TABLE_STRIPED]: striped,\n                [INTERACTIVE]: interactive,\n                [SMALL]: small,\n            },\n            className,\n        );\n        // tslint:disable-next-line:blueprint-html-components\n        return <table {...htmlProps} ref={elementRef} className={classes} />;\n    }\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nexport interface IKeyCodeTable {\n    [code: number]: string;\n}\n\nexport interface IKeyCodeReverseTable {\n    [key: string]: number;\n}\n\nexport interface IKeyMap {\n    [key: string]: string;\n}\n\nexport const KeyCodes: IKeyCodeTable = {\n    8: \"backspace\",\n    9: \"tab\",\n    13: \"enter\",\n    20: \"capslock\",\n    27: \"esc\",\n    32: \"space\",\n    33: \"pageup\",\n    34: \"pagedown\",\n    35: \"end\",\n    36: \"home\",\n    37: \"left\",\n    38: \"up\",\n    39: \"right\",\n    40: \"down\",\n    45: \"ins\",\n    46: \"del\",\n    // number keys\n    48: \"0\",\n    49: \"1\",\n    50: \"2\",\n    51: \"3\",\n    52: \"4\",\n    53: \"5\",\n    54: \"6\",\n    55: \"7\",\n    56: \"8\",\n    57: \"9\",\n    // alphabet\n    65: \"a\",\n    66: \"b\",\n    67: \"c\",\n    68: \"d\",\n    69: \"e\",\n    70: \"f\",\n    71: \"g\",\n    72: \"h\",\n    73: \"i\",\n    74: \"j\",\n    75: \"k\",\n    76: \"l\",\n    77: \"m\",\n    78: \"n\",\n    79: \"o\",\n    80: \"p\",\n    81: \"q\",\n    82: \"r\",\n    83: \"s\",\n    84: \"t\",\n    85: \"u\",\n    86: \"v\",\n    87: \"w\",\n    88: \"x\",\n    89: \"y\",\n    90: \"z\",\n    // punctuation\n    106: \"*\",\n    107: \"+\",\n    109: \"-\",\n    110: \".\",\n    111: \"/\",\n    186: \";\",\n    187: \"=\",\n    188: \",\",\n    189: \"-\",\n    190: \".\",\n    191: \"/\",\n    192: \"`\",\n    219: \"[\",\n    220: \"\\\\\",\n    221: \"]\",\n    222: \"'\",\n};\n\nexport const Modifiers: IKeyCodeTable = {\n    16: \"shift\",\n    17: \"ctrl\",\n    18: \"alt\",\n    91: \"meta\",\n    93: \"meta\",\n    224: \"meta\",\n};\n\nexport const ModifierBitMasks: IKeyCodeReverseTable = {\n    alt: 1,\n    ctrl: 2,\n    meta: 4,\n    shift: 8,\n};\n\nexport const Aliases: IKeyMap = {\n    cmd: \"meta\",\n    command: \"meta\",\n    escape: \"esc\",\n    minus: \"-\",\n    mod: isMac() ? \"meta\" : \"ctrl\",\n    option: \"alt\",\n    plus: \"+\",\n    return: \"enter\",\n    win: \"meta\",\n};\n\n// alph sorting is unintuitive here\n// tslint:disable object-literal-sort-keys\nexport const ShiftKeys: IKeyMap = {\n    \"~\": \"`\",\n    \"!\": \"1\",\n    \"@\": \"2\",\n    \"#\": \"3\",\n    $: \"4\",\n    \"%\": \"5\",\n    \"^\": \"6\",\n    \"&\": \"7\",\n    \"*\": \"8\",\n    \"(\": \"9\",\n    \")\": \"0\",\n    _: \"-\",\n    \"+\": \"=\",\n    \"{\": \"[\",\n    \"}\": \"]\",\n    \"|\": \"\\\\\",\n    \":\": \";\",\n    '\"': \"'\",\n    \"<\": \",\",\n    \">\": \".\",\n    \"?\": \"/\",\n};\n// tslint:enable object-literal-sort-keys\n\n// Function keys\nfor (let i = 1; i <= 12; ++i) {\n    KeyCodes[111 + i] = \"f\" + i;\n}\n\n// Numpad\nfor (let i = 0; i <= 9; ++i) {\n    KeyCodes[96 + i] = \"num\" + i.toString();\n}\n\nexport interface IKeyCombo {\n    key?: string;\n    modifiers: number;\n}\n\nexport function comboMatches(a: IKeyCombo, b: IKeyCombo) {\n    return a.modifiers === b.modifiers && a.key === b.key;\n}\n\n/**\n * Converts a key combo string into a key combo object. Key combos include\n * zero or more modifier keys, such as `shift` or `alt`, and exactly one\n * action key, such as `A`, `enter`, or `left`.\n *\n * For action keys that require a shift, e.g. `@` or `|`, we inlude the\n * necessary `shift` modifier and automatically convert the action key to the\n * unshifted version. For example, `@` is equivalent to `shift+2`.\n */\nexport const parseKeyCombo = (combo: string): IKeyCombo => {\n    const pieces = combo\n        .replace(/\\s/g, \"\")\n        .toLowerCase()\n        .split(\"+\");\n    let modifiers = 0;\n    let key = null as string;\n    for (let piece of pieces) {\n        if (piece === \"\") {\n            throw new Error(`Failed to parse key combo \"${combo}\".\n                Valid key combos look like \"cmd + plus\", \"shift+p\", or \"!\"`);\n        }\n\n        if (Aliases[piece] != null) {\n            piece = Aliases[piece];\n        }\n\n        if (ModifierBitMasks[piece] != null) {\n            modifiers += ModifierBitMasks[piece];\n        } else if (ShiftKeys[piece] != null) {\n            // tslint:disable-next-line no-string-literal\n            modifiers += ModifierBitMasks[\"shift\"];\n            key = ShiftKeys[piece];\n        } else {\n            key = piece.toLowerCase();\n        }\n    }\n    return { modifiers, key };\n};\n\n/**\n * Converts a keyboard event into a valid combo prop string\n */\nexport const getKeyComboString = (e: KeyboardEvent): string => {\n    const keys = [] as string[];\n\n    // modifiers first\n    if (e.ctrlKey) {\n        keys.push(\"ctrl\");\n    }\n    if (e.altKey) {\n        keys.push(\"alt\");\n    }\n    if (e.shiftKey) {\n        keys.push(\"shift\");\n    }\n    if (e.metaKey) {\n        keys.push(\"meta\");\n    }\n\n    const { which } = e;\n    if (Modifiers[which] != null) {\n        // no action key\n    } else if (KeyCodes[which] != null) {\n        keys.push(KeyCodes[which]);\n    } else {\n        keys.push(String.fromCharCode(which).toLowerCase());\n    }\n\n    // join keys with plusses\n    return keys.join(\" + \");\n};\n\n/**\n * Determines the key combo object from the given keyboard event. Again, a key\n * combo includes zero or more modifiers (represented by a bitmask) and one\n * action key, which we determine from the `e.which` property of the keyboard\n * event.\n */\nexport const getKeyCombo = (e: KeyboardEvent): IKeyCombo => {\n    let key = null as string;\n    const { which } = e;\n    if (Modifiers[which] != null) {\n        // keep key null\n    } else if (KeyCodes[which] != null) {\n        key = KeyCodes[which];\n    } else {\n        key = String.fromCharCode(which).toLowerCase();\n    }\n\n    let modifiers = 0;\n    // tslint:disable no-string-literal\n    if (e.altKey) {\n        modifiers += ModifierBitMasks[\"alt\"];\n    }\n    if (e.ctrlKey) {\n        modifiers += ModifierBitMasks[\"ctrl\"];\n    }\n    if (e.metaKey) {\n        modifiers += ModifierBitMasks[\"meta\"];\n    }\n    if (e.shiftKey) {\n        modifiers += ModifierBitMasks[\"shift\"];\n    }\n    // tslint:enable\n\n    return { modifiers, key };\n};\n\n/**\n * Splits a key combo string into its constituent key values and looks up\n * aliases, such as `return` -> `enter`.\n *\n * Unlike the parseKeyCombo method, this method does NOT convert shifted\n * action keys. So `\"@\"` will NOT be converted to `[\"shift\", \"2\"]`).\n */\nexport const normalizeKeyCombo = (combo: string, platformOverride?: string): string[] => {\n    const keys = combo.replace(/\\s/g, \"\").split(\"+\");\n    return keys.map(key => {\n        const keyName = Aliases[key] != null ? Aliases[key] : key;\n        return keyName === \"meta\" ? (isMac(platformOverride) ? \"cmd\" : \"ctrl\") : keyName;\n    });\n};\n/* tslint:enable:no-string-literal */\n\nfunction isMac(platformOverride?: string) {\n    const platform =\n        platformOverride != null ? platformOverride : typeof navigator !== \"undefined\" ? navigator.platform : undefined;\n    return platform == null ? false : /Mac|iPod|iPhone|iPad/.test(platform);\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { Classes, DISPLAYNAME_PREFIX, IProps } from \"../../common\";\nimport { Icon, IconName } from \"../icon/icon\";\nimport { normalizeKeyCombo } from \"./hotkeyParser\";\n\nconst KeyIcons: { [key: string]: IconName } = {\n    alt: \"key-option\",\n    cmd: \"key-command\",\n    ctrl: \"key-control\",\n    delete: \"key-delete\",\n    down: \"arrow-down\",\n    enter: \"key-enter\",\n    left: \"arrow-left\",\n    meta: \"key-command\",\n    right: \"arrow-right\",\n    shift: \"key-shift\",\n    up: \"arrow-up\",\n};\n\nexport interface IKeyComboProps extends IProps {\n    /** The key combo to display, such as `\"cmd + s\"`. */\n    combo: string;\n\n    /**\n     * Whether to render in a minimal style.\n     * If `false`, each key in the combo will be rendered inside a `<kbd>` tag.\n     * If `true`, only the icon or short name of a key will be rendered with no wrapper styles.\n     * @default false\n     */\n    minimal?: boolean;\n}\n\nexport class KeyCombo extends React.Component<IKeyComboProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.KeyCombo`;\n\n    public render() {\n        const { className, combo, minimal } = this.props;\n        const keys = normalizeKeyCombo(combo)\n            .map(key => (key.length === 1 ? key.toUpperCase() : key))\n            .map(minimal ? this.renderMinimalKey : this.renderKey);\n        return <span className={classNames(Classes.KEY_COMBO, className)}>{keys}</span>;\n    }\n\n    private renderKey = (key: string, index: number) => {\n        const icon = KeyIcons[key];\n        const reactKey = `key-${index}`;\n        return icon == null ? (\n            <kbd className={Classes.KEY} key={reactKey}>\n                {key}\n            </kbd>\n        ) : (\n            <kbd className={classNames(Classes.KEY, Classes.MODIFIER_KEY)} key={reactKey}>\n                <Icon icon={icon} /> {key}\n            </kbd>\n        );\n    };\n\n    private renderMinimalKey = (key: string, index: number) => {\n        const icon = KeyIcons[key];\n        return icon == null ? key : <Icon icon={icon} key={`key-${index}`} />;\n    };\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { AbstractPureComponent, Classes, DISPLAYNAME_PREFIX, IProps } from \"../../common\";\nimport { KeyCombo } from \"./keyCombo\";\n\nexport interface IHotkeyProps extends IProps {\n    /**\n     * Whether the hotkey should be triggerable when focused in a text input.\n     * @default false\n     */\n    allowInInput?: boolean;\n\n    /**\n     * Hotkey combination string, such as \"space\" or \"cmd+n\".\n     */\n    combo: string;\n\n    /**\n     * Whether the hotkey cannot be triggered.\n     * @default false\n     */\n    disabled?: boolean;\n\n    /**\n     * Human-friendly label for the hotkey.\n     */\n    label: string;\n\n    /**\n     * If `false`, the hotkey is active only when the target is focused. If\n     * `true`, the hotkey can be triggered regardless of what component is\n     * focused.\n     * @default false\n     */\n    global?: boolean;\n\n    /**\n     * Unless the hotkey is global, you must specify a group where the hotkey\n     * will be displayed in the hotkeys dialog. This string will be displayed\n     * in a header at the start of the group of hotkeys.\n     */\n    group?: string;\n\n    /**\n     * When `true`, invokes `event.preventDefault()` before the respective `onKeyDown` and\n     * `onKeyUp` callbacks are invoked. Enabling this can simplify handler implementations.\n     * @default false\n     */\n    preventDefault?: boolean;\n\n    /**\n     * When `true`, invokes `event.stopPropagation()` before the respective `onKeyDown` and\n     * `onKeyUp` callbacks are invoked. Enabling this can simplify handler implementations.\n     * @default false\n     */\n    stopPropagation?: boolean;\n\n    /**\n     * `keydown` event handler.\n     */\n    onKeyDown?(e: KeyboardEvent): any;\n\n    /**\n     * `keyup` event handler.\n     */\n    onKeyUp?(e: KeyboardEvent): any;\n}\n\nexport class Hotkey extends AbstractPureComponent<IHotkeyProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Hotkey`;\n\n    public static defaultProps = {\n        allowInInput: false,\n        disabled: false,\n        global: false,\n        preventDefault: false,\n        stopPropagation: false,\n    };\n\n    public render() {\n        const { label, className, ...spreadableProps } = this.props;\n\n        const rootClasses = classNames(Classes.HOTKEY, className);\n        return (\n            <div className={rootClasses}>\n                <div className={Classes.HOTKEY_LABEL}>{label}</div>\n                <KeyCombo {...spreadableProps} />\n            </div>\n        );\n    }\n\n    protected validateProps(props: IHotkeyProps) {\n        if (props.global !== true && props.group == null) {\n            throw new Error(\"non-global <Hotkey>s must define a group\");\n        }\n    }\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\n\nimport { Classes } from \"../../common\";\nimport { Dialog, IDialogProps } from \"../../components\";\nimport { Hotkey, IHotkeyProps } from \"./hotkey\";\nimport { Hotkeys } from \"./hotkeys\";\n\nexport interface IHotkeysDialogProps extends IDialogProps {\n    /**\n     * This string displayed as the group name in the hotkeys dialog for all\n     * global hotkeys.\n     */\n    globalHotkeysGroup?: string;\n}\n\n/**\n * The delay before showing or hiding the dialog. Should be long enough to\n * allow all registered hotkey listeners to execute first.\n */\nconst DELAY_IN_MS = 10;\n\nclass HotkeysDialog {\n    public componentProps = ({\n        globalHotkeysGroup: \"Global hotkeys\",\n    } as any) as IHotkeysDialogProps;\n\n    private container: HTMLElement;\n    private hotkeysQueue = [] as IHotkeyProps[][];\n    private isDialogShowing = false;\n    private showTimeoutToken: number;\n    private hideTimeoutToken: number;\n\n    public render() {\n        if (this.container == null) {\n            this.container = this.getContainer();\n        }\n        ReactDOM.render(this.renderComponent(), this.container);\n    }\n\n    public unmount() {\n        if (this.container != null) {\n            ReactDOM.unmountComponentAtNode(this.container);\n            this.container.remove();\n            delete this.container;\n        }\n    }\n\n    /**\n     * Because hotkeys can be registered globally and locally and because\n     * event ordering cannot be guaranteed, we use this debouncing method to\n     * allow all hotkey listeners to fire and add their hotkeys to the dialog.\n     *\n     * 10msec after the last listener adds their hotkeys, we render the dialog\n     * and clear the queue.\n     */\n    public enqueueHotkeysForDisplay(hotkeys: IHotkeyProps[]) {\n        this.hotkeysQueue.push(hotkeys);\n\n        // reset timeout for debounce\n        window.clearTimeout(this.showTimeoutToken);\n        this.showTimeoutToken = window.setTimeout(this.show, DELAY_IN_MS);\n    }\n\n    public hideAfterDelay() {\n        window.clearTimeout(this.hideTimeoutToken);\n        this.hideTimeoutToken = window.setTimeout(this.hide, DELAY_IN_MS);\n    }\n\n    public show = () => {\n        this.isDialogShowing = true;\n        this.render();\n    };\n\n    public hide = () => {\n        this.isDialogShowing = false;\n        this.render();\n    };\n\n    public isShowing() {\n        return this.isDialogShowing;\n    }\n\n    private getContainer() {\n        if (this.container == null) {\n            this.container = document.createElement(\"div\");\n            this.container.classList.add(Classes.PORTAL);\n            document.body.appendChild(this.container);\n        }\n        return this.container;\n    }\n\n    private renderComponent() {\n        return (\n            <Dialog\n                {...this.componentProps}\n                className={classNames(Classes.HOTKEY_DIALOG, this.componentProps.className)}\n                isOpen={this.isDialogShowing}\n                onClose={this.hide}\n            >\n                <div className={Classes.DIALOG_BODY}>{this.renderHotkeys()}</div>\n            </Dialog>\n        );\n    }\n\n    private renderHotkeys() {\n        const hotkeys = this.emptyHotkeyQueue();\n        const elements = hotkeys.map((hotkey, index) => {\n            const group =\n                hotkey.global === true && hotkey.group == null ? this.componentProps.globalHotkeysGroup : hotkey.group;\n\n            return <Hotkey key={index} {...hotkey} group={group} />;\n        });\n\n        return <Hotkeys>{elements}</Hotkeys>;\n    }\n\n    private emptyHotkeyQueue() {\n        // flatten then empty the hotkeys queue\n        const hotkeys = this.hotkeysQueue.reduce((arr, queued) => arr.concat(queued), []);\n        this.hotkeysQueue.length = 0;\n        return hotkeys;\n    }\n}\n\n// singleton instance\nconst HOTKEYS_DIALOG = new HotkeysDialog();\n\nexport function isHotkeysDialogShowing() {\n    return HOTKEYS_DIALOG.isShowing();\n}\n\nexport function setHotkeysDialogProps(props: Partial<IHotkeysDialogProps>) {\n    for (const key in props) {\n        if (props.hasOwnProperty(key)) {\n            (HOTKEYS_DIALOG.componentProps as any)[key] = (props as any)[key];\n        }\n    }\n}\n\nexport function showHotkeysDialog(hotkeys: IHotkeyProps[]) {\n    HOTKEYS_DIALOG.enqueueHotkeysForDisplay(hotkeys);\n}\n\nexport function hideHotkeysDialog() {\n    HOTKEYS_DIALOG.hide();\n}\n\n/**\n * Use this function instead of `hideHotkeysDialog` if you need to ensure that all hotkey listeners\n * have time to execute with the dialog in a consistent open state. This can avoid flickering the\n * dialog between open and closed states as successive listeners fire.\n */\nexport function hideHotkeysDialogAfterDelay() {\n    HOTKEYS_DIALOG.hideAfterDelay();\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport { Children, ReactElement, ReactNode } from \"react\";\nimport { isElementOfType, safeInvoke } from \"../../common/utils\";\n\nimport { Hotkey, IHotkeyProps } from \"./hotkey\";\nimport { comboMatches, getKeyCombo, IKeyCombo, parseKeyCombo } from \"./hotkeyParser\";\nimport { IHotkeysProps } from \"./hotkeys\";\nimport { hideHotkeysDialogAfterDelay, isHotkeysDialogShowing, showHotkeysDialog } from \"./hotkeysDialog\";\n\nconst SHOW_DIALOG_KEY = \"?\";\n\nexport enum HotkeyScope {\n    LOCAL = \"local\",\n    GLOBAL = \"global\",\n}\n\nexport interface IHotkeyAction {\n    combo: IKeyCombo;\n    props: IHotkeyProps;\n}\n\nexport class HotkeysEvents {\n    private actions = [] as IHotkeyAction[];\n\n    public constructor(private scope: HotkeyScope) {}\n\n    public count() {\n        return this.actions.length;\n    }\n\n    public clear() {\n        this.actions = [];\n    }\n\n    public setHotkeys(props: IHotkeysProps & { children?: ReactNode }) {\n        const actions = [] as IHotkeyAction[];\n        Children.forEach(props.children, (child: ReactElement<any>) => {\n            if (isElementOfType(child, Hotkey) && this.isScope(child.props)) {\n                actions.push({\n                    combo: parseKeyCombo(child.props.combo),\n                    props: child.props,\n                });\n            }\n        });\n        this.actions = actions;\n    }\n\n    public handleKeyDown = (e: KeyboardEvent) => {\n        const combo = getKeyCombo(e);\n        const isTextInput = this.isTextInput(e);\n\n        if (!isTextInput && comboMatches(parseKeyCombo(SHOW_DIALOG_KEY), combo)) {\n            if (isHotkeysDialogShowing()) {\n                hideHotkeysDialogAfterDelay();\n            } else {\n                showHotkeysDialog(this.actions.map(action => action.props));\n            }\n            return;\n        } else if (isHotkeysDialogShowing()) {\n            return;\n        }\n\n        this.invokeNamedCallbackIfComboRecognized(combo, \"onKeyDown\", e);\n    };\n\n    public handleKeyUp = (e: KeyboardEvent) => {\n        if (isHotkeysDialogShowing()) {\n            return;\n        }\n        this.invokeNamedCallbackIfComboRecognized(getKeyCombo(e), \"onKeyUp\", e);\n    };\n\n    private invokeNamedCallbackIfComboRecognized(\n        combo: IKeyCombo,\n        callbackName: \"onKeyDown\" | \"onKeyUp\",\n        e: KeyboardEvent,\n    ) {\n        const isTextInput = this.isTextInput(e);\n        for (const action of this.actions) {\n            const shouldIgnore = (isTextInput && !action.props.allowInInput) || action.props.disabled;\n            if (!shouldIgnore && comboMatches(action.combo, combo)) {\n                if (action.props.preventDefault) {\n                    e.preventDefault();\n                }\n                if (action.props.stopPropagation) {\n                    // set a flag just for unit testing. not meant to be referenced in feature work.\n                    (e as any).isPropagationStopped = true;\n                    e.stopPropagation();\n                }\n                safeInvoke(action.props[callbackName], e);\n            }\n        }\n    }\n\n    private isScope(props: IHotkeyProps) {\n        return (props.global ? HotkeyScope.GLOBAL : HotkeyScope.LOCAL) === this.scope;\n    }\n\n    private isTextInput(e: KeyboardEvent) {\n        const elem = e.target as HTMLElement;\n        // we check these cases for unit testing, but this should not happen\n        // during normal operation\n        if (elem == null || elem.closest == null) {\n            return false;\n        }\n\n        const editable = elem.closest(\"input, textarea, [contenteditable=true]\");\n\n        if (editable == null) {\n            return false;\n        }\n\n        // don't let checkboxes, switches, and radio buttons prevent hotkey behavior\n        if (editable.tagName.toLowerCase() === \"input\") {\n            const inputType = (editable as HTMLInputElement).type;\n            if (inputType === \"checkbox\" || inputType === \"radio\") {\n                return false;\n            }\n        }\n\n        // don't let read-only fields prevent hotkey behavior\n        if ((editable as HTMLInputElement).readOnly) {\n            return false;\n        }\n\n        return true;\n    }\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport * as React from \"react\";\n\nimport { IConstructor } from \"../../common/constructor\";\nimport { HOTKEYS_WARN_DECORATOR_NEEDS_REACT_ELEMENT, HOTKEYS_WARN_DECORATOR_NO_METHOD } from \"../../common/errors\";\nimport { getDisplayName, isFunction, safeInvoke } from \"../../common/utils\";\nimport { IHotkeysProps } from \"./hotkeys\";\nimport { HotkeyScope, HotkeysEvents } from \"./hotkeysEvents\";\n\nexport interface IHotkeysTargetComponent extends React.Component {\n    /** Components decorated with the `@HotkeysTarget` decorator must implement React's component `render` function. */\n    render(): React.ReactElement<any> | null | undefined;\n\n    /**\n     * Components decorated with the `@HotkeysTarget` decorator must implement\n     * this method, and it must return a `Hotkeys` React element.\n     */\n    renderHotkeys(): React.ReactElement<IHotkeysProps>;\n}\n\nexport function HotkeysTarget<T extends IConstructor<IHotkeysTargetComponent>>(WrappedComponent: T) {\n    if (!isFunction(WrappedComponent.prototype.renderHotkeys)) {\n        console.warn(HOTKEYS_WARN_DECORATOR_NO_METHOD);\n    }\n\n    return class HotkeysTargetClass extends WrappedComponent {\n        public static displayName = `HotkeysTarget(${getDisplayName(WrappedComponent)})`;\n\n        /** @internal */\n        public globalHotkeysEvents?: HotkeysEvents;\n\n        /** @internal */\n        public localHotkeysEvents?: HotkeysEvents;\n\n        public componentWillMount() {\n            if (super.componentWillMount != null) {\n                super.componentWillMount();\n            }\n            this.localHotkeysEvents = new HotkeysEvents(HotkeyScope.LOCAL);\n            this.globalHotkeysEvents = new HotkeysEvents(HotkeyScope.GLOBAL);\n        }\n\n        public componentDidMount() {\n            if (super.componentDidMount != null) {\n                super.componentDidMount();\n            }\n\n            // attach global key event listeners\n            document.addEventListener(\"keydown\", this.globalHotkeysEvents.handleKeyDown);\n            document.addEventListener(\"keyup\", this.globalHotkeysEvents.handleKeyUp);\n        }\n\n        public componentWillUnmount() {\n            if (super.componentWillUnmount != null) {\n                super.componentWillUnmount();\n            }\n            document.removeEventListener(\"keydown\", this.globalHotkeysEvents.handleKeyDown);\n            document.removeEventListener(\"keyup\", this.globalHotkeysEvents.handleKeyUp);\n\n            this.globalHotkeysEvents.clear();\n            this.localHotkeysEvents.clear();\n        }\n\n        public render() {\n            const element = super.render() as JSX.Element;\n\n            if (element == null) {\n                // always return `element` in case caller is distinguishing between `null` and `undefined`\n                return element;\n            }\n\n            if (!React.isValidElement<any>(element)) {\n                console.warn(HOTKEYS_WARN_DECORATOR_NEEDS_REACT_ELEMENT);\n                return element;\n            }\n\n            if (isFunction(this.renderHotkeys)) {\n                const hotkeys = this.renderHotkeys();\n                this.localHotkeysEvents.setHotkeys(hotkeys.props);\n                this.globalHotkeysEvents.setHotkeys(hotkeys.props);\n\n                if (this.localHotkeysEvents.count() > 0) {\n                    const tabIndex = hotkeys.props.tabIndex === undefined ? 0 : hotkeys.props.tabIndex;\n\n                    const { keyDown: existingKeyDown, keyUp: existingKeyUp } = element.props;\n                    const onKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n                        this.localHotkeysEvents.handleKeyDown(e.nativeEvent as KeyboardEvent);\n                        safeInvoke(existingKeyDown, e);\n                    };\n\n                    const onKeyUp = (e: React.KeyboardEvent<HTMLElement>) => {\n                        this.localHotkeysEvents.handleKeyUp(e.nativeEvent as KeyboardEvent);\n                        safeInvoke(existingKeyUp, e);\n                    };\n                    return React.cloneElement(element, { tabIndex, onKeyDown, onKeyUp });\n                }\n            }\n            return element;\n        }\n    };\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport * as React from \"react\";\n\nimport classNames from \"classnames\";\nimport { AbstractPureComponent, Classes, DISPLAYNAME_PREFIX, IProps } from \"../../common\";\nimport { HOTKEYS_HOTKEY_CHILDREN } from \"../../common/errors\";\nimport { isElementOfType } from \"../../common/utils\";\nimport { H4 } from \"../html/html\";\nimport { Hotkey, IHotkeyProps } from \"./hotkey\";\n\nexport { Hotkey, IHotkeyProps } from \"./hotkey\";\nexport { KeyCombo, IKeyComboProps } from \"./keyCombo\";\nexport { HotkeysTarget, IHotkeysTargetComponent } from \"./hotkeysTarget\";\nexport { IKeyCombo, comboMatches, getKeyCombo, getKeyComboString, parseKeyCombo } from \"./hotkeyParser\";\nexport { IHotkeysDialogProps, hideHotkeysDialog, setHotkeysDialogProps } from \"./hotkeysDialog\";\n\nexport interface IHotkeysProps extends IProps {\n    /**\n     * In order to make local hotkeys work on elements that are not normally\n     * focusable, such as `<div>`s or `<span>`s, we add a `tabIndex` attribute\n     * to the hotkey target, which makes it focusable. By default, we use `0`,\n     * but you can override this value to change the tab navigation behavior\n     * of the component. You may even set this value to `null`, which will omit\n     * the `tabIndex` from the component decorated by `HotkeysTarget`.\n     */\n    tabIndex?: number;\n}\n\nexport class Hotkeys extends AbstractPureComponent<IHotkeysProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Hotkeys`;\n\n    public static defaultProps = {\n        tabIndex: 0,\n    };\n\n    public render() {\n        const hotkeys = React.Children.map(\n            this.props.children,\n            (child: React.ReactElement<IHotkeyProps>) => child.props,\n        );\n\n        // sort by group label alphabetically, prioritize globals\n        hotkeys.sort((a, b) => {\n            if (a.global === b.global) {\n                return a.group.localeCompare(b.group);\n            }\n            return a.global ? -1 : 1;\n        });\n\n        let lastGroup = null as string;\n        const elems = [] as JSX.Element[];\n        for (const hotkey of hotkeys) {\n            const groupLabel = hotkey.group;\n            if (groupLabel !== lastGroup) {\n                elems.push(<H4 key={`group-${elems.length}`}>{groupLabel}</H4>);\n                lastGroup = groupLabel;\n            }\n            elems.push(<Hotkey key={elems.length} {...hotkey} />);\n        }\n        const rootClasses = classNames(Classes.HOTKEY_COLUMN, this.props.className);\n        return <div className={rootClasses}>{elems}</div>;\n    }\n\n    protected validateProps(props: IHotkeysProps & { children: React.ReactNode }) {\n        React.Children.forEach(props.children, (child: JSX.Element) => {\n            if (!isElementOfType(child, Hotkey)) {\n                throw new Error(HOTKEYS_HOTKEY_CHILDREN);\n            }\n        });\n    }\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, HTMLDivProps, IProps } from \"../../common/props\";\n\n// allow the empty interface so we can label it clearly in the docs\nexport interface INavbarDividerProps extends IProps, HTMLDivProps {\n    // Empty\n}\n\n// this component is simple enough that tests would be purely tautological.\n/* istanbul ignore next */\nexport class NavbarDivider extends React.PureComponent<INavbarDividerProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.NavbarDivider`;\n\n    public render() {\n        const { className, ...htmlProps } = this.props;\n        return <div className={classNames(Classes.NAVBAR_DIVIDER, className)} {...htmlProps} />;\n    }\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { Alignment } from \"../../common/alignment\";\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, HTMLDivProps, IProps } from \"../../common/props\";\n\nexport interface INavbarGroupProps extends IProps, HTMLDivProps {\n    /**\n     * The side of the navbar on which the group should appear.\n     * The `Alignment` enum provides constants for these values.\n     * @default Alignment.LEFT\n     */\n    align?: Alignment;\n}\n\n// this component is simple enough that tests would be purely tautological.\n/* istanbul ignore next */\nexport class NavbarGroup extends React.PureComponent<INavbarGroupProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.NavbarGroup`;\n\n    public static defaultProps: INavbarGroupProps = {\n        align: Alignment.LEFT,\n    };\n\n    public render() {\n        const { align, children, className, ...htmlProps } = this.props;\n        const classes = classNames(Classes.NAVBAR_GROUP, Classes.alignmentClass(align), className);\n        return (\n            <div className={classes} {...htmlProps}>\n                {children}\n            </div>\n        );\n    }\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, HTMLDivProps, IProps } from \"../../common/props\";\n\n// allow the empty interface so we can label it clearly in the docs\nexport interface INavbarHeadingProps extends IProps, HTMLDivProps {\n    // Empty\n}\n\n// this component is simple enough that tests would be purely tautological.\n/* istanbul ignore next */\nexport class NavbarHeading extends React.PureComponent<INavbarHeadingProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.NavbarHeading`;\n\n    public render() {\n        const { children, className, ...htmlProps } = this.props;\n        return (\n            <div className={classNames(Classes.NAVBAR_HEADING, className)} {...htmlProps}>\n                {children}\n            </div>\n        );\n    }\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, HTMLDivProps, IProps } from \"../../common/props\";\nimport { NavbarDivider } from \"./navbarDivider\";\nimport { NavbarGroup } from \"./navbarGroup\";\nimport { NavbarHeading } from \"./navbarHeading\";\n\nexport { INavbarDividerProps } from \"./navbarDivider\";\n\n// allow the empty interface so we can label it clearly in the docs\nexport interface INavbarProps extends IProps, HTMLDivProps {\n    /**\n     * Whether this navbar should be fixed to the top of the viewport (using CSS `position: fixed`).\n     */\n    fixedToTop?: boolean;\n}\n\n// this component is simple enough that tests would be purely tautological.\n/* istanbul ignore next */\nexport class Navbar extends React.PureComponent<INavbarProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Navbar`;\n\n    public static Divider = NavbarDivider;\n    public static Group = NavbarGroup;\n    public static Heading = NavbarHeading;\n\n    public render() {\n        const { children, className, fixedToTop, ...htmlProps } = this.props;\n        const classes = classNames(Classes.NAVBAR, { [Classes.FIXED_TOP]: fixedToTop }, className);\n        return (\n            <div className={classes} {...htmlProps}>\n                {children}\n            </div>\n        );\n    }\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, IProps } from \"../../common/props\";\nimport { ensureElement } from \"../../common/utils\";\nimport { H4 } from \"../html/html\";\nimport { Icon, IconName } from \"../icon/icon\";\n\nexport interface INonIdealStateProps extends IProps {\n    /** An action to resolve the non-ideal state which appears after `description`. */\n    action?: JSX.Element;\n\n    /**\n     * Advanced usage: React `children` will appear last (after `action`).\n     * Avoid passing raw strings as they will not receive margins and disrupt the layout flow.\n     */\n    children?: React.ReactNode;\n\n    /**\n     * A longer description of the non-ideal state.\n     * A string or number value will be wrapped in a `<div>` to preserve margins.\n     */\n    description?: React.ReactChild;\n\n    /** The name of a Blueprint icon or a JSX Element (such as `<Spinner/>`) to render above the title. */\n    icon?: IconName | JSX.Element;\n\n    /** The title of the non-ideal state. */\n    title?: React.ReactNode;\n}\n\nexport class NonIdealState extends React.PureComponent<INonIdealStateProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.NonIdealState`;\n\n    public render() {\n        const { action, children, className, description, title } = this.props;\n        return (\n            <div className={classNames(Classes.NON_IDEAL_STATE, className)}>\n                {this.maybeRenderVisual()}\n                {title && <H4>{title}</H4>}\n                {description && ensureElement(description, \"div\")}\n                {action}\n                {children}\n            </div>\n        );\n    }\n\n    private maybeRenderVisual() {\n        const { icon } = this.props;\n        if (icon == null) {\n            return null;\n        } else {\n            return (\n                <div className={Classes.NON_IDEAL_STATE_VISUAL}>\n                    <Icon icon={icon} iconSize={Icon.SIZE_LARGE * 3} />\n                </div>\n            );\n        }\n    }\n}\n","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport * as React from \"react\";\n\nimport { Classes } from \"../../common\";\nimport { Button } from \"../button/buttons\";\nimport { Text } from \"../text/text\";\nimport { IPanel } from \"./panelProps\";\n\nexport interface IPanelViewProps {\n    /**\n     * Callback invoked when the user presses the back button or a panel invokes\n     * the `closePanel()` injected prop method.\n     */\n    onClose: (removedPanel: IPanel) => void;\n\n    /**\n     * Callback invoked when a panel invokes the `openPanel(panel)` injected\n     * prop method.\n     */\n    onOpen: (addedPanel: IPanel) => void;\n\n    /** The panel to be displayed. */\n    panel: IPanel;\n\n    /** The previous panel in the stack, for rendering the \"back\" button. */\n    previousPanel?: IPanel;\n}\n\nexport class PanelView extends React.PureComponent<IPanelViewProps> {\n    public render() {\n        const { panel, onOpen } = this.props;\n        // two <span> tags in header ensure title is centered as long as\n        // possible, due to `flex: 1` magic.\n        return (\n            <div className={Classes.PANEL_STACK_VIEW}>\n                <div className={Classes.PANEL_STACK_HEADER}>\n                    <span>{this.maybeRenderBack()}</span>\n                    <Text className={Classes.HEADING} ellipsize={true}>\n                        {panel.title}\n                    </Text>\n                    <span />\n                </div>\n                <panel.component openPanel={onOpen} closePanel={this.handleClose} {...panel.props} />\n            </div>\n        );\n    }\n\n    private maybeRenderBack() {\n        if (this.props.previousPanel === undefined) {\n            return null;\n        }\n        return (\n            <Button\n                className={Classes.PANEL_STACK_HEADER_BACK}\n                icon=\"chevron-left\"\n                minimal={true}\n                onClick={this.handleClose}\n                small={true}\n                text={this.props.previousPanel.title}\n            />\n        );\n    }\n\n    private handleClose = () => this.props.onClose(this.props.panel);\n}\n","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { CSSTransition, TransitionGroup } from \"react-transition-group\";\n\nimport * as Classes from \"../../common/classes\";\nimport { IProps } from \"../../common/props\";\nimport { safeInvoke } from \"../../common/utils\";\nimport { IPanel } from \"./panelProps\";\nimport { PanelView } from \"./panelView\";\n\nexport interface IPanelStackProps extends IProps {\n    /**\n     * The initial panel to show on mount. This panel cannot be removed from the\n     * stack and will appear when the stack is empty.\n     */\n    initialPanel: IPanel;\n\n    /**\n     * Callback invoked when the user presses the back button or a panel invokes\n     * the `closePanel()` injected prop method.\n     */\n    onClose?: (removedPanel: IPanel) => void;\n\n    /**\n     * Callback invoked when a panel invokes the `openPanel(panel)` injected\n     * prop method.\n     */\n    onOpen?: (addedPanel: IPanel) => void;\n}\n\nexport interface IPanelStackState {\n    /** Whether the stack is currently animating the push or pop of a panel. */\n    direction: \"push\" | \"pop\";\n\n    /** The current stack of panels. The first panel in the stack will be displayed. */\n    stack: IPanel[];\n}\n\nexport class PanelStack extends React.PureComponent<IPanelStackProps, IPanelStackState> {\n    public state: IPanelStackState = {\n        direction: \"push\",\n        stack: [this.props.initialPanel],\n    };\n\n    public render() {\n        const classes = classNames(\n            Classes.PANEL_STACK,\n            `${Classes.PANEL_STACK}-${this.state.direction}`,\n            this.props.className,\n        );\n        return (\n            <TransitionGroup className={classes} component=\"div\">\n                {this.renderCurrentPanel()}\n            </TransitionGroup>\n        );\n    }\n\n    private renderCurrentPanel() {\n        const { stack } = this.state;\n        if (stack.length === 0) {\n            return null;\n        }\n        const [activePanel, previousPanel] = stack;\n        return (\n            <CSSTransition classNames={Classes.PANEL_STACK} key={stack.length} timeout={400}>\n                <PanelView\n                    onClose={this.handlePanelClose}\n                    onOpen={this.handlePanelOpen}\n                    panel={activePanel}\n                    previousPanel={previousPanel}\n                />\n            </CSSTransition>\n        );\n    }\n\n    private handlePanelClose = (panel: IPanel) => {\n        const { stack } = this.state;\n        // only remove this panel if it is at the top and not the only one.\n        if (stack[0] !== panel || stack.length <= 1) {\n            return;\n        }\n        safeInvoke(this.props.onClose, panel);\n        this.setState(state => ({\n            direction: \"pop\",\n            stack: state.stack.filter(p => p !== panel),\n        }));\n    };\n\n    private handlePanelOpen = (panel: IPanel) => {\n        safeInvoke(this.props.onOpen, panel);\n        this.setState(state => ({\n            direction: \"push\",\n            stack: [panel, ...state.stack],\n        }));\n    };\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, IIntentProps, IProps } from \"../../common/props\";\nimport { clamp } from \"../../common/utils\";\n\nexport interface IProgressBarProps extends IProps, IIntentProps {\n    /**\n     * Whether the background should animate.\n     * @default true\n     */\n    animate?: boolean;\n\n    /**\n     * Whether the background should be striped.\n     * @default true\n     */\n    stripes?: boolean;\n\n    /**\n     * A value between 0 and 1 (inclusive) representing how far along the operation is.\n     * Values below 0 or above 1 will be interpreted as 0 or 1, respectively.\n     * Omitting this prop will result in an \"indeterminate\" progress meter that fills the entire bar.\n     */\n    value?: number;\n}\n\nexport class ProgressBar extends React.PureComponent<IProgressBarProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.ProgressBar`;\n\n    public render() {\n        const { animate = true, className, intent, stripes = true, value } = this.props;\n        const classes = classNames(\n            Classes.PROGRESS_BAR,\n            Classes.intentClass(intent),\n            { [Classes.PROGRESS_NO_ANIMATION]: !animate, [Classes.PROGRESS_NO_STRIPES]: !stripes },\n            className,\n        );\n        // don't set width if value is null (rely on default CSS value)\n        const width = value == null ? null : 100 * clamp(value, 0, 1) + \"%\";\n\n        return (\n            <div className={classes}>\n                <div className={Classes.PROGRESS_METER} style={{ width }} />\n            </div>\n        );\n    }\n}\n","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport { Intent, IProps } from \"../../common\";\n\nexport const HandleType = {\n    /** A full handle appears as a small square. */\n    FULL: \"full\" as \"full\",\n\n    /** A start handle appears as the left or top half of a square. */\n    START: \"start\" as \"start\",\n\n    /** An end handle appears as the right or bottom half of a square. */\n    END: \"end\" as \"end\",\n};\nexport type HandleType = typeof HandleType[keyof typeof HandleType];\n\nexport const HandleInteractionKind = {\n    /** Locked handles prevent other handles from being dragged past then. */\n    LOCK: \"lock\" as \"lock\",\n\n    /** Push handles move overlapping handles with them as they are dragged. */\n    PUSH: \"push\" as \"push\",\n\n    /**\n     * Handles marked \"none\" are not interactive and do not appear in the UI.\n     * They serve only to break the track into subsections that can be colored separately.\n     */\n    NONE: \"none\" as \"none\",\n};\nexport type HandleInteractionKind = typeof HandleInteractionKind[keyof typeof HandleInteractionKind];\n\nexport interface IHandleProps extends IProps {\n    /** Numeric value of this handle. */\n    value: number;\n\n    /** Intent for the track segment immediately after this handle, taking priority over `intentBefore`. */\n    intentAfter?: Intent;\n\n    /** Intent for the track segment immediately before this handle. */\n    intentBefore?: Intent;\n\n    /**\n     * How this handle interacts with other handles.\n     * @default \"lock\"\n     */\n    interactionKind?: HandleInteractionKind;\n\n    /**\n     * Callback invoked when this handle's value is changed due to a drag\n     * interaction. Note that \"push\" interactions can cause multiple handles to\n     * update at the same time.\n     */\n    onChange?: (newValue: number) => void;\n\n    /** Callback invoked when this handle is released (the end of a drag interaction). */\n    onRelease?: (newValue: number) => void;\n\n    /**\n     * Handle appearance type.\n     * @default \"full\"\n     */\n    type?: HandleType;\n}\n","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n * \n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\n/** Helper function for formatting ratios as CSS percentage values. */\nexport function formatPercentage(ratio: number) {\n    return `${(ratio * 100).toFixed(2)}%`;\n}\n\n/**\n * Mutates the values array by filling all the values between start and end index (inclusive) with the fill value.\n */\nexport function fillValues<T>(values: T[], startIndex: number, endIndex: number, fillValue: T) {\n    const inc = startIndex < endIndex ? 1 : -1;\n    for (let index = startIndex; index !== endIndex + inc; index += inc) {\n        values[index] = fillValue;\n    }\n}\n\n/**\n * Returns the minimum element of an array as determined by comparing the results of calling the arg function on each\n * element of the array. The function will only be called once per element.\n */\nexport function argMin<T>(values: T[], argFn: (value: T) => any): T | undefined {\n    if (values.length === 0) {\n        return undefined;\n    }\n\n    let minValue = values[0];\n    let minArg = argFn(minValue);\n\n    for (let index = 1; index < values.length; index++) {\n        const value = values[index];\n        const arg = argFn(value);\n        if (arg < minArg) {\n            minValue = value;\n            minArg = arg;\n        }\n    }\n\n    return minValue;\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { AbstractPureComponent } from \"../../common/abstractPureComponent\";\nimport * as Classes from \"../../common/classes\";\nimport * as Keys from \"../../common/keys\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { clamp, safeInvoke } from \"../../common/utils\";\nimport { IHandleProps } from \"./handleProps\";\nimport { formatPercentage } from \"./sliderUtils\";\n\n/**\n * Props for the internal <Handle> component needs some additional info from the parent Slider.\n * N.B. some properties need to be optional for spread in slider.tsx to work\n */\nexport interface IInternalHandleProps extends IHandleProps {\n    disabled?: boolean;\n    label: React.ReactChild;\n    max?: number;\n    min?: number;\n    stepSize?: number;\n    tickSize?: number;\n    tickSizeRatio?: number;\n    vertical?: boolean;\n}\n\nexport interface IHandleState {\n    /** whether slider handle is currently being dragged */\n    isMoving?: boolean;\n}\n\n// props that require number values, for validation\nconst NUMBER_PROPS = [\"max\", \"min\", \"stepSize\", \"tickSize\", \"value\"];\n\n/** Internal component for a Handle with click/drag/keyboard logic to determine a new value. */\nexport class Handle extends AbstractPureComponent<IInternalHandleProps, IHandleState> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.SliderHandle`;\n\n    public state = {\n        isMoving: false,\n    };\n\n    private handleElement: HTMLElement;\n    private refHandlers = {\n        handle: (el: HTMLSpanElement) => (this.handleElement = el),\n    };\n\n    public componentDidMount() {\n        // The first time this component renders, it has no ref to the handle and thus incorrectly centers the handle.\n        // Therefore, on the first mount, force a re-render to center the handle with the ref'd component.\n        this.forceUpdate();\n    }\n\n    public render() {\n        const { className, disabled, label, min, tickSizeRatio, value, vertical } = this.props;\n        const { isMoving } = this.state;\n\n        // The handle midpoint of RangeSlider is actually shifted by a margin to\n        // be on the edge of the visible handle element. Because the midpoint\n        // calculation does not take this margin into account, we instead\n        // measure the long side (which is equal to the short side plus the\n        // margin).\n        const { handleMidpoint } = this.getHandleMidpointAndOffset(this.handleElement, true);\n        const offsetRatio = (value - min) * tickSizeRatio;\n        const offsetCalc = `calc(${formatPercentage(offsetRatio)} - ${handleMidpoint}px)`;\n        const style: React.CSSProperties = vertical ? { bottom: offsetCalc } : { left: offsetCalc };\n\n        return (\n            <span\n                className={classNames(Classes.SLIDER_HANDLE, { [Classes.ACTIVE]: isMoving }, className)}\n                onKeyDown={disabled ? null : this.handleKeyDown}\n                onKeyUp={disabled ? null : this.handleKeyUp}\n                onMouseDown={disabled ? null : this.beginHandleMovement}\n                onTouchStart={disabled ? null : this.beginHandleTouchMovement}\n                ref={this.refHandlers.handle}\n                style={style}\n                tabIndex={0}\n            >\n                {label == null ? null : <span className={Classes.SLIDER_LABEL}>{label}</span>}\n            </span>\n        );\n    }\n\n    public componentWillUnmount() {\n        this.removeDocumentEventListeners();\n    }\n\n    /** Convert client pixel to value between min and max. */\n    public clientToValue(clientPixel: number) {\n        const { stepSize, tickSize, value, vertical } = this.props;\n        if (this.handleElement == null) {\n            return value;\n        }\n\n        // #1769: this logic doesn't work perfectly when the tick size is\n        // smaller than the handle size; it may be off by a tick or two.\n        const clientPixelNormalized = vertical ? window.innerHeight - clientPixel : clientPixel;\n        const handleCenterPixel = this.getHandleElementCenterPixel(this.handleElement);\n        const pixelDelta = clientPixelNormalized - handleCenterPixel;\n\n        if (isNaN(pixelDelta)) {\n            return value;\n        }\n        // convert pixels to range value in increments of `stepSize`\n        return value + Math.round(pixelDelta / (tickSize * stepSize)) * stepSize;\n    }\n\n    public mouseEventClientOffset(event: MouseEvent | React.MouseEvent<HTMLElement>) {\n        return this.props.vertical ? event.clientY : event.clientX;\n    }\n\n    public touchEventClientOffset(event: TouchEvent | React.TouchEvent<HTMLElement>) {\n        const touch = event.changedTouches[0];\n        return this.props.vertical ? touch.clientY : touch.clientX;\n    }\n\n    public beginHandleMovement = (event: MouseEvent | React.MouseEvent<HTMLElement>) => {\n        document.addEventListener(\"mousemove\", this.handleHandleMovement);\n        document.addEventListener(\"mouseup\", this.endHandleMovement);\n        this.setState({ isMoving: true });\n        this.changeValue(this.clientToValue(this.mouseEventClientOffset(event)));\n    };\n\n    public beginHandleTouchMovement = (event: TouchEvent | React.TouchEvent<HTMLElement>) => {\n        document.addEventListener(\"touchmove\", this.handleHandleTouchMovement);\n        document.addEventListener(\"touchend\", this.endHandleTouchMovement);\n        document.addEventListener(\"touchcancel\", this.endHandleTouchMovement);\n        this.setState({ isMoving: true });\n        this.changeValue(this.clientToValue(this.touchEventClientOffset(event)));\n    };\n\n    protected validateProps(props: IInternalHandleProps) {\n        for (const prop of NUMBER_PROPS) {\n            if (typeof (props as any)[prop] !== \"number\") {\n                throw new Error(`[Blueprint] <Handle> requires number value for ${prop} prop`);\n            }\n        }\n    }\n\n    private endHandleMovement = (event: MouseEvent) => {\n        this.handleMoveEndedAt(this.mouseEventClientOffset(event));\n    };\n\n    private endHandleTouchMovement = (event: TouchEvent) => {\n        this.handleMoveEndedAt(this.touchEventClientOffset(event));\n    };\n\n    private handleMoveEndedAt = (clientPixel: number) => {\n        this.removeDocumentEventListeners();\n        this.setState({ isMoving: false });\n        // always invoke onRelease; changeValue may call onChange if value is different\n        const { onRelease } = this.props;\n        const finalValue = this.changeValue(this.clientToValue(clientPixel));\n        safeInvoke(onRelease, finalValue);\n    };\n\n    private handleHandleMovement = (event: MouseEvent) => {\n        this.handleMovedTo(this.mouseEventClientOffset(event));\n    };\n\n    private handleHandleTouchMovement = (event: TouchEvent) => {\n        this.handleMovedTo(this.touchEventClientOffset(event));\n    };\n\n    private handleMovedTo = (clientPixel: number) => {\n        if (this.state.isMoving && !this.props.disabled) {\n            this.changeValue(this.clientToValue(clientPixel));\n        }\n    };\n\n    private handleKeyDown = (event: React.KeyboardEvent<HTMLSpanElement>) => {\n        const { stepSize, value } = this.props;\n        const { which } = event;\n        if (which === Keys.ARROW_DOWN || which === Keys.ARROW_LEFT) {\n            this.changeValue(value - stepSize);\n            // this key event has been handled! prevent browser scroll on up/down\n            event.preventDefault();\n        } else if (which === Keys.ARROW_UP || which === Keys.ARROW_RIGHT) {\n            this.changeValue(value + stepSize);\n            event.preventDefault();\n        }\n    };\n\n    private handleKeyUp = (event: React.KeyboardEvent<HTMLSpanElement>) => {\n        if ([Keys.ARROW_UP, Keys.ARROW_DOWN, Keys.ARROW_LEFT, Keys.ARROW_RIGHT].indexOf(event.which) >= 0) {\n            safeInvoke(this.props.onRelease, this.props.value);\n        }\n    };\n\n    /** Clamp value and invoke callback if it differs from current value */\n    private changeValue(newValue: number, callback = this.props.onChange) {\n        newValue = this.clamp(newValue);\n        if (!isNaN(newValue) && this.props.value !== newValue) {\n            safeInvoke(callback, newValue);\n        }\n        return newValue;\n    }\n\n    /** Clamp value between min and max props */\n    private clamp(value: number) {\n        return clamp(value, this.props.min, this.props.max);\n    }\n\n    private getHandleElementCenterPixel(handleElement: HTMLElement) {\n        const { handleMidpoint, handleOffset } = this.getHandleMidpointAndOffset(handleElement);\n        return handleOffset + handleMidpoint;\n    }\n\n    private getHandleMidpointAndOffset(handleElement: HTMLElement, useOppositeDimension = false) {\n        if (handleElement == null) {\n            return { handleMidpoint: 0, handleOffset: 0 };\n        }\n\n        const { vertical } = this.props;\n\n        // getBoundingClientRect().height includes border size; clientHeight does not.\n        const handleRect = handleElement.getBoundingClientRect();\n\n        const sizeKey = vertical\n            ? useOppositeDimension ? \"width\" : \"height\"\n            : useOppositeDimension ? \"height\" : \"width\";\n\n        // \"bottom\" value seems to be consistently incorrect, so explicitly\n        // calculate it using the window offset instead.\n        const handleOffset = vertical ? window.innerHeight - (handleRect.top + handleRect[sizeKey]) : handleRect.left;\n\n        return { handleMidpoint: handleRect[sizeKey] / 2, handleOffset };\n    }\n\n    private removeDocumentEventListeners() {\n        document.removeEventListener(\"mousemove\", this.handleHandleMovement);\n        document.removeEventListener(\"mouseup\", this.endHandleMovement);\n        document.removeEventListener(\"touchmove\", this.handleHandleTouchMovement);\n        document.removeEventListener(\"touchend\", this.endHandleTouchMovement);\n        document.removeEventListener(\"touchcancel\", this.endHandleTouchMovement);\n    }\n}\n","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { Classes, Intent } from \"../../common\";\nimport { AbstractPureComponent } from \"../../common/abstractPureComponent\";\nimport * as Errors from \"../../common/errors\";\nimport { DISPLAYNAME_PREFIX, IProps } from \"../../common/props\";\nimport * as Utils from \"../../common/utils\";\nimport { Handle } from \"./handle\";\nimport { HandleInteractionKind, HandleType, IHandleProps } from \"./handleProps\";\nimport { argMin, fillValues, formatPercentage } from \"./sliderUtils\";\n\n/**\n * SFC used to pass slider handle props to a `MultiSlider`.\n * This element is not rendered directly.\n */\nconst MultiSliderHandle: React.SFC<IHandleProps> = () => null;\nMultiSliderHandle.displayName = `${DISPLAYNAME_PREFIX}.MultiSliderHandle`;\n\n// TODO: move this to props.ts in a follow up PR\n/** A convenience type for React's optional children prop. */\nexport interface IChildrenProps {\n    children?: React.ReactNode;\n}\n\nexport interface ISliderBaseProps extends IProps {\n    /**\n     * Whether the slider is non-interactive.\n     * @default false\n     */\n    disabled?: boolean;\n\n    /**\n     * Increment between successive labels. Must be greater than zero.\n     * @default 1\n     */\n    labelStepSize?: number;\n\n    /**\n     * Number of decimal places to use when rendering label value. Default value is the number of\n     * decimals used in the `stepSize` prop. This prop has _no effect_ if you supply a custom\n     * `labelRenderer` callback.\n     * @default inferred from stepSize\n     */\n    labelPrecision?: number;\n\n    /**\n     * Maximum value of the slider.\n     * @default 10\n     */\n    max?: number;\n\n    /**\n     * Minimum value of the slider.\n     * @default 0\n     */\n    min?: number;\n\n    /**\n     * Whether a solid bar should be rendered on the track between current and initial values,\n     * or between handles for `RangeSlider`.\n     * @default true\n     */\n    showTrackFill?: boolean;\n\n    /**\n     * Increment between successive values; amount by which the handle moves. Must be greater than zero.\n     * @default 1\n     */\n    stepSize?: number;\n\n    /**\n     * Callback to render a single label. Useful for formatting numbers as currency or percentages.\n     * If `true`, labels will use number value formatted to `labelPrecision` decimal places.\n     * If `false`, labels will not be shown.\n     * @default true\n     */\n    labelRenderer?: boolean | ((value: number) => string | JSX.Element);\n\n    /**\n     * Whether to show the slider in a vertical orientation.\n     * @default false\n     */\n    vertical?: boolean;\n}\n\nexport interface IMultiSliderProps extends ISliderBaseProps {\n    /** Default intent of a track segment, used only if no handle specifies `intentBefore/After`. */\n    defaultTrackIntent?: Intent;\n\n    /** Callback invoked when a handle value changes. Receives handle values in sorted order. */\n    onChange?(values: number[]): void;\n\n    /** Callback invoked when a handle is released. Receives handle values in sorted order. */\n    onRelease?(values: number[]): void;\n}\n\nexport interface ISliderState {\n    labelPrecision?: number;\n    /** the client size, in pixels, of one tick */\n    tickSize?: number;\n    /** the size of one tick as a ratio of the component's client size */\n    tickSizeRatio?: number;\n}\n\nexport class MultiSlider extends AbstractPureComponent<IMultiSliderProps, ISliderState> {\n    public static defaultSliderProps: ISliderBaseProps = {\n        disabled: false,\n        labelStepSize: 1,\n        max: 10,\n        min: 0,\n        showTrackFill: true,\n        stepSize: 1,\n        vertical: false,\n    };\n\n    public static defaultProps: IMultiSliderProps = {\n        ...MultiSlider.defaultSliderProps,\n        defaultTrackIntent: Intent.NONE,\n    };\n\n    public static displayName = `${DISPLAYNAME_PREFIX}.MultiSlider`;\n\n    public static Handle = MultiSliderHandle;\n\n    public state: ISliderState = {\n        labelPrecision: getLabelPrecision(this.props),\n        tickSize: 0,\n        tickSizeRatio: 0,\n    };\n\n    private handleElements: Handle[] = [];\n    private handleProps: IHandleProps[];\n\n    private trackElement: HTMLElement | null;\n\n    public render() {\n        const classes = classNames(\n            Classes.SLIDER,\n            {\n                [Classes.DISABLED]: this.props.disabled,\n                [`${Classes.SLIDER}-unlabeled`]: this.props.labelRenderer === false,\n                [Classes.VERTICAL]: this.props.vertical,\n            },\n            this.props.className,\n        );\n        return (\n            <div className={classes} onMouseDown={this.maybeHandleTrackClick} onTouchStart={this.maybeHandleTrackTouch}>\n                <div className={Classes.SLIDER_TRACK} ref={ref => (this.trackElement = ref)}>\n                    {this.renderTracks()}\n                </div>\n                <div className={Classes.SLIDER_AXIS}>{this.renderLabels()}</div>\n                {this.renderHandles()}\n            </div>\n        );\n    }\n\n    public componentWillMount() {\n        this.handleProps = getSortedInteractiveHandleProps(this.props);\n    }\n\n    public componentDidMount() {\n        this.updateTickSize();\n    }\n\n    public componentDidUpdate() {\n        this.updateTickSize();\n    }\n\n    public componentWillReceiveProps(nextProps: IMultiSliderProps & IChildrenProps) {\n        this.setState({ labelPrecision: this.getLabelPrecision(nextProps) });\n\n        const newHandleProps = getSortedInteractiveHandleProps(nextProps);\n        if (newHandleProps.length !== this.handleProps.length) {\n            this.handleElements = [];\n        }\n        this.handleProps = newHandleProps;\n    }\n\n    protected validateProps(props: IMultiSliderProps & IChildrenProps) {\n        if (props.stepSize <= 0) {\n            throw new Error(Errors.SLIDER_ZERO_STEP);\n        }\n        if (props.labelStepSize <= 0) {\n            throw new Error(Errors.SLIDER_ZERO_LABEL_STEP);\n        }\n\n        let anyInvalidChildren = false;\n        React.Children.forEach(props.children, child => {\n            // allow boolean coercion to omit nulls and false values\n            if (child && !Utils.isElementOfType(child, MultiSlider.Handle)) {\n                anyInvalidChildren = true;\n            }\n        });\n        if (anyInvalidChildren) {\n            throw new Error(Errors.MULTISLIDER_INVALID_CHILD);\n        }\n    }\n\n    private formatLabel(value: number): React.ReactChild {\n        const { labelRenderer } = this.props;\n        if (labelRenderer === false) {\n            return null;\n        } else if (Utils.isFunction(labelRenderer)) {\n            return labelRenderer(value);\n        } else {\n            return value.toFixed(this.state.labelPrecision);\n        }\n    }\n\n    private renderLabels() {\n        if (this.props.labelRenderer === false) {\n            return null;\n        }\n        const { labelStepSize, max, min } = this.props;\n\n        const labels: JSX.Element[] = [];\n        const stepSizeRatio = this.state.tickSizeRatio * labelStepSize;\n        // step size lends itself naturally to a `for` loop\n        // tslint:disable-next-line:one-variable-per-declaration ban-comma-operator\n        for (\n            let i = min, offsetRatio = 0;\n            i < max || Utils.approxEqual(i, max);\n            i += labelStepSize, offsetRatio += stepSizeRatio\n        ) {\n            const offsetPercentage = formatPercentage(offsetRatio);\n            const style = this.props.vertical ? { bottom: offsetPercentage } : { left: offsetPercentage };\n            labels.push(\n                <div className={Classes.SLIDER_LABEL} key={i} style={style}>\n                    {this.formatLabel(i)}\n                </div>,\n            );\n        }\n        return labels;\n    }\n\n    private renderTracks() {\n        const trackStops = getSortedHandleProps(this.props);\n        trackStops.push({ value: this.props.max });\n\n        // render from current to previous, then increment previous\n        let previous: IHandleProps = { value: this.props.min };\n        const handles: JSX.Element[] = [];\n        for (let index = 0; index < trackStops.length; index++) {\n            const current = trackStops[index];\n            handles.push(this.renderTrackFill(index, previous, current));\n            previous = current;\n        }\n        return handles;\n    }\n\n    private renderTrackFill(index: number, start: IHandleProps, end: IHandleProps) {\n        // ensure startRatio <= endRatio\n        const [startRatio, endRatio] = [this.getOffsetRatio(start.value), this.getOffsetRatio(end.value)].sort();\n        const startOffset = formatPercentage(startRatio);\n        const endOffset = formatPercentage(1 - endRatio);\n        const style: React.CSSProperties = this.props.vertical\n            ? { bottom: startOffset, top: endOffset, left: 0 }\n            : { left: startOffset, right: endOffset, top: 0 };\n\n        const classes = classNames(Classes.SLIDER_PROGRESS, Classes.intentClass(this.getTrackIntent(start, end)));\n        return <div key={`track-${index}`} className={classes} style={style} />;\n    }\n\n    private renderHandles() {\n        const { disabled, max, min, stepSize, vertical } = this.props;\n        return this.handleProps.map(({ value, type }, index) => (\n            <Handle\n                className={classNames({\n                    [Classes.START]: type === HandleType.START,\n                    [Classes.END]: type === HandleType.END,\n                })}\n                disabled={disabled}\n                key={`${index}-${this.handleProps.length}`}\n                label={this.formatLabel(value)}\n                max={max}\n                min={min}\n                onChange={this.getHandlerForIndex(index, this.handleChange)}\n                onRelease={this.getHandlerForIndex(index, this.handleRelease)}\n                ref={this.addHandleRef}\n                stepSize={stepSize}\n                tickSize={this.state.tickSize}\n                tickSizeRatio={this.state.tickSizeRatio}\n                value={value}\n                vertical={vertical}\n            />\n        ));\n    }\n\n    private addHandleRef = (ref: Handle) => {\n        if (ref != null) {\n            this.handleElements.push(ref);\n        }\n    };\n\n    private maybeHandleTrackClick = (event: React.MouseEvent<HTMLDivElement>) => {\n        if (this.canHandleTrackEvent(event)) {\n            const foundHandle = this.nearestHandleForValue(this.handleElements, handle =>\n                handle.mouseEventClientOffset(event),\n            );\n            if (foundHandle) {\n                foundHandle.beginHandleMovement(event);\n            }\n        }\n    };\n\n    private maybeHandleTrackTouch = (event: React.TouchEvent<HTMLDivElement>) => {\n        if (this.canHandleTrackEvent(event)) {\n            const foundHandle = this.nearestHandleForValue(this.handleElements, handle =>\n                handle.touchEventClientOffset(event),\n            );\n            if (foundHandle) {\n                foundHandle.beginHandleTouchMovement(event);\n            }\n        }\n    };\n\n    private canHandleTrackEvent = (event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>) => {\n        const target = event.target as HTMLElement;\n        // ensure event does not come from inside the handle\n        return !this.props.disabled && target.closest(`.${Classes.SLIDER_HANDLE}`) == null;\n    };\n\n    private nearestHandleForValue(handles: Handle[], getOffset: (handle: Handle) => number): Handle | undefined {\n        return argMin(handles, handle => {\n            const offset = getOffset(handle);\n            const offsetValue = handle.clientToValue(offset);\n            const handleValue = handle.props.value!;\n            return Math.abs(offsetValue - handleValue);\n        });\n    }\n\n    private getHandlerForIndex = (index: number, callback?: (values: number[]) => void) => {\n        return (newValue: number) => {\n            Utils.safeInvoke(callback, this.getNewHandleValues(newValue, index));\n        };\n    };\n\n    private getNewHandleValues(newValue: number, oldIndex: number) {\n        const oldValues = this.handleProps.map(handle => handle.value);\n        const newValues = oldValues.slice();\n        newValues[oldIndex] = newValue;\n        newValues.sort((left, right) => left - right);\n\n        const newIndex = newValues.indexOf(newValue);\n        const lockIndex = this.findFirstLockedHandleIndex(oldIndex, newIndex);\n        if (lockIndex === -1) {\n            fillValues(newValues, oldIndex, newIndex, newValue);\n        } else {\n            // If pushing past a locked handle, discard the new value and only make the updates to clamp values against the lock.\n            const lockValue = oldValues[lockIndex];\n            fillValues(oldValues, oldIndex, lockIndex, lockValue);\n            return oldValues;\n        }\n\n        return newValues;\n    }\n\n    private findFirstLockedHandleIndex(startIndex: number, endIndex: number): number {\n        const inc = startIndex < endIndex ? 1 : -1;\n        for (let index = startIndex + inc; index !== endIndex + inc; index += inc) {\n            if (this.handleProps[index].interactionKind !== HandleInteractionKind.PUSH) {\n                return index;\n            }\n        }\n        return -1;\n    }\n\n    private handleChange = (newValues: number[]) => {\n        const oldValues = this.handleProps.map(handle => handle.value);\n        if (!Utils.arraysEqual(newValues, oldValues)) {\n            Utils.safeInvoke(this.props.onChange, newValues);\n            this.handleProps.forEach((handle, index) => {\n                if (oldValues[index] !== newValues[index]) {\n                    Utils.safeInvoke(handle.onChange, newValues[index]);\n                }\n            });\n        }\n    };\n\n    private handleRelease = (newValues: number[]) => {\n        Utils.safeInvoke(this.props.onRelease, newValues);\n        this.handleProps.forEach((handle, index) => {\n            Utils.safeInvoke(handle.onRelease, newValues[index]);\n        });\n    };\n\n    private getLabelPrecision({ labelPrecision, stepSize }: IMultiSliderProps) {\n        // infer default label precision from stepSize because that's how much the handle moves.\n        return labelPrecision == null ? Utils.countDecimalPlaces(stepSize) : labelPrecision;\n    }\n\n    private getOffsetRatio(value: number) {\n        return Utils.clamp((value - this.props.min) * this.state.tickSizeRatio, 0, 1);\n    }\n\n    private getTrackIntent(start: IHandleProps, end?: IHandleProps): Intent {\n        if (!this.props.showTrackFill) {\n            return Intent.NONE;\n        }\n        if (start.intentAfter !== undefined) {\n            return start.intentAfter;\n        } else if (end !== undefined && end.intentBefore !== undefined) {\n            return end.intentBefore;\n        }\n        return this.props.defaultTrackIntent;\n    }\n\n    private updateTickSize() {\n        if (this.trackElement != null) {\n            const trackSize = this.props.vertical ? this.trackElement.clientHeight : this.trackElement.clientWidth;\n            const tickSizeRatio = 1 / ((this.props.max as number) - (this.props.min as number));\n            const tickSize = trackSize * tickSizeRatio;\n            this.setState({ tickSize, tickSizeRatio });\n        }\n    }\n}\n\nfunction getLabelPrecision({ labelPrecision, stepSize }: IMultiSliderProps) {\n    // infer default label precision from stepSize because that's how much the handle moves.\n    return labelPrecision == null ? Utils.countDecimalPlaces(stepSize) : labelPrecision;\n}\n\nfunction getSortedInteractiveHandleProps(props: IChildrenProps): IHandleProps[] {\n    return getSortedHandleProps(props, childProps => childProps.interactionKind !== HandleInteractionKind.NONE);\n}\n\nfunction getSortedHandleProps({ children }: IChildrenProps, predicate: (props: IHandleProps) => boolean = () => true) {\n    const maybeHandles = React.Children.map(\n        children,\n        child => (Utils.isElementOfType(child, MultiSlider.Handle) && predicate(child.props) ? child.props : null),\n    );\n    let handles = maybeHandles != null ? maybeHandles : [];\n    handles = handles.filter(handle => handle !== null);\n    handles.sort((left, right) => left.value - right.value);\n    return handles;\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport * as React from \"react\";\n\nimport { AbstractPureComponent } from \"../../common/abstractPureComponent\";\nimport * as Errors from \"../../common/errors\";\nimport { Intent } from \"../../common/intent\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { ISliderBaseProps, MultiSlider } from \"./multiSlider\";\n\nexport type NumberRange = [number, number];\n\nenum RangeIndex {\n    START = 0,\n    END = 1,\n}\n\nexport interface IRangeSliderProps extends ISliderBaseProps {\n    /**\n     * Range value of slider. Handles will be rendered at each position in the range.\n     * @default [0, 10]\n     */\n    value?: NumberRange;\n\n    /** Callback invoked when the range value changes. */\n    onChange?(value: NumberRange): void;\n\n    /** Callback invoked when a handle is released. */\n    onRelease?(value: NumberRange): void;\n}\n\nexport class RangeSlider extends AbstractPureComponent<IRangeSliderProps> {\n    public static defaultProps: IRangeSliderProps = {\n        ...MultiSlider.defaultSliderProps,\n        value: [0, 10],\n    };\n\n    public static displayName = `${DISPLAYNAME_PREFIX}.RangeSlider`;\n\n    public render() {\n        const { value, ...props } = this.props;\n        return (\n            <MultiSlider {...props}>\n                <MultiSlider.Handle value={value[RangeIndex.START]} type=\"start\" intentAfter={Intent.PRIMARY} />\n                <MultiSlider.Handle value={value[RangeIndex.END]} type=\"end\" />\n            </MultiSlider>\n        );\n    }\n\n    protected validateProps(props: IRangeSliderProps) {\n        const { value } = props;\n        if (value == null || value[RangeIndex.START] == null || value[RangeIndex.END] == null) {\n            throw new Error(Errors.RANGESLIDER_NULL_VALUE);\n        }\n    }\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport * as React from \"react\";\n\nimport { AbstractPureComponent } from \"../../common/abstractPureComponent\";\nimport { Intent } from \"../../common/intent\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { ISliderBaseProps, MultiSlider } from \"./multiSlider\";\n\nexport interface ISliderProps extends ISliderBaseProps {\n    /**\n     * Initial value of the slider. This determines the other end of the\n     * track fill: from `initialValue` to `value`.\n     * @default 0\n     */\n    initialValue?: number;\n\n    /**\n     * Value of slider.\n     * @default 0\n     */\n    value?: number;\n\n    /** Callback invoked when the value changes. */\n    onChange?(value: number): void;\n\n    /** Callback invoked when the handle is released. */\n    onRelease?(value: number): void;\n}\n\nexport class Slider extends AbstractPureComponent<ISliderProps> {\n    public static defaultProps: ISliderProps = {\n        ...MultiSlider.defaultSliderProps,\n        initialValue: 0,\n        value: 0,\n    };\n\n    public static displayName = `${DISPLAYNAME_PREFIX}.Slider`;\n\n    public render() {\n        const { initialValue, value, onChange, onRelease, ...props } = this.props;\n        return (\n            <MultiSlider {...props}>\n                <MultiSlider.Handle\n                    value={value}\n                    intentAfter={value < initialValue ? Intent.PRIMARY : undefined}\n                    intentBefore={value >= initialValue ? Intent.PRIMARY : undefined}\n                    onChange={onChange}\n                    onRelease={onRelease}\n                />\n                <MultiSlider.Handle value={initialValue} interactionKind=\"none\" />\n            </MultiSlider>\n        );\n    }\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, IProps } from \"../../common/props\";\n\nexport type TabId = string | number;\n\nexport interface ITabProps extends IProps {\n    /**\n     * Content of tab title, rendered in a list above the active panel.\n     * Can also be set via the `title` prop.\n     */\n    children?: React.ReactNode;\n\n    /**\n     * Whether the tab is disabled.\n     * @default false\n     */\n    disabled?: boolean;\n\n    /**\n     * Unique identifier used to control which tab is selected\n     * and to generate ARIA attributes for accessibility.\n     */\n    id: TabId;\n\n    /**\n     * Panel content, rendered by the parent `Tabs` when this tab is active.\n     * If omitted, no panel will be rendered for this tab.\n     */\n    panel?: JSX.Element;\n\n    /**\n     * Content of tab title element, rendered in a list above the active panel.\n     * Can also be set via React `children`.\n     */\n    title?: React.ReactNode;\n}\n\nexport class Tab extends React.PureComponent<ITabProps, {}> {\n    public static defaultProps: ITabProps = {\n        disabled: false,\n        id: undefined,\n    };\n\n    public static displayName = `${DISPLAYNAME_PREFIX}.Tab`;\n\n    // this component is never rendered directly; see Tabs#renderTabPanel()\n    /* istanbul ignore next */\n    public render() {\n        const { className, panel } = this.props;\n        return (\n            <div className={classNames(Classes.TAB_PANEL, className)} role=\"tablist\">\n                {panel}\n            </div>\n        );\n    }\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { ITabProps, TabId } from \"./tab\";\n\nexport interface ITabTitleProps extends ITabProps {\n    /** Handler invoked when this tab is clicked. */\n    onClick: (id: TabId, event: React.MouseEvent<HTMLElement>) => void;\n\n    /** ID of the parent `Tabs` to which this tab belongs. Used to generate ID for ARIA attributes. */\n    parentId: TabId;\n\n    /** Whether the tab is currently selected. */\n    selected: boolean;\n}\n\nexport class TabTitle extends React.PureComponent<ITabTitleProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.TabTitle`;\n\n    public render() {\n        const { disabled, id, parentId, selected } = this.props;\n        return (\n            <div\n                aria-controls={generateTabPanelId(parentId, id)}\n                aria-disabled={disabled}\n                aria-expanded={selected}\n                aria-selected={selected}\n                className={classNames(Classes.TAB, this.props.className)}\n                data-tab-id={id}\n                id={generateTabTitleId(parentId, id)}\n                onClick={disabled ? undefined : this.handleClick}\n                role=\"tab\"\n                tabIndex={disabled ? undefined : 0}\n            >\n                {this.props.title}\n                {this.props.children}\n            </div>\n        );\n    }\n\n    private handleClick = (e: React.MouseEvent<HTMLElement>) => this.props.onClick(this.props.id, e);\n}\n\nexport function generateTabPanelId(parentId: TabId, tabId: TabId) {\n    return `${Classes.TAB_PANEL}_${parentId}_${tabId}`;\n}\n\nexport function generateTabTitleId(parentId: TabId, tabId: TabId) {\n    return `${Classes.TAB}-title_${parentId}_${tabId}`;\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { AbstractPureComponent } from \"../../common/abstractPureComponent\";\nimport * as Classes from \"../../common/classes\";\nimport * as Keys from \"../../common/keys\";\nimport { DISPLAYNAME_PREFIX, IProps } from \"../../common/props\";\nimport * as Utils from \"../../common/utils\";\n\nimport { ITabProps, Tab, TabId } from \"./tab\";\nimport { generateTabPanelId, generateTabTitleId, TabTitle } from \"./tabTitle\";\n\nexport const Expander: React.SFC<{}> = () => <div className={Classes.FLEX_EXPANDER} />;\n\ntype TabElement = React.ReactElement<ITabProps & { children: React.ReactNode }>;\n\nconst TAB_SELECTOR = `.${Classes.TAB}`;\n\nexport interface ITabsProps extends IProps {\n    /**\n     * Whether the selected tab indicator should animate its movement.\n     * @default true\n     */\n    animate?: boolean;\n\n    /**\n     * Initial selected tab `id`, for uncontrolled usage.\n     * Note that this prop refers only to `<Tab>` children; other types of elements are ignored.\n     * @default first tab\n     */\n    defaultSelectedTabId?: TabId;\n\n    /**\n     * Unique identifier for this `Tabs` container. This will be combined with the `id` of each\n     * `Tab` child to generate ARIA accessibility attributes. IDs are required and should be\n     * unique on the page to support server-side rendering.\n     */\n    id: TabId;\n\n    /**\n     * If set to `true`, the tab titles will display with larger styling.\n     * This will apply large styles only to the tabs at this level, not to nested tabs.\n     * @default false\n     */\n    large?: boolean;\n\n    /**\n     * Whether inactive tab panels should be removed from the DOM and unmounted in React.\n     * This can be a performance enhancement when rendering many complex panels, but requires\n     * careful support for unmounting and remounting.\n     * @default false\n     */\n    renderActiveTabPanelOnly?: boolean;\n\n    /**\n     * Selected tab `id`, for controlled usage.\n     * Providing this prop will put the component in controlled mode.\n     * Unknown ids will result in empty selection (no errors).\n     */\n    selectedTabId?: TabId;\n\n    /**\n     * Whether to show tabs stacked vertically on the left side.\n     * @default false\n     */\n    vertical?: boolean;\n\n    /**\n     * A callback function that is invoked when a tab in the tab list is clicked.\n     */\n    onChange?(newTabId: TabId, prevTabId: TabId, event: React.MouseEvent<HTMLElement>): void;\n}\n\nexport interface ITabsState {\n    indicatorWrapperStyle?: React.CSSProperties;\n    selectedTabId?: TabId;\n}\n\nexport class Tabs extends AbstractPureComponent<ITabsProps, ITabsState> {\n    /** Insert a `Tabs.Expander` between any two children to right-align all subsequent children. */\n    public static Expander = Expander;\n\n    public static Tab = Tab;\n\n    public static defaultProps: Partial<ITabsProps> = {\n        animate: true,\n        large: false,\n        renderActiveTabPanelOnly: false,\n        vertical: false,\n    };\n\n    public static displayName = `${DISPLAYNAME_PREFIX}.Tabs`;\n\n    private tablistElement: HTMLDivElement;\n    private refHandlers = {\n        tablist: (tabElement: HTMLDivElement) => (this.tablistElement = tabElement),\n    };\n\n    constructor(props?: ITabsProps) {\n        super(props);\n        const selectedTabId = this.getInitialSelectedTabId();\n        this.state = { selectedTabId };\n    }\n\n    public render() {\n        const { indicatorWrapperStyle, selectedTabId } = this.state;\n\n        const tabTitles = React.Children.map(this.props.children, this.renderTabTitle);\n\n        const tabPanels = this.getTabChildren()\n            .filter(this.props.renderActiveTabPanelOnly ? tab => tab.props.id === selectedTabId : () => true)\n            .map(this.renderTabPanel);\n\n        const tabIndicator = this.props.animate ? (\n            <div className={Classes.TAB_INDICATOR_WRAPPER} style={indicatorWrapperStyle}>\n                <div className={Classes.TAB_INDICATOR} />\n            </div>\n        ) : null;\n\n        const classes = classNames(Classes.TABS, { [Classes.VERTICAL]: this.props.vertical }, this.props.className);\n        const tabListClasses = classNames(Classes.TAB_LIST, {\n            [Classes.LARGE]: this.props.large,\n        });\n\n        return (\n            <div className={classes}>\n                <div\n                    className={tabListClasses}\n                    onKeyDown={this.handleKeyDown}\n                    onKeyPress={this.handleKeyPress}\n                    ref={this.refHandlers.tablist}\n                    role=\"tablist\"\n                >\n                    {tabIndicator}\n                    {tabTitles}\n                </div>\n                {tabPanels}\n            </div>\n        );\n    }\n\n    public componentDidMount() {\n        this.moveSelectionIndicator();\n    }\n\n    public componentWillReceiveProps({ selectedTabId }: ITabsProps) {\n        if (selectedTabId !== undefined) {\n            // keep state in sync with controlled prop, so state is canonical source of truth\n            this.setState({ selectedTabId });\n        }\n    }\n\n    public componentDidUpdate(prevProps: ITabsProps, prevState: ITabsState) {\n        if (this.state.selectedTabId !== prevState.selectedTabId) {\n            this.moveSelectionIndicator();\n        } else if (prevState.selectedTabId != null) {\n            // comparing React nodes is difficult to do with simple logic, so\n            // shallowly compare just their props as a workaround.\n            const didChildrenChange = !Utils.arraysEqual(\n                this.getTabChildrenProps(prevProps),\n                this.getTabChildrenProps(),\n                Utils.shallowCompareKeys,\n            );\n            if (didChildrenChange) {\n                this.moveSelectionIndicator();\n            }\n        }\n    }\n\n    private getInitialSelectedTabId() {\n        // NOTE: providing an unknown ID will hide the selection\n        const { defaultSelectedTabId, selectedTabId } = this.props;\n        if (selectedTabId !== undefined) {\n            return selectedTabId;\n        } else if (defaultSelectedTabId !== undefined) {\n            return defaultSelectedTabId;\n        } else {\n            // select first tab in absence of user input\n            const tabs = this.getTabChildren();\n            return tabs.length === 0 ? undefined : tabs[0].props.id;\n        }\n    }\n\n    private getKeyCodeDirection(e: React.KeyboardEvent<HTMLElement>) {\n        if (isEventKeyCode(e, Keys.ARROW_LEFT, Keys.ARROW_UP)) {\n            return -1;\n        } else if (isEventKeyCode(e, Keys.ARROW_RIGHT, Keys.ARROW_DOWN)) {\n            return 1;\n        }\n        return undefined;\n    }\n\n    private getTabChildrenProps(props: ITabsProps & { children?: React.ReactNode } = this.props) {\n        return this.getTabChildren(props).map(child => child.props);\n    }\n\n    /** Filters children to only `<Tab>`s */\n    private getTabChildren(props: ITabsProps & { children?: React.ReactNode } = this.props) {\n        return React.Children.toArray(props.children).filter(isTabElement);\n    }\n\n    /** Queries root HTML element for all tabs with optional filter selector */\n    private getTabElements(subselector = \"\") {\n        if (this.tablistElement == null) {\n            return [];\n        }\n        return Array.from(this.tablistElement.querySelectorAll(TAB_SELECTOR + subselector));\n    }\n\n    private handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n        const focusedElement = document.activeElement.closest(TAB_SELECTOR);\n        // rest of this is potentially expensive and futile, so bail if no tab is focused\n        if (focusedElement == null) {\n            return;\n        }\n\n        // must rely on DOM state because we have no way of mapping `focusedElement` to a JSX.Element\n        const enabledTabElements = this.getTabElements().filter(el => el.getAttribute(\"aria-disabled\") === \"false\");\n        const focusedIndex = enabledTabElements.indexOf(focusedElement);\n        const direction = this.getKeyCodeDirection(e);\n\n        if (focusedIndex >= 0 && direction !== undefined) {\n            e.preventDefault();\n            const { length } = enabledTabElements;\n            // auto-wrapping at 0 and `length`\n            const nextFocusedIndex = (focusedIndex + direction + length) % length;\n            (enabledTabElements[nextFocusedIndex] as HTMLElement).focus();\n        }\n    };\n\n    private handleKeyPress = (e: React.KeyboardEvent<HTMLDivElement>) => {\n        const targetTabElement = (e.target as HTMLElement).closest(TAB_SELECTOR) as HTMLElement;\n        if (targetTabElement != null && isEventKeyCode(e, Keys.SPACE, Keys.ENTER)) {\n            e.preventDefault();\n            targetTabElement.click();\n        }\n    };\n\n    private handleTabClick = (newTabId: TabId, event: React.MouseEvent<HTMLElement>) => {\n        Utils.safeInvoke(this.props.onChange, newTabId, this.state.selectedTabId, event);\n        if (this.props.selectedTabId === undefined) {\n            this.setState({ selectedTabId: newTabId });\n        }\n    };\n\n    /**\n     * Calculate the new height, width, and position of the tab indicator.\n     * Store the CSS values so the transition animation can start.\n     */\n    private moveSelectionIndicator() {\n        if (this.tablistElement == null || !this.props.animate) {\n            return;\n        }\n\n        const tabIdSelector = `${TAB_SELECTOR}[data-tab-id=\"${this.state.selectedTabId}\"]`;\n        const selectedTabElement = this.tablistElement.querySelector(tabIdSelector) as HTMLElement;\n\n        let indicatorWrapperStyle: React.CSSProperties = { display: \"none\" };\n        if (selectedTabElement != null) {\n            const { clientHeight, clientWidth, offsetLeft, offsetTop } = selectedTabElement;\n            indicatorWrapperStyle = {\n                height: clientHeight,\n                transform: `translateX(${Math.floor(offsetLeft)}px) translateY(${Math.floor(offsetTop)}px)`,\n                width: clientWidth,\n            };\n        }\n        this.setState({ indicatorWrapperStyle });\n    }\n\n    private renderTabPanel = (tab: TabElement) => {\n        const { className, panel, id } = tab.props;\n        if (panel === undefined) {\n            return undefined;\n        }\n        return (\n            <div\n                aria-labelledby={generateTabTitleId(this.props.id, id)}\n                aria-hidden={id !== this.state.selectedTabId}\n                className={classNames(Classes.TAB_PANEL, className)}\n                id={generateTabPanelId(this.props.id, id)}\n                key={id}\n                role=\"tabpanel\"\n            >\n                {panel}\n            </div>\n        );\n    };\n\n    private renderTabTitle = (child: React.ReactChild) => {\n        if (isTabElement(child)) {\n            const { id } = child.props;\n            return (\n                <TabTitle\n                    {...child.props}\n                    parentId={this.props.id}\n                    onClick={this.handleTabClick}\n                    selected={id === this.state.selectedTabId}\n                />\n            );\n        }\n        return child;\n    };\n}\n\nfunction isEventKeyCode(e: React.KeyboardEvent<HTMLElement>, ...codes: number[]) {\n    return codes.indexOf(e.which) >= 0;\n}\n\nfunction isTabElement(child: any): child is TabElement {\n    return Utils.isElementOfType(child, Tab);\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { Classes, DISPLAYNAME_PREFIX, IIntentProps, IProps, Utils } from \"../../common\";\nimport { isReactNodeEmpty } from \"../../common/utils\";\nimport { Icon, IconName } from \"../icon/icon\";\nimport { Text } from \"../text/text\";\n\nexport interface ITagProps extends IProps, IIntentProps, React.HTMLAttributes<HTMLSpanElement> {\n    /**\n     * Whether the tag should appear in an active state.\n     * @default false\n     */\n    active?: boolean;\n\n    /** Name of a Blueprint UI icon (or an icon element) to render before the children. */\n    icon?: IconName | JSX.Element;\n\n    /**\n     * Whether the tag should visually respond to user interactions. If set\n     * to `true`, hovering over the tag will change its color and mouse cursor.\n     *\n     * Recommended when `onClick` is also defined.\n     *\n     * @default false\n     */\n    interactive?: boolean;\n\n    /**\n     * Whether this tag should use large styles.\n     * @default false\n     */\n    large?: boolean;\n\n    /**\n     * Whether this tag should use minimal styles.\n     * @default false\n     */\n    minimal?: boolean;\n\n    /**\n     * Whether tag content should be allowed to occupy multiple lines.\n     * If false, a single line of text will be truncated with an ellipsis if\n     * it overflows. Note that icons will be vertically centered relative to\n     * multiline text.\n     * @default false\n     */\n    multiline?: boolean;\n\n    /**\n     * Callback invoked when the tag is clicked.\n     * Recommended when `interactive` is `true`.\n     */\n    onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;\n\n    /**\n     * Click handler for remove button.\n     * The remove button will only be rendered if this prop is defined.\n     */\n    onRemove?: (e: React.MouseEvent<HTMLButtonElement>, tagProps: ITagProps) => void;\n\n    /** Name of a Blueprint UI icon (or an icon element) to render after the children. */\n    rightIcon?: IconName | JSX.Element;\n\n    /**\n     * Whether this tag should have rounded ends.\n     * @default false\n     */\n    round?: boolean;\n}\n\nexport class Tag extends React.PureComponent<ITagProps, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Tag`;\n\n    public render() {\n        const {\n            active,\n            children,\n            className,\n            icon,\n            intent,\n            interactive,\n            large,\n            minimal,\n            multiline,\n            onRemove,\n            rightIcon,\n            round,\n            tabIndex = 0,\n            ...htmlProps\n        } = this.props;\n        const isRemovable = Utils.isFunction(onRemove);\n        const tagClasses = classNames(\n            Classes.TAG,\n            Classes.intentClass(intent),\n            {\n                [Classes.ACTIVE]: active,\n                [Classes.INTERACTIVE]: interactive,\n                [Classes.LARGE]: large,\n                [Classes.MINIMAL]: minimal,\n                [Classes.ROUND]: round,\n            },\n            className,\n        );\n        const isLarge = large || tagClasses.indexOf(Classes.LARGE) >= 0;\n        const removeButton = isRemovable ? (\n            <button type=\"button\" className={Classes.TAG_REMOVE} onClick={this.onRemoveClick}>\n                <Icon icon=\"small-cross\" iconSize={isLarge ? Icon.SIZE_LARGE : Icon.SIZE_STANDARD} />\n            </button>\n        ) : null;\n\n        return (\n            <span {...htmlProps} className={tagClasses} tabIndex={interactive ? tabIndex : undefined}>\n                <Icon icon={icon} />\n                {!isReactNodeEmpty(children) && (\n                    <Text className={Classes.FILL} ellipsize={!multiline} tagName=\"span\">\n                        {children}\n                    </Text>\n                )}\n                <Icon icon={rightIcon} />\n                {removeButton}\n            </span>\n        );\n    }\n\n    private onRemoveClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n        Utils.safeInvoke(this.props.onRemove, e, this.props);\n    };\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { AbstractPureComponent } from \"../../common/abstractPureComponent\";\nimport * as Classes from \"../../common/classes\";\nimport * as Keys from \"../../common/keys\";\nimport { DISPLAYNAME_PREFIX, HTMLInputProps, IProps } from \"../../common/props\";\nimport * as Utils from \"../../common/utils\";\nimport { Icon, IconName } from \"../icon/icon\";\nimport { ITagProps, Tag } from \"../tag/tag\";\n\nexport interface ITagInputProps extends IProps {\n    /**\n     * If true, `onAdd` will be invoked when the input loses focus.\n     * Otherwise, `onAdd` is only invoked when `enter` is pressed.\n     * @default false\n     */\n    addOnBlur?: boolean;\n\n    /**\n     * If true, `onAdd` will be invoked when the user pastes text containing the `separator`\n     * into the input. Otherwise, pasted text will remain in the input.\n     *\n     * __Note:__ For example, if `addOnPaste=true` and `separator=\"\\n\"` (new line), then:\n     * - Pasting `\"hello\"` will _not_ invoke `onAdd`\n     * - Pasting `\"hello\\n\"` will invoke `onAdd` with `[\"hello\"]`\n     * - Pasting `\"hello\\nworld\"` will invoke `onAdd` with `[\"hello\", \"world\"]`\n     *\n     * @default true\n     */\n    addOnPaste?: boolean;\n\n    /**\n     * Whether the component is non-interactive.\n     * Note that you'll also need to disable the component's `rightElement`,\n     * if appropriate.\n     * @default false\n     */\n    disabled?: boolean;\n\n    /** Whether the tag input should take up the full width of its container. */\n    fill?: boolean;\n\n    /**\n     * React props to pass to the `<input>` element.\n     * Note that `ref` and `key` are not supported here; use `inputRef` below.\n     */\n    inputProps?: HTMLInputProps;\n\n    /** Ref handler for the `<input>` element. */\n    inputRef?: (input: HTMLInputElement | null) => void;\n\n    /** Controlled value of the `<input>` element. This is shorthand for `inputProps={{ value }}`. */\n    inputValue?: string;\n\n    /** Whether the tag input should use a large size. */\n    large?: boolean;\n\n    /** Name of a Blueprint UI icon (or an icon element) to render on the left side of the input. */\n    leftIcon?: IconName | JSX.Element;\n\n    /**\n     * Callback invoked when new tags are added by the user pressing `enter` on the input.\n     * Receives the current value of the input field split by `separator` into an array.\n     * New tags are expected to be appended to the list.\n     *\n     * The input will be cleared after `onAdd` is invoked _unless_ the callback explicitly\n     * returns `false`. This is useful if the provided `value` is somehow invalid and should\n     * not be added as a tag.\n     */\n    onAdd?: (values: string[]) => boolean | void;\n\n    /**\n     * Callback invoked when new tags are added or removed. Receives the updated list of `values`:\n     * new tags are appended to the end of the list, removed tags are removed at their index.\n     *\n     * Like `onAdd`, the input will be cleared after this handler is invoked _unless_ the callback\n     * explicitly returns `false`.\n     *\n     * This callback essentially implements basic `onAdd` and `onRemove` functionality and merges\n     * the two handlers into one to simplify controlled usage.\n     *\n     * **Note about typed usage:** Your handler can declare a subset type of `React.ReactNode[]`,\n     * such as `string[]` or `Array<string | JSX.Element>`, to match the type of your `values` array:\n     * ```tsx\n     * <TagInput\n     *     onChange={(values: string[]) => this.setState({ values })}\n     *     values={[\"apple\", \"banana\", \"cherry\"]}\n     * />\n     * ```\n     */\n    onChange?: (values: React.ReactNode[]) => boolean | void;\n\n    /**\n     * Callback invoked when the value of `<input>` element is changed.\n     * This is shorthand for `inputProps={{ onChange }}`.\n     */\n    onInputChange?: React.FormEventHandler<HTMLInputElement>;\n\n    /**\n     * Callback invoked when the user depresses a keyboard key.\n     * Receives the event and the index of the active tag (or `undefined` if\n     * focused in the input).\n     */\n    onKeyDown?: (event: React.KeyboardEvent<HTMLElement>, index?: number) => void;\n\n    /**\n     * Callback invoked when the user releases a keyboard key.\n     * Receives the event and the index of the active tag (or `undefined` if\n     * focused in the input).\n     */\n    onKeyUp?: (event: React.KeyboardEvent<HTMLElement>, index?: number) => void;\n\n    /**\n     * Callback invoked when the user clicks the X button on a tag.\n     * Receives value and index of removed tag.\n     */\n    onRemove?: (value: string, index: number) => void;\n\n    /**\n     * Input placeholder text which will not appear if `values` contains any items\n     * (consistent with default HTML input behavior).\n     * Use `inputProps.placeholder` if you want the placeholder text to _always_ appear.\n     *\n     * If you define both `placeholder` and `inputProps.placeholder`, then the former will appear\n     * when `values` is empty and the latter at all other times.\n     */\n    placeholder?: string;\n\n    /**\n     * Element to render on right side of input.\n     * For best results, use a small spinner or minimal button (button height will adjust if `TagInput` uses large styles).\n     * Other elements will likely require custom styles for correct positioning.\n     */\n    rightElement?: JSX.Element;\n\n    /**\n     * Separator pattern used to split input text into multiple values. Default value splits on commas and newlines.\n     * Explicit `false` value disables splitting (note that `onAdd` will still receive an array of length 1).\n     * @default /[,\\n\\r]/\n     */\n    separator?: string | RegExp | false;\n\n    /**\n     * React props to pass to each `Tag`. Provide an object to pass the same props to every tag,\n     * or a function to customize props per tag.\n     *\n     * If you define `onRemove` here then you will have to implement your own tag removal\n     * handling as `TagInput`'s own `onRemove` handler will never be invoked.\n     */\n    tagProps?: ITagProps | ((value: React.ReactNode, index: number) => ITagProps);\n\n    /**\n     * Controlled tag values. Each value will be rendered inside a `Tag`, which can be customized\n     * using `tagProps`. Therefore, any valid React node can be used as a `TagInput` value; falsy\n     * values will not be rendered.\n     *\n     * __Note about typed usage:__ If you know your `values` will always be of a certain `ReactNode`\n     * subtype, such as `string` or `ReactChild`, you can use that type on all your handlers\n     * to simplify type logic.\n     */\n    values: React.ReactNode[];\n}\n\nexport interface ITagInputState {\n    activeIndex?: number;\n    inputValue?: string;\n    isInputFocused?: boolean;\n}\n\n/** special value for absence of active tag */\nconst NONE = -1;\n\nexport class TagInput extends AbstractPureComponent<ITagInputProps, ITagInputState> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.TagInput`;\n\n    public static defaultProps: Partial<ITagInputProps> & object = {\n        addOnBlur: false,\n        addOnPaste: true,\n        inputProps: {},\n        inputValue: \"\",\n        separator: /[,\\n\\r]/,\n        tagProps: {},\n    };\n\n    public state: ITagInputState = {\n        activeIndex: NONE,\n        inputValue: this.props.inputValue,\n        isInputFocused: false,\n    };\n\n    private inputElement: HTMLInputElement;\n    private refHandlers = {\n        input: (ref: HTMLInputElement) => {\n            this.inputElement = ref;\n            Utils.safeInvoke(this.props.inputRef, ref);\n        },\n    };\n\n    public componentWillReceiveProps(nextProps: HTMLInputProps & ITagInputProps) {\n        super.componentWillReceiveProps(nextProps);\n\n        if (nextProps.inputValue !== this.props.inputValue) {\n            this.setState({ inputValue: nextProps.inputValue });\n        }\n    }\n\n    public render() {\n        const { className, disabled, fill, inputProps, large, leftIcon, placeholder, values } = this.props;\n\n        const classes = classNames(\n            Classes.INPUT,\n            Classes.TAG_INPUT,\n            {\n                [Classes.ACTIVE]: this.state.isInputFocused,\n                [Classes.DISABLED]: disabled,\n                [Classes.FILL]: fill,\n                [Classes.LARGE]: large,\n            },\n            className,\n        );\n        const isLarge = classes.indexOf(Classes.LARGE) > NONE;\n\n        // use placeholder prop only if it's defined and values list is empty or contains only falsy values\n        const isSomeValueDefined = values.some(val => !!val);\n        const resolvedPlaceholder = placeholder == null || isSomeValueDefined ? inputProps.placeholder : placeholder;\n\n        return (\n            <div className={classes} onBlur={this.handleContainerBlur} onClick={this.handleContainerClick}>\n                <Icon\n                    className={Classes.TAG_INPUT_ICON}\n                    icon={leftIcon}\n                    iconSize={isLarge ? Icon.SIZE_LARGE : Icon.SIZE_STANDARD}\n                />\n                <div className={Classes.TAG_INPUT_VALUES}>\n                    {values.map(this.maybeRenderTag)}\n                    {this.props.children}\n                    <input\n                        value={this.state.inputValue}\n                        {...inputProps}\n                        onFocus={this.handleInputFocus}\n                        onChange={this.handleInputChange}\n                        onKeyDown={this.handleInputKeyDown}\n                        onKeyUp={this.handleInputKeyUp}\n                        onPaste={this.handleInputPaste}\n                        placeholder={resolvedPlaceholder}\n                        ref={this.refHandlers.input}\n                        className={classNames(Classes.INPUT_GHOST, inputProps.className)}\n                        disabled={disabled}\n                    />\n                </div>\n                {this.props.rightElement}\n            </div>\n        );\n    }\n\n    private addTags = (value: string) => {\n        const { onAdd, onChange, values } = this.props;\n        const newValues = this.getValues(value);\n        let shouldClearInput = Utils.safeInvoke(onAdd, newValues);\n        // avoid a potentially expensive computation if this prop is omitted\n        if (Utils.isFunction(onChange)) {\n            shouldClearInput = shouldClearInput || onChange([...values, ...newValues]);\n        }\n        // only explicit return false cancels text clearing\n        if (shouldClearInput !== false) {\n            this.setState({ inputValue: \"\" });\n        }\n    };\n\n    private maybeRenderTag = (tag: React.ReactNode, index: number) => {\n        if (!tag) {\n            return null;\n        }\n        const { large, tagProps } = this.props;\n        const props = Utils.isFunction(tagProps) ? tagProps(tag, index) : tagProps;\n        return (\n            <Tag\n                active={index === this.state.activeIndex}\n                data-tag-index={index}\n                key={tag + \"__\" + index}\n                large={large}\n                onRemove={this.props.disabled ? null : this.handleRemoveTag}\n                {...props}\n            >\n                {tag}\n            </Tag>\n        );\n    };\n\n    private getNextActiveIndex(direction: number) {\n        const { activeIndex } = this.state;\n        if (activeIndex === NONE) {\n            // nothing active & moving left: select last defined value. otherwise select nothing.\n            return direction < 0 ? this.findNextIndex(this.props.values.length, -1) : NONE;\n        } else {\n            // otherwise, move in direction and clamp to bounds.\n            // note that upper bound allows going one beyond last item\n            // so focus can move off the right end, into the text input.\n            return this.findNextIndex(activeIndex, direction);\n        }\n    }\n\n    private findNextIndex(startIndex: number, direction: number) {\n        const { values } = this.props;\n        let index = startIndex + direction;\n        while (index > 0 && index < values.length && !values[index]) {\n            index += direction;\n        }\n        return Utils.clamp(index, 0, values.length);\n    }\n\n    /**\n     * Splits inputValue on separator prop,\n     * trims whitespace from each new value,\n     * and ignores empty values.\n     */\n    private getValues(inputValue: string) {\n        const { separator } = this.props;\n        // NOTE: split() typings define two overrides for string and RegExp.\n        // this does not play well with our union prop type, so we'll just declare it as a valid type.\n        return (separator === false ? [inputValue] : inputValue.split(separator as string))\n            .map(val => val.trim())\n            .filter(val => val.length > 0);\n    }\n\n    private handleContainerClick = () => {\n        if (this.inputElement != null) {\n            this.inputElement.focus();\n        }\n    };\n\n    private handleContainerBlur = ({ currentTarget }: React.FocusEvent<HTMLDivElement>) => {\n        requestAnimationFrame(() => {\n            // we only care if the blur event is leaving the container.\n            // defer this check using rAF so activeElement will have updated.\n            if (!currentTarget.contains(document.activeElement)) {\n                if (this.props.addOnBlur && this.state.inputValue !== undefined && this.state.inputValue.length > 0) {\n                    this.addTags(this.state.inputValue);\n                }\n                this.setState({ activeIndex: NONE, isInputFocused: false });\n            }\n        });\n    };\n\n    private handleInputFocus = (event: React.FocusEvent<HTMLElement>) => {\n        this.setState({ isInputFocused: true });\n        Utils.safeInvoke(this.props.inputProps.onFocus, event);\n    };\n\n    private handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n        this.setState({ activeIndex: NONE, inputValue: event.currentTarget.value });\n        Utils.safeInvoke(this.props.onInputChange, event);\n        Utils.safeInvoke(this.props.inputProps.onChange, event);\n    };\n\n    private handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n        const { selectionEnd, value } = event.currentTarget;\n        const { activeIndex } = this.state;\n\n        let activeIndexToEmit = activeIndex;\n\n        if (event.which === Keys.ENTER && value.length > 0) {\n            this.addTags(value);\n        } else if (selectionEnd === 0 && this.props.values.length > 0) {\n            // cursor at beginning of input allows interaction with tags.\n            // use selectionEnd to verify cursor position and no text selection.\n            if (event.which === Keys.ARROW_LEFT || event.which === Keys.ARROW_RIGHT) {\n                const nextActiveIndex = this.getNextActiveIndex(event.which === Keys.ARROW_RIGHT ? 1 : -1);\n                if (nextActiveIndex !== activeIndex) {\n                    event.stopPropagation();\n                    activeIndexToEmit = nextActiveIndex;\n                    this.setState({ activeIndex: nextActiveIndex });\n                }\n            } else if (event.which === Keys.BACKSPACE) {\n                this.handleBackspaceToRemove(event);\n            }\n        }\n\n        this.invokeKeyPressCallback(\"onKeyDown\", event, activeIndexToEmit);\n    };\n\n    private handleInputKeyUp = (event: React.KeyboardEvent<HTMLInputElement>) => {\n        this.invokeKeyPressCallback(\"onKeyUp\", event, this.state.activeIndex);\n    };\n\n    private handleInputPaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n        const { separator } = this.props;\n        const value = event.clipboardData.getData(\"text\");\n\n        if (!this.props.addOnPaste || value.length === 0) {\n            return;\n        }\n\n        // special case as a UX nicety: if the user pasted only one value with no delimiters in it, leave that value in\n        // the input field so that the user can refine it before converting it to a tag manually.\n        if (separator === false || value.split(separator).length === 1) {\n            return;\n        }\n\n        event.preventDefault();\n        this.addTags(value);\n    };\n\n    private handleRemoveTag = (event: React.MouseEvent<HTMLSpanElement>) => {\n        // using data attribute to simplify callback logic -- one handler for all children\n        const index = +event.currentTarget.parentElement.getAttribute(\"data-tag-index\");\n        this.removeIndexFromValues(index);\n    };\n\n    private handleBackspaceToRemove(event: React.KeyboardEvent<HTMLInputElement>) {\n        const previousActiveIndex = this.state.activeIndex;\n        // always move leftward one item (this will focus last item if nothing is focused)\n        this.setState({ activeIndex: this.getNextActiveIndex(-1) });\n        // delete item if there was a previous valid selection (ignore first backspace to focus last item)\n        if (this.isValidIndex(previousActiveIndex)) {\n            event.stopPropagation();\n            this.removeIndexFromValues(previousActiveIndex);\n        }\n    }\n\n    /** Remove the item at the given index by invoking `onRemove` and `onChange` accordingly. */\n    private removeIndexFromValues(index: number) {\n        const { onChange, onRemove, values } = this.props;\n        Utils.safeInvoke(onRemove, values[index], index);\n        if (Utils.isFunction(onChange)) {\n            onChange(values.filter((_, i) => i !== index));\n        }\n    }\n\n    private invokeKeyPressCallback(\n        propCallbackName: \"onKeyDown\" | \"onKeyUp\",\n        event: React.KeyboardEvent<HTMLInputElement>,\n        activeIndex: number,\n    ) {\n        Utils.safeInvoke(this.props[propCallbackName], event, activeIndex === NONE ? undefined : activeIndex);\n        Utils.safeInvoke(this.props.inputProps[propCallbackName], event);\n    }\n\n    /** Returns whether the given index represents a valid item in `this.props.values`. */\n    private isValidIndex(index: number) {\n        return index !== NONE && index < this.props.values.length;\n    }\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport { AbstractPureComponent } from \"../../common/abstractPureComponent\";\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, IActionProps, IIntentProps, ILinkProps, IProps } from \"../../common/props\";\nimport { safeInvoke } from \"../../common/utils\";\nimport { ButtonGroup } from \"../button/buttonGroup\";\nimport { AnchorButton, Button } from \"../button/buttons\";\nimport { Icon, IconName } from \"../icon/icon\";\n\nexport interface IToastProps extends IProps, IIntentProps {\n    /**\n     * Action rendered as a minimal `AnchorButton`. The toast is dismissed automatically when the\n     * user clicks the action button. Note that the `intent` prop is ignored (the action button\n     * cannot have its own intent color that might conflict with the toast's intent). Omit this\n     * prop to omit the action button.\n     */\n    action?: IActionProps & ILinkProps;\n\n    /** Name of a Blueprint UI icon (or an icon element) to render before the message. */\n    icon?: IconName | JSX.Element;\n\n    /** Message to display in the body of the toast. */\n    message: string | JSX.Element;\n\n    /**\n     * Callback invoked when the toast is dismissed, either by the user or by the timeout.\n     * The value of the argument indicates whether the toast was closed because the timeout expired.\n     */\n    onDismiss?: (didTimeoutExpire: boolean) => void;\n\n    /**\n     * Milliseconds to wait before automatically dismissing toast.\n     * Providing a value less than or equal to 0 will disable the timeout (this is discouraged).\n     * @default 5000\n     */\n    timeout?: number;\n}\n\nexport class Toast extends AbstractPureComponent<IToastProps, {}> {\n    public static defaultProps: IToastProps = {\n        className: \"\",\n        message: \"\",\n        timeout: 5000,\n    };\n\n    public static displayName = `${DISPLAYNAME_PREFIX}.Toast`;\n\n    public render(): JSX.Element {\n        const { className, icon, intent, message } = this.props;\n        return (\n            <div\n                className={classNames(Classes.TOAST, Classes.intentClass(intent), className)}\n                onBlur={this.startTimeout}\n                onFocus={this.clearTimeouts}\n                onMouseEnter={this.clearTimeouts}\n                onMouseLeave={this.startTimeout}\n                tabIndex={0}\n            >\n                <Icon icon={icon} />\n                <span className={Classes.TOAST_MESSAGE}>{message}</span>\n                <ButtonGroup minimal={true}>\n                    {this.maybeRenderActionButton()}\n                    <Button icon=\"cross\" onClick={this.handleCloseClick} />\n                </ButtonGroup>\n            </div>\n        );\n    }\n\n    public componentDidMount() {\n        this.startTimeout();\n    }\n\n    public componentDidUpdate(prevProps: IToastProps) {\n        if (prevProps.timeout <= 0 && this.props.timeout > 0) {\n            this.startTimeout();\n        } else if (prevProps.timeout > 0 && this.props.timeout <= 0) {\n            this.clearTimeouts();\n        }\n    }\n\n    public componentWillUnmount() {\n        this.clearTimeouts();\n    }\n\n    private maybeRenderActionButton() {\n        const { action } = this.props;\n        if (action == null) {\n            return undefined;\n        } else {\n            return <AnchorButton {...action} intent={undefined} onClick={this.handleActionClick} />;\n        }\n    }\n\n    private handleActionClick = (e: React.MouseEvent<HTMLElement>) => {\n        safeInvoke(this.props.action.onClick, e);\n        this.triggerDismiss(false);\n    };\n\n    private handleCloseClick = () => this.triggerDismiss(false);\n\n    private triggerDismiss(didTimeoutExpire: boolean) {\n        safeInvoke(this.props.onDismiss, didTimeoutExpire);\n        this.clearTimeouts();\n    }\n\n    private startTimeout = () => {\n        if (this.props.timeout > 0) {\n            this.setTimeout(() => this.triggerDismiss(true), this.props.timeout);\n        }\n    };\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\n\nimport { AbstractPureComponent } from \"../../common/abstractPureComponent\";\nimport * as Classes from \"../../common/classes\";\nimport { TOASTER_CREATE_NULL, TOASTER_WARN_INLINE } from \"../../common/errors\";\nimport { ESCAPE } from \"../../common/keys\";\nimport { Position } from \"../../common/position\";\nimport { DISPLAYNAME_PREFIX, IProps } from \"../../common/props\";\nimport { isNodeEnv, safeInvoke } from \"../../common/utils\";\nimport { Overlay } from \"../overlay/overlay\";\nimport { IToastProps, Toast } from \"./toast\";\n\nexport type IToastOptions = IToastProps & { key?: string };\nexport type ToasterPosition =\n    | typeof Position.TOP\n    | typeof Position.TOP_LEFT\n    | typeof Position.TOP_RIGHT\n    | typeof Position.BOTTOM\n    | typeof Position.BOTTOM_LEFT\n    | typeof Position.BOTTOM_RIGHT;\n\n/** Instance methods available on a `<Toaster>` component instance. */\nexport interface IToaster {\n    /**\n     * Shows a new toast to the user, or updates an existing toast corresponding to the provided key (optional).\n     *\n     * Returns the unique key of the toast.\n     */\n    show(props: IToastProps, key?: string): string;\n\n    /** Dismiss the given toast instantly. */\n    dismiss(key: string): void;\n\n    /** Dismiss all toasts instantly. */\n    clear(): void;\n\n    /** Returns the props for all current toasts. */\n    getToasts(): IToastOptions[];\n}\n\n/**\n * Props supported by the `<Toaster>` component.\n * These props can be passed as an argument to the static `Toaster.create(props?, container?)` method.\n */\nexport interface IToasterProps extends IProps {\n    /**\n     * Whether a toast should acquire application focus when it first opens.\n     * This is disabled by default so that toasts do not interrupt the user's flow.\n     * Note that `enforceFocus` is always disabled for `Toaster`s.\n     * @default false\n     */\n    autoFocus?: boolean;\n\n    /**\n     * Whether pressing the `esc` key should clear all active toasts.\n     * @default true\n     */\n    canEscapeKeyClear?: boolean;\n\n    /**\n     * Whether the toaster should be rendered into a new element attached to `document.body`.\n     * If `false`, then positioning will be relative to the parent element.\n     *\n     * This prop is ignored by `Toaster.create()` as that method always appends a new element\n     * to the container.\n     * @default true\n     */\n    usePortal?: boolean;\n\n    /**\n     * Position of `Toaster` within its container.\n     *\n     * Note that only `TOP` and `BOTTOM` are supported because Toaster only\n     * supports the top and bottom edge positioning.\n     * @default Position.TOP\n     */\n    position?: ToasterPosition;\n}\n\nexport interface IToasterState {\n    toasts: IToastOptions[];\n}\n\nexport class Toaster extends AbstractPureComponent<IToasterProps, IToasterState> implements IToaster {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Toaster`;\n\n    public static defaultProps: IToasterProps = {\n        autoFocus: false,\n        canEscapeKeyClear: true,\n        position: Position.TOP,\n        usePortal: true,\n    };\n\n    /**\n     * Create a new `Toaster` instance that can be shared around your application.\n     * The `Toaster` will be rendered into a new element appended to the given container.\n     */\n    public static create(props?: IToasterProps, container = document.body): IToaster {\n        if (props != null && props.usePortal != null && !isNodeEnv(\"production\")) {\n            console.warn(TOASTER_WARN_INLINE);\n        }\n        const containerElement = document.createElement(\"div\");\n        container.appendChild(containerElement);\n        const toaster = ReactDOM.render(<Toaster {...props} usePortal={false} />, containerElement) as Toaster;\n        if (toaster == null) {\n            throw new Error(TOASTER_CREATE_NULL);\n        }\n        return toaster;\n    }\n\n    public state = {\n        toasts: [] as IToastOptions[],\n    };\n\n    // auto-incrementing identifier for un-keyed toasts\n    private toastId = 0;\n\n    public show(props: IToastProps, key?: string) {\n        const options = this.createToastOptions(props, key);\n        if (key === undefined || this.isNewToastKey(key)) {\n            this.setState(prevState => ({\n                toasts: [options, ...prevState.toasts],\n            }));\n        } else {\n            this.setState(prevState => ({\n                toasts: prevState.toasts.map(t => (t.key === key ? options : t)),\n            }));\n        }\n        return options.key;\n    }\n\n    public dismiss(key: string, timeoutExpired = false) {\n        this.setState(({ toasts }) => ({\n            toasts: toasts.filter(t => {\n                const matchesKey = t.key === key;\n                if (matchesKey) {\n                    safeInvoke(t.onDismiss, timeoutExpired);\n                }\n                return !matchesKey;\n            }),\n        }));\n    }\n\n    public clear() {\n        this.state.toasts.map(t => safeInvoke(t.onDismiss, false));\n        this.setState({ toasts: [] });\n    }\n\n    public getToasts() {\n        return this.state.toasts;\n    }\n\n    public render() {\n        // $pt-transition-duration * 3 + $pt-transition-duration / 2\n        const classes = classNames(Classes.TOAST_CONTAINER, this.getPositionClasses(), this.props.className);\n        return (\n            <Overlay\n                autoFocus={this.props.autoFocus}\n                canEscapeKeyClose={this.props.canEscapeKeyClear}\n                canOutsideClickClose={false}\n                className={classes}\n                enforceFocus={false}\n                hasBackdrop={false}\n                isOpen={this.state.toasts.length > 0 || this.props.children != null}\n                onClose={this.handleClose}\n                transitionDuration={350}\n                transitionName={Classes.TOAST}\n                usePortal={this.props.usePortal}\n            >\n                {this.state.toasts.map(this.renderToast, this)}\n                {this.props.children}\n            </Overlay>\n        );\n    }\n\n    private isNewToastKey(key: string) {\n        return this.state.toasts.every(toast => toast.key !== key);\n    }\n\n    private renderToast(toast: IToastOptions) {\n        return <Toast {...toast} onDismiss={this.getDismissHandler(toast)} />;\n    }\n\n    private createToastOptions(props: IToastProps, key = `toast-${this.toastId++}`) {\n        // clone the object before adding the key prop to avoid leaking the mutation\n        return { ...props, key };\n    }\n\n    private getPositionClasses() {\n        const positions = this.props.position.split(\"-\");\n        // NOTE that there is no -center class because that's the default style\n        return positions.map(p => `${Classes.TOAST_CONTAINER}-${p.toLowerCase()}`);\n    }\n\n    private getDismissHandler = (toast: IToastOptions) => (timeoutExpired: boolean) => {\n        this.dismiss(toast.key, timeoutExpired);\n    };\n\n    private handleClose = (e: React.KeyboardEvent<HTMLElement>) => {\n        // NOTE that `e` isn't always a KeyboardEvent but that's the only type we care about\n        if (e.which === ESCAPE) {\n            this.clear();\n        }\n    };\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, IProps } from \"../../common/props\";\nimport { safeInvoke } from \"../../common/utils\";\nimport { Collapse } from \"../collapse/collapse\";\nimport { Icon, IconName } from \"../icon/icon\";\n\nexport interface ITreeNode<T = {}> extends IProps {\n    /**\n     * Child tree nodes of this node.\n     */\n    childNodes?: Array<ITreeNode<T>>;\n\n    /**\n     * Whether the caret to expand/collapse a node should be shown.\n     * If not specified, this will be true if the node has children and false otherwise.\n     */\n    hasCaret?: boolean;\n\n    /**\n     * The name of a Blueprint icon (or an icon element) to render next to the node's label.\n     */\n    icon?: IconName | JSX.Element;\n\n    /**\n     * A unique identifier for the node.\n     */\n    id: string | number;\n\n    /**\n     */\n    isExpanded?: boolean;\n\n    /**\n     * Whether this node is selected.\n     * @default false\n     */\n    isSelected?: boolean;\n\n    /**\n     * The main label for the node.\n     */\n    label: string | JSX.Element;\n\n    /**\n     * A secondary label/component that is displayed at the right side of the node.\n     */\n    secondaryLabel?: string | JSX.Element;\n\n    /**\n     * An optional custom user object to associate with the node.\n     * This property can then be used in the `onClick`, `onContextMenu` and `onDoubleClick`\n     * event handlers for doing custom logic per node.\n     */\n    nodeData?: T;\n}\n\nexport interface ITreeNodeProps<T = {}> extends ITreeNode<T> {\n    children?: React.ReactNode;\n    contentRef?: (node: TreeNode<T>, element: HTMLDivElement | null) => void;\n    depth: number;\n    key?: string | number;\n    onClick?: (node: TreeNode<T>, e: React.MouseEvent<HTMLDivElement>) => void;\n    onCollapse?: (node: TreeNode<T>, e: React.MouseEvent<HTMLSpanElement>) => void;\n    onContextMenu?: (node: TreeNode<T>, e: React.MouseEvent<HTMLDivElement>) => void;\n    onDoubleClick?: (node: TreeNode<T>, e: React.MouseEvent<HTMLDivElement>) => void;\n    onExpand?: (node: TreeNode<T>, e: React.MouseEvent<HTMLSpanElement>) => void;\n    path: number[];\n}\n\nexport class TreeNode<T = {}> extends React.Component<ITreeNodeProps<T>, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.TreeNode`;\n\n    public static ofType<T>() {\n        return TreeNode as new (props: ITreeNodeProps<T>) => TreeNode<T>;\n    }\n\n    public render() {\n        const { children, className, icon, isExpanded, isSelected, label } = this.props;\n        const classes = classNames(\n            Classes.TREE_NODE,\n            {\n                [Classes.TREE_NODE_SELECTED]: isSelected,\n                [Classes.TREE_NODE_EXPANDED]: isExpanded,\n            },\n            className,\n        );\n\n        const contentClasses = classNames(\n            Classes.TREE_NODE_CONTENT,\n            `${Classes.TREE_NODE_CONTENT}-${this.props.depth}`,\n        );\n\n        return (\n            <li className={classes}>\n                <div\n                    className={contentClasses}\n                    onClick={this.handleClick}\n                    onContextMenu={this.handleContextMenu}\n                    onDoubleClick={this.handleDoubleClick}\n                    ref={this.handleContentRef}\n                >\n                    {this.maybeRenderCaret()}\n                    <Icon className={Classes.TREE_NODE_ICON} icon={icon} />\n                    <span className={Classes.TREE_NODE_LABEL}>{label}</span>\n                    {this.maybeRenderSecondaryLabel()}\n                </div>\n                <Collapse isOpen={isExpanded}>{children}</Collapse>\n            </li>\n        );\n    }\n\n    private maybeRenderCaret() {\n        const { hasCaret = React.Children.count(this.props.children) > 0 } = this.props;\n        if (hasCaret) {\n            const caretClasses = classNames(\n                Classes.TREE_NODE_CARET,\n                this.props.isExpanded ? Classes.TREE_NODE_CARET_OPEN : Classes.TREE_NODE_CARET_CLOSED,\n            );\n            return <Icon className={caretClasses} onClick={this.handleCaretClick} icon={\"chevron-right\"} />;\n        }\n        return <span className={Classes.TREE_NODE_CARET_NONE} />;\n    }\n\n    private maybeRenderSecondaryLabel() {\n        if (this.props.secondaryLabel != null) {\n            return <span className={Classes.TREE_NODE_SECONDARY_LABEL}>{this.props.secondaryLabel}</span>;\n        } else {\n            return undefined;\n        }\n    }\n\n    private handleCaretClick = (e: React.MouseEvent<HTMLElement>) => {\n        e.stopPropagation();\n        const { isExpanded, onCollapse, onExpand } = this.props;\n        safeInvoke(isExpanded ? onCollapse : onExpand, this, e);\n    };\n\n    private handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\n        safeInvoke(this.props.onClick, this, e);\n    };\n\n    private handleContentRef = (element: HTMLDivElement | null) => {\n        safeInvoke(this.props.contentRef, this, element);\n    };\n\n    private handleContextMenu = (e: React.MouseEvent<HTMLDivElement>) => {\n        safeInvoke(this.props.onContextMenu, this, e);\n    };\n\n    private handleDoubleClick = (e: React.MouseEvent<HTMLDivElement>) => {\n        safeInvoke(this.props.onDoubleClick, this, e);\n    };\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX, IProps } from \"../../common/props\";\nimport { isFunction } from \"../../common/utils\";\nimport { ITreeNode, TreeNode } from \"./treeNode\";\n\nexport type TreeEventHandler<T = {}> = (\n    node: ITreeNode<T>,\n    nodePath: number[],\n    e: React.MouseEvent<HTMLElement>,\n) => void;\n\nexport interface ITreeProps<T = {}> extends IProps {\n    /**\n     * The data specifying the contents and appearance of the tree.\n     */\n    contents: Array<ITreeNode<T>>;\n\n    /**\n     * Invoked when a node is clicked anywhere other than the caret for expanding/collapsing the node.\n     */\n    onNodeClick?: TreeEventHandler<T>;\n\n    /**\n     * Invoked when caret of an expanded node is clicked.\n     */\n    onNodeCollapse?: TreeEventHandler<T>;\n\n    /**\n     * Invoked when a node is right-clicked or the context menu button is pressed on a focused node.\n     */\n    onNodeContextMenu?: TreeEventHandler<T>;\n\n    /**\n     * Invoked when a node is double-clicked. Be careful when using this in combination with\n     * an `onNodeClick` (single-click) handler, as the way this behaves can vary between browsers.\n     * See http://stackoverflow.com/q/5497073/3124288\n     */\n    onNodeDoubleClick?: TreeEventHandler<T>;\n\n    /**\n     * Invoked when the caret of a collapsed node is clicked.\n     */\n    onNodeExpand?: TreeEventHandler<T>;\n}\n\nexport class Tree<T = {}> extends React.Component<ITreeProps<T>, {}> {\n    public static displayName = `${DISPLAYNAME_PREFIX}.Tree`;\n\n    public static ofType<T>() {\n        return Tree as new (props: ITreeProps<T>) => Tree<T>;\n    }\n\n    public static nodeFromPath(path: number[], treeNodes: ITreeNode[]): ITreeNode {\n        if (path.length === 1) {\n            return treeNodes[path[0]];\n        } else {\n            return Tree.nodeFromPath(path.slice(1), treeNodes[path[0]].childNodes);\n        }\n    }\n\n    private nodeRefs: { [nodeId: string]: HTMLElement } = {};\n\n    public render() {\n        return (\n            <div className={classNames(Classes.TREE, this.props.className)}>\n                {this.renderNodes(this.props.contents, [], Classes.TREE_ROOT)}\n            </div>\n        );\n    }\n\n    /**\n     * Returns the underlying HTML element of the `Tree` node with an id of `nodeId`.\n     * This element does not contain the children of the node, only its label and controls.\n     * If the node is not currently mounted, `undefined` is returned.\n     */\n    public getNodeContentElement(nodeId: string | number): HTMLElement | undefined {\n        return this.nodeRefs[nodeId];\n    }\n\n    private renderNodes(treeNodes: Array<ITreeNode<T>>, currentPath?: number[], className?: string): JSX.Element {\n        if (treeNodes == null) {\n            return null;\n        }\n\n        const nodeItems = treeNodes.map((node, i) => {\n            const elementPath = currentPath.concat(i);\n            const TypedTreeNode = TreeNode.ofType<T>();\n            return (\n                <TypedTreeNode\n                    {...node}\n                    key={node.id}\n                    contentRef={this.handleContentRef}\n                    depth={elementPath.length - 1}\n                    onClick={this.handleNodeClick}\n                    onContextMenu={this.handleNodeContextMenu}\n                    onCollapse={this.handleNodeCollapse}\n                    onDoubleClick={this.handleNodeDoubleClick}\n                    onExpand={this.handleNodeExpand}\n                    path={elementPath}\n                >\n                    {this.renderNodes(node.childNodes, elementPath)}\n                </TypedTreeNode>\n            );\n        });\n\n        return <ul className={classNames(Classes.TREE_NODE_LIST, className)}>{nodeItems}</ul>;\n    }\n\n    private handleNodeCollapse = (node: TreeNode<T>, e: React.MouseEvent<HTMLElement>) => {\n        this.handlerHelper(this.props.onNodeCollapse, node, e);\n    };\n\n    private handleNodeClick = (node: TreeNode<T>, e: React.MouseEvent<HTMLElement>) => {\n        this.handlerHelper(this.props.onNodeClick, node, e);\n    };\n\n    private handleContentRef = (node: TreeNode<T>, element: HTMLElement | null) => {\n        if (element != null) {\n            this.nodeRefs[node.props.id] = element;\n        } else {\n            // don't want our object to get bloated with old keys\n            delete this.nodeRefs[node.props.id];\n        }\n    };\n\n    private handleNodeContextMenu = (node: TreeNode<T>, e: React.MouseEvent<HTMLElement>) => {\n        this.handlerHelper(this.props.onNodeContextMenu, node, e);\n    };\n\n    private handleNodeDoubleClick = (node: TreeNode<T>, e: React.MouseEvent<HTMLElement>) => {\n        this.handlerHelper(this.props.onNodeDoubleClick, node, e);\n    };\n\n    private handleNodeExpand = (node: TreeNode<T>, e: React.MouseEvent<HTMLElement>) => {\n        this.handlerHelper(this.props.onNodeExpand, node, e);\n    };\n\n    private handlerHelper(handlerFromProps: TreeEventHandler, node: TreeNode<T>, e: React.MouseEvent<HTMLElement>) {\n        if (isFunction(handlerFromProps)) {\n            const nodeData = Tree.nodeFromPath(node.props.path, this.props.contents);\n            handlerFromProps(nodeData, node.props.path, e);\n        }\n    }\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the terms of the LICENSE file distributed with this project.\n */\n\ndeclare function require(moduleName: string): any; // declare node.js \"require\" so that we can conditionally import\nif (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n    // we're in browser\n    // tslint:disable-next-line:no-var-requires\n    require(\"dom4\"); // only import actual dom4 if we're in the browser (not server-compatible)\n    // we'll still need dom4 types for the TypeScript to compile, these are included in package.json\n}\n\nimport * as contextMenu from \"./context-menu/contextMenu\";\nexport const ContextMenu = contextMenu;\n\nexport * from \"./alert/alert\";\nexport * from \"./breadcrumbs/breadcrumb\";\nexport * from \"./breadcrumbs/breadcrumbs\";\nexport * from \"./button/buttons\";\nexport * from \"./button/buttonGroup\";\nexport * from \"./callout/callout\";\nexport * from \"./card/card\";\nexport * from \"./collapse/collapse\";\nexport * from \"./collapsible-list/collapsibleList\";\nexport * from \"./context-menu/contextMenuTarget\";\nexport * from \"./dialog/dialog\";\nexport * from \"./divider/divider\";\nexport * from \"./editable-text/editableText\";\nexport * from \"./forms/controlGroup\";\nexport * from \"./forms/controls\";\nexport * from \"./forms/fileInput\";\nexport * from \"./forms/formGroup\";\nexport * from \"./forms/inputGroup\";\nexport * from \"./forms/numericInput\";\nexport * from \"./forms/radioGroup\";\nexport * from \"./forms/textArea\";\nexport * from \"./html/html\";\nexport * from \"./html-select/htmlSelect\";\nexport * from \"./html-table/htmlTable\";\nexport * from \"./hotkeys/hotkeys\";\nexport * from \"./icon/icon\";\nexport * from \"./menu/menu\";\nexport * from \"./menu/menuDivider\";\nexport * from \"./menu/menuItem\";\nexport * from \"./navbar/navbar\";\nexport * from \"./navbar/navbarDivider\";\nexport * from \"./navbar/navbarGroup\";\nexport * from \"./navbar/navbarHeading\";\nexport * from \"./non-ideal-state/nonIdealState\";\nexport * from \"./overflow-list/overflowList\";\nexport * from \"./overlay/overlay\";\nexport * from \"./text/text\";\nexport * from \"./panel-stack/panelProps\";\nexport * from \"./panel-stack/panelStack\";\nexport * from \"./popover/popover\";\nexport * from \"./popover/popoverSharedProps\";\nexport * from \"./portal/portal\";\nexport * from \"./progress-bar/progressBar\";\nexport * from \"./resize-sensor/resizeSensor\";\nexport * from \"./slider/handleProps\";\nexport * from \"./slider/multiSlider\";\nexport * from \"./slider/rangeSlider\";\nexport * from \"./slider/slider\";\nexport * from \"./spinner/spinner\";\nexport * from \"./tabs/tab\";\nexport * from \"./tabs/tabs\";\nexport * from \"./tag/tag\";\nexport * from \"./tag-input/tagInput\";\nexport * from \"./toast/toast\";\nexport * from \"./toast/toaster\";\nexport * from \"./tooltip/tooltip\";\nexport * from \"./tree/tree\";\nexport * from \"./tree/treeNode\";\n","import * as React from \"react\"\nimport Directions from \"../Directions\"\nimport { iPuzzle, Settings } from \"../types\"\n\nimport {\n\tButton,\n\tButtonGroup,\n\tCard,\n\tCheckbox,\n} from \"@blueprintjs/core\"\n\ninterface Props {\n\tsettings: Settings\n\tpuzzle: iPuzzle\n\n\tonChange: (settings: Settings) => void\n\tonGenerate: () => void\n}\n\nexport default class Sidebar extends React.Component<Props> {\n\trender() {\n\t\treturn (\n\t\t\t<Card id=\"sidebar\" elevation={4}>\n\t\t\t\t<Checkbox\n\t\t\t\t\tchecked={this.props.settings.borders}\n\t\t\t\t\tonChange={(e) => this.props.onChange({ ...this.props.settings, borders: (e.target as HTMLInputElement).checked })}\n\t\t\t\t>\n\t\t\t\t\tCut outline\n\t\t\t\t</Checkbox>\n\n\t\t\t\t<Checkbox\n\t\t\t\t\tchecked={this.props.settings.labelSquares}\n\t\t\t\t\tonChange={(e) => this.props.onChange({ ...this.props.settings, labelSquares: (e.target as HTMLInputElement).checked })}\n\t\t\t\t>\n\t\t\t\t\tLabel squares\n\t\t\t\t</Checkbox>\n\n\t\t\t\t<Checkbox\n\t\t\t\t\tchecked={this.props.settings.revealCorner}\n\t\t\t\t\tonChange={(e) => this.props.onChange({ ...this.props.settings, revealCorner: (e.target as HTMLInputElement).checked })}\n\t\t\t\t>\n\t\t\t\t\tReveal one corner\n\t\t\t\t</Checkbox>\n\n\t\t\t\t<ButtonGroup fill={true}>\n\t\t\t\t\t<Button onClick={this.props.onGenerate}>Generate</Button>\n\t\t\t\t\t<Button onClick={print}>Print</Button>\n\t\t\t\t</ButtonGroup>\n\n\t\t\t\t<Directions heading=\"Directions\" puzzle={this.props.puzzle} />\n\t\t\t</Card>\n\t\t)\n\t}\n}\n","export interface Matches {\n\tconstant: string,\n\tfunctions: string[],\n}\n\n// refactor if https://github.com/Microsoft/TypeScript/issues/13626 is implemented\nlet map: Matches[] = [\n\t{\n\t\tconstant: \"\\\\text{undefined}\",\n\t\tfunctions: [\n\t\t\t\"\\\\csc 0^\\\\circ\",\n\t\t\t\"\\\\cot 0^\\\\circ\",\n\t\t],\n\t},\n\t{\n\t\tconstant: \"0\",\n\t\tfunctions: [\n\t\t\t\"\\\\sin 0^\\\\circ\",\n\t\t\t\"\\\\tan 0^\\\\circ\",\n\t\t]\n\t},\n\t{\n\t\tconstant: \"\\\\frac{1}{2}\",\n\t\tfunctions: [\n\t\t\t\"\\\\sin 30^\\\\circ\",\n\t\t\t\"\\\\cos 60^\\\\circ\",\n\t\t],\n\t},\n\t{\n\t\tconstant: \"\\\\frac{\\\\sqrt{3}}{3}\",\n\t\tfunctions: [\n\t\t\t\"\\\\tan 30^\\\\circ\",\n\t\t\t\"\\\\cot 60^\\\\circ\",\n\t\t],\n\t},\n\t{\n\t\tconstant: \"\\\\frac{\\\\sqrt{2}}{2}\",\n\t\tfunctions: [\n\t\t\t\"\\\\sin 45^\\\\circ\",\n\t\t\t\"\\\\cos 45^\\\\circ\",\n\t\t],\n\t},\n\t{\n\t\tconstant: \"\\\\frac{\\\\sqrt{3}}{2}\",\n\t\tfunctions: [\n\t\t\t\"\\\\sin 60^\\\\circ\",\n\t\t\t\"\\\\cos 30^\\\\circ\",\n\t\t],\n\t},\n\t{\n\t\tconstant: \"1\",\n\t\tfunctions: [\n\t\t\t\"\\\\cos 0^\\\\circ\",\n\t\t\t\"\\\\tan 45^\\\\circ\",\n\t\t\t\"\\\\sec 0^\\\\circ\",\n\t\t\t\"\\\\cot 45^\\\\circ\"\n\t\t],\n\t},\n\t{\n\t\tconstant: \"\\\\frac{2\\\\sqrt{3}}{3}\",\n\t\tfunctions: [\n\t\t\t\"\\\\csc 60^\\\\circ\",\n\t\t\t\"\\\\sec 30^\\\\circ\",\n\t\t],\n\t},\n\t{\n\t\tconstant: \"\\\\sqrt{2}\",\n\t\tfunctions: [\n\t\t\t\"\\\\csc 45^\\\\circ\",\n\t\t\t\"\\\\sec 45^\\\\circ\",\n\t\t],\n\t},\n\t{\n\t\tconstant: \"\\\\sqrt{3}\",\n\t\tfunctions: [\n\t\t\t\"\\\\tan 60^\\\\circ\",\n\t\t\t\"\\\\cot 30^\\\\circ\",\n\t\t],\n\t},\n\t{\n\t\tconstant: \"2\",\n\t\tfunctions: [\n\t\t\t\"\\\\csc 30^\\\\circ\",\n\t\t\t\"\\\\sec 60^\\\\circ\",\n\t\t],\n\t},\n]\n\nexport default map\n","import _ from \"lodash\"\nimport map from \"./constant-map\"\nimport { iPuzzle, Settings } from \"./types\"\n\nexport default function generate(settings: Settings): iPuzzle {\n\t// 4x4 multidimensional array\n\tconst rows = [\n\t\t[[], [], [], []],\n\t\t[[], [], [], []],\n\t\t[[], [], [], []],\n\t\t[[], [], [], []],\n\t]\n\n\tfor (let row = 0; row < rows.length; row++) {\n\t\tfor (let col = 0; col < rows[row].length; col++) {\n\t\t\tconst square = rows[row][col]\n\n\t\t\t// top expression\n\t\t\t// checks if the the expression will be on the an edge of the outer square\n\t\t\t// if it is, select a random edge constant\n\t\t\tif (row === 0) {\n\t\t\t\tif (col === 0 && settings.revealCorner) {\n\t\t\t\t\t// marks one outer corner\n\t\t\t\t\tsquare[0] = \"\"\n\t\t\t\t} else {\n\t\t\t\t\tsquare[0] = getConstant()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// right expression\n\t\t\tif (col === 3) {\n\t\t\t\tsquare[1] = getConstant()\n\t\t\t} else {\n\t\t\t\tconst sample = _.sample(map)\n\t\t\t\tconst pair = _.shuffle([\n\t\t\t\t\tsample.constant,\n\t\t\t\t\t_.sample(sample.functions),\n\t\t\t\t]);\n\n\t\t\t\t// sets the right expression of this square\n\t\t\t\tsquare[1] = pair[0]\n\t\t\t\t// sets the left expression of the adjacent square to the match\n\t\t\t\trows[row][col + 1][3] = pair[1]\n\t\t\t}\n\n\t\t\t// bottom expression\n\t\t\tif (row === 3) {\n\t\t\t\tsquare[2] = getConstant()\n\t\t\t} else {\n\t\t\t\tconst sample = _.sample(map)\n\t\t\t\tconst pair = _.shuffle([\n\t\t\t\t\tsample.constant,\n\t\t\t\t\t_.sample(sample.functions),\n\t\t\t\t]);\n\n\t\t\t\t// sets the bottom expression of this square\n\t\t\t\tsquare[2] = pair[0]\n\t\t\t\t// sets the top expression of the adjacent square to the match\n\t\t\t\trows[row + 1][col][0] = pair[1]\n\t\t\t}\n\n\t\t\t// left expression\n\t\t\tif (col === 0) {\n\t\t\t\tif (row === 0 && settings.revealCorner) {\n\t\t\t\t\t// marks one outer corner\n\t\t\t\t\tsquare[3] = \"\"\n\t\t\t\t} else {\n\t\t\t\t\tsquare[3] = getConstant()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\trevealedCorner: settings.revealCorner,\n\t\tsolved: rows,\n\t\t// shuffles tile position\n\t\tshuffled: _.chunk(_.shuffle(_.flatten(_.cloneDeep(rows))), 4).\n\t\t\t// rotates squares\n\t\t\tmap((row) => row.map((square) => {\n\t\t\t\tfor (let i = 0; i < _.random(square.length - 1); i++) {\n\t\t\t\t\tsquare.push(square.shift())\n\t\t\t\t}\n\t\t\t\treturn square\n\t\t\t}))\n\t}\n}\n\n// returns a random constant\nfunction getConstant(): string {\n\treturn _.sample(map).constant\n}\n","import * as React from \"react\"\nimport Directions from \"./Directions\"\nimport Puzzle from \"./Puzzle\"\nimport ReactDOM from \"react-dom\"\nimport Sidebar from \"./Sidebar\"\nimport generate from \"./generator\"\nimport { Button, ButtonGroup } from \"@blueprintjs/core\"\nimport { iPuzzle, Settings } from \"./types\"\n\ninterface State {\n\tpuzzle: iPuzzle\n\tsettings: Settings\n}\n\nclass Index extends React.Component<any, State> {\n\tconstructor(props) {\n\t\tsuper(props)\n\n\t\tconst settings = {\n\t\t\tborders: true,\n\t\t\tlabelSquares: true,\n\t\t\trevealCorner: true,\n\n\t\t\tshuffled: true,\n\t\t}\n\n\t\tthis.state = {\n\t\t\tpuzzle: generate(settings),\n\t\t\tsettings,\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<React.Fragment>\n\t\t\t\t<Sidebar\n\t\t\t\t\tsettings={this.state.settings}\n\t\t\t\t\tpuzzle={this.state.puzzle}\n\t\t\t\t\tonChange={(settings) => this.setState({ settings })}\n\t\t\t\t\tonGenerate={() => this.setState({ puzzle: generate(this.state.settings) })}\n\t\t\t\t/>\n\t\t\t\t<div id=\"content\">\n\t\t\t\t\t<Directions heading=\"Trigonometry Puzzle\" puzzle={this.state.puzzle} />\n\n\t\t\t\t\t<div id=\"puzzle-wrapper\">\n\t\t\t\t\t\t<Puzzle settings={this.state.settings} puzzle={this.state.puzzle} />\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div id=\"shuffle-toggle\">\n\t\t\t\t\t\t<ButtonGroup>\n\t\t\t\t\t\t\t<Button active={this.state.settings.shuffled} onClick={() => this.setState({ settings: { ...this.state.settings, shuffled: true } })}>Shuffled</Button>\n\t\t\t\t\t\t\t<Button active={!this.state.settings.shuffled} onClick={() => this.setState({ settings: { ...this.state.settings, shuffled: false } })}>Solved</Button>\n\t\t\t\t\t\t</ButtonGroup>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</React.Fragment>\n\t\t)\n\t}\n}\n\naddEventListener(\"DOMContentLoaded\", () => {\n\tReactDOM.render(<Index />, document.getElementById(\"root\"))\n})\n\n"]}